

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# GitLab 연결
<a name="connecting-to-cicd-pipelines-connecting-gitlab"></a>

GitLab 통합을 통해 AWS DevOps Agent는 GitLab Pipelines의 배포를 모니터링하여 인시던트 대응 중에 인과 조사를 알릴 수 있습니다. 이 통합은 GitLab의 계정 수준 등록 후 특정 프로젝트를 개별 에이전트 스페이스에 연결하는 2단계 프로세스를 따릅니다.

## GitLab 등록(계정 수준)
<a name="registering-gitlab-account-level"></a>

GitLab은 AWS 계정 수준에서 등록되고 해당 계정의 모든 에이전트 스페이스 간에 공유됩니다. 각 등록은 하나의 GitLab 사용자 또는 하나의 GitLab 그룹에 연결됩니다.

### 1단계: 파이프라인 공급자로 이동
<a name="step-1-navigate-to-pipeline-providers"></a>

1.  AWS Management Console에 로그인

1.  AWS DevOps 에이전트 콘솔로 이동

1. **기능 공급자** 페이지로 이동(측면 탐색에서 액세스 가능)

1. **파이프라인**의 **사용 가능한** 공급자 섹션에서 **GitLab**을 찾고 **등록**을 선택합니다.

### 2단계: GitLab 연결 구성
<a name="step-2-configure-gitlab-connection"></a>

GitLab 등록 페이지에서 다음을 구성합니다.

**연결 유형** - 개인 또는 그룹으로 연결할지 여부를 선택합니다.
+ **개인**(기본값) - 사용자 이름과 프로필이 있는 개별 GitLab 사용자 계정
+ **그룹** - GitLab에서는 그룹을 사용하여 하나 이상의 관련 프로젝트를 동시에 관리합니다.

**GitLab 인스턴스 유형** - 연결할 GitLab 인스턴스 유형을 선택합니다.
+ **GitLab.com**(기본값) - 퍼블릭 GitLab 서비스
+ **GitLab 자체 관리형 -** ** GitLab 자체 호스팅 엔드포인트 사용** 확인란을 선택하고 GitLab 인스턴스에 URL을 제공합니다.

#### GitLab 자체 관리형 프라이빗 연결
<a name="private-connectivity-for-gitlab-self-managed"></a>

**프라이빗 연결을 사용하여 엔드포인트에 연결** - 퍼블릭 인터넷을 통해 GitLab 자체 관리형 인스턴스에 연결할 수 없는 경우 VPC에 대한 프라이빗 연결을 통해 AWS DevOps 에이전트가 연결하도록 하려면이 옵션을 선택합니다. GitLab을 등록하기 전에 프라이빗 연결을 생성한 다음 여기에서 기존 연결을 선택합니다. 자세한 내용은 [프라이빗 호스팅 도구에 연결](configuring-integrations-and-knowledge-connecting-to-privately-hosted-tools.md) 단원을 참조하십시오.

**액세스 토큰** - GitLab 개인 액세스 토큰을 제공합니다.

1. 별도의 브라우저 탭에서 GitLab 계정에 로그인합니다.

1. 사용자 설정으로 이동하여 **액세스 토큰을** 선택합니다.

1. 다음 권한을 사용하여 새 개인 액세스 토큰을 생성합니다.
   + `read_repository` - 리포지토리 콘텐츠에 액세스하는 데 필요합니다.
   + `read_virtual_registry` - 가상 레지스트리 정보에 액세스하는 데 필요합니다.
   + `read_registry` - 레지스트리 정보에 액세스하는 데 필요합니다.
   + `api` - 읽기 및 쓰기 API 액세스에 필요합니다.
   + `self_rotate` - 토큰 교체에 필요합니다. 이 기능은 현재 AWS DevOps 에이전트에서 지원되지 않지만 나중에 지원됩니다. 이제를 추가하면 향후 새 토큰을 생성할 필요가 없습니다.

1. 토큰 만료를 현재 날짜로부터 최대 365일로 설정합니다.

