0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[メモ] GitHub CLI と direnv で GitHub の複数アカウント使い分けをちょっと楽にした

Last updated at Posted at 2021-10-19

前置き

GitHub に2つの個人アカウントを持っているのですが、これらを使い分けることにしたので忘れないうちに何をしたかをメモします。
2つ持っている経緯は忘れましたが、せっかくなので活用してやろうというのが動機です。

Prerequisites

具体的に何をしたか

あるディレクトリ(ここでは ~/Directory とします)以下でのみ別アカウントを利用することにしました。

別ユーザとして振る舞う

Git を利用する際、普段は ${XDG_CONFIG_HOME}/git/config 辺りにグローバルな設定を書いていると思います。

ユーザ情報に関わる部分は user.nameuser.email 辺りですね。

これらは環境変数で上書きすることができるようです。参考

  • GIT_AUTHOR_NAME
  • GIT_AUTHOR_EMAIL
  • GIT_COMMITTER_NAME
  • GIT_COMMITTER_EMAIL

これらを direnv で設定してやれば、そのディレクトリ配下ではそのユーザとして振る舞うことができそうです(多分)。

GitHub CLI で利用する別のトークンを用意する

これも GitHub CLI が読む環境変数を上書きしてやることで実現します。参考

  • GH_CONFIG_DIR

これを他のアカウントで利用しているものと別の場所を見るように変更してやります。今回は ~/Directory/.gh としました。

手順

  1. ~/Directory に次の .envrc を用意しました(適宜読み替えてください)。
  2. direnv allowgh auth login を実行し、このディレクトリ以下で利用するアカウントの認証を通しました(preferred protocol は HTTPS としました。SSH だと考えることが増えそうなのでパスです)。
  3. あとは GitHub からの clone は gh repo clone をする感じで利用していきます。
~/Directory/.envrc
export GIT_AUTHOR_NAME=<name>
export GIT_AUTHOR_EMAIL=<e-mail>
export GIT_COMMITTER_NAME=<name>
export GIT_COMMITTER_EMAIL=<e-mail>

export GH_CONFIG_DIR=~/Directory/.gh

最後に

初め COMMITTER のスペルを間違えていました。MもTも2つなんですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?