メインコンテンツへスキップ

連携のセットアップ

Devin を GitHub と連携すると、Devin がリポジトリへアクセスし、プルリクエストを作成できるようになります。これにより、Devin はエンジニアリングチームの一員として本格的に協働できるようになります。

Devin 用のサービスアカウントを作成する

  1. GitHub Enterprise 内で、Devin が利用する新しい GitHub アカウントを作成します。これは、Devin のすべてのアクセスや利用状況を適切に追跡・管理できるようにするために重要です。
  2. 作成したサービスアカウントを、関連するすべての GitHub 組織に Member として追加します。Devin がアクセスすることを想定しているすべてのリポジトリに、そのアカウントへのアクセス権が付与されていることを確認します。

Devin 用のパーソナルアクセストークンを生成する

  1. サービスアカウントにログインした状態で、右上のプロフィール画像をクリックし、 Settings をクリックします。
  2. 左サイドバーで、 Developer settings をクリックします。
  3. 左サイドバーの Personal access tokens の下で、Fine-grained tokens をクリックします。
  4. Generate new token をクリックします。
  5. Token nameExpiration を入力します。
    注意: トークンが有効期限切れになると、Devin は直ちに GitHub へのすべてのアクセス権を失い、新しいトークンを作成する必要があります。
  6. Resource owner で、対象の Organization を選択します。
“Resource owner” の下に対象の Organization が表示されない場合は、Enterprise と Organization の両方で fine-grained personal access token の使用が有効になっていることを確認してください。

Enterprise Settings で有効化する

これらの設定を更新できるのは Enterprise Admin のみです。Organization 個別の設定でも personal access token が有効になっていることを確認してください。
  1. GitHub Enterprise Server 右上のプロフィール画像をクリックし、Enterprise settings をクリックします。
  2. ページ上部で、 Policies をクリックします。
  3. Policies の下で、 Personal access tokens をクリックします。
  4. Fine-grained tokens タブを選択します。
  5. Fine-grained personal access tokens の下で、利用を有効にします。
  6. Save をクリックします。

Organization Settings で有効化する

これらの設定を更新できるのは Organization Admin のみです。Enterprise 側の設定でも personal access token が有効になっていることを確認してください。
  1. GitHub 右上のプロフィール画像をクリックし、 Organizations をクリックします。
  2. 対象の Organization の横にある Settings をクリックします。
  3. 左サイドバーの Personal access tokens の下で、Settings をクリックします。
  4. Fine-grained tokens タブを選択します。
  5. Fine-grained personal access tokens の下で、その Organization 向けの利用を有効にします。
  6. Save をクリックします。
  1. Repository access で、Devin に作業させたいリポジトリを選択します。トークンには常に、GitHub 上のすべての公開リポジトリへの読み取り専用アクセスが含まれます。
  2. Devin が正しく動作するために必要となる、以下の権限がトークンに付与されていることを確認します。
PermissionAccess levelDescription
ContentsRead and writeDevin がコードベースに変更を加えられるようにする
IssuesRead and writeDevin が新しい Issue を作成できるようにする
MetadataRead onlyリポジトリの所有者など、重要なメタデータを Devin が閲覧できるようにする
Pull requestsRead and writeDevin が新しい PR を作成できるようにする
依頼する作業内容に応じて追加の権限を付与することで、Devin がチームとより円滑にコラボレーションできるようになります。
  1. Generate Token をクリックし、表示されたトークンを保存します。
    注意: GitHub の設定によっては、管理者の承認が必要になる場合があります。
  2. トークンに必要なアクセス権と権限がすべて付与されていることを検証するため、ローカル環境で テスト用ブランチを作成して push し、Organization 内のリポジトリに反映されることを確認します。
  3. トークンの生成とテストが完了したら、Cognition の担当窓口に連絡してセットアッププロセスを完了してください。現在、弊社チームと直接やり取りしていない場合は、[email protected] までご連絡ください。

ローカルでの PAT 権限の検証

トークンを Cognition と共有する前に、テスト用ブランチをプッシュして、正しい権限が付与されていることを確認します。
# トークンを使用してgh CLIで認証する
export GH_TOKEN=your_personal_access_token
export GH_HOST=your-github-enterprise-server.com

# リポジトリをクローンする
gh repo clone your-organization/your-repository
cd your-repository

# テストブランチを作成する
git checkout -b test-devin-token-$(date +%s)

# 小さな変更を加える
echo "# Test" >> TEST.md
git add TEST.md
git commit -m "Test: Validate Devin token permissions"

# ブランチをプッシュする(contents書き込み権限をテスト)
git push origin HEAD

# プルリクエストを作成する(pull requests書き込み権限をテスト)
gh pr create --title "Test: Validate Devin token permissions" \
  --body "トークン権限を検証するためのテストPRです。" \
  --base main

# クリーンアップ:テストPRをクローズしてテストブランチを削除する
gh pr close pr-number --delete-branch
期待される結果: 認証エラーが発生することなく、push と PR の作成が成功すること。push が失敗した場合は、トークンに「Contents: Read and write」権限が付与されているか確認してください。PR の作成が失敗した場合は、トークンに「Pull requests: Read and write」権限が付与されているか確認してください。

GitHub 連携での Devin の利用

GitHub 連携が完了したら、どの Devin サブ組織が各リポジトリへアクセスできるかを設定できます(Enterprise GitHub Permissions を参照してください)。 連携の設定が完了すると、Devin の Web アプリケーション上で、プロンプト内から任意のリポジトリを @メンションできるようになります。 あるリポジトリを初めて利用する場合は、Devin がコードベースについて最新かつ正確な情報を持てるようにするため、オンボーディングフローにおける開発環境セットアップ手順 を実施することを推奨します。
セッションがアーカイブされていない限り、Devin はすべての PR コメントに自動で返信します

セキュリティ上の考慮事項

GitHub における Devin の権限に関する補足情報です。
  • Devin が変更をマージする前に必ずチェックが実行されるようにするため、master ブランチに対してブランチ保護を有効にすることを推奨します。
  • Devin が組織の GitHub アカウントに接続されている場合、GitHub および Devin の各組織にアクセス権を持つすべてのユーザーと同じ権限を持ちます。
  • Devin は、Devin とのセッションを実行しているユーザーの権限を引き継ぐのではなく、組織レベルで付与された権限を保持します。
  • Devin は、あなたの GitHub アカウント内で新しいリポジトリを作成することはできません。