From 9e9c56a52a8c00ed575d60020690ffe5bb5f29e1 Mon Sep 17 00:00:00 2001 From: ciotlosm Date: Sat, 11 Jul 2026 15:28:12 +0300 Subject: [PATCH] chore(workflows): skip sync when release bot pushes to main The n3ary release bot opens release/calver-* PRs on every PR merge to main. The PR auto-merges and lands a version-only commit on main; the push event then fires with github.actor = n3ary-release-bot[bot]. sync-standards.yml triggers on push: branches: [main] with paths filter (standards/**, scripts/**). The bot would never push to those paths, so the paths filter already excludes bot commits. This guard is defense in depth: a bot push to a vendored SHA would also be a no-op, but the guard makes the intent explicit. Add a job-level guard: skip when github.actor == "n3ary-release-bot[bot]". Manual workflow_dispatch still works. Refs: n3ary/standards#22 --- .github/workflows/sync-standards.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/sync-standards.yml b/.github/workflows/sync-standards.yml index 9877aff..493ba4f 100644 --- a/.github/workflows/sync-standards.yml +++ b/.github/workflows/sync-standards.yml @@ -24,6 +24,14 @@ permissions: jobs: sync-standards: + # Skip sync when the release bot (n3ary-release-bot) is the actor. + # The bot's release/calver-* PRs land on main as a squash merge; the + # `push` event fires with `github.actor = n3ary-release-bot[bot]`. + # The bot would never push a change to `standards/**` or + # `scripts/**` (it only bumps `package.json#version`), so this is + # defense in depth: the paths filter already excludes bot commits, + # but a bot push to a vendored SHA would also be a no-op. + if: github.actor != 'n3ary-release-bot[bot]' runs-on: ubuntu-latest steps: - name: Checkout standards