開発

GitHubをAIエージェントに接続する

AtakoのエージェントはGitHub上でIssueを読み、プルリクエストを開き、CIワークフローを監視できます。アクセス範囲は、付与したアクションだけに限定されます。

Atakoのエージェントが執筆 · 確認・承認者 Romain Laodicina · Atako CTO

想定されるワークフロー

受信Issueの自動仕分け

エージェントはリポジトリの新しいIssueを一覧表示し(list_issues)、タイトルと本文をもとに種類と緊急度で分類します。必要に応じてラベルを作成し(create_label)、それを適用します(update_issue)。再現手順、バージョン、環境といった重要な情報が欠けている場合は、Issueにコメントして(add_issue_comment)作成者に確認を求め、返答がない場合にのみ人間へエスカレーションします。

軽微な修正のためのプルリクエスト作成

古くなった依存関係、タイポ、修正が必要な設定ファイルについて、エージェントはブランチを作成し(create_branch)、該当ファイルを変更し(create_or_update_file)、プルリクエストを開きます(create_pull_request)。その後、人によるレビューを依頼し(create_review_request)、そこで止まります。この種のフローでは、自動チェックがすべて成功していても、チームメンバーによる明示的な承認なしにマージが実行されることは決してありません。

CI実行の監視とリリース準備

エージェントはGitHub Actionsワークフローの実行を監視し(list_workflow_runs、get_workflow_run)、失敗時にはログを取得して(get_job_logs_download_url)アラートを出す前に原因を把握します。次に、すでに公開されているリリースを確認し(list_releases)、すべてのチェックが成功したら、公開前に人が確認できるリリースノートを添えて次のリリースを準備します(create_release)。

コネクタのアクション

  • list_issues (読み取り)

    リポジトリの未解決Issueを一覧表示する。

  • get_pull_request (読み取り)

    プルリクエストの詳細を確認する。

  • list_workflow_runs (読み取り)

    Actionsワークフローの最近の実行を一覧表示する。

  • get_workflow_run (読み取り)

    ワークフロー実行の詳細を確認する。

  • get_job_logs_download_url (読み取り)

    ジョブのログのURLを取得する。

  • list_releases (読み取り)

    すでに公開されているリリースを一覧表示する。

  • create_label (書き込み)

    リポジトリに新しいラベルを作成する。

  • update_issue (書き込み)

    Issueを変更する:ラベル、ステータス、アサイン。

  • add_issue_comment (書き込み)

    Issueにコメントを追加する。

  • create_branch (書き込み)

    参照元からブランチを作成する。

  • create_or_update_file (書き込み)

    コミットメッセージ付きでファイルを作成または変更する。

  • create_pull_request (書き込み)

    あるブランチから別のブランチへプルリクエストを開く。

  • create_review_request (書き込み)

    一人または複数のレビュアーにレビューを依頼する。

  • create_release (書き込み)

    タグとノートを添えてリリースを公開する。

前提条件

  • 対象リポジトリへの書き込みアクセス権を持つGitHubアカウント。
  • Settings、Developer settings、Personal access tokensから発行するfine-grainedトークン。
  • Contents、Issues、Pull requestsの権限をRead and writeに、ActionsをReadに設定。
  • Atakoの設定、連携からトークンを貼り付ける。
  • エージェント、接続、具体的なアクションと範囲を指定する明示的なgrant。

接続方法

  1. 1

    GitHubでfine-grainedトークンを生成する

    Settings、Developer settings、Personal access tokens、Fine-grained tokens、Generate new tokenの順に進む。Contents、Issues、Pull requestsを書き込み、Actionsを読み取りでチェックし、表示されたトークンをコピーする。

  2. 2

    トークンをAtakoに接続する

    設定、連携にトークンを貼り付ける。この接続はすべてのエージェントで利用可能になる。

  3. 3

    エージェントにgrantを付与する

    エージェントのページから、具体的なGitHubアクションとその範囲を選択する。デフォルトはdeny-by-defaultで、何もアクセスできない状態から始まる。

  4. 4

    最初のシナリオを実行する

    付与されたgrantに応じて、エージェントはIssueを一覧表示したり、プルリクエストを開いたり、CI実行を監視したりし、人間の判断が必要になればアラートを出す。

自律型エージェントをGitHubに接続する理由

GitHubには、技術チームのコード、Issue、プルリクエスト、CIパイプラインが集約されています。Atakoが定義する意味での自律型AIエージェントにとって、これは自然な活躍の場です。エージェントは専用の実行環境で継続的に稼働し、従来型の自動化ツールのトリガーを待つことなく、自ら道筋を選びます。

エージェントはlist_issues、create_pull_request、get_workflow_runといった具体的なアクションを通じて動作します。これがツールコーリングの原則です。コネクタは実際のアクションのカタログを提供し、エージェントは付与された範囲を超えることなく、その中から適切なものを呼び出します。CIインシデント仕分けのシナリオでは、実行状況を監視し、失敗ログを突き合わせ、人間が問題に気づく前にドキュメント化されたIssueを作成します。

夜通し稼働するエージェントは、Issueを随時処理し、修正が特定され次第プルリクエストを準備します。エージェントと稼働中の接続数に応じたコストの目安については、料金ページをご覧ください。

制限とベストプラクティス

GitHubへのアクセスはdeny-by-default(デフォルト拒否)で動作します。利用可能な37種類のアクションはいずれも、読み取り専用または書き込みのいずれかで明示的なgrantによって許可されるまで、アクションごとに無効な状態です。エージェントができることの範囲を定めるのは、エージェントへの信頼ではなく、この仕組みです。機微なアクションについては人による確認が引き続き適切な選択で、マージ前のステップとしてcreate_review_requestを残しておいてください。

GitHubのAPI公式ドキュメントによると、認証済みトークンは1時間あたり5,000リクエストに制限されています。通常の利用には十分な余裕がありますが、非常に活発なリポジトリで複数のエージェントが同じトークンを共有する場合は注意が必要です。

この標準的なインテグレーションとは別に、Atakoは「Code」と呼ばれる内部機能も提供しており、エージェントがリポジトリをより直接的に調査・変更できます。本ページの対象範囲ではありませんが、Issueの仕分けやプルリクエストの作成を超えるニーズがある場合に役立つ補完機能です。

関連するユースケース

関連する連携機能

よくある質問

エージェントはGitHub上でプルリクエストを単独でマージできますか。

merge_pull_requestというアクションは存在し、技術的にはエージェントに付与できます。Atakoでは、このアクションの付与を限定し、コードのマージ前には常にcreate_review_requestを人による承認のチェックポイントとして残すことを推奨しています。

インテグレーションを接続するには有料のGitHubプランが必要ですか。

いいえ、トークンが対象とするリポジトリへの書き込みアクセス権があれば無料アカウントで十分です。課金はAtakoのサブスクリプションのみに基づき、GitHub側の料金は関係しません。

エージェントのGitHubアクセスをどう取り消しますか。

AtakoのエージェントページからgrantをGitHub側で削除するか、GitHubのSettings、Developer settings、Personal access tokensでトークンを失効させます。どちらの方法でも、アクセスは即座に遮断されます。

次に読む

出典

Romain Laodicina

Atako CTO

このコンテンツはAtakoのAIエージェントが執筆し、その後Atako CTOのRomain Laodicinaが確認・修正・承認しました。

最初のAIエージェントを導入

無料でアカウントを作成し、コード不要で数分でエージェントを起動できます。

AIの最前線を 常にキャッチアップ。

新機能、新しいエージェント、当社のAI分析を直接受信箱にお届けします。スパムなし、いつでも配信停止できます。