

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

# GitHub 연결
<a name="connecting-to-cicd-pipelines-connecting-github"></a>

GitHub 통합을 통해 AWS DevOps Agent는 코드 리포지토리에 액세스하고 인시던트 조사 중에 배포 이벤트를 수신할 수 있습니다. 이 통합은 GitHub의 계정 수준 등록 후 특정 리포지토리를 개별 에이전트 스페이스에 연결하는 2단계 프로세스를 따릅니다.

AWS DevOps Agent는 GitHub.com(SaaS) 및 GitHub Enterprise Server(자체 호스팅) 인스턴스를 모두 지원합니다.

## 사전 조건
<a name="prerequisites"></a>

GitHub를 연결하기 전에 다음이 있는지 확인합니다.
+  AWS DevOps 에이전트 관리 콘솔에 대한 액세스
+ 관리자 권한이 있는 GitHub 사용자 계정 또는 조직
+ 계정 또는 조직에 GitHub 앱을 설치하기 위한 권한 부여

GitHub Enterprise Server의 경우 다음 사항도 필요합니다.
+ HTTPS를 통해 액세스할 수 있는 GitHub Enterprise Server 인스턴스(버전 3.x 이상)
+ GitHub Enterprise Server 인스턴스의 HTTPS URL(예: `https://github.example.com`)
+ (선택 사항) GitHub Enterprise Server 인스턴스에 공개적으로 액세스할 수 없는 경우의 프라이빗 연결

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

GitHub는 AWS 계정 수준에서 등록되고 해당 계정의 모든 에이전트 스페이스 간에 공유됩니다. GitHub는 AWS 계정당 한 번만 등록하면 됩니다.

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

1.  AWS Management Console에 로그인

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

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

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

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

GitHub가 아직 등록되지 않은 경우 먼저 등록하라는 메시지가 표시됩니다.

### 2단계: 연결 유형 선택
<a name="step-2-choose-connection-type"></a>

"GitHub 계정/조직 등록" 화면에서 사용자 또는 조직으로 연결할지 여부를 선택합니다.
+ **사용자** - 사용자 이름과 프로필이 있는 개인 GitHub 계정
+ **조직** - 여러 사람이 여러 프로젝트에서 한 번에 협업할 수 있는 공유 GitHub 계정

GitHub Enterprise Server 인스턴스에 연결하는 경우 ** GitHub Enterprise Server 사용** 확인란을 선택하고 인스턴스의 HTTPS URL(예: `https://github.example.com`)을 입력합니다.

GitHub Enterprise Server 인스턴스에 공개적으로 액세스할 수 없는 경우 선택적으로 프라이빗 연결을 구성하여 AWS DevOps 에이전트가 인스턴스에 안전하게 연결할 수 있도록 할 수 있습니다. 자세한 내용은 [프라이빗 호스팅 도구에 연결](configuring-capabilities-for-aws-devops-agent-connecting-to-privately-hosted-tools.md) 단원을 참조하십시오.

**참고**  
** URL에 `/api/v3` 또는 후행 경로를 포함하지 마십시오. 기본 URL만 입력합니다.

### 3단계: GitHub 앱 설정
<a name="step-3-set-up-the-github-app"></a>

**제출**을 클릭하여 앱 설정 프로세스를 시작합니다. 다음 단계는 GitHub.com에 연결하는지 아니면 GitHub Enterprise Server에 연결하는지에 따라 다릅니다.

#### GitHub.com의 경우
<a name="for-githubcom"></a>

1.  AWS DevOps 에이전트 GitHub 앱을 설치하기 위해 GitHub로 리디렉션됩니다.

1. 앱을 설치할 계정 또는 조직을 선택합니다.

1. 앱은 AWS DevOps 에이전트가 연결된 리포지토리에서 배포 이벤트를 포함한 이벤트를 수신할 수 있도록 허용합니다.

#### GitHub Enterprise Server의 경우
<a name="for-github-enterprise-server"></a>

GitHub Enterprise Server는 인스턴스에 새 GitHub 앱을 자동으로 설정하는 GitHub 앱 매니페스트 흐름을 사용합니다. 여기에는 GitHub Enterprise Server 인스턴스에 대한 두 개의 리디렉션이 포함됩니다.

1. 브라우저가 GitHub Enterprise Server 인스턴스의 "GitHub 앱 생성" 페이지로 리디렉션됩니다.

1. 앱 이름이 미리 채워져 표시됩니다. 필요에 따라 이름을 자유롭게 변경할 수 있습니다. **GitHub 앱 생성을** 클릭합니다.

1. 매니페스트 코드를 앱 자격 증명으로 교환하는 AWS DevOps 에이전트로 다시 리디렉션됩니다.

### 4단계: 리포지토리 선택 및 설치 완료
<a name="step-4-select-repositories-and-complete-installation"></a>

1. GitHub 앱의 **설치 및 권한 부여** 페이지가 표시됩니다.

