GitLab -> GitHub 미러링(Mirroring) 연동하는 방법
소개
GitLab GitHub 미러링을 하여 잔디를 옮겨심는 방법을 공유하고자 한다. 많은 블로그에선 Fine-grained personal access token (Beta) 를 다루지 않기 때문에 해당 토큰을 이용한 방법도 소개하고자 한다.
GitLab GitHub 미러링 설정하기
새로운 GitLab 레포지토리(Repository) 생성하기
처음으로, 깃허브에 미러링할 새로운 레포지토리를 생성해야 합니다. 이미 존재하는 레포지토리(Repository)를 Github으로 미러링하는 경우에는 이 단계는 스킵할수 있다. 만들어야 하는경우 아래 처럼 만들면 된다.
생성한 경우에는 상관 없지만, 이미 있는 프로젝트를 미러링 하는 경우에는 해당 프로젝트의 관리자 또는 소유자 권한이 있어야 미러링을 설정할 수 있습니다.
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) 을 이용하는 방법
- 우측 상단 사용자 프로필 클릭
- Settings 클릭
- Developer settings 클릭 (https://github.com/settings/apps)
- Personal access tokens 클릭 하여 확장하기.
- Fine-grained personal access tokens (Beta) 를 클릭
- Generate new token 클릭
- 아래 처럼 Token name을 편하게 만들어준다.
- 특정 레포권한만 지정하기 위해서 Only select reposigories 를 클릭해서 해당 레포를 지정한다.
(토큰 도난을 대비하기위해서) - Contents에 대해서 Read and Write 권한을 준다. Repo에 대한 권한은 주지 않아도 된다.
완료되면 복사할수 있는 토큰이 나온다. 해당 값을 복사해두자
Tokens (classic) 을 이용하는 방법
전체적으로 위에 나온 ‘Fine-grained personal access tokens’ 와 비슷하다. 같은 부분은 아래와 같다.
- 우측 상단 사용자 프로필 클릭
- Settings 클릭
- Developer settings 클릭 (https://github.com/settings/apps)
- Personal access tokens 클릭 하여 확장하기.
이후 부터 설명을 하자면, 아래와 같다.
- Tokens (classic) 클릭 하여 확장
- Generate new token 클릭한다.
- 확장된 2개의 선택 메뉴가 나온다.
Generate new token (classic) 클릭한다. - Note의 적당한 토큰 이름을 적어준다.
- Select scopes 에서 repo를 클릭하여 권한을 준다.
이것도 마찬가지로 토큰 값을 복사해둔다.
GitLab에서 미러링 설정하기
- 생성해둔 레포지토리로 이동한다. 예시에서는 https://gitlab.com/devj3/mirroring 이다.
- 좌측 ‘Settings’ 하위에 ‘Repository’ 클릭한다.
- 여러개의 목록이 나오는데 그 중에서 Mirroring repositories 를 클릭하면 위의 이미지와 유사한 입력창이 보인다.
- Git repogitory URL 에는 github clone 정보에 ‘깃헙 ID’를 추가해서 적어준다 https://github.com/DevJ/mirroringTest.git => https://깃헙 ID@github.com/DevJ/mirroringTest.git
- 그리고 password에는 위에서 생성한 토큰을 붙여준다.
- 그러면 하단에 연동 상태가 보인다. 새로고침 버튼을 누르면 자동으로 push가 된다. just now를 만들면 연동은 성공이다.
처음 쓰면 궁금해 할만한 부분들
- 미러링을 중지하면 이미 깃허브에 올라간 커밋들은 삭제되는가?
- 미러링을 중지해도 이미 깃허브에 올라간 커밋들은 그대로 유지
- 미러링된 GitHub 레포지토리에서 GitLab으로 다시 미러링(Mirroring)할 수 있나?
- 이것도 세팅만 하면 가능하다.
- Mirroring 설정을 변경하면 이미 동기화된 데이터에 영향을 미치나?
- 미러링 설정을 변경하더라도 이미 동기화된 데이터에는 영향을 미치지 않는다. 설정 변경 이후 부터