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

ステップ 2: サービスアカウントをグループメンバーとして追加する
引き続き、GitLab で操作します。- グループのメンバーページを開きます

- サービスアカウントをグループメンバーとして追加します
- Devin に行わせる作業に応じてロールを付与します:
- Developer: Devin の接続とリポジトリの読み取りであれば、このロールで十分です
- Maintainer: Devin にプロジェクトの webhook を自動設定させる場合
- Owner: グループレベルの webhook を使用する場合 (グループ webhook には GitLab Premium または Ultimate が必要です)
ステップ 3: サービスアカウント用のパーソナルアクセストークンを生成する
サービスアカウントを作成したら、次の手順を実行します。- 新しく作成したサービスアカウントを見つけます
- 三点メニュー > アクセストークンを管理 > 新しいパーソナルアクセストークンを生成 の順にクリックし、アクセ ススコープで api を選択します
- そのトークンをコピーして、安全に保管します
ユーザー設定にあるご自身のパーソナルアクセストークンではなく、サービスアカウントのトークンを選択していることを確認してください。Devin にはご自身ではなくサービスアカウントとして動作させる必要があります。このトークンは、Devin で GitLab 接続を追加する際に利用します。
ステップ4: Devin に GitLab 接続を追加する
Devin で:- Enterprise Settings に移動します
- Connections を開きます
- 新しい接続を追加します
- 次を入力します:
- セルフホスト型 GitLab の URL (該当する場合)

- サービスアカウント用に作成したパーソナルアクセストークン
ステップ 5: Webhook を設定する
Webhook を設定すると、GitLab で特定のイベント (マージリクエストの作成・更新や、マージリクエストへのコメントなど) が発生したときに、Devin がリアルタイムで自動的に通知を受け取れるようになります。 Webhook を設定するには、次の手順に従います。- Devin で Settings > Connections > GitLab に移動し、先ほど追加した GitLab 接続をクリックして詳細パネルを開きます
- General タブで、Webhook 行の Configure をクリックします
- ダイアログに表示される Webhook の URL と Secret Token をコピーします
- ダイアログの 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 を追加できます。
Step 6: リポジトリへのアクセスを確認する
接続を追加したら、次の点を確認します。- サービスアカウントが、利用したいリポジトリにアクセスできることを確認します
- Devin でリポジトリがすぐに表示されない場合は、リポジトリ一覧を手動で更新します
- Enterprise Repositories に移動します
- 正しい組織を選択します

- Manage Permissions を開きます
- 該当するリポジトリを、適切な read/write 権限で追加します

リポジトリが表示されない場合、Devin はリポジトリ一覧を即時ではなく定期的に更新するため、反映までに時間がかかっている可能性があります。
パート2: セルフホスト型GitLabでユーザー連携を有効にする
ステップ 7: セルフホスト型 GitLab インスタンスで OAuth アプリケーションを登録する
各ユーザーが自分の GitLab アカウントを Devin に連携できるようにするには、管理者がそのセルフホスト型 GitLab インスタンス用の OAuth アプリを登録する必要があります。 Devin で次を実行します:- Enterprise の GitLab 接続画面に移動します
- Advanced を開きます
- セルフホスト型 GitLab セクションに移動します
- register an OAuth application のフローを開始します

Step 8: GitLab で OAuth App Registration を完了する
登録モーダル内のリンクから GitLab のアプリケーション登録フォームを開きます。以下のとおりに各項目を入力してください。- Name と Redirect URI を、Devin のモーダルに表示されているとおり正確に設定します
- Confidential チェックボックスを有効にします
- api スコープを選択します
- Save application をクリックします

- GitLab で Application ID と Application Secret をコピーします
- Devin に戻り、それらの値を登録モーダルに貼り付けます
- Register をクリックします
パート3: 組織への所属要件
ステップ 9: ユーザーが正しい Devin 組織に所属していることを確認する
ユーザーが GitLab アカウントをリンクするには、事前に GitLab リポジトリ権限を持つ Devin 組織のメンバーである必要があります。 Devin で、次の操作を行います。- 組織への所属画面に移動する
- ユーザーが GitLab リポジトリ権限を持つ Devin 組織に所属していることを確認する
- 所属していない場合は、先に追加する
Personal Connections には、ユーザーが所属している組織の統合のみが表示されます。 ユーザーが GitLab リポジトリ権限を持つ Devin 組織に所属していない場合、GitLab 統合がまったく表示されないことがあります。
パート4:エンドユーザーの設定
ステップ 10: Personal Connections を開く
Devin のエンドユーザーとして、次の操作を行います。- Personal Connections に移動します
- セルフホスト型 GitLab 統合を探します
ステップ 11: ユーザーの GitLab アカウントを連携する
統合が表示されたら、次の操作を行います。- セルフホスト型 GitLab 接続を選択します
- 連携フローを完了します
- ユーザーの GitLab アカウント をその Devin アカウント に連携します
セキュリティに関する考慮事項
- 認証情報の暗号化 — すべてのトークンは暗号化され、安全に保存されます。対象には、サービスアカウントのパーソナルアクセストークン、OAuth アプリケーションのシークレット、ユーザーが GitLab アカウントを連携した際に作成される OAuth トークンが含まれます。
- 転送中の暗号化 — すべてのデータは、転送中も保存時も暗号化されます。Devin は HTTPS 経由で GitLab インスタンスに接続し、webhook の配信は、webhook の設定時に生成されたシークレットトークンで検証されます。
- 明示的な認可 — 接続を追加しただけでは、リポジトリへのアクセス権は付与されません。Enterprise Repositories > Manage Permissions で、リポジトリをread/write権限付きで Devin の組織に明示的に割り当てる必要があります。
- スコープが限定されたアクセス — Devin はサービスアカウントを通じて操作を行うため、Devin がアクセスできる範囲は、GitLab におけるそのアカウントのロール (Developer、Maintainer、または Owner) とプロジェクトのメンバーシップによって制限されます。
- 監査可能性 — 専用のサービスアカウントを利用することで、GitLab 上の Devin のアクティビティを容易に識別できます。
- ブランチ保護の遵守 — Devin が作成するマージリクエストには、他のコントリビューターと同じブランチ保護ルールと承認要件が適用されます。

