지난해 Github에서 커맨드라인에서 사용가능한 Github CLI를 릴리즈했다. 형상관리는 당연히 커맨드라인에서도 할 수 있는데, 형상관리를 넘어서서 원격저장소를 생성하거나 이슈 등록, PR 등 웹에서 지원하는 기능들을 커맨드라인에서 할 수 있는 툴을 공개한 것이다.
아직 익숙하지 않은 툴이어서 연습도 해볼겸 FirstContributions라는 오픈소스에 문서작성으로 기여를 하려고 했다. 그러나 리뷰까지 다 받았음에도 Merge 해주지 않으셔서 한글로 다시 번역해서 블로그에 공개키로 결정했다.
공식문서가 굉장히 잘되어 있기 때문에 사실 본 포스팅을 보는 대신 그냥 공식문서를 보는게 더 나을지도 모른다. 본 포스팅은 Github CLI의 모든 명령어를 정리하기 보다는 컨트리뷰션에 기여하는 방법을 정리한 포스팅이다.
Github CLI를 사용하기 위해서는 당연하게도 터미널이 필요하다. 본 포스트는 iTerm2를 기반으로 작성되었다.
ToC
Github CLI 설치하기
Reference : Github CLI - Installation
공식 웹페이지에서 설치하기
- Github CLI 공식 웹 페이지에서 설치할 수 있다.
Homebrew (MacOS, Linux)
Mac이나 리눅스 사용자라면, 홈브루를 통해서도 설치할 수 있다.
1
brew install gh
설치가 되었다면 아래처럼 버전확인을 할 수 있다.
1
gh --version
Auth 등록하기
Reference : Github CLI - gh auth login
Github CLI를 사용하기 위해서는 Github 계정 인증(Authentication)을 받아야한다.
인증하는 방식은 두가지로 구분된다.
- 웹으로 인증하기
- 토큰 이용하기
디폴트는 웹으로 인증하는 방식으로 되어있으므로 본 포스트도 웹으로 인증하는 방식을 소개하겠다.
Github.com을 선택하고 엔터를 입력한다.
여기서 인증방식을 선택할 수 있다. 본 포스팅은 웹 브라우저를 통한 인증방식을 기반으로 작성한다.
웹 브라우저를 통해 인증하기 때문에 브라우저에서 Github에 로그인이 되어있어야 한다.
여기까지 완료되면, 로그인을 위한 일회용 코드가 발급된다. 엔터를 입력하면 브라우저에서 이 일회용 코드를 입력하는 창이 열린다.
발급받은 코드를 입력하고, 이제부터 웹 브라우저에서 Github CLI 인증에 필요한 작업을 진행한다.
인증 권한을 확인한다.
웹 브라우저에서 Github CLI에 대한 인증작업이 마무리되면 터미널에서도 인증이 끝난걸 확인할 수 있다.
레포지토리 포킹(Fork)
Reference : Github CLI - gh repo fork
컨트리뷰션 대상 레포지토리를 내 Github 저장소로 포킹한다.
1 | gh repo fork [repository-owner]/[repository-name] |
그럼 위의 이미지처럼 포킹할 것인지를 묻는다. Y
를 입력하면 포킹과 클론이 함께 진행된다.
끝났다면, 레포지토리 리스트를 조회해서 방금 포킹한 레포지토리가 정상적으로 내 Github 계정의 레포지토리로 포크되었는지 확인하자. 그리고 로컬에도 레포지토리가 클론되었는지 확인하자.
1 | gh repo list |
커밋 생성 및 푸쉬
Reference : Git-scm - 2.2 Git의 기초, 수정하고 저장소에 저장하기
레포지토리가 성공적으로 포크와 클론이 마무리되었다면, 이제 커밋을 생성할 차례이다. 커밋을 만들기전 작업의 목적에 맞는 브랜치를 만들어서 커밋을 관리해보자.
브랜치를 생성한다.
1 | git branch [your-new-branch-name] |
생성된 브랜치로 현재의 브랜치를 변경한다.
1 | git switch [your-new-branch-name] |
변경사항이 있다면, 이제 커밋을 만들면 된다.
1 | git commit -m "[commit-message]" |
커밋까지 생성했다면 이제 원격저장소(cloned)에 커밋을 반영한다.
1 | git push --set-upstream origin [your-branch-name] |
이슈 등록하기
Reference : Github CLI - gh issue create
Github에 이슈를 등록하는 방법이다.
1 | gh issue create -t "[Bug] need to be fix.." |
issue를 등록할 때 사용하는 옵션 키워드는 아래와 같다.
Command | Option | Definition |
---|---|---|
-t | --title | 이슈 제목 |
-l | --label | 라벨 |
-a | --assginee | 이슈 할당자 |
PR 생성하기
Reference : Github CLI - gh pr create
코드리뷰를 위한 PR을 생성하는 방법이다.
1 | gh pr create [repository-owner]/[repository-name] |
커맨드라인에서 원격 저장소에 올라온 PR 리스트를 확인할 수도 있다.
1 | gh pr list |
웹 브라우저에서 확인해보면 커맨드라이넹서 본 PR 리스트와 일치하는걸 확인할 수 있다.