1. 생성된 토큰 복사

1.  AWS DevOps 에이전트 콘솔로 돌아가기

1. 토큰을 “토큰 액세스” 필드에 붙여넣습니다.

### 3단계: 등록 완료
<a name="step-3-complete-registration"></a>

**(선택 사항) 태그 **- 조직용으로 GitLab 등록에 AWS 태그를 추가합니다.

**다음을** 선택하여 구성을 검토한 다음 **제출**을 선택하여 GitLab 등록 프로세스를 완료합니다. 시스템에서 액세스 토큰을 검증하고 연결을 설정합니다.

## 에이전트 스페이스에 프로젝트 연결
<a name="connecting-projects-to-an-agent-space"></a>

계정 수준에서 GitLab을 등록한 후 특정 프로젝트를 개별 에이전트 스페이스에 연결할 수 있습니다.

1.  AWS DevOps 에이전트 콘솔에서 에이전트 스페이스를 선택합니다.

1. **기능** 탭으로 이동

1. **파이프라인** 섹션에서 **추가**를 선택합니다.

1. 사용 가능한 공급자 목록에서 **GitLab**을 선택합니다.

1. 사용하려는 프로젝트가 포함된 GitLab 등록을 선택합니다.

1. 에이전트 스페이스와 관련된 GitLab 프로젝트 선택

1. **저장**을 선택합니다.

AWS DevOps Agent는 이러한 프로젝트의 GitLab Pipelines 배포를 모니터링하여 인과 조사를 알립니다. 단일 에이전트 스페이스는 여러 등록의 프로젝트를 사용할 수 있습니다. 다른 등록의 프로젝트를 추가하려면 다음 단계를 반복합니다.

## 코드 검토 및 자동 테스트 구성
<a name="configuring-code-review-and-automated-testing"></a>

GitLab 연결 단계에서 프로젝트를 선택하면 해당 프로젝트가 **코드 검토 및 자동 테스트** 섹션에 자동으로 추가됩니다. 이 섹션에서는 [릴리스 준비 상태 코드 검토](release-management-release-readiness-code-review.md) 및 자동 테스트 기능을 자동으로 트리거하는 프로젝트를 구성합니다.

코드 검토 및 자동 테스트 구성에는 다음이 포함됩니다.
+ **기능** - 각 프로젝트에 대한 코드 검토 및 자동 테스트 기능을 선택합니다. 이 섹션에서는 프로젝트당 두 가지 설정을 제공합니다.
  + **변경 검토 자동 트리거** - 프로젝트에 대해 활성화된 경우 DevOps Agent는 병합 요청이 열리거나 업데이트될 [릴리스 준비 상태 코드 검토](release-management-release-readiness-code-review.md) 때마다를 자동으로 실행합니다. 검토 결과는 병합 요청에 인라인 주석으로 표시됩니다. 이는 연결된 모든 프로젝트에 대해 기본적으로 활성화됩니다.
  + **자동 확인 테스트** - 프로젝트에 대해 활성화된 경우 DevOps Agent는 코드 검토 중에 관리형 확인 환경에서 코드 변경 사항을 빌드, 실행 및 테스트합니다. 이를 통해 정적 분석 이상의 기능 검증이 가능합니다. 자세한 내용은 [자동 확인 테스트를](release-management-release-readiness-code-review.md) 참조하세요. 이는 연결된 모든 프로젝트에 대해 기본적으로 활성화됩니다.
+ **프로젝트 목록** - 연결 단계에서 선택한 모든 프로젝트를 표시합니다. 검색 필드를 사용하여 이름을 기준으로 프로젝트를 필터링합니다. 각 프로젝트에는 두 기능에 대한 독립적인 확인란이 있습니다.
+ **런타임 역할**(선택 사항) - DevOps 에이전트가 선택한 프로젝트에서 자동 기능을 실행하기 위해 수임하는 IAM 역할을 선택합니다. 이 역할은 프라이빗 패키지 레지스트리 및 아티팩트 스토리지 시스템과 같은 빌드 중에 필요한 내부 서비스에 액세스할 때 사용됩니다. 기본 에이전트 역할과 다른 역할을 사용하는 것이 좋습니다.

