Skip to content

Automate external plugin update PR quality checks#2005

Open
aaronpowell wants to merge 5 commits into
stagedfrom
aaronpowell/external-plugin-review-automation
Open

Automate external plugin update PR quality checks#2005
aaronpowell wants to merge 5 commits into
stagedfrom
aaronpowell/external-plugin-review-automation

Conversation

@aaronpowell

@aaronpowell aaronpowell commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Pull Request Checklist

  • I have read and followed the CONTRIBUTING.md guidelines.
  • I have read and followed the Guidance for submissions involving paid services.
  • My contribution adds a new instruction, prompt, agent, skill, or workflow file in the correct directory.
  • The file follows the required naming convention.
  • The content is clearly structured and follows the example format.
  • I have tested my instructions, prompt, agent, skill, or workflow with GitHub Copilot.
  • I have run npm start and verified that README.md is up to date.
  • I am targeting the staged branch for this pull request.

Description

External plugin update PRs like #2004 currently rely on manual review context, while issue intake already has automated quality gates. This adds equivalent automation to PRs that modify plugins/external.json so reviewers get consistent, actionable state signals.

The change introduces a new PR workflow that detects changed external plugin entries, runs the existing smoke install and skill-validator gates for each changed entry, then syncs PR labels to workflow state (ready-for-review, requires-submitter-fixes, awaiting-review). It also upserts a marker-based PR comment with per-plugin gate results and a direct source tree link (repo + ref/sha + path) for each changed plugin. A small script (eng/external-plugin-pr-quality-gates.mjs) aggregates per-plugin execution and summary output, and CONTRIBUTING guidance now documents this PR update path.

Follow-up fixes from review feedback are also included so the workflow matches the intended behavior: repository-level permissions stay read-only by default, PR write access is scoped to the sync job that applies labels/comments, and the sync job keeps the permissions and YAML structure needed to check out staged and run successfully.


Type of Contribution

  • New instruction file.
  • New prompt file.
  • New agent file.
  • New plugin.
  • New skill file.
  • New agentic workflow.
  • Update to existing instruction, prompt, agent, plugin, skill, or workflow.
  • Other (please specify):

Additional Notes

Validated with npm run build, npm run plugin:validate, npm run skill:validate, and targeted workflow/YAML verification after the review-driven fixes.


By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.

Automate external plugin update PR review by running skill-validator and install smoke checks against changed entries in plugins/external.json. Sync PR workflow-state labels and upsert a marker-based status comment with source tree links for each changed plugin.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings June 16, 2026 00:28
@github-actions github-actions Bot added new-submission PR adds at least one new contribution workflow PR touches workflow automation labels Jun 16, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds automation to evaluate external plugin update pull requests (those modifying plugins/external.json) by detecting changed entries, running existing quality gates per entry, and syncing PR labels plus a marker-based status comment so reviewers get consistent, actionable signals.

Changes:

  • Introduces External Plugin PR Quality Gates workflow to detect changed external plugin entries, run install smoke + skill-validator gates, then sync PR labels and a summarized PR comment.
  • Adds an eng/ helper script to aggregate per-plugin results and generate source tree links for PR status output.
  • Documents the PR-based external plugin update path in CONTRIBUTING.md.
Show a summary per file
File Description
eng/external-plugin-pr-quality-gates.mjs Aggregates existing external plugin quality gates for a list of changed plugin entries and produces a summarized result payload.
CONTRIBUTING.md Documents the new PR-based automation path for updating plugins/external.json.
.github/workflows/external-plugin-pr-quality-gates.yml Adds a PR workflow that detects changed entries, runs gates, and syncs labels + a marker comment onto the PR.

Copilot's findings

  • Files reviewed: 3/3 changed files
  • Comments generated: 3

Comment thread eng/external-plugin-pr-quality-gates.mjs Outdated
Comment thread .github/workflows/external-plugin-pr-quality-gates.yml Outdated
Comment thread .github/workflows/external-plugin-pr-quality-gates.yml
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 3/3 changed files
  • Comments generated: 3

Comment thread .github/workflows/external-plugin-pr-quality-gates.yml Outdated
Comment on lines +112 to +115
sync-pr-state:
runs-on: ubuntu-latest
needs: [detect-changed-plugins, run-quality-gates]
if: always()

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot do we need to add issue: read permissions when adding comments to PRs?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No — we don’t need a separate issues: read. For PR labels/comments, issues: write is sufficient and already implies the read access that actions/github-script needs. I also fixed a missing steps: key in c684617, which was preventing this job from parsing correctly.

Comment thread eng/external-plugin-pr-quality-gates.mjs Outdated
Scope write permissions to the PR synchronization job, keep the quality-gate job read-only, and handle no-op and detection-failure states explicitly. Also fix source tree link encoding for refs, SHAs, and plugin paths.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot's findings

  • Files reviewed: 3/3 changed files
  • Comments generated: 2

Comment thread .github/workflows/external-plugin-pr-quality-gates.yml
Comment thread .github/workflows/external-plugin-pr-quality-gates.yml
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-submission PR adds at least one new contribution workflow PR touches workflow automation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants