-
-
Save yermulnik/017837c01879ed3c7489cc7cf749ae47 to your computer and use it in GitHub Desktop.
| git_protocol: ssh | |
| aliases: | |
| personal: '!cp ~/.config/gh/hosts.yml.personal ~/.config/gh/hosts.yml && gh auth status' | |
| work: '!cp ~/.config/gh/hosts.yml.work ~/.config/gh/hosts.yml && gh auth status' |
Thank you very much. It works great. But I had to add gh auth setup-git to the aliases to make git recognize switched profiles. So, my aliases inside ~/.config/gh/config.yml looks like as below currently:
aliases:
co: pr checkout
personal: '!cp ~/.config/gh/hosts.personal.yml ~/.config/gh/hosts.yml && gh auth setup-git && gh auth status'
work: '!cp ~/.config/gh/hosts.work.yml ~/.config/gh/hosts.yml && gh auth setup-git && gh auth status'This method works like a charm with direnv.
Suppose you have
~/work
~/personal
Put .envrc in each dir and write the same thing.
ex.) ~/work/.envrc
/bin/cp ~/.config/gh/work.yml ~/.config/gh/hosts.yml && gh auth statusWhen you cd ~/work, the command above is automatically run by direnv.
https://github.com/cli/cli/releases/tag/v2.40.0
With the
v2.40.0release, multi-account support is introduced toghfor GitHub.com and GitHub Enterprise and it is only the beginning!
Thanks. The one thing that is missing for me (...or I just haven't worked it out yet):
Can you use a hostname other than 'github.com'?
For instance if your .ssh/config has a 'github-work' and a 'github-personal' how would one point the alias (or hosts.yml.work, not sure where it would need to happen) to use the 'github-work' hostname from .ssh/config?
Still love this overall though, thanks!
Can you use a hostname other than 'github.com'?
You should be able to. Try replacing the github.com in hosts.yml.<whetever_you_named_it> with the actual GHE hostname that you use to connect to your GHE instance.
For instance if your .ssh/config has a 'github-work' and a 'github-personal' how would one point the alias (or hosts.yml.work, not sure where it would need to happen) to use the 'github-work' hostname from .ssh/config?
Don't think it's feasible as GH CLI and SSH CLI don't have anything in common around SSH host aliases.
To the best of my knowledge, in GH CLI config you have to use actual GH instance hostname and it doesn't support aliasing. But you should be good to go with actual GHE instance hostname.
Still love this overall though, thanks!
Nowadays you definitely should better use gh auth login and gh auth switch (see gh auth login --help and gh auth switch --help for details on args).
Thanks for the quick response, and I'll look into gh switch and multiple accounts too. Cheers.
thank you T_T