Lesstep
GitHub Actions・2026年11月3日に確認

GitHub Actions:「refusing to allow a GitHub App to create or update workflow」

.github/workflows の下のファイルを足したり変えたりするコミットの書き込みを、GitHub が断りました。トークンにワークフローのファイルを書く権利が無いからです。ほとんどは、フォークを上流に合わせ続ける定期のジョブで、上流が自分のワークフローを直した日に起きています。

見え方

git push のとき(promxy #1):

! [remote rejected] master -> master (refusing to allow a GitHub App to create or update
  workflow `.github/workflows/build.yml` without `workflows` permission)

gh repo sync や merge-upstream の API のとき(sparkDash #1):

gh: refusing to allow a GitHub App to create or update workflow `.github/workflows/publish-image.yml` without `workflows` permission (HTTP 422)

「refusing to allow」のあとの言葉で、トークンの種類がわかります:

チェックが掛かるとき

GitHub の OAuth のスコープの一覧には、同じファイル(パスも中身も同じ)が同じリポジトリの別のブランチにあれば、このスコープなしでワークフローのファイルをコミットできる、とあります。見られるのは push するコミットの中のワークフローのファイルで、変えるつもりだったかどうかではありません:

GITHUB_TOKEN ではけっしてできない

workflows は、ワークフローが GITHUB_TOKEN に設定できる権限に入っていないので、permissions をどう書いても助けになりません。gh repo sync が使う merge-upstream の API も、同じようにチェックされます(github-code-monkey-bot #12)。

どうするか

同期のジョブに強いトークンを渡す前に、何を push するかを見ます。promxy のジョブは git reset --hard upstream/master をして強制 push していました。ワークフローを書けるトークンだったら、フォーク自身の mirror-sync.yml を消し、最初に成功したあとで自分の定期実行を止めていたところでした。それまでの定期の実行はすべて失敗していて、GitHub は活動が無いとしてワークフローを止めていました。

自分の PC で出たら

見分け方

失敗したジョブを IntelliJ IDEA から見るなら

Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べ、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。

GitHub と GitHub Actions は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:GitHub:フォークが同期できない · 「could not read Username for 'https://github.com'」 · 「Permission to ... denied to github-actions[bot]」 · 「Resource not accessible by integration」 · 「Invalid workflow file」 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English