자동 검토를 구성하려면:

1. 프로젝트를 연결한 후 GitLab 통합 설정에서 **코드 검토 및 자동 테스트** 섹션으로 이동합니다.

1. 각 프로젝트에 대해 **자동 병합 요청 검토를 원하는지 여부에 따라 자동 트리거 변경** 검토 기능을 활성화하거나 비활성화합니다.

1. 각 프로젝트에 대해 관리형 **확인 환경에서 자동 확인 테스트를** 원하는[지 여부에 따라 자동 확인 테스트](release-management-release-readiness-code-review.md) 기능을 활성화하거나 비활성화합니다.

1. 선택적으로 선택한 프로젝트에서 자동 기능을 실행할 때 DevOps 에이전트가 수임할 **런타임 역할** 드롭다운에서 IAM 역할을 선택합니다.

1. **저장**을 선택하여 구성을 적용합니다.

구성되면 **자동 트리거 변경 검토**가 활성화된 프로젝트의 새 병합 요청이 릴리스 준비 상태 코드 검토를 자동으로 트리거합니다. **자동 확인 테스트**도 활성화된 경우 검토에는 확인 환경의 기능 검증이 포함됩니다. 코드 검토에 대한 자세한 내용은 섹션을 참조하세요[릴리스 준비 상태 코드 검토](release-management-release-readiness-code-review.md).

### 고급 설정: 트리거 필터
<a name="advanced-settings-trigger-filters"></a>

기본적으로 **자동 트리거 변경 검토**가 활성화된 프로젝트는 모든 대상 브랜치에서 해당하는 모든 병합 요청 이벤트에 대해 릴리스 준비 코드 검토를 실행합니다. **고급 설정을** 사용하여 각 프로젝트에 대해 자동 검토가 실행되는 시기를 정확하게 제어하는 트리거 필터를 추가합니다.

각 필터는 두 조건을 결합하는 *필터 그룹*입니다.
+ **대상 브랜**치(필수) - 정규식(예: 또는 )으로 입력되는 하나 이상의 브랜치 이름 `main` 또는 패턴입니다`release/.*`. 병합 요청의 대상 브랜치가 이러한 패턴 중 하나와 일치하는 경우에만 검토가 트리거됩니다.
+ **트리거 이벤트**(선택 사항) - 검토를 트리거하는 병합 요청 이벤트: 병합 **요청 검토 준비** 완료 또는 **병합 요청 초안 작성.** 해당하는 모든 이벤트와 일치하도록 비워 둡니다.

필터 그룹 내에서 모든 조건은 (AND)와 일치해야 합니다. 여러 필터 그룹을 추가할 수 있으며, 그룹이 (OR)과 일치하면 검토가 트리거됩니다.

트리거 필터를 구성하려면:

1. 연결 흐름에서 **고급 설정** 섹션을 엽니다. (기존 연결에서 필터를 변경하려면 **파이프라인** 섹션에서 연결을 선택하고 **편집**을 선택한 다음 **고급 설정을** 엽니다.)

1. 구성하려는 프로젝트를 찾아 **변경 검토** 탭을 선택합니다.

1. **필터 그룹 추가**를 선택한 다음 그룹의 조건을 정의합니다.
   + **대상 브랜**치에서 브랜치 이름 또는 패턴을 입력하고 Enter 키를 누르거나 **추가**를 선택합니다. 반복하여 패턴을 더 추가합니다.
   + (선택 사항) **이벤트 트리거**에서 **검토 준비 완료 요청 병합**, **요청 초안 병합** 또는 둘 다를 선택합니다. 모든 이벤트와 일치하도록 비워 둡니다.

1. (선택 사항) **필터 그룹 추가**를 다시 선택하여 대체 조건을 표시합니다.

