ちなみに

火曜日の空は僕を押しつぶした。

GitHub Actions の GitHub-hosted runners には gh が入っている。つまり。

GitHub Actions の GitHub-hosted runners にはいろんなソフトウェアがインストールされています。たとえば ubuntu-latest だとこういう感じ。

よく見ると GitHub CLI 2.0.0 が含まれている。つまり actions/github-script は不要だったのだ。(JSで書く方が楽な場合もあるけど)

以下のように認証して使うとだいたい何でも出来る。

echo '${{ secrets.GITHUB_TOKEN }}' | gh auth login --with-token

勘のいいみなさんなら気付いたかと思いますが、実はこれだと 権限が足りない

The minimum required scopes for the token are: "repo", "read:org". https://cli.github.com/manual/gh_auth_login

しかし、参照系ならだいたいいけるので情報取得だけならこれでよい。もうちょっと強い権限が欲しい場合は自分で PAT を用意すればいい。

さて、gh が入っていたら何が出来るのでしょうか。

答えは API で出来ることならなんでも出来ます。

なぜなら gh api サブコマンドがあるので。 REST API でも GraphQL API でも何でも実行出来るから。これで勝利したも同然。

また gh api サブコマンドには --jq オプションがあって、これを使うとAPIのレスポンスを gojq でパース出来る。よってレスポンスをごにょごにょするのもお手の物である。まじ最高。

-q, --jq string Query to select values from the response using jq syntax https://cli.github.com/manual/gh_api

しかしながら、そもそも 各種サブコマンド により、直接APIを叩かなくていいことも多々あるので、まずはドキュメント端から全部読んでみましょう。