GitHub 저장소와 함께 GitLab CI/CD 사용

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

GitLab CI/CD는 GitHub.comGitHub Enterprise와 함께 사용될 수 있으며,
GitHub 저장소를 GitLab에 연결하기 위해 CI/CD 프로젝트를 생성합니다.


GitHub 저장소와 함께 GitLab CI/CD 파이프라인 사용에 대한 비디오를 시청하세요.

note
GitHub 제한 사항 때문에,
GitHub OAuth
외부 CI/CD 저장소로서 GitHub에 인증하는 데 사용할 수 없습니다.

개인 액세스 토큰으로 연결하기

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

GitLab이 귀하의 저장소에 접근할 수 있도록 GitHub에서 일회성 권한 부여를 수행하려면:

  1. GitHub에서 토큰을 생성합니다:
    1. https://github.com/settings/tokens/new를 엽니다.
    2. 개인 액세스 토큰을 생성합니다.
    3. 토큰 설명을 입력하고 GitLab이 귀하의 프로젝트에 접근하고,
      커밋 상태를 업데이트하며, 새로운 커밋을 GitLab에 알리기 위해 웹 훅을 생성할 수 있도록
      repoadmin:repo_hook를 허용하도록 범위를 업데이트합니다.
  2. GitLab에서 프로젝트를 생성합니다:
    1. 왼쪽 사이드바에서 상단의 Create new ( ) 및 New project/repository를 선택합니다.
    2. Run CI/CD for external repository를 선택합니다.
    3. GitHub를 선택합니다.
    4. Personal access token에 토큰을 붙여넣습니다.
    5. List Repositories를 선택합니다.
    6. 리포지토리를 선택하기 위해 Connect를 선택합니다.
  3. GitHub에서 .gitlab-ci.yml 파일을 추가하여 GitLab CI/CD를 구성합니다.

GitLab:

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

수동 연결

GitLab.com과 함께 GitHub Enterprise를 사용하려면 이 방법을 사용하세요.

저장소에 대해 GitLab CI/CD를 수동으로 활성화하려면:

  1. GitHub에서 토큰을 생성합니다:
    1. https://github.com/settings/tokens/new를 엽니다.
    2. 개인 액세스 토큰을 생성합니다.
    3. 토큰 설명을 입력하고 GitLab이 귀하의 프로젝트에 접근하고 커밋 상태를 업데이트할 수 있도록
      repo 권한을 허용하도록 범위를 업데이트합니다.
  2. GitLab에서 프로젝트를 생성합니다:
    1. 왼쪽 사이드바에서 상단의 Create new ( ) 및 New project/repository를 선택합니다.
    2. Run CI/CD for external repositoryRepository by URL을 선택합니다.
    3. Git repository URL 필드에 GitHub 저장소의 HTTPS URL을 입력합니다.
      프로젝트가 비공개인 경우, 인증을 위해 방금 생성한 개인 액세스 토큰을 사용하세요.
    4. 나머지 모든 필드를 채우고 Create project를 선택합니다.
      GitLab은 자동으로 폴링 기반의 풀 미러링을 구성합니다.
  3. GitLab에서 GitHub 프로젝트 통합을 활성화합니다:
    1. 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
    2. Active 체크박스를 선택합니다.
    3. 개인 액세스 토큰과 HTTPS 리포지토리 URL을 양식에 붙여넣고 Save를 선택합니다.
  4. GitLab에서 새로운 커밋을 GitLab에 알리기 위해 GitHub 웹 훅을 인증할
    API 범위의 개인 액세스 토큰을 생성합니다.
  5. GitHub에서 Settings > Webhooks로 가서 GitLab에 새로운 커밋을 알리기 위한 웹 훅을 생성합니다.

    웹 훅 URL은 GitLab API에 설정해야 하며,
    풀 미러링을 트리거하기 위한
    방금 생성한 GitLab 개인 액세스 토큰을 사용합니다:

    https://gitlab.com/api/v4/projects/<NAMESPACE>%2F<PROJECT>/mirror/pull?private_token=<PERSONAL_ACCESS_TOKEN>
    

    Let me select individual events 옵션을 선택한 후 Pull requestsPushes 체크박스를 선택합니다.
    이러한 설정은 외부 풀 요청을 위한 파이프라인에 필요합니다.

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