Skip to main content

なぜ Devin と GitLab を連携するのか?

GitLab リポジトリと Devin を連携すると、Devin はマージリクエストを作成し、MR コメントを読み取って返信し、チームとの連携を効果的に行えるようになります。これにより、Devin はエンジニアリングチームにとって真のコラボレーターとして機能します。
セルフホスト型の GitLab インスタンスを利用していますか? Enterprise プランのユーザー向けに GitLab Self-Managed (バージョン 15.0 以降) をサポートしています。 “Connect” ボタンのドロップダウンをクリックし、Connect to self-hosted instance を選択するだけです。完全なセットアップ手順については、GitLab Self-Managed Integration ガイド を参照してください。同じドロップダウンには Connect service account もあり、以下の OAuth フローの代わりに、api スコープを持つパーソナルアクセストークンを用いて GitLab.com のサービスアカウント (Free ティアでは専用のユーザーアカウント) を接続できます。

統合のセットアップ

セットアップは簡単です! 次の手順で始めましょう。
  1. Devin 専用の新しい GitLab アカウントを作成します (個人アカウントを作成するのと同じ要領です) 。統合の設定時には、このアカウントを使用し、個人アカウントは使用しません。
  2. Devin アカウントで Settings > Connections > Gitlab に移動し、「Connect」をクリックします。
  3. GitLab にリダイレクトされるので、そこで次を実行します:
    • Devin 用に作成した GitLab アカウントでログインします (個人アカウントではありません)
    • Devin がリポジトリを操作できるように、必要な権限を付与します
  4. 完了すると Devin の設定ページに戻り、統合が有効になっていることを確認できます。
GitLab のオンプレミス (セルフホスト型) 環境では、MR (マージリクエスト) のステータス (open、merged、closed) が Devin のセッションへ同期されるのは 1 日に 1 回だけです。次回の同期が行われるまでの間、セッションやセッション一覧に表示される MR ステータスが一時的に実際の状態と異なる場合があります。

Webhook の設定

Webhook を設定すると、GitLab で特定のイベント (マージリクエストの作成や更新、マージリクエストへのコメントなど) が発生した際に、Devin がリアルタイム通知を自動で受信できるようになります。 Webhook を設定するには:
  1. Devin アカウントで Settings > Connections に移動します
  2. 設定対象の GitLab インスタンスを見つけます
  3. Manage ドロップダウンをクリックします
  4. Configure Webhook を選択します
  5. 表示されるコマンドに従って設定を完了します
Webhook を設定
設定が完了すると、Devin は定期的なポーリングに依存せず、GitLab のイベントにリアルタイムで応答できるようになります。

リポジトリの権限

Core および Teams ユーザー向け

統合の設定が完了すると、Devin のWebアプリ内のプロンプトでリポジトリを直接 @メンションできます。

Enterprise ユーザー向け

統合を設定すると、Enterprise Settings > Repository Permissions から、特定の組織にリポジトリを割り当てることができます。
  1. Enterprise Repositories に移動します
  2. 対象の組織を選択します
  3. Manage Permissions を開きます
  4. 適切な read/write 権限で、該当するリポジトリを追加します
接続後すぐにリポジトリが表示されない場合は、Devin が定期的にリポジトリ一覧を更新します。Devin では、リポジトリ一覧を手動で更新することもできます。

ユーザーのリンク

組織全体の接続に加えて、個々のユーザーが自分の GitLab アカウントを Devin にリンクすることもできます。これにより、GitLab の操作を Devin がそのユーザーの ID で実行できるようになります。たとえば、Settings > Devin > Pull requestsOpen PRs asUser または User only に設定している場合、リンクされたユーザーとしてマージリクエストを作成します。 個人の GitLab アカウントをリンクするには:
  1. GitLab 統合が設定済みの Devin 組織のメンバーであることを確認します
  2. 個人のアカウント設定で Settings > Connections を開きます
  3. GitLab の行を探して Link をクリックし、GitLab の認可を完了します
Personal Connections には、ユーザーが所属する組織の統合のみが表示されます。 GitLab の行は、組織に GitLab.com への接続がある場合に表示されます。セルフホスト型の GitLab インスタンス (Enterprise プラン) は、ホスト名がラベルとして付いた別の Self-hosted GitLab の行として表示され、リンク方法は同じです。GitLab の行が表示されない場合は、GitLab 接続のある Devin 組織のメンバーであるかどうかを確認してください。

GitLab 統合での Devin の利用

GitLab を接続したら、Devin’s Machine でリポジトリをセットアップしてください。
Devin が MR コメントに応答する仕組み。 webhook を設定すると、Devin セッションが追跡しているマージリクエストへのコメントが、そのセッションにリアルタイムで配信されます。デフォルトでは、これによってスリープ中のセッションが復帰し、Devin がコメントに応答します。この動作を制限するには、組織の管理者が Settings > Devin > Pull requestsRequire @Devin to respond を有効にします。この設定を有効にすると、Devin は @Devin で始まるコメントにのみ復帰して応答します (devinai プレフィックスも使用できます) 。(aside) または !aside を含むコメント、あるいは aside で始まるコメントは、この設定に関わらず常に無視されるため、Devin を復帰させずに MR について議論できます。webhook がない場合、MR コメントはセッションにリアルタイムで配信されません。ただし、セッション内で直接指摘すれば、Devin はそれらに対応できます。

ベストプラクティス

  • Devin 用の専用 GitLab アカウントを作成する
  • main/master ブランチにブランチ保護を有効にする
  • リアルタイムでイベント通知を受け取れるように webhook を設定する

サポート

  1. app.devin.ai/settings/support で弊社チームとの Slack Connect チャンネルを作成してください
  2. 問題を報告する際はセッションのリンクを共有し、スクリーンショットを添付してください