> ## 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 또는 자체 관리형 |

문서: [Personal access tokens](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html), [REST authentication](https://docs.gitlab.com/ee/api/rest/authentication.html), [Token scopes](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="/ko/compliance/sources-management">
    모든 Compliance 소스를 찾아보고 관리합니다.
  </Card>

  <Card title="Compliance 시작하기" icon="rocket" href="/ko/compliance/getting-started-with-compliance">
    프레임워크, 작업 및 **아티팩트**.
  </Card>

  <Card title="Iru 개요" icon="layer-group" href="/ko/iru/platform-overview/iru-overview">
    Endpoint, Compliance 및 Identity가 함께 작동하는 방식.
  </Card>

  <Card title="Artifacts 관리" icon="folder-open" href="/ko/compliance/artifacts-management">
    소스 및 작업에서 수집한 증거를 업로드, 검토 및 정리합니다.
  </Card>
</CardGroup>
