Fix external plugin quality gate paths and diagnostics#2261
Merged
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request tightens the external plugin PR quality gates by aligning plugin manifest discovery paths and improving the diagnostics included in the automated PR/issue comment, so reviewers can see gate failures more clearly.
Changes:
- Align external plugin root manifest candidate paths to use
.plugin/plugin.json(singular) instead of the incorrect.plugins/plugin.json. - Update the PR quality-gates workflow comment to append per-plugin gate output details for vally lint and install smoke tests (when present).
Show a summary per file
| File | Description |
|---|---|
| eng/external-plugin-validation.mjs | Updates the accepted plugin root manifest path candidates to include .plugin/plugin.json. |
| eng/external-plugin-quality-gates.mjs | Updates quality gate plugin manifest discovery candidates to use .plugin/plugin.json. |
| .github/workflows/external-plugin-pr-quality-gates.yml | Enhances the generated PR/issue comment with a “Gate output details” section containing collapsible per-gate output blocks. |
Review details
- Files reviewed: 3/3 changed files
- Comments generated: 1
- Review effort level: Low
Comment on lines
+203
to
+214
| const formatGateOutput = (pluginName, gateName, gateStatus, rawOutput) => { | ||
| const output = String(rawOutput || '').trim() || '_No output captured._'; | ||
| return [ | ||
| '<details>', | ||
| `<summary>${pluginName} — ${gateName} (${gateStatus || 'not_run'})</summary>`, | ||
| '', | ||
| '```text', | ||
| output, | ||
| '```', | ||
| '</details>', | ||
| ].join('\n'); | ||
| }; |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request Checklist
npm startand verified thatREADME.mdis up to date.mainbranch for this pull request.Description
PR #2260 exposed two gaps in external plugin quality gates: plugin manifest resolution accepted an incorrect
.plugins/plugin.jsonpath and PR comments did not surface failure output clearly. This change fixes both so vercel-plugin style submissions resolve the plugin root manifest correctly and reviewers can immediately see vally and smoke failure details.The quality gate manifest candidates are now aligned across
eng/external-plugin-quality-gates.mjsandeng/external-plugin-validation.mjsusing.plugin/plugin.json(singular). The PR quality workflow comment renderer now appends aGate output detailssection with collapsible<details>blocks per plugin/gate, includes vally and smoke output when present, and shows_No output captured._for empty output.Type of Contribution
Additional Notes
Validated with:
npm run buildnpm run plugin:validatenpm run skill:validaterunExternalPluginPrQualityGatesto confirm payload/comment include gate outputsBy submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.