1. **저장**을 선택하여 구성을 적용합니다.

그룹당 최대 20개의 패턴으로 프로젝트당 최대 5개의 필터 그룹을 정의할 수 있습니다. 각 패턴은 최대 256자의 유효한 정규식이어야 합니다. 필터 그룹을 추가하지 않으면가 모든 대상 브랜치에 해당하는 모든 이벤트에 대한 트리거를 검토합니다.

## 문제 해결
<a name="troubleshooting"></a>

프라이빗 연결에서 GitLab 자체 관리형을 사용하는 경우 DNS, 네트워크 연결성, 보안 그룹 또는 TLS 오류는 섹션을 참조하세요[프라이빗 연결 문제 해결](configuring-integrations-and-knowledge-troubleshooting-private-connections.md).

### 일부 프로젝트는 프로젝트 목록에 표시되지 않습니다.
<a name="some-projects-dont-appear-in-the-project-list"></a>

**증상**

GitLab을 성공적으로 등록할 수 있지만 연결할 것으로 예상되는 하나 이상의 프로젝트가 프로젝트 목록에 표시되지 않습니다.

**원인**

개인 연결의 경우 AWS DevOps 에이전트는 액세스 토큰의 사용자가 멤버인 프로젝트를 나열합니다. 사용자가 다른 GitLab 액세스 경로를 통해 프로젝트를 볼 수 있더라도 해당 사용자가 멤버가 아닌 경우에는 프로젝트가 표시되지 않습니다.

**​해결 방법**
+ 액세스 토큰의 사용자가 연결하려는 각 프로젝트의 멤버인지 확인합니다.
+ 토큰이 만료되지 않았는지 확인하고 [2단계: GitLab 연결 구성](#step-2-configure-gitlab-connection)에 나열된 범위를 포함합니다.
+ 프로젝트 멤버십을 변경하거나 토큰을 교체한 후 프로젝트 목록을 새로 고칩니다.

### GitLab 프로젝트를 연결할 수 없음
<a name="a-gitlab-project-cant-be-connected"></a>

**증상**

`GitLab project '<path>' (ID: <id>) is not accessible to this GitLab token.` 또는를 사용하여 프로젝트 연결 실패 `GitLab is currently throttling requests (HTTP 429). Please retry the association later.`

**원인**

토큰이 선택한 프로젝트를 읽을 수 없거나 GitLab이 프로젝트 검증 요청을 일시적으로 제한하고 있습니다.

**​해결 방법**
+ 토큰이 유효하고 해당 사용자 또는 그룹이 선택한 프로젝트에 액세스할 수 있는지 확인합니다.
+ 토큰에 [2단계: GitLab 연결 구성](#step-2-configure-gitlab-connection)의 필수 범위가 포함되어 있는지 확인합니다.
+ GitLab이 HTTP 429를 반환하는 경우 연결을 기다렸다가 다시 시도합니다.

## GitLab 연결 관리
<a name="managing-gitlab-connections"></a>
+ **액세스 토큰 업데이트 **- 액세스 토큰이 만료되거나 업데이트해야 하는 경우 등록 취소 없이 교체할 수 있습니다. **기능 공급자** 페이지의 GitLab 등록을 선택하고 **작업** 메뉴에서 **업데이트를** 선택한 다음 새 토큰을 입력합니다. 에이전트 스페이스 연결 및 프로젝트 연결은 보존됩니다.
+ **연결된 프로젝트 보기** - AWS DevOps 에이전트 콘솔에서 에이전트 스페이스를 선택하고 기능 탭으로 이동하여 파이프라인 섹션에서 연결된 프로젝트를 봅니다.
+ **GitLab 연결 제거** - 에이전트 공간에서 GitLab 프로젝트를 연결 해제하려면 파이프라인 섹션에서 연결을 선택하고 **제거**를 선택합니다. GitLab 등록을 완전히 제거하려면 먼저 모든 에이전트 스페이스에서 제거한 다음 계정 수준에서 등록을 삭제합니다.