GitHub 리포지터리와 함께 GitLab CI/CD 사용하기

Tier: Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

GitLab CI/CD는 GitHub.com 및 GitHub Enterprise를 사용하여 GitHub 리포지터리를 GitLab에 연결하는 CI/CD 프로젝트를 생성함으로써 사용할 수 있습니다.

GitHub 리포지터리와 함께 GitLab CI/CD 파이프라인 사용하기 동영상을 시청하세요.

note
GitHub 제한 사항 때문에 GitHub OAuth를 외부 CI/CD 리포지터리로 사용하여 GitHub를 인증하는 데 사용할 수 없습니다.

개인 액세스 토큰으로 연결

개인 액세스 토큰은 GitHub.com 리포지터리를 GitLab에 연결하는 데에만 사용할 수 있으며, 해당 GitHub 사용자는 소유자 역할을 가져야 합니다.

GitHub에 권한 부여를 위해 한 번만 GitHub와 권한을 부여하기 위해 다음 단계를 수행하세요:

  1. GitHub에서 토큰을 생성합니다:
    1. https://github.com/settings/tokens/new을 엽니다.
    2. 개인 액세스 토큰을 생성합니다.
    3. 토큰 설명을 입력하고 프로젝트에 액세스하도록 스코프를 repoadmin:repo_hook로 업데이트하여 GitLab이 프로젝트에 액세스하고 커밋 상태를 업데이트하며 GitLab에 새 커밋을 알리는 웹훅을 생성할 수 있도록 합니다.
  2. GitLab에서 프로젝트를 생성합니다:
    1. 왼쪽 사이드바에서 새로 만들기() 및 새 프로젝트/리포지터리를 선택합니다.
    2. 외부 리포지터리에서 CI/CD 실행을 선택합니다.
    3. GitHub을 선택합니다.
    4. 개인 액세스 토큰에 토큰을 붙여넣습니다.
    5. 리포지터리 디렉터리 보기를 선택합니다.
    6. 리포지터리를 선택하려면 연결을 선택합니다.
  3. GitHub에 .gitlab-ci.yml을 추가합니다.

GitLab:

  1. 프로젝트를 가져옵니다.
  2. 풀 미러링을 활성화합니다.
  3. GitHub 프로젝트 통합을 활성화합니다.
  4. GitHub에 새 커밋을 GitLab에 알리기 위해 웹훅을 생성합니다.

매뉴얼으로 연결하기

GitHub EnterpriseGitLab.com과 함께 사용하려면 이 방법을 사용합니다.

리포지터리에 대해 매뉴얼으로 GitLab CI/CD를 활성화하려면:

  1. GitHub에서 토큰을 생성합니다:
    1. https://github.com/settings/tokens/new을 엽니다.
    2. 개인 액세스 토큰을 생성합니다.
    3. 토큰 설명을 입력하고 프로젝트에 액세스하도록 스코프를 repo로 업데이트하여 GitLab이 프로젝트에 액세스하고 커밋 상태를 업데이트할 수 있도록 합니다.
  2. GitLab에서 프로젝트를 생성합니다:
    1. 왼쪽 사이드바에서 새로 만들기() 및 새 프로젝트/리포지터리를 선택합니다.
    2. 외부 리포지터리에서 CI/CD 실행URL별 리포지터리를 선택합니다.
    3. Git 리포지터리 URL 필드에 GitHub 리포지터리의 HTTPS URL을 입력합니다. 프로젝트가 비공개인 경우 방금 생성한 개인 액세스 토큰을 인증에 사용합니다.
    4. 다른 모든 필드를 작성하고 프로젝트 만들기를 선택합니다. GitLab은 자동으로 폴링 기반 풀 미러링을 구성합니다.
  3. GitLab에서 GitHub 프로젝트 통합을 활성화합니다:
    1. 왼쪽 사이드바에서 설정 > 통합을 선택합니다.
    2. 활성 확인란을 선택합니다.
    3. 개인 액세스 토큰과 HTTPS 리포지터리 URL을 양식에 붙여넣고 저장을 선택합니다.
  4. GitLab에서 새 커밋을 알리기 위해 GitHub에서 API 범위의 개인 액세스 토큰을 생성합니다.
  5. 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>
    

    개별 이벤트 선택 옵션을 선택한 다음 풀 요청푸시 확인란을 선택합니다. 이러한 설정은 외부 풀 요청을 위한 파이프라인에 필요합니다.

  6. GitHub에 .gitlab-ci.yml을 추가하여 GitLab CI/CD를 구성합니다.