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を叩かなくていいことも多々あるので、まずはドキュメント端から全部読んでみましょう。