Repository navigation
feat(ci): automated PR readiness checks — contributor feedback before review - #752
Conversation
🛫 PR Readiness Check
|
| Status | Check | Details |
|---|---|---|
| ❌ | Single commit (or squashable) | 2 commits — consider squashing before review (or repo will squash on merge) |
| ✅ | Not in draft | Ready for review |
| ✅ | Branch up to date | Up to date with dev |
| ❌ | Copilot review | No Copilot review yet — it may still be processing |
| ✅ | Changeset present | Changeset file found |
| ✅ | No merge conflicts | No merge conflicts |
| ✅ | CI passing | No CI checks have run yet |
This check runs automatically on every push. Fix any ❌ items and push again.
See CONTRIBUTING.md and PR Requirements for details.
There was a problem hiding this comment.
Pull request overview
Adds an automated “PR readiness” GitHub Action that posts/updates a single checklist comment on PRs, aiming to give contributors fast, actionable feedback before human review.
Changes:
- Added a new workflow (
squad-pr-readiness.yml) that evaluates PR readiness signals via GitHub API and upserts a checklist comment. - Documented the approach in a proposal doc and added a PR readiness section to CONTRIBUTING.
- Added a Changesets entry (currently targeting
@bradygaster/squad-cli).
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 12 comments.
| File | Description |
|---|---|
docs/proposals/pr-readiness-checks.md |
Proposal documenting rationale/approach and intended behavior of readiness checks. |
CONTRIBUTING.md |
Adds contributor-facing PR readiness checklist section. |
.github/workflows/squad-pr-readiness.yml |
Implements the readiness checks and PR comment upsert workflow. |
.changeset/pr-readiness-checks.md |
Declares a package version bump related to this change. |
Address all 12 Copilot review comments on PR #752: - Add issues: write permission for comment upserts - Switch to pull_request_target with safety guards (no checkout) - Rename 'Single commit (or squashable)' to 'Single commit' - Fix reversed compareCommitsWithBasehead base/head order - Use latest review per user instead of find() for Copilot review - Accept CHANGELOG.md edits in changeset check (match changelog-gate) - Model CI pending/no-checks as not-passing (don't mark ready early) - Use absolute repo URLs instead of broken relative links - Add pagination via github.paginate for comments, commits, reviews, files - Remove unnecessary changeset (no CLI code changes) - Fix fork-safe claim in proposal docs - Remove unnecessary actions/checkout step Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Wraps checks.listForRef in github.paginate() to handle PRs with 100+ check runs, matching the pagination pattern already used for commits, reviews, files, and comments in the same workflow. Closes #752 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Really useful for Brady's workflow - automates all the 'is this PR ready?' feedback he gives manually today. Two things before merge:
One suggestion from looking at microsoft/aspire: they also have a Content-wise this is solid. Fix the above and it's good to go. |
📁 Files in this PR
4 files — 1 workflow, 1 script, 1 test, 1 doc update. |
a00c9b7 to
1c3f963
Compare
Adds .github/pull_request_template.md with static checkboxes that contributors see at PR creation time. Complements the dynamic PR readiness bot (squad-pr-readiness.yml) — template gives the checklist upfront, bot validates it after push. Suggested by @tamirdresher in PR github#752 review. Closes github#778 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds a GitHub Action that posts a readiness checklist comment on every PR, giving contributors immediate feedback on what needs fixing before review. 7 checks: single commit, not draft, branch up to date, Copilot review, changeset present, no merge conflicts, CI passing. Informational only. Includes extracted script (pr-readiness.mjs), tests, and CONTRIBUTING.md update. Closes #750 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
4346d79 to
e468222
Compare
Adds .github/pull_request_template.md with static checkboxes that contributors see at PR creation time. Complements the dynamic PR readiness bot (squad-pr-readiness.yml) — template gives the checklist upfront, bot validates it after push. Suggested by @tamirdresher in PR github#752 review. Closes github#778 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds .github/pull_request_template.md with static checkboxes that contributors see at PR creation time. Complements the dynamic PR readiness bot (squad-pr-readiness.yml) — template gives the checklist upfront, bot validates it after push. Suggested by @tamirdresher in PR #752 review. Closes #778 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Adds a GitHub Action that posts a readiness checklist comment on every PR, giving contributors immediate feedback on what needs fixing before review. 7 checks: single commit, not draft, branch up to date, Copilot review, changeset present, no merge conflicts, CI passing. Informational only. Includes extracted script (pr-readiness.mjs), tests, and CONTRIBUTING.md update. Closes #750 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
What
Adds an automated PR readiness check system that posts a checklist comment on every PR, telling contributors exactly what needs fixing before review.
Closes #750
Why
Contributors open PRs that aren't review-ready (draft, unsquashed commits, stale branch, missing changeset, etc.). Brady has to manually check and comment on each one. This workflow automates that feedback loop — contributors get immediate, actionable guidance.
How
Approach: GitHub Action with PR comment (evaluated 3 approaches — see docs/proposals/pr-readiness-checks.md for full analysis).
Workflow (squad-pr-readiness.yml):
7 Checks:
Also includes:
Testing
Docs
Exports
N/A — no SDK changes
Breaking Changes
None
Waivers
None needed