1. 앱이 액세스할 수 있도록 허용할 리포지토리를 선택합니다.
   + **모든 리포지토리** - 모든 현재 및 향후 리포지토리에 대한 액세스 권한 부여
   + **리포지토리만 선택** - 계정 또는 조직에서 특정 리포지토리를 선택합니다.

1. **설치 및 승인을** 클릭합니다.

1.  AWS DevOps 에이전트 콘솔로 다시 리디렉션되며, 여기서 GitHub는 계정 수준에서 등록된 것으로 표시됩니다.

## 에이전트 스페이스에 리포지토리 연결
<a name="connecting-repositories-to-an-agent-space"></a>

계정 수준에서 GitHub를 등록한 후 특정 리포지토리를 개별 에이전트 스페이스에 연결할 수 있습니다.

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

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

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

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

1. 이 에이전트 스페이스와 관련된 리포지토리의 하위 집합 선택

1. **추가**를 클릭하여 연결을 완료합니다.

조직의 필요에 따라 서로 다른 리포지토리 세트를 서로 다른 에이전트 스페이스에 연결할 수 있습니다.

## GitHub 앱 이해
<a name="understanding-the-github-app"></a>

 AWS DevOps 에이전트 GitHub 앱:
+ 리포지토리에 대한 액세스 요청 - GitHub 앱 설치 중에 특정 권한을 검토할 수 있습니다.
+ 배포 이벤트 및 기타 리포지토리 이벤트를 수신합니다.
+ 코드 변경 사항을 운영 인시던트와 연관시킬 수 있는 Allow AWS DevOps Agent
+ GitHub 설정을 통해 언제든지 제거할 수 있습니다.

GitHub Enterprise Server의 경우 GitHub 앱은 등록 중에 인스턴스에 자동으로 생성됩니다. **설정 > 애플리케이션 > 설치된 GitHub 앱을 통해 앱의 리포지토리 액세스를 관리하거나 제거할 수 있습니다**. 앱 정의를 완전히 삭제하려면 **설정 > 개발자 설정 > GitHub 앱으로** 이동합니다.

## GitHub 앱 권한 업데이트
<a name="github-app-permission-updates"></a>

AWS DevOps Agent는 새로운 기능을 지원하기 위해 GitHub 앱을 설치한 후 권한 업데이트를 요청할 수 있습니다. 이 경우:

1. GitHub로부터 권한 업데이트 요청과 관련된 알림을 받게 됩니다.

1. 업데이트 세부 정보를 검토하여 어떤 새 권한이 요청되고 있는지 이해합니다.

1. 요청을 수락하여 업데이트된 권한을 부여합니다.

서비스 또는 애플리케이션에서는 변경할 필요가 없습니다. 업데이트된 권한을 수락하면 AWS DevOps 에이전트가 GitHub에서 요청하는 다음 설치 액세스 토큰에 새 권한이 자동으로 포함됩니다.

**참고**  
** 권한 업데이트를 수락할 때까지 AWS DevOps 에이전트는 이전에 부여된 권한으로 계속 작동합니다. 업데이트된 권한에 의존하는 새 기능은 요청을 승인할 때까지 사용할 수 없습니다.

## GitHub 연결 관리
<a name="managing-github-connections"></a>
+ 리포지**토리 액세스 업데이트** - GitHub 앱이 액세스할 수 있는 리포지토리를 변경하려면 GitHub 계정 또는 조직 설정(또는 GitHub Enterprise Server 인스턴스 설정)으로 이동하여 설치된 GitHub 앱으로 이동하여 AWS DevOps Agent 앱 구성을 수정합니다.
+ **연결된 리포지토리 보기** - AWS DevOps 에이전트 콘솔에서 에이전트 스페이스를 선택하고 기능 탭으로 이동하여 파이프라인 섹션에서 연결된 리포지토리를 봅니다.
+ **GitHub 연결 제거** - 에이전트 공간에서 GitHub를 연결 해제하려면 파이프라인 섹션에서 연결을 선택하고 **제거**를 클릭합니다. GitHub 앱을 완전히 제거하려면 GitHub 계정 또는 조직 설정에서 제거합니다. GitHub Enterprise Server의 경우 GitHub 앱은 등록 중에 인스턴스에서 직접 생성되므로 선택적으로 다음 두 가지를 모두 수행하여 앱을 완전히 정리할 수 있습니다.
  + **앱 제거** - **설정 > 애플리케이션 > 설치된 GitHub 앱**으로 이동하여 앱에서 **구성을** 클릭한 다음 제거합니다.
  + **앱 삭제** - **설정 > 개발자 설정 > GitHub 앱**으로 이동하여 앱을 선택하고 **고급** 탭으로 이동한 다음 ** GitHub 앱 삭제**를 선택합니다. **경고:** GitHub 앱 삭제는 영구적이며 실행 취소할 수 없습니다. 삭제하는 경우 AWS DevOps 에이전트 콘솔의 처음부터 GitHub Enterprise Server를 다시 등록하여 새 앱을 생성해야 합니다.