refusing to allow a Personal Access Token to create or ...
/ 3 min read
Table of Contents
はじめに
GitHub リポジトリに対してgit push -u origin masterを実行したところ、workflowを含むコミットがpushできず、次のようなエラーが発生しました。
refusing to allow a Personal Access Token to create or update workflow .github/workflows/bump-version.yml without workflow scopeerror: failed to push some refs to 'https://github.com/xxx/yyy.git'原因は、Fine-grained personal access token(以下、Fine-grained PAT)を使用していたものの、該当トークンにworkflowスコープが付与されていなかったことでした。 本記事では、実際にどのようにトークンを修正し、pushを通したかを手順としてまとめます。
解決策
-
使用中の Fine-grained PAT を特定する
GitHub > 右上のプロフィールアイコン > Settings > 左メニューの下の方にあるDeveloper settings > Personal access tokens > Fine-grained tokens
ここに、現在有効なFine-grained PATの一覧が表示されるので、今回のリポジトリへのアクセスに利用しているトークンを特定します。 -
Fine-grained PAT の権限を確認・編集する
対象のFine-grained PATをクリックすると、そのトークンに紐づく設定画面が表示されるので、以下を確認し、権限を更新すればOKです。
- Repository access」で対象リポジトリが含まれているか
- PermissionsでWorkflowsに関連する権限がどのレベルになっているか
- Fine-grained PATの場合、権限は「読み取りのみ」「読み取りと書き込み」「なし」といった粒度で設定されているので、workflow を更新したい場合は、少なくとも該当リポジトリに対して Actions/Workflowsを「読み取りと書き込み」にしておく必要があります。
- ただし、既存の Fine-grained PATは編集できる項目が限られている場合があり、その場合は新しくトークンを作り直す方が早いケースもあります。