> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enclave.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Enclave in these docs is the code and cloud security platform at enclave.ai. It is not Open Enclave, Intel SGX or other hardware enclaves, or enclave.gg.
> People use Enclave in the web app at https://app.enclave.ai or the desktop app. These docs describe no public Enclave API or CLI, so don't invent endpoints, commands, or config files.
> Connecting an integration needs a person to sign in and approve access in a browser. Tell the user the exact step to take instead of saying you completed it.

# GitLab

> GitLab プロジェクトの読み取り、マージリクエスト分析の実行、検出結果の MR コメントへの投稿を Enclave に許可します。

GitLab を接続すると、Enclave はプロジェクトを読み取り、マージリクエストをレビューし、検証済みの検出結果をコメントできます。GitLab.com と、セルフホスト型の GitLab 14 以降で動作します。

## 始める前に

* Enclave で **Owner** または **Admin** ロールが必要です。
* Enclave には、自分が **Developer** 以上のロールを持つ GitLab グループが一覧表示されます。
* Webhook を追加するには、各プロジェクトの **Maintainer** ロール、またはグループの **Owner** ロールが必要です。グループ Webhook には GitLab Premium または Ultimate が必要です。
* セルフホスト型 GitLab の場合、アクセストークンには `api` スコープと **Maintainer** ロールが必要です。

> [!WARNING]
>
> Webhook がないと、Enclave は新しいコミットやマージリクエストを把握できず、接続は保留中のままになります。

## GitLab を接続する

**1. インテグレーションを開く**

[app.enclave.ai](https://app.enclave.ai) で **Settings → Integrations** を開きます。 **GitLab** の横にある **Connect** をクリックします。

**2. GitLab を認可する**

**GitLab.com** を選び、GitLab アカウントにサインインして、Enclave アプリケーションを認可します。

> [!NOTE]
>
> GitLab の OAuth では、Enclave に `api` スコープが付与されます。GitLab には、MR コメントの投稿と Webhook の管理を許可する、これより狭いスコープがありません。Enclave はこのスコープを使って、プロジェクトとマージリクエストの読み取り、MR コメントの投稿、Webhook イベントの受信を行います。

> [!TIP]
>
> セルフホスト型 GitLab を使っている場合は、 **Self-hosted GitLab** を選びます。 `/api/v4` を除いたインスタンスの URL を入力し、 `api` スコープと **Maintainer** ロールを持つアクセストークンを貼り付けます。インスタンスが社内の認証局を使っている場合は、プライベート CA バンドルを追加します。その後、 **Validate & connect** をクリックします。プランにセルフホスト型 GitLab が含まれていない場合、 **Connect** をクリックすると直接 GitLab.com に進みます。

**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 と依存関係の分析](https://docs.enclave.ai/ja/risk/pr-analysis.md) を参照してください。

## ヒント

* **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 とファイアウォールのルールを確認します。

セルフホスト型のトークンをローテーションするには、同じインスタンスに新しいトークンでもう一度接続します。Enclave は既存の接続を更新し、Webhook はそのまま動作します。その後、GitLab で古いトークンを取り消します。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.