프로젝트/공부시 깃헙 이슈와 커밋내역을 연동하는것을 좋아하는데(기록으로 남으니까!), 하나하나 GUI로 등록하자니 비효율적이라고 느껴졌다. 그래서 "git cli로 커밋시 이슈 연결/닫기는 가능한데, 이슈 생성은 못하는건가?"하는 의문이 들어 방법을 찾아보았다. 결론적으로는, GH CLI(GitHub Command-Line Interface)가 필요하다고 한다.
나는 homebrew로 설치했다.
brew install gh
아래 명령어로 잘 설치되었는지 확인해본다.
gh version
설치확인 후 이슈를 등록하려고 제시된 명령어를 사용했는데, 그 전에 gh auth login을 구동해달라고 한다.
사용자 인증이 필요하다는 내용인것 같다. auth는 authorized(인증된)의 줄임말로 추정된다.gh auth login
명령어를 입력하면 여러가지 묻는데, 사용자 인증에 필요한 내용들이다.
모두 대답하면 8자리의 인증 코드가 뜨면서 Enter를 누르라고 한다.(혹시몰라 캡쳐하지 않았다.)
Entert시 새 브라우저 창이 뜨고, 8자리의 인증 코드를 입력하면 아래와 같이 인증완료되었다는 화면이 나온다.
링크에서 필요한 부분(issue 등록, 완료 등)에 가면 GUI를 사용한 방법과 CLI를 사용한 방법 모두 나와있다.
https://docs.github.com/en/issues/tracking-your-work-with-issues
GH CLI를 사용해서, 이슈를 등록했다.(제목, 본문, 담당자 뿐만 아니라 레이블 등등 모두 설정가능하다. 다만 이미 설정되어있는 레이블만 가져올 수 있다.)
case1.이슈 제목과 본문만 적는 경우gh issue create --title "이슈 제목" --body "본문 내용 작성하면 됩니다."
case2.담당자, 레이블 등 기타정보도 적는 경우
(담당자는 @ 뒤에 이름을 적어주면 된다. 자신인 경우 @me 로 하면 된다.)gh issue create --title "이슈 제목" --body "본문 내용 작성하면 됩니다." --assignee @담당자 --label "레이블명" --project 프로젝트명 --milestone "마일스톤명"
그리고 commit을 하면서 이슈를 링크하고 닫는 명령어를 입력했다.
그런데, 깃헙 레포에 가보니 커밋내역에는 분명히 이슈넘버가 잘 반영되어 있는데, 이슈가 close 되지 않았다.
아마 main 브랜치에 반영되어야만 close 되는 모양이다.(나는 develop 브랜치에 커밋했었다.)
브랜치 병합을 위해 main 브랜치로 이동하여 병합 후 푸쉬해주었다.(내 경우 upstream)
git switch main
git merge <main에 합칠 브랜치 이름>
git push upstream
예상대로 merge 해주었더니 3번 이슈는 GUI를 건드리지 않았는데도 닫힘처리 되었다.
그런데 4번 이슈는 여전히 닫히지 않았음을 알 수 있었는데,
아마 이슈를 여러개 링크할 시, 이슈넘버 앞에 각각 close 라고 써주어야 하는 것 같다.
(여러개의 이슈에 연결되어있는 commit 이더라도 어떤 이슈에는 완료이고, 어떤 이슈에는 완료가 아닐 수 있으니)
4번 이슈는 GUI로 닫힘 처리하고, 다음에 여러 이슈를 닫아야 할 일이 생기면 적용해보자.
이렇게 찬찬히 적어보니 좀 더 잘 머리에 들어오는 것 같다. 다만 마크다운을 좀 써서 꾸밀 필요가 더 있을까...싶긴하다.