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

# GitLab

> 個人用アクセストークンを使用して GitLab を Iru Compliance に接続し、プロジェクトのインベントリ、ブランチ保護、グループメンバーシップ、監査イベントのエビデンスを収集します。

### GitLab について

**GitLab** コネクタは、**GitLab.com グループ** または **セルフマネージド** インスタンスから、プロジェクトのメタデータ、グループメンバーシップ、ブランチ保護、CI/CD 構成、および（プランとトークンが許可する場合は）監査関連のイベントを読み取ります。データは Iru Compliance にアーティファクトとして表示され、アクションやコントロールにマッピングできます。Iru は GitLab の **`PRIVATE-TOKEN`** ヘッダーを使用して認証情報を送信します。通常は、選択したグループやプロジェクト全体を読み取れるよう **個人用アクセストークン** を使用します。

### 仕組み

GitLab の REST API は **`PRIVATE-TOKEN`** ヘッダーで認証します:

```http theme={null}
PRIVATE-TOKEN: glpat-XXXXXXXXXXXXXXXXXXXX
```

個人用アクセストークンは複数のプロジェクトやグループをカバーできるため、通常は最適な選択肢です。プロジェクトスコープやグループスコープのトークンも機能しますが、Iru が収集できるエビデンスの範囲が狭まる場合があります。

| 項目 | 値 |
| - | - |
| **カテゴリ** | 開発者ツール |
| **認証** | `PRIVATE-TOKEN` ヘッダー（個人用アクセストークンを推奨） |
| **ホスティング** | GitLab SaaS またはセルフマネージド |

