Dependabotが作成したPRを自動的に分析し、脆弱性の影響をAIで評価するワークフローです。 前提としてDependabot alertsが導入先のリポジトリで有効化されている必要があります。
次の権限を付与したGitHub Appを作成してください。
- Contents: read only
- Pull requests: read and write
- Dependabot alerts: read only
次のYAML を .github/workflows の中に配置してください。
なお、実運用においては、直接本リポジトリのワークフローを参照するのではなく、本リポジトリをforkしたうえでそちらを参照することを推奨します。
name: dependahunt Caller
on:
workflow_run: # DependabotのPR作成時(Dependabotのチェックが行われた後)にトリガする
workflows: ["Dependabot Updates"]
types: [completed]
issue_comment: # PRコメント時にトリガする
types: [created]
workflow_dispatch: # GitHubのUI上から手動実行できるようにする
permissions:
contents: read
pull-requests: write
id-token: write
security-events: read
jobs:
run:
uses: m3dev/dependahunt/.github/workflows/analyze.yml@main
with:
runs_on: '"ubuntu-latest"'
event_name: ${{ github.event_name }}
ai_provider: 'claude-vertex'
ai_model: 'claude-sonnet-4-5@20250929'
vertex_project_id: '(your project id)'
vertex_region: '(your region)'
secrets:
APP_ID: ${{ secrets.APP_ID }}
APP_PRIVATE_KEY: ${{ secrets.APP_PRIVATE_KEY }}
WORKLOAD_IDENTITY_PROVIDER: ${{ secrets.WORKLOAD_IDENTITY_PROVIDER }}
SERVICE_ACCOUNT: ${{ secrets.SERVICE_ACCOUNT }}
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
| パラメータ名 | 必須 | 説明 |
|---|---|---|
event_name |
○ | イベントタイプ判別用。通常は${{ github.event_name }}を指定すること。 |
runs_on |
○ | ワークフローを実行するランナーの指定(JSON文字列形式)。単一ランナーの場合は'"ubuntu-latest"'のようにダブルクォートで囲む。配列の場合は'["self-hosted", "ubuntu"]'のように配列形式で指定。 |
ai_provider |
○ | 使用するAIプロバイダ。指定可能な値: claude-vertex, claude-direct, gemini-vertex, gemini-direct |
ai_model |
○ | 使用するAIモデル。プロバイダに応じて適切なモデルを指定。例: claude-sonnet-4-5@20250929, gemini-2.5-pro |
vertex_project_id |
△ | Vertex AIを使用するGCPプロジェクトID。Vertex AI使用時(ai_providerがclaude-vertexまたはgemini-vertexの場合)は必須。 |
vertex_region |
△ | Vertex AIのGCPリージョン |
trigger_word |
- | PRコメントで分析を起動するトリガーワード。デフォルトは/dependahunt |
| シークレット名 | 必須 | 説明 |
|---|---|---|
APP_ID |
○ | 作成したGitHub AppのApp ID |
APP_PRIVATE_KEY |
○ | GitHub Appの秘密鍵(PEM形式) |
WORKLOAD_IDENTITY_PROVIDER |
△ | GCP Workload Identity Providerのリソースパス(例: projects/123456789/locations/global/workloadIdentityPools/github/providers/github-oidc)。Vertex AI使用時は必須。 |
SERVICE_ACCOUNT |
△ | Vertex AIアクセス用のGCPサービスアカウント(例: github-actions@project-id.iam.gserviceaccount.com)。Vertex AI使用時は必須。 |
ANTHROPIC_API_KEY |
△ | Anthropic APIキー(例: sk-ant-api03-...)。ai_providerがclaude-directの場合に必須。 |
GEMINI_API_KEY |
△ | Google AI Studio APIキー(例: AIzaSy...)。ai_providerがgemini-directの場合に必須。 |
DependabotがパッチPRを作成したタイミング(Dependabotのチェックが行われた後)で自動的に実行され、未分析のPRの内容が分析されます。無効化するにはYAMLの workflow_run キーを削除してください。
なお、Dependabot自体はデフォルトブランチを分析対象としています。対象ブランチを変更する場合は dependabot.yamlで設定してください。
Dependabotが作成したPRのコメントに特定のコマンドを入力することで、そのPRの内容が分析されます。
/dependahunt analyze [--comment "追加の指示"] [--include-previous]--comment分析の際に重視しておいてほしい点や質問などの追加の指示を与えることができます。--include-previous直近の分析結果も今回の分析に含めます。--commentと組み合わせることで、直近の結果を踏まえた指示(例:他の対策はないか、など)を与えることができます。
/dependahunt re-analyze [--comment "追加の指示"]/dependahunt analyze --include-previousのシンタックスシュガーです。
GitHubのActions画面から追加したワークフローを選択し、「Run workflow」を押下すると、未分析のPRに対して実行されます。
公開リポジトリなど、信頼できないメンバーが閲覧できるリポジトリでこのワークフローを使用しないでください。 仕様上プロンプトインジェクションが可能であり、APIトークンの漏洩等が発生する可能性があります。