mirror of
https://github.com/github/awesome-copilot.git
synced 2026-06-25 17:00:20 +00:00
0eb6062f94
* chore(phase2): retarget all automation from staged to main - publish.yml: trigger on main, publish only to marketplace - check-pr-target.yml: invert — now blocks PRs targeting staged, welcomes main - 10 PR validation workflows: branches [staged] → [main] - external-plugin-command-router.yml: --base staged → main (3×), message text - external-plugin-rereview-command.yml: --base staged → main (2×), message text - external-plugin-rereview.yml: staged reference in review comment text - external-plugin-intake.yml: ref: staged checkout → main - external-plugin-pr-quality-gates.yml: ref: staged checkout → main - external-plugin-quality-gates.yml: ref: staged checkout → main - check-plugin-structure.yml: error messages updated for new branch model - contributors.yml: ref and base target → main - setup-labels.yml: targets-main label description updated - cli-for-beginners-sync.md + .lock.yml: base-branch staged → main - codeowner-update.md + .lock.yml: base-branch staged → main - learning-hub-updater.md + .lock.yml: base-branch staged → main Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * docs(phase2): update contributor guidance from staged to main - CONTRIBUTING.md: branch from main, PR targets main; remove Phase 2 gate note - AGENTS.md: PR target + external plugin PR automation references - .github/pull_request_template.md: PR checklist targets main - website/src/content/docs/learning-hub/agentic-workflows.md: PR target Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * aw updates --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
81 lines
2.7 KiB
YAML
81 lines
2.7 KiB
YAML
name: Check PR Target Branch
|
|
|
|
on:
|
|
pull_request_target:
|
|
types: [opened, edited, reopened, synchronize]
|
|
|
|
concurrency:
|
|
group: check-pr-target-${{ github.event.pull_request.number }}
|
|
cancel-in-progress: true
|
|
|
|
permissions:
|
|
pull-requests: write
|
|
|
|
jobs:
|
|
check-target:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Reject PR targeting staged
|
|
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7.1.0
|
|
with:
|
|
script: |
|
|
const pull = context.payload.pull_request;
|
|
const owner = context.repo.owner;
|
|
const repo = context.repo.repo;
|
|
const pullNumber = context.issue.number;
|
|
const botLogin = 'github-actions[bot]';
|
|
|
|
const { data: reviews } = await github.rest.pulls.listReviews({
|
|
owner,
|
|
repo,
|
|
pull_number: pullNumber,
|
|
per_page: 100
|
|
});
|
|
|
|
const latestBotReview = reviews
|
|
.filter((review) => review.user?.login === botLogin)
|
|
.sort((a, b) => new Date(a.submitted_at ?? a.created_at) - new Date(b.submitted_at ?? b.created_at))
|
|
.at(-1);
|
|
|
|
const latestBotState = latestBotReview?.state;
|
|
|
|
if (pull.base.ref === 'staged') {
|
|
if (latestBotState !== 'CHANGES_REQUESTED') {
|
|
const requestChangesBody = [
|
|
'⚠️ **This PR targets `staged`, but PRs should target `main`.**',
|
|
'',
|
|
'The `staged` branch is no longer the contributor branch.',
|
|
'Please change the base branch to `main`.',
|
|
'',
|
|
'You can change the base branch using the **Edit** button at the top of this PR,',
|
|
'or run: `gh pr edit ${{ github.event.pull_request.number }} --base main`'
|
|
].join('\n');
|
|
|
|
await github.rest.pulls.createReview({
|
|
owner,
|
|
repo,
|
|
pull_number: pullNumber,
|
|
event: 'REQUEST_CHANGES',
|
|
body: requestChangesBody
|
|
});
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if (latestBotState === 'CHANGES_REQUESTED') {
|
|
const approveBody = [
|
|
'✅ Base branch is now set correctly.',
|
|
'',
|
|
'Removing the prior block because this PR no longer targets `staged`.'
|
|
].join('\n');
|
|
|
|
await github.rest.pulls.createReview({
|
|
owner,
|
|
repo,
|
|
pull_number: pullNumber,
|
|
event: 'APPROVE',
|
|
body: approveBody
|
|
});
|
|
}
|