chore(repo): update last sandcastle-hub refs in bin/ctrl #37
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Enforces the regression-guard contract: every fix PR must state its | |
| # regression-guard verdict in the body (added <name> / covered by <name> / | |
| # not warranted, <reason>). A convention is only real when a machine | |
| # enforces it — this workflow is the zero-permission check that does. | |
| # | |
| # Adapted from saas-starter/.github/workflows/require-regression-guard.yml. | |
| name: Require Regression Guard | |
| on: | |
| pull_request: | |
| types: [opened, edited, reopened, synchronize] | |
| permissions: {} | |
| jobs: | |
| check: | |
| name: Regression Guard Verdict | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| # Only fix PRs by humans; bots (Renovate "fix(deps)") are exempt. | |
| if: | | |
| !endsWith(github.actor, '[bot]') && | |
| startsWith(github.event.pull_request.title, 'fix') | |
| steps: | |
| - name: Check PR body for verdict line | |
| env: | |
| PR_BODY: ${{ github.event.pull_request.body }} | |
| run: | | |
| if printf '%s\n' "$PR_BODY" | grep -qiE '^Regression guard: (added|covered by|not warranted)'; then | |
| echo "Regression guard verdict found." | |
| else | |
| echo "::error::Fix PRs must state their regression-guard verdict in the body." | |
| echo "Add one line directly above the verification line:" | |
| echo " Regression guard: added <name>" | |
| echo " Regression guard: covered by <name>" | |
| echo " Regression guard: not warranted, <one-line reason>" | |
| echo "See scripts/AGENTS.md, section Validation." | |
| exit 1 | |
| fi |