始める前に
- Enclave で Owner または Admin ロールが必要です。
- Enclave には、自分が Developer 以上のロールを持つ GitLab グループが一覧表示されます。
- Webhook を追加するには、各プロジェクトの Maintainer ロール、またはグループの Owner ロールが必要です。グループ Webhook には GitLab Premium または Ultimate が必要です。
- セルフホスト型 GitLab の場合、アクセストークンには
apiスコープと Maintainer ロールが必要です。
GitLab を接続する
1
インテグレーションを開く
app.enclave.ai で Settings → Integrations を開きます。 GitLab の横にある Connect をクリックします。
2
GitLab を認可する
GitLab.com を選び、GitLab アカウントにサインインして、Enclave アプリケーションを認可します。
GitLab の OAuth では、Enclave に
api スコープが付与されます。GitLab には、MR コメントの投稿と Webhook の管理を許可する、これより狭いスコープがありません。Enclave はこのスコープを使って、プロジェクトとマージリクエストの読み取り、MR コメントの投稿、Webhook イベントの受信を行います。3
Webhook を追加する
Enclave に Webhook URL と Secret token が表示されます。両方をコピーします。シークレットは一度しか表示されません。GitLab でプロジェクト(セルフホスト型の場合はグループ)を開き、 Settings → Webhooks に移動します。URL とシークレットトークンを貼り付け、 Push events と Merge request events を有効にして、 Add webhook をクリックします。 Test をクリックすると、テスト配信が送信されます。最初のイベントが届くまで、接続は保留中のままです。
4
MR レビューの対象プロジェクトを選ぶ
自動レビューは、すべての GitLab プロジェクトでデフォルトでオンです。プロジェクトごとにオフにするには、 Coverage → Repositories でそのプロジェクトの PR Reviews スイッチを使います。 PR と依存関係の分析 を参照してください。
ヒント
- Enclave 専用の GitLab アカウントを作成します。 MR コメントの投稿者が明確になります。セルフホスト型 GitLab では、サービスアカウントのトークンが最適で、次にグループアクセストークンが適しています。個人用トークンも使えますが、すべてのコメントが自分の名前で表示されます。
- システム内のすべてのプロジェクトを接続します。 Enclave がサービス間の問題を見つけられるのは、サービスとそれが呼び出す API の両方が見える場合だけです。
トラブルシューティング
セルフホスト型 GitLab の場合、 Validate & connect はまず URL とトークンを確認します。- Enclave requires GitLab 14 or newer :インスタンスをアップグレードします。
- GitLab rejected the token または The token must include the ‘api’ scope :
apiスコープを持つ新しいトークンを発行します。 - The token authenticated but cannot see any projects :先にトークンをグループまたはプロジェクトに追加します。
- We refused to call that URL :ホスト名がプライベートまたは内部のアドレスに解決されました。Enclave はそのようなアドレスには接続しません。
- We could not reach your GitLab instance :URL とファイアウォールのルールを確認します。