서론
Linux 사용자는 Git과 GitHub 연동 시, Windows나 macOS와 달리 원활한 연동이 수행되지 않아 불편함을 느끼곤 한다. 이러한 문제의 대안으로 GitHub CLI인
gh
를 사용하면, 별도의 SSH 키나 토큰을 수동으로 설정하지 않고도 GitHub와의 연동을 간소화할 수 있다. 본 블로그 포스팅은 이 불편함을 해결하고자 작성되었다.gh과 Git Credential Helper
1. GitHub CLI(gh)
GitHub CLI는 GitHub 공식에서 제공하는 명령줄 도구이다. 사용자로 하여금 브라우저 없이 이슈, PR, 리포지토리 작업을 비롯한 다양한 GitHub 기능을 명령줄에서 직접 실행할 수 있게 해준다. 또한
gh auth
관련 기능은 Git credential helper와 긴밀히 연동되어, GitHub 계정 인증 정보를 안전하게 저장 및 재사용할 수 있는 특징이 있다.2. Git Credential Helper
Git은 인증 정보를 저장하고 꺼내 쓰는 과정을 간소화하기 위해 Credential Helper(자격 증명 헬퍼) 기능을 제공한다. 일반적으로 Linux 환경에서는
git-credential-store
나 git-credential-libsecret
등의 헬퍼를 선택하여 사용한다. 그러나 GitHub CLI가 제공하는 gh auth git-credential
을 활용하면, GitHub CLI로부터 발급받은 토큰을 Git 명령에도 손쉽게 적용할 수 있다.적용법
1. GitHub CLI 설치 및 초기 설정
- 설치: 일반적으로 Debian/Ubuntu 계열은
sudo apt install gh
를 통해 설치하거나, GitHub CLI 공식 문서에서 패키지 다운로드 후 설치 가능.
- 버전 확인:
gh --version
버전을 확인해 정상 설치 여부를 판단한다.
2. GitHub 계정 인증
- 명령어 실행:
gh auth login
실행 후, 터미널에 표시되는 안내에 따라 GitHub.com 또는 Enterprise GitHub를 선택하고, HTTPS or SSH 등 프로토콜을 고른다. 브라우저 인증 혹은 토큰 입력 방식을 선택하여 인증을 완료한다. 성공 시
~/.config/gh/hosts.yml
에 GitHub 액세스 토큰이 저장된다.3. Git Credential 연동 설정
- GitHub CLI 기반 Credential Helper 등록:
gh auth setup-git
이 명령어는 Git 설정을 다음과 같이 등록한다:
git config --global credential.helper '!gh auth git-credential'
이후 GitHub 저장소에서
git push
, git pull
명령 실행 시, 자동으로 gh
CLI가 발급받은 토큰이 사용되어 별도의 인증 입력 없이 작업할 수 있다.4. 설정 확인
- Git Credential Helper 확인:
git config --global credential.helper
!gh auth git-credential
로 설정되어 있으면, GitHub CLI의 인증 정보를 Git에서 읽어오는 구조가 잘 적용된 것이다.결론
이번 포스팅에서는 Linux 환경에서 GitHub CLI를 활용해 Git과 GitHub 간의 연동을 자동화하는 방법을 살펴보았다. 이를 통해 별도의 SSH 키 생성이나 수동으로 Personal Access Token(PAT)을 매번 입력해야 하는 번거로움 없이, GitHub CLI에서 발급받은 토큰을 Git Credential Helper에 간편하게 등록할 수 있었다.
참고문헌
- GitHub CLI: https://cli.github.com/
- GitHub CLI 공식 문서: GitHub CLI Manual
- GitHub Docs: Caching your GitHub credentials in Git