What happened
Dispatching Actions → Refresh visual baselines (sites=guides, ref develop) on 2026-07-06 completed the rebuild + screenshot + --update steps successfully, then failed at Commit and push refreshed baselines:
remote: error: GH013: Repository rule violations found for refs/heads/develop.
remote: - Changes must be made through a pull request.
remote: - 3 of 3 required status checks are expected.
! [remote rejected] HEAD -> develop (push declined due to repository rule violations)
Run: https://github.com/wheels-dev/wheels/actions/runs/28789467591
The workflow predates the develop branch ruleset — it commits the refreshed PNG(s) and pushes HEAD -> $BRANCH directly, which the ruleset now forbids for develop.
Fix
Convert the final step to the PR + auto-merge pattern already used elsewhere in this repo: push the commit to a chore/refresh-baseline-<sites>-<run_id> branch, gh pr create against the target branch, and gh pr merge --auto --squash --delete-branch.
Two known gotchas from prior conversions of this exact kind:
- The token needs
pull-requests: write in addition to contents: write — missing scope fails silently.
- The PR title must be a valid conventional commit ≤100 chars (the Validate Commit Messages required check lints PR titles).
Workaround used meanwhile
Manual PR with the CI-rendered screenshot (#3282). Note for anyone doing the same: baselines must be Linux/CI-rendered — a locally captured macOS screenshot diffs against CI font rendering everywhere.
What happened
Dispatching Actions → Refresh visual baselines (
sites=guides, refdevelop) on 2026-07-06 completed the rebuild + screenshot +--updatesteps successfully, then failed at Commit and push refreshed baselines:Run: https://github.com/wheels-dev/wheels/actions/runs/28789467591
The workflow predates the develop branch ruleset — it commits the refreshed PNG(s) and pushes
HEAD -> $BRANCHdirectly, which the ruleset now forbids for develop.Fix
Convert the final step to the PR + auto-merge pattern already used elsewhere in this repo: push the commit to a
chore/refresh-baseline-<sites>-<run_id>branch,gh pr createagainst the target branch, andgh pr merge --auto --squash --delete-branch.Two known gotchas from prior conversions of this exact kind:
pull-requests: writein addition tocontents: write— missing scope fails silently.Workaround used meanwhile
Manual PR with the CI-rendered screenshot (#3282). Note for anyone doing the same: baselines must be Linux/CI-rendered — a locally captured macOS screenshot diffs against CI font rendering everywhere.