メインコンテンツへスキップ
Factory Droid GitHub Actionは、GitHubワークフロー内で自動化されたコードレビューとPRアシスタンス機能を直接提供します。このページでは、統合がどのように動作するかを管理するセキュリティアーキテクチャ、データフロー、および制御について説明します。

概要

Droid GitHub Action(Factory-AI/droid-action)は、独自のランナーを使用して完全にGitHub Actions内で実行されます。標準的なAPI認証以外に、別途ホストされたサービスやFactoryインフラストラクチャへの永続的な接続は必要ありません。

Runs in your environment

The action executes on GitHub‑hosted or self‑hosted runners you control. No external compute resources are provisioned.

No persistent code storage

Code is checked out transiently for the workflow run and discarded afterward. Factory does not store your source code.

Scoped permissions

The action requests only the GitHub permissions it needs and tokens are automatically revoked after each run.

Standard Factory authentication

Uses your Factory API key, subject to your org’s existing model allowlists, rate limits, and policies.

アーキテクチャとデータフロー

ワークフローが実行されると、以下の順序で処理が行われます:
  1. トリガー検出 – アクションはPRコメント、説明、またはレビューコメント内の@droidメンションを検出します。
  2. 権限確認 – 実行前に、アクションはトリガーしたユーザーがリポジトリへの書き込みアクセス権を持っているかを確認します。
  3. コンテキスト収集 – Droidは、チェックアウトされたリポジトリからPRメタデータ、変更されたファイル、および既存のコメントを収集します。
  4. Droid Exec – CLIはGitHub MCPツールがあらかじめ登録された状態で実行され、GitHub API経由でPRとやり取りできるようになります。
  5. LLMリクエスト – プロンプトはFactoryの標準ルーティングを通じて、設定されたモデルプロバイダーに送信されます。
  6. 結果 – DroidはGitHub API経由で直接インラインコメントを投稿するか、PR説明を更新します。
  7. トークン取り消し – GitHub Appトークンはワークフロー終了時に自動的に取り消されます。

データ境界

データ種別フロー先保持期間
ソースコードGitHubランナー(一時的チェックアウト)ワークフロー後に破棄
PRメタデータGitHub APIGitHubの保持ポリシーに従う
プロンプトとコンテキスト設定されたLLMプロバイダーモデルプロバイダーとの契約に従う
ワークフローログGitHub Actionsリポジトリのログ保持設定に従う
デバッグアーティファクトGitHub Actionsアーティファクト7日間(設定可能)

認証と認可

Factory APIキー

アクションは、GitHubシークレットとして保存されたFactory APIキー(FACTORY_API_KEY)を必要とします。このキーは:
  • Factory APIでのDroid Execセッションを認証します。
  • 組織のモデル許可リスト、レート制限、およびポリシーの対象となります。
  • 組織のキー管理慣行に従って定期的にローテーションする必要があります。
Never commit API keys directly to your repository. Always use GitHub Actions secrets.

GitHub Appトークン

Factory Droid GitHub Appを使用する場合:
  • アプリは特定のリポジトリにスコープされたインストールトークンを要求します。
  • トークンは短期間有効で、ワークフロー完了後に自動的に取り消されます。
  • アプリは動作に必要な権限のみを要求します(contents、pull requests、issues)。
GitHub Appを使用したくない場合は、適切な権限を持つカスタムgithub_token入力を提供できます。

ユーザー権限確認

任意の@droidコマンドを実行する前に、アクションは以下を確認します:
  1. トリガーユーザーがリポジトリへの書き込みアクセス権を持っている。
  2. ユーザーがボットではない(allowed_bots入力で明示的に許可されている場合を除く)。
  3. コメントまたはトリガーが期待される形式と一致している。
これにより、未承認ユーザーによるDroidの呼び出しを防ぎます。

セキュリティ制御

権限スコープ

アクションは必要なGitHub権限のみを要求します:
permissions:
  contents: write # Read code, write for fixes
  pull-requests: write # Comment on and update PRs
  issues: write # Comment on issues
  id-token: write # OIDC token for secure auth
  actions: read # Read workflow run metadata
