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

GitHub Actions:「not allowed to deploy to github-pages due to environment protection rules」

デプロイのジョブは始まってもいません。github-pages の環境は、そこへデプロイしてよいブランチとタグの一覧を持っていて、この実行が始まった ref はその一覧にありません。引用符の中の名前がその ref です。環境の設定でその ref のルールを足すか、一覧がもう許している ref からデプロイします。

見え方

Branch "main" is not allowed to deploy to github-pages due to environment protection rules.
The deployment was rejected or didn't satisfy other protection rules.

環境が許しているものを見る

一覧は Settings の Environments、github-pages、Deployment branches and tags にあります。変えられるのはリポジトリの管理者だけです。リポジトリを読める人なら誰でも表示できます:

gh api repos/OWNER/REPO/environments/github-pages --jq .deployment_branch_policy
gh api repos/OWNER/REPO/environments/github-pages/deployment-branch-policies \
  --jq '.branch_policies[] | "\(.type) \(.name)"'
{"custom_branch_policies":true,"protected_branches":false}
branch main

custom_branch_policies は設定の Selected branches and tags で、その下の行がそのルールです。protected_branches は Protected branches only です(後で説明します)。

ルールは、誰も足していないのに入っていることがあります。GitHub のドキュメントには「If the environment is created from running implicit page builds (for example, from a branch or folder source), the source branch will be added as a protection rule to the environment.」(ブランチやフォルダーを公開元にした暗黙の Pages のビルドで環境が作られたときは、公開元のブランチが保護のルールとして環境に足される)とあります。つまり、前にブランチから公開していたリポジトリは、GitHub Actions に移ったあともそのブランチをルールに持ったままです。scatter_smooth の環境は main と gh-pages を許していて、タグ v0.2.2 からのデプロイは断られました(#30)。

1. タグやリリースからデプロイする

MGUK-KERS-Simulator は、v* のタグが push されたときに Pages をデプロイします。2026年11月1日のタグの実行は5回とも断られ、そのたびに main での手動の実行でサイトを出していました(#16)。workshop-template から作ったサイトも、最初のリリースで同じ目にあいました(Tag "v0.1.0"・#167)。

2. もう使っていないブランチのルール

open-questions では、夜間のデプロイは main で動くのに、環境は master しか許していませんでした(#25)。一覧にもうデプロイに使っていないブランチがあるなら、使っているブランチのルールを足し、古いほうを消します。

3. ほかのブランチからデプロイする

discipline は develop からデプロイしていて、2026年10月4日からはそのデプロイがすべて断られました(#494)。ほかのブランチで手動で実行しても(Run workflow の Use workflow from)同じように断られます。デプロイのたびにサイト全体が入れ替わるので、ワークフローを動かすブランチを全部ではなく、サイトの元にする1本だけを許します。何本も許すと、サイトは最後にデプロイしたものになります。

「Protected branches only」

この設定では、ブランチ保護のルールがかかっているブランチがデプロイできます。リポジトリのどのブランチにもルールが無ければ、すべてのブランチがデプロイできます。ドキュメントはさらに、保護されたブランチと同じ名前のタグで始まった実行はデプロイできないと書いています。タグからデプロイするなら、Selected branches and tags にして、1のようにタグのルールを足します。

見分け方

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

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

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

ほかに:「Get Pages site failed」 · 「Resource not accessible by integration」 · 「Invalid workflow file」 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English