Notes to Self

Alex Sokolsky's Notes on Computers and Programming

gh CLI

I use github cli gh, docs. Here is how to use different accounts for different repos.


Authentication info is stored in ~/.config/gh/*.yml.

On my office laptop $GH_CONFIG_DIR is not set:

> echo $GH_CONFIG_DIR # returns blank

My authentication status:

> gh auth status
  ✓ Logged in to as asokolsky4foobar (oauth_token)
  ✓ Git operations for configured to use ssh protocol.
  ✓ Token: *******************

Project-specific Credentials

To use different credentials while working on a project:

cd project_dir/
mkdir .config
export GH_CONFIG_DIR=.config

Verify your credentials are null:

> gh auth status
You are not logged into any GitHub hosts. Run gh auth login to authenticate.

Establish credentials:

> gh auth login
? What account do you want to log into?
? What is your preferred protocol for Git operations? HTTPS
? Authenticate Git with your GitHub credentials? Yes
? How would you like to authenticate GitHub CLI? Login with a web browser

! First copy your one-time code: E79C-7ADD
Press Enter to open in your browser...
✓ Authentication complete.
- gh config set -h git_protocol https
✓ Configured git protocol
✓ Logged in as asokolsky
asokolsky in ~/Projects/ [main]>

I also added .config/* to the repo’s .gitignore.