🔄
direnv で gh auth switch したら楽になった話
tl;dr
- direnv(.envrc)に
dh auth switch -u アカウントとgh auth tokenを書いてアカウントの切り替えを楽にしたという話
アカウントって200個あんねん(ない
- 冗談はさておき、個人用、職場用など複数の GitHub アカウントを持っていて切り替えが面倒
-
gh auth statusでアカウントが複数あるってこと -
gh auth tokenをGITHUB_TOKENやGH_TOKENに設定するといろいろ楽 - トークンだけ設定してたらアカウントの切り替えにミスってコマンドにエラーが出た
- 具体的には職場用のアカウントに切り替えたまま個人用のタスクを実行したら権限エラー(それはそう
というわけで
.envrc
gh auth switch -u officel
export GITHUB_TOKEN=$(gh auth token)
という風にして、個人用ディレクトリと職場用ディレクトリとその他でスイッチしてからトークンを処理させるようにしたらなかなかよかった、という話
.envrc
export GH_TOKEN=$(gh auth token -u officel)
これでもいいんだけど組み合わせでエラーを出したので必要なディレクトリではスイッチしておいたほうが安全だなと
注意
- 処理によって PAT が必要なケースがある(コマンドによる)
- act のテストとかはちょっと注意
- 権限過剰にも注意(AIを使用している時に食っちゃうとか)
- いや、単にそういうディレクトリではトークンを処理しないだけ(ユーザー切り替えするだけ)なので、必要なところで必要な時だけ使いましょうねということ
- あと
GITHUB_TOKENをこの方法で設定してるとgh auth switchで怒られるのでその場合はunset GITHUB_TOKENすれば大丈夫 -
GITHUB_TOKENとGH_TOKENの使い分けは優先順位ってことになってるんだけど、リポジトリ毎にローカルで設定するならGITHUB_TOKENに固定して設定しておけば問題ないかなって
まとまらないけど
リポジトリやディレクトリ単位でアカウントの使い分けがちゃんとできるようになったという話(今更
Discussion