Gitlab을 통해서 원격 저장소를 관리하고 있는데, 이를 다른 Git저장소로 미러링을 하고 싶은 경우가 있다. 이에 대해서 소개하고자 한다.

 

이 글에서는 가장 대표적인 Github로 미러링 하는 방법을 소개하고자 하며, 평범하게 서버에 원격 저장소가 되어 있는 경우에는 별 다르게 신경 써야 할 부분이 없기에 조금 더 신경 써줘야 하기도 하고 대중적인 Github로 미러링 하는 방법에 대해서 소개하고자 한다.

 

설정법

인증 방식의 선택

Gitlab에서 Github로 Push를 하여야 하기 때문에, 프로토콜과 인증방식을 정하여야 한다.

우선 프로토콜은 https와 ssh 두 가지를 고려할 수 있다.

 

개인적으로 https 방식이 훨씬 간편하고 통합적으로 관리를 할 수 있으니, https를 추천한다.

 

SSH의 경우 비밀번호를 직접적으로 입력하거나 키를 발급 받아서 이 키를 github에 올리는 방식으로 사용하여야 한다.

비밀번호의 경우에는 때때로 변경할 일이 생길 수 있으며, 변경하게 되면 모든 저장소의 미러 설정을 다시 진행하여야 한다.

키를 등록하는 방식일 경우에는 각 저장소마다 gitlab에서 별도의 공개키를 발급해서 주며, 이 키를 등록을 해야 하는데. 많은 키를 발급하고 등록하면 관리면에서 우수하지 못하다.

 

https방식을 사용하게 되면 토큰을 이용하여 관리할 수 있으며, 하나의 미러링 전용 토큰을 발급한 이후 이를 이용해서 미러링 용도에 필요한 권한만 승인한 이후 모든 gitlab 저장소에다가 적용할 수 있기 때문에 권장한다.

 

위와 같은 이유로 이 글에서는 토큰을 이용한 방식만 소개할 예정이다.

 

토큰 발급

 

우측 상단의 프로필을 누른 다음 Setting으로 들어간다.

여기서 Settings를 누르면 된다.

그 다음 좌측 메뉴에서 Developer Settings를 클릭

노란색으로 강조된 부분을 찾아서 들어가자.

그다음 Personal access tokens를 들어간다.

노란색으로 강조된 부분을 찾아서 들어가자.

그다음 Generate new token 버튼을 찾아서 클릭

여기서 Note부분에는 본인이 해당 키를 간결하게 설명할 수 있을 텍스트면 되며, 하단에 권한은 repo전체면 된다. 다른 것은 저장소 미러링에 필요한 것은 없다.

그다음 하단의 초록버튼을 눌러서 생성을 하면

 

다음과 같이 토큰이 바로 보인다. 토큰 값을 복사해두자. 지금 복사 후 관리를 못하면 다시는 열람할 수 없으니 꼭 복사를 해두고, 잊어버렸거나 노출되었다면 꼭 삭제를 해주자.

 

이렇게 하면 토큰 발급은 끝이다.

 

* 주의 *

생성된 토큰은 git저장소에 접근할 수 있는 권한을 가지고 있으며, 비밀번호와 동등하게 관리를 하여야 한다.

토큰이 노출되었을 때, 본인의 저장소에 누군가가 악의적으로 문제를 일으킬 수 있다. 

 

미러링 저장소 생성

Github에서 저장소를 하나 생성해주면 된다. Gitlab만 사용한 유저라도 이는 유사하기에 알아서 진행해주시면 된다.

 

대충 이런 정보로 생성을 하였다. 이제 Github에서의 볼일은 끝이다.

 

Gitlab에서의 미러링 연결

 

Gitlab의 Mirroring repositories 항목을 찾아 들어가야 한다.

 

다음은 Mirroring repositories를 Expand버튼을 눌러서 펼쳐준다.

펼쳐진 모습이다.

 

이제 여기서 각종 양식들을 채워나가면 완료가 된다.

 

Git repository URL

github에서 생성한 미러링용 저장소 주소를 복사해온다.

다만 이 값을 그대로 넣으면 안되고, 여기에 아이디 값을 넣어줘야 한다.

 

https://github.com/닉네임/저장소이름.git 

https://닉네임@github.com/닉네임/저장소이름.git

 

별로 어렵진 않다. 이 부분을 수정 안 하게 되면 아이디를 몰라서 인증 오류가 발생하게 된다.

 

Mirror direction

Push 그대로 두면 된다.

 

Authentication method

인증방식이며 Password 그대로 두면 된다.

(만약 ssh 방식으로 할 경우에는 비밀번호와 키 방식을 선택할 수 있으니, 이 방식으로 진행할 경우 건드려주면 된다.)

 

Password

Github에서 발급받은 토큰 값을 입력해주면 된다.

 

작성을 완료하고 Mirror repository를 눌러서 생성을 마치면 하단에 다음과 같이 변경된다.

여기서 빨간 삭제 버튼 옆의 새로고침을 누르면 Push를 진행하게 된다. 잠시 뒤 새로고침을 하면 다음과 같이 변해있으면 성공이다. 만약 실패했다면 Error라고 떠있으며, 마우스를 가져다 대면 에러 메시지가 표시된다.

 

다음과 같이 방금 업데이트를 시도했고, 업데이트가 성공적이라고 나타나 있다. 이제 github로 가보면 정상적으로 미러링 되어 있다.

 

이제 앞으로도 gitlab에다가 Push를 하면 gitlab에서 알아서 github로 미러링 해줄 것이다.

 

 

 

Gitlab에도 이에 대한 가이드가 상세하게 나와있기는 하지만, 개인적으로 삽질을 좀 한터라 메모 겸 공유해봅니다.

도움이 되셨기를 바랍니다.