ドキュメント: [個人用アクセストークン](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html)、[REST 認証](https://docs.gitlab.com/ee/api/rest/authentication.html)、[トークンのスコープ](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#personal-access-token-scopes)。

### 前提条件

* コンプライアンスの対象となる **グループとプロジェクト** への GitLab アクセス権。
* メンバーシップや監査関連の読み取りが必要な場合は、グループの **所有者** または **Maintainer**（正確な要件はコントロールによって異なります）。
* **セルフマネージド** GitLab の場合は、Iru が（`gitlab.com` だけでなく）インスタンスの **ベース URL** を対象としていることを確認します。

**スコープの出発点**

| スコープ | 目的 |
| - | - |
| `read_api` | インベントリと構成のエビデンスに使用される API エンドポイントへの幅広い読み取りアクセス |
| `read_repository` | ブランチ保護とリポジトリ設定に対応するリポジトリメタデータ |
| `read_user` | メンバーシップのエビデンスに必要なユーザープロフィールの読み取り |

セキュリティチームがより詳細な読み取りを必要とする場合にのみ、スコープを追加してください。

### GitLab を Iru に接続する

<Tabs>
  <Tab title="GitLab">
    <Note>
      Compliance でソースを接続する前に、このタブの手順を完了してください。
    </Note>

    <Steps>
      <Step title="GitLab にサインインする">
        GitLab インスタンス（**gitlab.com** またはセルフマネージドの URL）を開き、Iru が読み取るネームスペースの **個人用アクセストークン** を作成できるユーザーでサインインします。
      </Step>

      <Step title="プロフィールを開く">
        右上の **アバター** を選択し、**Edit profile**（バージョンによっては **Preferences**）を選択します。
      </Step>

      <Step title="Access Tokens を開く">
        プロフィールの左サイドバーで **Access Tokens**（**User settings** → **Access Tokens** の場合もあります）を選択します。
      </Step>

      <Step title="新しいトークンを追加する">
        **Add new token**（または **Create personal access token**）を選択します。
      </Step>

      <Step title="名前、有効期限、スコープを設定する">
        **名前**（例: **Iru Compliance**）を入力します。**有効期限** を設定します（GitLab では必須です。最大期間は管理者によって制限されている場合があります）。この記事の **前提条件** に記載されている **読み取り** スコープを選択します。
      </Step>

      <Step title="トークンを作成してコピーする">
        トークンを作成し、**すぐにコピー** します。GitLab はトークンを一度だけ表示します。トークンは通常 **`glpat-`** で始まります。
      </Step>
    </Steps>

    <Note>
      [**Iru Compliance**](#iru-compliance) タブに進んでください。
    </Note>
  </Tab>

  <Tab title="Iru Compliance">
    <Note>
      先に [**GitLab**](#gitlab) タブの手順を完了してください。
    </Note>

    <Steps>
      <Step title="ソースを開く">
        Iru Compliance の左側のナビゲーションバーで **コンプライアンス** を展開し、**ソース** を選択します。

        <Frame>
          <img src="https://mintcdn.com/iru/tI0HDLDwHj8r9Ile/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=tI0HDLDwHj8r9Ile&q=85&s=87dcef15fc17d2fb9a6e53f454e41710" alt="左側のナビゲーション: Compliance を展開し、Sources を選択した状態" width="410" height="1024" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
        </Frame>
      </Step>

      <Step title="GitLab をオンにする">
        **GitLab** を探します（**カテゴリ** または **名前または説明で検索** を使用します）。そのカードで **トグル** をオンにします。コネクタウィザード用のブラウザタブまたはウィンドウが開く場合があります。
      </Step>

      <Step title="個人用アクセストークンを貼り付ける">
        ウィザードで **`PRIVATE-TOKEN`** の値を求められたら、トークンを貼り付けて送信します。
      </Step>

      <Step title="接続を完了する">
        **APIキーを送信** を選択します。接続に成功すると、ウィザードに **接続が構成されました** と表示されます。
      </Step>

      <Step title="ソースが有効であることを確認する">
        **Iru が外部サービスへのアクセスをリクエストしています** のブラウザタブを閉じてから **コンプライアンス** → **ソース** に戻り、**GitLab** カードが **有効** になっていることを確認します。
      </Step>
    </Steps>
  </Tab>
</Tabs>

### トラブルシューティング

<AccordionGroup>
  <Accordion title="ソースをオンにしても何も開かない">
    Iru サイトの **ポップアップブロッカー** の設定を確認して、もう一度お試しください。
  </Accordion>

  <Accordion title="401 Unauthorized">
    トークン文字列全体を確認し、有効期限をチェックして、アカウントが対象グループに引き続きアクセスできることを確認してください。
  </Accordion>

  <Accordion title="403 Forbidden">
    スコープを追加するか、プロジェクト/グループのロールを昇格してください。トークンでは、アカウントがアクセスできないエンドポイントを読み取ることはできません。
  </Accordion>

  <Accordion title="セルフマネージドの URL に関する問題">
    連携がインスタンスのホスト名を指していること、およびネットワーク経路で Iru からのアウトバウンド呼び出しが許可されていることを確認してください。
  </Accordion>

  <Accordion title="監査クラスのイベントが表示されない">
    一部の監査 API には **Premium/Ultimate** の機能が必要です。GitLab のティアと、フレームワークで想定されるエビデンスを比較してください。
  </Accordion>
</AccordionGroup>

### 考慮事項

<CardGroup cols={2}>
  <Card title="トークンは定期的に失効: 早めにローテーションして更新…" icon="circle-info">
    トークンはスケジュールに従って失効します。早めにローテーションしてコネクタを更新してください。
  </Card>

  <Card title="GitLab はレート制限を適用。大規模なグループでは…" icon="shield">
    GitLab は **レート制限** を適用します。大規模なグループでは、初回の同期に時間がかかる場合があります。
  </Card>

  <Card title="Iru は API で公開されている構成を読み取り…" icon="server">
    Iru は API で公開されている構成を読み取ります。パイプラインやリポジトリの設定を書き換えることはありません。
  </Card>
</CardGroup>

### 関連記事

<CardGroup cols={2}>
  <Card title="Sources の管理" icon="plug" href="/ja/compliance/sources-management">
    すべての Compliance ソースを参照、管理します。
  </Card>

  <Card title="Compliance を使い始める" icon="rocket" href="/ja/compliance/getting-started-with-compliance">
    フレームワーク、アクション、**アーティファクト**。
  </Card>

  <Card title="Iru の概要" icon="layer-group" href="/ja/iru/platform-overview/iru-overview">
    Endpoint、Compliance、Identity がどのように連携するか。
  </Card>

  <Card title="Artifacts の管理" icon="folder-open" href="/ja/compliance/artifacts-management">
    ソースやアクションから得たエビデンスをアップロード、確認、整理します。
  </Card>
</CardGroup>
