GitHub 리포지터리와 함께 GitLab CI/CD 사용하기
GitLab CI/CD는 GitHub.com 및 GitHub Enterprise를 사용하여 GitHub 리포지터리를 GitLab에 연결하는 CI/CD 프로젝트를 생성함으로써 사용할 수 있습니다.
GitHub 리포지터리와 함께 GitLab CI/CD 파이프라인 사용하기 동영상을 시청하세요.
개인 액세스 토큰으로 연결
개인 액세스 토큰은 GitHub.com 리포지터리를 GitLab에 연결하는 데에만 사용할 수 있으며, 해당 GitHub 사용자는 소유자 역할을 가져야 합니다.
GitHub에 권한 부여를 위해 한 번만 GitHub와 권한을 부여하기 위해 다음 단계를 수행하세요:
- GitHub에서 토큰을 생성합니다:
- https://github.com/settings/tokens/new을 엽니다.
- 개인 액세스 토큰을 생성합니다.
-
토큰 설명을 입력하고 프로젝트에 액세스하도록 스코프를
repo
및admin:repo_hook
로 업데이트하여 GitLab이 프로젝트에 액세스하고 커밋 상태를 업데이트하며 GitLab에 새 커밋을 알리는 웹훅을 생성할 수 있도록 합니다.
- GitLab에서 프로젝트를 생성합니다:
- 왼쪽 사이드바에서 새로 만들기() 및 새 프로젝트/리포지터리를 선택합니다.
- 외부 리포지터리에서 CI/CD 실행을 선택합니다.
- GitHub을 선택합니다.
- 개인 액세스 토큰에 토큰을 붙여넣습니다.
- 리포지터리 디렉터리 보기를 선택합니다.
- 리포지터리를 선택하려면 연결을 선택합니다.
- GitHub에 .gitlab-ci.yml을 추가합니다.
GitLab:
- 프로젝트를 가져옵니다.
- 풀 미러링을 활성화합니다.
- GitHub 프로젝트 통합을 활성화합니다.
- GitHub에 새 커밋을 GitLab에 알리기 위해 웹훅을 생성합니다.
매뉴얼으로 연결하기
GitHub Enterprise를 GitLab.com과 함께 사용하려면 이 방법을 사용합니다.
리포지터리에 대해 매뉴얼으로 GitLab CI/CD를 활성화하려면:
- GitHub에서 토큰을 생성합니다:
- https://github.com/settings/tokens/new을 엽니다.
- 개인 액세스 토큰을 생성합니다.
-
토큰 설명을 입력하고 프로젝트에 액세스하도록 스코프를
repo
로 업데이트하여 GitLab이 프로젝트에 액세스하고 커밋 상태를 업데이트할 수 있도록 합니다.
- GitLab에서 프로젝트를 생성합니다:
- 왼쪽 사이드바에서 새로 만들기() 및 새 프로젝트/리포지터리를 선택합니다.
- 외부 리포지터리에서 CI/CD 실행 및 URL별 리포지터리를 선택합니다.
- Git 리포지터리 URL 필드에 GitHub 리포지터리의 HTTPS URL을 입력합니다. 프로젝트가 비공개인 경우 방금 생성한 개인 액세스 토큰을 인증에 사용합니다.
- 다른 모든 필드를 작성하고 프로젝트 만들기를 선택합니다. GitLab은 자동으로 폴링 기반 풀 미러링을 구성합니다.
- GitLab에서 GitHub 프로젝트 통합을 활성화합니다:
- 왼쪽 사이드바에서 설정 > 통합을 선택합니다.
- 활성 확인란을 선택합니다.
- 개인 액세스 토큰과 HTTPS 리포지터리 URL을 양식에 붙여넣고 저장을 선택합니다.
- GitLab에서 새 커밋을 알리기 위해 GitHub에서 API 범위의 개인 액세스 토큰을 생성합니다.
-
GitHub에서 설정 > 웹훅에서 새로운 커밋을 GitLab에 알리기 위한 웹훅을 생성합니다.
웹훅 URL은 GitLab API로 설정되어 있어야 하며, GitLab API를 사용하여 프로젝트에 풀 미러링을 시작하도록 해야 합니다. 이때 GitLab에서 방금 생성한 GitLab 개인 액세스 토큰을 사용합니다.
https://gitlab.com/api/v4/projects/<NAMESPACE>%2F<PROJECT>/mirror/pull?private_token=<PERSONAL_ACCESS_TOKEN>
개별 이벤트 선택 옵션을 선택한 다음 풀 요청 및 푸시 확인란을 선택합니다. 이러한 설정은 외부 풀 요청을 위한 파이프라인에 필요합니다.
- GitHub에
.gitlab-ci.yml
을 추가하여 GitLab CI/CD를 구성합니다.