Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

GitHub App の作成

provider = "github" を指定した Git channel は、ユーザーではなく GitHub App として認証します。このアプリは独自のボット ID(your-app[bot])と独自の権限を持ち、インストールされたすべてのリポジトリで動作します。このページでは、一度きりのアプリ作成手順を説明し、各値を channel の設定にマッピングします。

個人アカウント組織の両方で機能します。唯一の違いは、アプリの所有者と、誰がインストールできるかです。

公式ドキュメント: GitHub 公式の GitHub App の登録 および GitHub Apps の秘密キーの管理 は、このページのすべてについてのアップストリームリファレンスです。

1. アプリを作成する

GitHub → 設定 → 開発者設定 → GitHub Apps → 新しい GitHub App

  • 個人アプリ: 自分の 開発者設定 で作成します。
  • Org アプリ: まず組織に切り替えてください(組織の Settings → Developer settings)、そうすれば組織がアプリを所有し、組織の管理者が管理できます。

記入:

  1. NameHomepage URL: 任意の有効な URL。アプリは Web トラフィックを提供しません。
  2. Webhook → Active: チェックを外してください。チャンネルは REST API をポーリングします。Webhook を受信せず、公開 URL は不要です。
  3. リポジトリの権限: チャネルが使用するものだけを正確に付与し、それ以上は付与しない:
    • Issues: 読み取りと書き込み
    • プルリクエスト: 読み取りと書き込み
    • Contents: 読み取り専用(PR のファイル一覧とリリースに必要)
    • メタデータ: 読み取り専用 (必須; 自動選択)
    • Actions: 読み取り専用、workflow_run.* イベントをルーティングする場合のみ
    • その他のすべてのアクセス許可は アクセスなし のままにしてください。
  4. このアプリはどこにインストールできますか?: 「このアカウントのみ」は個人または単一組織のセットアップで問題ありません。

Create GitHub App をクリックします。

2. 2つの認証情報を収集する

作成後のアプリの設定ページで:

  • App ID: 上部付近に表示されます。これは app_id です。
  • 秘密鍵 → 秘密鍵を生成する。 GitHub は単一の .pem (RS256) をダウンロードします。これは署名鍵です。GitHub は公開鍵の半分のみを保持します。その内容を private_key に貼り付けます。.pem ファイル自体は実行時に参照されないため、鍵が保存されたらダウンロードを削除できます。

3. アプリをインストールする

アプリの設定 → Install App → アカウントまたは組織を選択 → All repositories または特定の選択を選びます。インストールによってアプリにリポジトリへのアクセスが許可されます。インストールがなければ、アプリは認証できても何も見えません。

アプリがちょうど1つのアカウントにインストールされている場合、installation_id を未設定のままにできます。チャネルは初回使用時にインストールを一覧表示し、唯一のものを自動選択します。ゼロまたは複数見つかった場合は即座に失敗します。installation_id は、アプリに複数のインストールがある場合にのみ明示的に設定してください(1つのチャネルエイリアスは1つのインストールに対応します)。

4. 設定にマッピングする

以下の各フィールドを、お好みのインターフェースで設定してください。秘密鍵は暗号化されたシークレットであり、専用のマスク付きウィジェットが用意されています。それ以外は通常のフィールドです。

provider: github に設定します。

ゲートウェイダッシュボード

/config/channels/git を開き、そこで channels.git.<alias>.provider フィールドを設定します。

zerocode

Config ペインで、channels.git.<alias>.provider フィールドを設定します。

zeroclaw config

zeroclaw config set channels.git.<alias>.provider <value>

app_id: ステップ2のApp ID。

ゲートウェイダッシュボード

/config/channels/git を開き、そこで channels.git.<alias>.app_id フィールドを設定します。

zerocode

Config ペインで、channels.git.<alias>.app_id フィールドを設定します。

zeroclaw config

zeroclaw config set channels.git.<alias>.app_id <value>

private_key: ステップ2のPEMです。暗号化された1つの設定ストアにインラインで存在し、保護すべきディスク上の個別のキーファイルはありません。BEGIN/END行を含む完全なPEMを貼り付けてください。ダッシュボードではマスクされた複数行フィールドとして表示されます。

channels.git.<alias>.private_key はシークレットです。 暗号化して保存され、平文の config.toml には決して保存されません。書き込み時に暗号化する次のいずれかを通じて設定します:

ゲートウェイダッシュボード

/config/channels/git を開き、そこで channels.git.<alias>.private_key フィールドを設定します。

zerocode

Config ペインで、channels.git.<alias>.private_key フィールドを設定します(入力はマスクされます)。

zeroclaw config

zeroclaw config set channels.git.<alias>.private_key    # マスク入力のプロンプトを表示し、暗号化して保存

repos: 監視する owner/repo のリスト。空にすると、インストールが確認できるすべてのリポジトリをポーリングします。

ゲートウェイダッシュボード

/config/channels/git を開き、そこで channels.git.<alias>.repos フィールドを設定してください。

zerocode

Config ペインで、channels.git.<alias>.repos フィールドを設定します。

zeroclaw config

zeroclaw config set channels.git.<alias>.repos <value>

installation_id: オプション。アプリに複数のインストールがある場合のみ(ステップ 3)。インストールが1つの場合は未設定のままにし、チャンネルが自動選択されます。

ゲートウェイダッシュボード

/config/channels/git を開き、そこで channels.git.<alias>.installation_id フィールドを設定します。

zerocode

Config ペインで、channels.git.<alias>.installation_id フィールドを設定します。

zeroclaw config

zeroclaw config set channels.git.<alias>.installation_id <value>

完全なフィールドリファレンスについては、Git チャネル ページを参照してください。

5. 確認

Git チャネルは標準の配布アーティファクトに含まれますが、軽量版の Cargo デフォルトには含まれません。カスタムソースビルドでは、channel-git(デフォルト機能を無効にする場合は agent-runtime も)を含めます:

cargo build --features channel-git

channel-git は、接続済みのすべての forge プロバイダーを 1 つのビルドに取り込みます。プロバイダーごとの小さなサブセットは存在せず、channel-git なしで単体の provider-* フィーチャーをビルドしてもチャンネルは登録されません。

起動時にチャネルはアプリ JWT を発行し、インストール トークンと交換し、自身の bot ログインを解決します。pull_request.opened または issue 上でのアプリへの @メンションは、エージェントに到達するはずです。起動が missing-private-key エラーで失敗する場合、private_key が未設定または空白です。インストール エラーで失敗する場合、アプリのインストールがゼロまたは複数あるため、installation_id を設定してください。イベント ルーティング、ピア グループのバインディング、および運用上の注意については、Git チャネル ページを参照してください。

次のステップ