GitHub APIのレート制限でツールのインストールに失敗する
jdx/mise-actionは、ツールの最新バージョン確認やリリースアセットのダウンロードにGitHubのAPIを使う。GitHub APIは未認証のアクセスに対して低いレート制限がかかっている。多くのワークフローを同時に実行する環境ではこの制限に引っかかり、インストールに失敗する場合がある。github_token入力を使うと、GitHubの認証情報でAPIリクエストを認証し、レート制限を緩和できる。
github_tokenは既定で自動設定されている
jdx/mise-actionは、何も指定しなくても既定でワークフロー実行時に自動発行されるGITHUB_TOKENを使う。
- uses: actions/checkout@v4
- uses: jdx/mise-action@v4
- run: mise --version
ログを確認すると、github_tokenが渡され、mise内部でMISE_GITHUB_TOKENとして設定されていることが分かる。
github_token: ***
Setting MISE_GITHUB_TOKEN=***
DEBUG GET https://api.github.com/repos/jqlang/jq/releases?per_page=100
DEBUG GET https://api.github.com/repos/jqlang/jq/releases?per_page=100 200 OK
mise installがツールのリリース一覧を取得する際、このトークンを使ってGitHub APIにリクエストしている。
明示的にトークンを指定する
同一リポジトリ内での利用であれば既定のGITHUB_TOKENで十分だが、より緩いレート制限を使いたい場合や、プライベートリポジトリでホストされたツールを取得したい場合は、github_tokenに個人アクセストークンなどを明示的に渡す。
- uses: jdx/mise-action@v4
with:
github_token: ${{ secrets.MISE_GITHUB_TOKEN }}
secretsに事前登録した専用のトークンを渡すと、既定のGITHUB_TOKENとは異なる権限やレート制限枠を使える。
\第一線のプログラマーの行動原理を学べる!/
