CI: drop trusted label for experienced contributors (#15605)

This commit is contained in:
Shadow
2026-02-13 11:23:05 -06:00
committed by GitHub
parent 3d921b6157
commit 684578ecf6
+54 -6
View File
@@ -139,6 +139,21 @@ jobs:
const experiencedLabel = "experienced-contributor"; const experiencedLabel = "experienced-contributor";
const trustedThreshold = 4; const trustedThreshold = 4;
const experiencedThreshold = 10; const experiencedThreshold = 10;
const issueNumber = context.payload.pull_request.number;
const removeLabelIfPresent = async (name) => {
try {
await github.rest.issues.removeLabel({
...context.repo,
issue_number: issueNumber,
name,
});
} catch (error) {
if (error?.status !== 404) {
throw error;
}
}
};
let isMaintainer = false; let isMaintainer = false;
try { try {
@@ -157,7 +172,7 @@ jobs:
if (isMaintainer) { if (isMaintainer) {
await github.rest.issues.addLabels({ await github.rest.issues.addLabels({
...context.repo, ...context.repo,
issue_number: context.payload.pull_request.number, issue_number: issueNumber,
labels: ["maintainer"], labels: ["maintainer"],
}); });
return; return;
@@ -179,9 +194,10 @@ jobs:
} }
if (mergedCount >= experiencedThreshold) { if (mergedCount >= experiencedThreshold) {
await removeLabelIfPresent(trustedLabel);
await github.rest.issues.addLabels({ await github.rest.issues.addLabels({
...context.repo, ...context.repo,
issue_number: context.payload.pull_request.number, issue_number: issueNumber,
labels: [experiencedLabel], labels: [experiencedLabel],
}); });
return; return;
@@ -190,7 +206,7 @@ jobs:
if (mergedCount >= trustedThreshold) { if (mergedCount >= trustedThreshold) {
await github.rest.issues.addLabels({ await github.rest.issues.addLabels({
...context.repo, ...context.repo,
issue_number: context.payload.pull_request.number, issue_number: issueNumber,
labels: [trustedLabel], labels: [trustedLabel],
}); });
} }
@@ -373,6 +389,22 @@ jobs:
return; return;
} }
if (label === experiencedLabel && labelNames.has(trustedLabel)) {
try {
await github.rest.issues.removeLabel({
owner,
repo,
issue_number: pullRequest.number,
name: trustedLabel,
});
} catch (error) {
if (error?.status !== 404) {
throw error;
}
}
labelNames.delete(trustedLabel);
}
if (labelNames.has(label)) { if (labelNames.has(label)) {
return; return;
} }
@@ -462,6 +494,21 @@ jobs:
const experiencedLabel = "experienced-contributor"; const experiencedLabel = "experienced-contributor";
const trustedThreshold = 4; const trustedThreshold = 4;
const experiencedThreshold = 10; const experiencedThreshold = 10;
const issueNumber = context.payload.issue.number;
const removeLabelIfPresent = async (name) => {
try {
await github.rest.issues.removeLabel({
...context.repo,
issue_number: issueNumber,
name,
});
} catch (error) {
if (error?.status !== 404) {
throw error;
}
}
};
let isMaintainer = false; let isMaintainer = false;
try { try {
@@ -480,7 +527,7 @@ jobs:
if (isMaintainer) { if (isMaintainer) {
await github.rest.issues.addLabels({ await github.rest.issues.addLabels({
...context.repo, ...context.repo,
issue_number: context.payload.issue.number, issue_number: issueNumber,
labels: ["maintainer"], labels: ["maintainer"],
}); });
return; return;
@@ -502,9 +549,10 @@ jobs:
} }
if (mergedCount >= experiencedThreshold) { if (mergedCount >= experiencedThreshold) {
await removeLabelIfPresent(trustedLabel);
await github.rest.issues.addLabels({ await github.rest.issues.addLabels({
...context.repo, ...context.repo,
issue_number: context.payload.issue.number, issue_number: issueNumber,
labels: [experiencedLabel], labels: [experiencedLabel],
}); });
return; return;
@@ -513,7 +561,7 @@ jobs:
if (mergedCount >= trustedThreshold) { if (mergedCount >= trustedThreshold) {
await github.rest.issues.addLabels({ await github.rest.issues.addLabels({
...context.repo, ...context.repo,
issue_number: context.payload.issue.number, issue_number: issueNumber,
labels: [trustedLabel], labels: [trustedLabel],
}); });
} }