Skip to main content

概要

このガイドでは、GitLab インスタンスを Devin と統合するための完全なセットアップ手順について、管理者向けセットアップとエンドユーザー向けセットアップの両方を含めて説明します。Devin は セルフマネージド GitLab バージョン 15.0 以降をサポートしています。 この統合は 2 つのパートで構成されています。
  1. Admin setup
    • 組織のセルフホスト型 GitLab インスタンスを Devin に接続する
    • サービスアカウントを設定する
    • リポジトリへのアクセスを構成する
    • ユーザーが個人の GitLab アカウントをリンクできるように OAuth を登録する
  2. User setup
    • 各ユーザーの GitLab アカウントを、そのユーザーの Devin アカウントにリンクする
いずれのユーザーも GitLab アカウントをリンクする前に、管理者向けセットアップを完了しておく必要があります。管理者向けセットアップの手順を実行できるのは Enterprise Admin のみです。

パート1: 管理者の設定

Step 1: GitLabでサービスアカウントを作成する

GitLabで以下を行います。
  1. 該当するGitLabグループに移動します
  2. 設定に移動します
  3. Service Accountsを開きます
  4. 新しいサービスアカウントを作成します
Devinはこのサービスアカウントを使用して、GitLabのリポジトリにアクセスします。
GitLabでサービスアカウントを作成する

ステップ 2: サービスアカウントをグループメンバーとして追加する

引き続き、GitLab で操作します。
  1. グループのメンバーページを開きます
GitLab グループのメンバーページ
  1. サービスアカウントをグループメンバーとして追加します
  2. Devin に行わせる作業に応じてロールを付与します:
    • Developer: Devin の接続とリポジトリの読み取りであれば、このロールで十分です
    • Maintainer: Devin にプロジェクトの webhook を自動設定させる場合
    • Owner: グループレベルの webhook を使用する場合 (グループ webhook には GitLab Premium または Ultimate が必要です)
これは、サービスアカウントがリポジトリに適切にアクセスするために必要です。グループメンバーシップは、そのグループ内のすべてのプロジェクトに適用されます。

ステップ 3: サービスアカウント用のパーソナルアクセストークンを生成する

サービスアカウントを作成したら、次の手順を実行します。
  1. 新しく作成したサービスアカウントを見つけます
  2. 三点メニュー > アクセストークンを管理 > 新しいパーソナルアクセストークンを生成 の順にクリックし、アクセ ススコープで api を選択します
  3. そのトークンをコピーして、安全に保管します
ユーザー設定にあるご自身のパーソナルアクセストークンではなく、サービスアカウントのトークンを選択していることを確認してください。Devin にはご自身ではなくサービスアカウントとして動作させる必要があります。このトークンは、Devin で GitLab 接続を追加する際に利用します。

ステップ4: Devin に GitLab 接続を追加する

Devin で:
  1. Enterprise Settings に移動します
  2. Connections を開きます
  3. 新しい接続を追加します
  4. 次を入力します:
    • セルフホスト型 GitLab の URL (該当する場合)
GitLab 接続 URL を追加
  • サービスアカウント用に作成したパーソナルアクセストークン
これで、エンタープライズレベルの GitLab 接続が作成されます。

ステップ 5: Webhook を設定する

Webhook を設定すると、GitLab で特定のイベント (マージリクエストの作成・更新や、マージリクエストへのコメントなど) が発生したときに、Devin がリアルタイムで自動的に通知を受け取れるようになります。 Webhook を設定するには、次の手順に従います。
  1. Devin で Settings > Connections > GitLab に移動し、先ほど追加した GitLab 接続をクリックして詳細パネルを開きます
  2. General タブで、Webhook 行の Configure をクリックします
  3. ダイアログに表示される Webhook の URL と Secret Token をコピーします
  4. ダイアログの Group (推奨) または Project の手順に従って GitLab に Webhook を追加します。その際、トリガーとして Comments、Merge request events、Push events、Issues events、Pipeline events を選択します
GitLab で Webhook を追加するには、プロジェクトの Maintainer ロール、またはグループ Webhook の場合はグループの Owner ロール (Premium または Ultimate) が必要です。組織で Webhook の自動設定が利用可能な場合は、サービスアカウントが管理できるすべてのプロジェクトとグループに Devin が Webhook を設定する旨がダイアログに表示されます。ただし、これはサービスアカウントにこれらのロールが付与されている場合にのみ機能します (ステップ 2 を参照) 。サービスアカウントに Maintainer または Owner を付与できない場合は、その権限を持つ GitLab ユーザーが、ダイアログに表示される URL とシークレットトークンを使って手動で Webhook を追加できます。
設定が完了すると、Devin は定期的なポーリングに頼らず、GitLab のイベントにリアルタイムで対応できるようになります。

