Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 85 additions & 0 deletions actions/privacy-review/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: 'Privacy Review'
description: 'PRの変更に対してプライバシー・個人情報の取り扱いを自動レビューする'

inputs:
anthropic_api_key:
description: 'Anthropic API Key'
required: true
model:
description: 'Claude model to use'
required: false
default: ''
allowed_bots:
description: 'Comma-separated list of bot names allowed to trigger the review'
required: false
default: 'dependabot,renovate'

runs:
using: 'composite'
steps:
- uses: anthropics/claude-code-action@v1
with:
anthropic_api_key: ${{ inputs.anthropic_api_key }}
model: ${{ inputs.model }}
allowed_bots: ${{ inputs.allowed_bots }}
track_progress: true
use_sticky_comment: true
prompt: |
あなたはプライバシー・個人情報保護の専門レビュアーです。
このPRの変更差分を確認し、**プライバシー・個人情報の取り扱い**に関する問題のみをレビューしてください。
他のコード品質・パフォーマンス・セキュリティ全般の指摘は不要です。

## レビュー対象
変更された部分のみに焦点を当ててください。既存コードは変更に直接関連する場合のみ言及してください。
ただし、変更によって既存コードのPIIが新たに露出する可能性がある場合(例: 既存のログ出力が変更に伴い有効になる等)は必ず確認してください。

## 検知すべき項目

### 1. 新規PII収集・保存
- 個人識別情報(PII)を新たに収集・保存する変更が含まれていないか
- 対象: 氏名、メールアドレス、電話番号、住所、生年月日、性別、収入情報、家族構成
- 対象: デバイスID(IDFA、ADID)、IPアドレス、ブラウザフィンガープリント
- 対象: 位置情報(緯度・経度、GPSデータ、ジオフェンシング)
- 対象: 生体情報、顔写真、マイナンバー等の機微情報
- DBマイグレーションやスキーマ変更でPIIカラムが追加されていないか

### 2. PII漏洩リスク
- ログ出力(logger、console.log、puts、print等)にPIIが含まれていないか
- エラーレポート(Bugsnag、Sentry等)のコンテキストにPIIが含まれていないか
- APIレスポンスに不必要なPIIが含まれていないか(過剰なデータ返却)
- URLパラメータやパスにPIIが露出していないか(ブラウザ履歴・リファラーで漏洩)
- クライアントサイドストレージ(localStorage、sessionStorage、Cookie)にPIIが平文で保存されていないか

### 3. 外部サービスへのPII送信
- 分析ツール(Firebase Analytics、Google Analytics、BigQuery等)のイベントにPIIが含まれていないか
- 外部API・サードパーティサービスへの新規PII送信がないか
- Webhook・コールバックでPIIが送信されていないか
- PII送信がある場合、その必要性と最小化(必要最小限のデータのみ送信)が考慮されているか

### 4. PII保護の不備
- PIIの保存時に適切な暗号化・ハッシュ化が行われているか
- PIIへのアクセスに適切な認証・認可チェックがあるか
- PIIのバリデーション(入力値検証)が行われているか
- PII削除機能(退会時のデータ消去等)への影響が考慮されているか
- PIIの匿名化・マスキングが必要な箇所で適切に実施されているか

### 5. 例外ケースの判断
- 店舗の住所・座標など、個人に紐づかない情報はPIIに該当しない。誤検知を避けること
- 業務上PIIの保持が必要不可欠な場合は、最小化・暗号化が施されているかを確認する

## 出力ルール
すべての出力は日本語で書いてください。

## フィードバック形式

### 🔴 PII関連の重大な問題(あれば)
- 必ず修正が必要な問題

### 🟡 PII関連の改善提案(あれば)
- 改善を推奨する点

### ✅ 問題なし
- PII関連の問題がない場合は「プライバシーレビュー完了。PII関連の問題は検出されませんでした。」と報告

コメントは建設的かつ具体的に、可能であれば修正コード例を含めてください。
問題がない場合でも必ず「問題なし」を報告してください。