skip to content
barorin&

refusing to allow a Personal Access Token to create or ...

/ 3 min read

Table of Contents

はじめに

GitHub リポジトリに対してgit push -u origin masterを実行したところ、workflowを含むコミットがpushできず、次のようなエラーが発生しました。

Terminal window
refusing to allow a Personal Access Token to create or update workflow .github/workflows/bump-version.yml without workflow scope
error: failed to push some refs to 'https://github.com/xxx/yyy.git'

原因は、Fine-grained personal access token(以下、Fine-grained PAT)を使用していたものの、該当トークンにworkflowスコープが付与されていなかったことでした。 本記事では、実際にどのようにトークンを修正し、pushを通したかを手順としてまとめます。

解決策

  1. 使用中の Fine-grained PAT を特定する
    GitHub > 右上のプロフィールアイコン > Settings > 左メニューの下の方にあるDeveloper settings > Personal access tokens > Fine-grained tokens
    ここに、現在有効なFine-grained PATの一覧が表示されるので、今回のリポジトリへのアクセスに利用しているトークンを特定します。

  2. Fine-grained PAT の権限を確認・編集する
    対象のFine-grained PATをクリックすると、そのトークンに紐づく設定画面が表示されるので、以下を確認し、権限を更新すればOKです。

  • Repository access」で対象リポジトリが含まれているか
  • PermissionsでWorkflowsに関連する権限がどのレベルになっているか
  • Fine-grained PATの場合、権限は「読み取りのみ」「読み取りと書き込み」「なし」といった粒度で設定されているので、workflow を更新したい場合は、少なくとも該当リポジトリに対して Actions/Workflowsを「読み取りと書き込み」にしておく必要があります。
  • ただし、既存の Fine-grained PATは編集できる項目が限られている場合があり、その場合は新しくトークンを作り直す方が早いケースもあります。