セキュリティ要件に基づいて、ワークフローファイルでさらに権限を制限できます。

ボットとユーザーのフィルタリング

アクションをトリガーできるユーザーを制御します:
入力目的
allowed_botsトリガーを許可するボットユーザー名のカンマ区切りリスト、または全て許可する場合は*。デフォルト:なし。
allowed_non_write_users書き込み権限なしで許可するユーザー名。細心の注意を払って使用してください。

ネットワーク制限(実験的)

セキュリティ強化のため、Droid実行中のネットワークアクセスを制限できます:
- uses: Factory-AI/droid-action@v1
  with:
    factory_api_key: ${{ secrets.FACTORY_API_KEY }}
    experimental_allowed_domains: |
      api.factory.ai
      api.anthropic.com
      api.openai.com
これにより、アウトバウンド接続を指定されたドメインのみに制限します。

シークレット保護

アクションはシークレット処理のセキュリティベストプラクティスに従います:
  • APIキーはGitHubシークレットからの環境変数を通じて渡されます。
  • show_full_outputオプションは、ログでの機密データの偶発的な漏洩を防ぐため、デフォルトで無効になっています。
  • デバッグアーティファクトはデフォルトで7日間のみ保持されます。
Enabling show_full_output may expose sensitive information in publicly visible workflow logs. Only enable for debugging in non‑sensitive environments.

監査とモニタリング

ワークフローログ

すべてのDroidアクティビティはGitHub Actionsワークフロー実行でログに記録され、以下を提供します:
  • すべての操作のタイムスタンプ。
  • コマンド入力と出力(機密データを含まない場合)。
  • 各ステップの成功/失敗ステータス。
  • 作成されたコメントや変更へのリンク。

デバッグアーティファクト

アクションは以下を含むデバッグアーティファクトをアップロードします:
  • Droidセッションログ。
  • コンソール出力。
  • セッションメタデータ。
これらのアーティファクトはデフォルトで7日間保持され、トラブルシューティングや監査目的で使用できます。

Factory telemetryとの統合

組織でFactoryのOTEL telemetryを使用している場合、GitHub ActionsからのDroid Execセッションはtelemetryデータに含まれ、以下を提供します:
  • リポジトリとワークフローコンテキストでタグ付けされたセッションメトリクス。
  • LLM使用量とコスト配分。
  • ツール呼び出し追跡。
Factoryのtelemetry機能の詳細についてはCompliance, Audit & Monitoringを参照してください。

デプロイメント推奨事項

  1. Use repository secrets – Store FACTORY_API_KEY as a repository or organization secret.
  2. Review workflow permissions – Ensure the workflow file requests only necessary permissions.
  3. Restrict bot access – Keep allowed_bots empty unless you have a specific need.
  4. Enable branch protection – Require PR reviews before merging Droid‑assisted changes.
  5. Monitor workflow runs – Review Droid activity in your GitHub Actions logs regularly.
  6. Consider network restrictions – Use experimental_allowed_domains to limit network access.
  • Self‑hosted runners – Run the action on self‑hosted runners in your controlled environment.
  • Model allowlists – Configure Factory org policies to restrict which models Droid can use.
  • Audit retention – Adjust artifact retention periods to meet your compliance requirements.
  • Integrate with SIEM – Export GitHub Actions logs and Factory telemetry to your security monitoring tools.

他のデプロイメントパターンとの比較

側面GitHub Action開発者マシン上のCLICI内のDroid Exec
実行環境GitHubランナーローカルワークステーションCIランナー
コードアクセス一時的チェックアウトフルローカルアクセス一時的チェックアウト
認証Factory APIキーFactory APIキーFactory APIキー
トリガーPRイベント、コメント手動呼び出しCIパイプラインイベント
監査証跡GitHub Actionsログローカル + Factory telemetryCIログ + Factory telemetry
すべてのデプロイメントパターンは同じ基盤となるDroid Execランタイムを使用し、同じFactory組織ポリシーの対象となります。