ぶていのログでぶログ

思い出したが吉日

GitHub Appのトークンを発行するGitHub CLI拡張を作った

私はGitHub AppをGitHub Actionsで主に使っているのだけど、手元でスクリプトの動作検証をしたいときにJWTを作って…トークンを発行して…というのが面倒だったので、GitHub CLIの拡張として新たにコマンドを作った。 同じことを考えている人がいるはず!っと検索をしたけど、見つからなかったので車輪の再発明ではないはず…たぶん…

github.com

使い方

まず、前提としてGitHub CLI(ghコマンド)がインストールされているとして、以下のコマンドを実行してgh-app-tokenをインストールする。

gh extension install buty4649/gh-app-token

トークンの発行は、1. installation idを直接指定する方法、2. organizationを指定する方法、3. リポジトリを指定する方法、4.ユーザを指定する方法がある。 ここらへんは、actions/create-github-app-tokenの指定方法を模してみた。

# 1. installation idを直接指定する方法
gh app-token --app-id <APP_ID> --private-key <PRIVATE_KEY> --installation-id <INSTALLATION_ID>

# 2. organizationを指定する方法
gh app-token --app-id <APP_ID> --private-key <PRIVATE_KEY> --org <ORGANIZATION>

# 3. リポジトリを指定する方法
gh app-token --app-id <APP_ID> --private-key <PRIVATE_KEY> --repo <OWNER/REPO>

# 4.ユーザを指定する方
gh app-token --app-id <APP_ID> --private-key <PRIVATE_KEY> --user <USERNAME>

便利

おわりに

GitHub AppのトークンをCLIで発行できる便利ツールを作った。 このツールを作りにあたり、CursorのAgentモードを使ったのだがシュッと作れて良い。

(2025/06/17追記) 思いっきりバグっていたのでv1.1.0をだした

v1.0.0のときは問題なく動いていたのだが、そのあと出したv1.0.1がバグっていた… そして、go-ghを使っていたのだが、これが内部的にghコマンドを叩いてトークンを発行していた…そのトークンは使われないので問題は起きなかったのだが無駄な処理が走っていたので、go-githubに置換して無駄な処理を減らした。