Gitlab GitHub 미러링 연동 (GitLab2GitHub)

GitLab -> GitHub 미러링(Mirroring) 연동하는 방법

소개

GitLab GitHub 미러링을 하여 잔디를 옮겨심는 방법을 공유하고자 한다. 많은 블로그에선 Fine-grained personal access token (Beta) 를 다루지 않기 때문에 해당 토큰을 이용한 방법도 소개하고자 한다.

GitLab GitHub 미러링 설정하기

새로운 GitLab 레포지토리(Repository) 생성하기

처음으로, 깃허브에 미러링할 새로운 레포지토리를 생성해야 합니다. 이미 존재하는 레포지토리(Repository)를 Github으로 미러링하는 경우에는 이 단계는 스킵할수 있다. 만들어야 하는경우 아래 처럼 만들면 된다.

Gitlab 레포지토리 생성 1
Gitlab 레포지토리 생성 세부 설정

생성한 경우에는 상관 없지만, 이미 있는 프로젝트를 미러링 하는 경우에는 해당 프로젝트의 관리자 또는 소유자 권한이 있어야 미러링을 설정할 수 있습니다.

GitHub 에서 토큰 발급받기

GitHub이 현재 2가지의 토큰을 제공한다. Classics 한 액세스 토큰과 Fine-grained personal access token(세분화된 개인 액세스 토큰)이라는 토큰을 제공한다. 세분화된 개인 액세스 토큰(Fine-grained personal access tokens)는 베타이지만 세세하게 설정이 가능하기 때문에, 결국 멀지 않은 미래에 표준이 될 것이다. 그래서 세분화된 개인 액세스 토큰(Fine-grained personal access token)를 이용한 방법을 추천드린다. 그래도 2가지 방법을 다 설명하겠다.

Fine-grained personal access token (Beta) 을 이용하는 방법

  1. 우측 상단 사용자 프로필 클릭
  2. Settings 클릭
  3. Developer settings 클릭 (https://github.com/settings/apps)
  4. Personal access tokens 클릭 하여 확장하기.
  5. Fine-grained personal access tokens (Beta) 를 클릭
  6. Generate new token 클릭
  7. 아래 처럼 Token name을 편하게 만들어준다.
  8. 특정 레포권한만 지정하기 위해서 Only select reposigories 를 클릭해서 해당 레포를 지정한다.
    (토큰 도난을 대비하기위해서)
  9. Contents에 대해서 Read and Write 권한을 준다. Repo에 대한 권한은 주지 않아도 된다.
Fine-grained personal access token 생성
Fine-grained personal access token 권한 추가

완료되면 복사할수 있는 토큰이 나온다. 해당 값을 복사해두자

Tokens (classic) 을 이용하는 방법

전체적으로 위에 나온 ‘Fine-grained personal access tokens’ 와 비슷하다. 같은 부분은 아래와 같다.

  1. 우측 상단 사용자 프로필 클릭
  2. Settings 클릭
  3. Developer settings 클릭 (https://github.com/settings/apps)
  4. Personal access tokens 클릭 하여 확장하기.

이후 부터 설명을 하자면, 아래와 같다.

  1. Tokens (classic) 클릭 하여 확장
  2. Generate new token 클릭한다.
  3. 확장된 2개의 선택 메뉴가 나온다.
    Generate new token (classic) 클릭한다.
  4. Note의 적당한 토큰 이름을 적어준다.
  5. Select scopes 에서 repo를 클릭하여 권한을 준다.
Tokens (classic)  추가

이것도 마찬가지로 토큰 값을 복사해둔다.

GitLab에서 미러링 설정하기

Gitlab Github 미러링 완료
  1. 생성해둔 레포지토리로 이동한다. 예시에서는 https://gitlab.com/devj3/mirroring 이다.
  2. 좌측 ‘Settings’ 하위에 ‘Repository’ 클릭한다.
  3. 여러개의 목록이 나오는데 그 중에서 Mirroring repositories 를 클릭하면 위의 이미지와 유사한 입력창이 보인다.
  4. Git repogitory URL 에는 github clone 정보에 ‘깃헙 ID’를 추가해서 적어준다 https://github.com/DevJ/mirroringTest.git => https://깃헙 ID@github.com/DevJ/mirroringTest.git
  5. 그리고 password에는 위에서 생성한 토큰을 붙여준다.
  6. 그러면 하단에 연동 상태가 보인다. 새로고침 버튼을 누르면 자동으로 push가 된다. just now를 만들면 연동은 성공이다.

처음 쓰면 궁금해 할만한 부분들

  • 미러링을 중지하면 이미 깃허브에 올라간 커밋들은 삭제되는가?
    • 미러링을 중지해도 이미 깃허브에 올라간 커밋들은 그대로 유지
  • 미러링된 GitHub 레포지토리에서 GitLab으로 다시 미러링(Mirroring)할 수 있나?
    • 이것도 세팅만 하면 가능하다.
  • Mirroring 설정을 변경하면 이미 동기화된 데이터에 영향을 미치나?
    • 미러링 설정을 변경하더라도 이미 동기화된 데이터에는 영향을 미치지 않는다. 설정 변경 이후 부터


연관 포스팅

혹시라도 Gitea에 관심있거나, 연동이 필요하다면?

Leave a Comment