Step 6: リポジトリへのアクセスを確認する

接続を追加したら、次の点を確認します。
  1. サービスアカウントが、利用したいリポジトリにアクセスできることを確認します
  2. Devin でリポジトリがすぐに表示されない場合は、リポジトリ一覧を手動で更新します
  3. Enterprise Repositories に移動します
  4. 正しい組織を選択します
Enterprise Repositories
  1. Manage Permissions を開きます
  2. 該当するリポジトリを、適切な read/write 権限で追加します
Manage repository permissions
リポジトリが表示されない場合、Devin はリポジトリ一覧を即時ではなく定期的に更新するため、反映までに時間がかかっている可能性があります。

パート2: セルフホスト型GitLabでユーザー連携を有効にする

ステップ 7: セルフホスト型 GitLab インスタンスで OAuth アプリケーションを登録する

各ユーザーが自分の GitLab アカウントを Devin に連携できるようにするには、管理者がそのセルフホスト型 GitLab インスタンス用の OAuth アプリを登録する必要があります。 Devin で次を実行します:
  1. Enterprise の GitLab 接続画面に移動します
  2. Advanced を開きます
  3. セルフホスト型 GitLab セクションに移動します
  4. register an OAuth application のフローを開始します
OAuth アプリケーションを登録する

Step 8: GitLab で OAuth App Registration を完了する

登録モーダル内のリンクから GitLab のアプリケーション登録フォームを開きます。以下のとおりに各項目を入力してください。
  1. Name と Redirect URI を、Devin のモーダルに表示されているとおり正確に設定します
  2. Confidential チェックボックスを有効にします
  3. api スコープを選択します
  4. Save application をクリックします
GitLab OAuth アプリ設定
  1. GitLab で Application ID と Application Secret をコピーします
  2. Devin に戻り、それらの値を登録モーダルに貼り付けます
  3. Register をクリックします
これで、ユーザーの ID 連携に必要な管理者側の設定は完了です。

パート3: 組織への所属要件

ステップ 9: ユーザーが正しい Devin 組織に所属していることを確認する

ユーザーが GitLab アカウントをリンクするには、事前に GitLab リポジトリ権限を持つ Devin 組織のメンバーである必要があります。 Devin で、次の操作を行います。
  1. 組織への所属画面に移動する
  2. ユーザーが GitLab リポジトリ権限を持つ Devin 組織に所属していることを確認する
  3. 所属していない場合は、先に追加する
Personal Connections には、ユーザーが所属している組織の統合のみが表示されます。 ユーザーが GitLab リポジトリ権限を持つ Devin 組織に所属していない場合、GitLab 統合がまったく表示されないことがあります。

パート4:エンドユーザーの設定

ステップ 10: Personal Connections を開く

Devin のエンドユーザーとして、次の操作を行います。
  1. Personal Connections に移動します
  2. セルフホスト型 GitLab 統合を探します
表示されない場合は、まず組織への所属を確認してください。
統合が表示されたら、次の操作を行います。
  1. セルフホスト型 GitLab 接続を選択します
  2. 連携フローを完了します
  3. ユーザーの GitLab アカウント をその Devin アカウント に連携します
これで、Devin は GitLab の操作をそのユーザーとして実行できるようになります。

セキュリティに関する考慮事項

  • 認証情報の暗号化 — すべてのトークンは暗号化され、安全に保存されます。対象には、サービスアカウントのパーソナルアクセストークン、OAuth アプリケーションのシークレット、ユーザーが GitLab アカウントを連携した際に作成される OAuth トークンが含まれます。
  • 転送中の暗号化 — すべてのデータは、転送中も保存時も暗号化されます。Devin は HTTPS 経由で GitLab インスタンスに接続し、webhook の配信は、webhook の設定時に生成されたシークレットトークンで検証されます。
  • 明示的な認可 — 接続を追加しただけでは、リポジトリへのアクセス権は付与されません。Enterprise Repositories > Manage Permissions で、リポジトリをread/write権限付きで Devin の組織に明示的に割り当てる必要があります。
  • スコープが限定されたアクセス — Devin はサービスアカウントを通じて操作を行うため、Devin がアクセスできる範囲は、GitLab におけるそのアカウントのロール (Developer、Maintainer、または Owner) とプロジェクトのメンバーシップによって制限されます。
  • 監査可能性 — 専用のサービスアカウントを利用することで、GitLab 上の Devin のアクティビティを容易に識別できます。
  • ブランチ保護の遵守 — Devin が作成するマージリクエストには、他のコントリビューターと同じブランチ保護ルールと承認要件が適用されます。