概要
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.
アーキテクチャとデータフロー
ワークフローが実行されると、以下の順序で処理が行われます:- トリガー検出 – アクションはPRコメント、説明、またはレビューコメント内の
@droidメンションを検出します。 - 権限確認 – 実行前に、アクションはトリガーしたユーザーがリポジトリへの書き込みアクセス権を持っているかを確認します。
- コンテキスト収集 – Droidは、チェックアウトされたリポジトリからPRメタデータ、変更されたファイル、および既存のコメントを収集します。
- Droid Exec – CLIはGitHub MCPツールがあらかじめ登録された状態で実行され、GitHub API経由でPRとやり取りできるようになります。
- LLMリクエスト – プロンプトはFactoryの標準ルーティングを通じて、設定されたモデルプロバイダーに送信されます。
- 結果 – DroidはGitHub API経由で直接インラインコメントを投稿するか、PR説明を更新します。
- トークン取り消し – GitHub Appトークンはワークフロー終了時に自動的に取り消されます。
データ境界
| データ種別 | フロー先 | 保持期間 |
|---|---|---|
| ソースコード | GitHubランナー(一時的チェックアウト) | ワークフロー後に破棄 |
| PRメタデータ | GitHub API | GitHubの保持ポリシーに従う |
| プロンプトとコンテキスト | 設定されたLLMプロバイダー | モデルプロバイダーとの契約に従う |
| ワークフローログ | GitHub Actions | リポジトリのログ保持設定に従う |
| デバッグアーティファクト | GitHub Actionsアーティファクト | 7日間(設定可能) |
認証と認可
Factory APIキー
アクションは、GitHubシークレットとして保存されたFactory APIキー(FACTORY_API_KEY)を必要とします。このキーは:
- Factory APIでのDroid Execセッションを認証します。
- 組織のモデル許可リスト、レート制限、およびポリシーの対象となります。
- 組織のキー管理慣行に従って定期的にローテーションする必要があります。
GitHub Appトークン
Factory Droid GitHub Appを使用する場合:- アプリは特定のリポジトリにスコープされたインストールトークンを要求します。
- トークンは短期間有効で、ワークフロー完了後に自動的に取り消されます。
- アプリは動作に必要な権限のみを要求します(contents、pull requests、issues)。
github_token入力を提供できます。
ユーザー権限確認
任意の@droidコマンドを実行する前に、アクションは以下を確認します:
- トリガーユーザーがリポジトリへの書き込みアクセス権を持っている。
- ユーザーがボットではない(
allowed_bots入力で明示的に許可されている場合を除く)。 - コメントまたはトリガーが期待される形式と一致している。
セキュリティ制御
権限スコープ
アクションは必要なGitHub権限のみを要求します:ボットとユーザーのフィルタリング
アクションをトリガーできるユーザーを制御します:| 入力 | 目的 |
|---|---|
allowed_bots | トリガーを許可するボットユーザー名のカンマ区切りリスト、または全て許可する場合は*。デフォルト:なし。 |
allowed_non_write_users | 書き込み権限なしで許可するユーザー名。細心の注意を払って使用してください。 |
ネットワーク制限(実験的)
セキュリティ強化のため、Droid実行中のネットワークアクセスを制限できます:シークレット保護
アクションはシークレット処理のセキュリティベストプラクティスに従います:- APIキーはGitHubシークレットからの環境変数を通じて渡されます。
show_full_outputオプションは、ログでの機密データの偶発的な漏洩を防ぐため、デフォルトで無効になっています。- デバッグアーティファクトはデフォルトで7日間のみ保持されます。
監査とモニタリング
ワークフローログ
すべてのDroidアクティビティはGitHub Actionsワークフロー実行でログに記録され、以下を提供します:- すべての操作のタイムスタンプ。
- コマンド入力と出力(機密データを含まない場合)。
- 各ステップの成功/失敗ステータス。
- 作成されたコメントや変更へのリンク。
デバッグアーティファクト
アクションは以下を含むデバッグアーティファクトをアップロードします:- Droidセッションログ。
- コンソール出力。
- セッションメタデータ。
Factory telemetryとの統合
組織でFactoryのOTEL telemetryを使用している場合、GitHub ActionsからのDroid Execセッションはtelemetryデータに含まれ、以下を提供します:- リポジトリとワークフローコンテキストでタグ付けされたセッションメトリクス。
- LLM使用量とコスト配分。
- ツール呼び出し追跡。
デプロイメント推奨事項
For security‑conscious organizations
For security‑conscious organizations
- Use repository secrets – Store
FACTORY_API_KEYas a repository or organization secret. - Review workflow permissions – Ensure the workflow file requests only necessary permissions.
- Restrict bot access – Keep
allowed_botsempty unless you have a specific need. - Enable branch protection – Require PR reviews before merging Droid‑assisted changes.
- Monitor workflow runs – Review Droid activity in your GitHub Actions logs regularly.
- Consider network restrictions – Use
experimental_allowed_domainsto limit network access.
For regulated environments
For regulated environments
- 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 | 開発者マシン上のCLI | CI内のDroid Exec |
|---|---|---|---|
| 実行環境 | GitHubランナー | ローカルワークステーション | CIランナー |
| コードアクセス | 一時的チェックアウト | フルローカルアクセス | 一時的チェックアウト |
| 認証 | Factory APIキー | Factory APIキー | Factory APIキー |
| トリガー | PRイベント、コメント | 手動呼び出し | CIパイプラインイベント |
| 監査証跡 | GitHub Actionsログ | ローカル + Factory telemetry | CIログ + Factory telemetry |
