build(release): support triggering release workflows via comments #119
Workflow file for this run
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
| name: "PR Metadata Checks" | |
| on: | |
| pull_request_target: | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - labeled | |
| - unlabeled | |
| - edited | |
| jobs: | |
| blocks-do-not-merge: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check for "do not merge" label | |
| if: "contains(github.event.pull_request.labels.*.name, 'do not merge')" | |
| run: | | |
| echo "::error::This PR has the 'do not merge' label" \ | |
| "and cannot be merged." | |
| exit 1 | |
| - name: Check PR description for DO NOT SUBMIT/MERGE | |
| env: | |
| PR_BODY: ${{ github.event.pull_request.body }} | |
| run: | | |
| echo "Checking PR description..." | |
| if echo "$PR_BODY" | grep -Ei "DO NOT SUBMIT|DO NOT MERGE"; then | |
| echo "::error::This PR description contains" \ | |
| "'DO NOT SUBMIT' or 'DO NOT MERGE'" \ | |
| "and cannot be merged." | |
| exit 1 | |
| fi | |
| echo "PR description is clean." | |
| block-transient-agent-files: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: read | |
| steps: | |
| - name: Check for blocked files | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| PR_NUMBER: ${{ github.event.pull_request.number }} | |
| run: | | |
| echo "Checking for blocked files..." | |
| # We use --repo to avoid needing actions/checkout. | |
| # This keeps the job lightweight and avoids "not a git repository" errors. | |
| changed_files=$(gh pr diff "$PR_NUMBER" --name-only --repo "${{ github.repository }}") | |
| blocked_files=$(echo "$changed_files" | grep -E '^.agents/(plans|scratch)(/|$)' || true) | |
| if [ -n "$blocked_files" ]; then | |
| echo "::error::Files in .agents/plans and" \ | |
| ".agents/scratch are permitted in PRs to" \ | |
| "facilitate discussion, but are not allowed" \ | |
| "to be merged. Please remove them before merging:" | |
| echo "$blocked_files" | |
| exit 1 | |
| fi | |
| echo "No blocked files found." |