Github CLI 맛보기

지난해 Github에서 커맨드라인에서 사용가능한 Github CLI를 릴리즈했다. 형상관리는 당연히 커맨드라인에서도 할 수 있는데, 형상관리를 넘어서서 원격저장소를 생성하거나 이슈 등록, PR 등 웹에서 지원하는 기능들을 커맨드라인에서 할 수 있는 툴을 공개한 것이다.

아직 익숙하지 않은 툴이어서 연습도 해볼겸 FirstContributions라는 오픈소스에 문서작성으로 기여를 하려고 했다. 그러나 리뷰까지 다 받았음에도 Merge 해주지 않으셔서 한글로 다시 번역해서 블로그에 공개키로 결정했다.

공식문서가 굉장히 잘되어 있기 때문에 사실 본 포스팅을 보는 대신 그냥 공식문서를 보는게 더 나을지도 모른다. 본 포스팅은 Github CLI의 모든 명령어를 정리하기 보다는 컨트리뷰션에 기여하는 방법을 정리한 포스팅이다.

Github CLI를 사용하기 위해서는 당연하게도 터미널이 필요하다. 본 포스트는 iTerm2를 기반으로 작성되었다.

ToC



Github CLI 설치하기

Reference : Github CLI - Installation

  • 공식 웹페이지에서 설치하기

  • Homebrew (MacOS, Linux)

    • Mac이나 리눅스 사용자라면, 홈브루를 통해서도 설치할 수 있다.

      1
      brew install gh
    • 설치가 되었다면 아래처럼 버전확인을 할 수 있다.

      1
      gh --version
      Github CLI 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]
Fork repository via Github CLI

그럼 위의 이미지처럼 포킹할 것인지를 묻는다. Y를 입력하면 포킹과 클론이 함께 진행된다.

Fork repository via Github CLI

끝났다면, 레포지토리 리스트를 조회해서 방금 포킹한 레포지토리가 정상적으로 내 Github 계정의 레포지토리로 포크되었는지 확인하자. 그리고 로컬에도 레포지토리가 클론되었는지 확인하자.

1
gh repo list
Repository List

커밋 생성 및 푸쉬

Reference : Git-scm - 2.2 Git의 기초, 수정하고 저장소에 저장하기

레포지토리가 성공적으로 포크와 클론이 마무리되었다면, 이제 커밋을 생성할 차례이다. 커밋을 만들기전 작업의 목적에 맞는 브랜치를 만들어서 커밋을 관리해보자.

브랜치를 생성한다.

1
git branch [your-new-branch-name]

생성된 브랜치로 현재의 브랜치를 변경한다.

1
git switch [your-new-branch-name]
Create branch and switch

변경사항이 있다면, 이제 커밋을 만들면 된다.

1
git commit -m "[commit-message]"
Commit changes

커밋까지 생성했다면 이제 원격저장소(cloned)에 커밋을 반영한다.

1
git push --set-upstream origin [your-branch-name]

Push changes into repository forked


이슈 등록하기

Reference : Github CLI - gh issue create

Github에 이슈를 등록하는 방법이다.

1
2
3
gh issue create -t "[Bug] need to be fix.."
gh issue create -l "bug, help wanted"
gh issue create -a @me

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]

Source : Github CLI

커맨드라인에서 원격 저장소에 올라온 PR 리스트를 확인할 수도 있다.

1
gh pr list

PR List in console

웹 브라우저에서 확인해보면 커맨드라이넹서 본 PR 리스트와 일치하는걸 확인할 수 있다.

PR List in web view