mirror of
https://github.com/github/awesome-copilot.git
synced 2026-05-30 02:21:46 +00:00
Add external plugin quality gates and maintainer override flow (#1860)
* Add external plugin quality gates and override flow Introduce a dedicated reusable quality-gates workflow for external plugin submissions and wire intake/rerun orchestration to consume its results. Add quality-aware intake state handling, including a submitter-fix blocker state and richer intake comments. Also add a maintainer /mark-ready-for-review command workflow for explicit overrides, update related approval-label handling, and document the new external plugin review flow in CONTRIBUTING and AGENTS guidance. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * fix: use specific auth/network patterns in classifySmokeFailure Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com> * refactor: hoist INFRA_ERROR_PATTERNS to module level, fix timeout regex Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com> * fix: install Copilot CLI in external-plugin-quality-gates workflow Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
This commit is contained in:
@@ -11,6 +11,10 @@ export const EXTERNAL_PLUGIN_INTAKE_LABELS = Object.freeze({
|
||||
color: "0E8A16",
|
||||
description: "Submission passed intake validation and is ready for maintainer review",
|
||||
},
|
||||
"requires-submitter-fixes": {
|
||||
color: "D93F0B",
|
||||
description: "Submission has quality-gate findings that submitter must fix before maintainer review",
|
||||
},
|
||||
approved: {
|
||||
color: "1D76DB",
|
||||
description: "Submission was approved by a maintainer",
|
||||
@@ -25,6 +29,7 @@ const EXTERNAL_PLUGIN_INTAKE_SYNC_LABELS = Object.freeze([
|
||||
"external-plugin",
|
||||
"awaiting-review",
|
||||
"ready-for-review",
|
||||
"requires-submitter-fixes",
|
||||
"rejected",
|
||||
]);
|
||||
|
||||
@@ -138,9 +143,14 @@ export async function applyExternalPluginIntakeEvaluation({
|
||||
issueNumber,
|
||||
evaluation,
|
||||
}) {
|
||||
const desiredLabels = evaluation.valid
|
||||
? new Set(["external-plugin", "ready-for-review"])
|
||||
: new Set(["external-plugin", "rejected"]);
|
||||
const state = evaluation.intakeState ?? (evaluation.valid ? "ready-for-review" : "rejected");
|
||||
const desiredLabelsByState = {
|
||||
"ready-for-review": new Set(["external-plugin", "ready-for-review"]),
|
||||
"requires-submitter-fixes": new Set(["external-plugin", "requires-submitter-fixes"]),
|
||||
"awaiting-review": new Set(["external-plugin", "awaiting-review"]),
|
||||
rejected: new Set(["external-plugin", "rejected"]),
|
||||
};
|
||||
const desiredLabels = desiredLabelsByState[state] ?? desiredLabelsByState.rejected;
|
||||
|
||||
await syncExternalPluginIntakeLabels({
|
||||
github,
|
||||
|
||||
Reference in New Issue
Block a user