mirror of
https://github.com/systemd/systemd
synced 2024-10-15 04:24:19 +00:00
ci: Optimize pull request labeler
We keep running into rate limits, so let's optimize the number of requests we do in the pull request labeler to hopefully fix that.
This commit is contained in:
parent
1213fc94b4
commit
5dd3657f86
53
.github/workflows/labeler.yml
vendored
53
.github/workflows/labeler.yml
vendored
|
@ -52,38 +52,34 @@ jobs:
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
});
|
});
|
||||||
|
|
||||||
good_to_merge = [
|
original = new Set(response.data.map(l => l.name));
|
||||||
|
labels = new Set(original);
|
||||||
|
|
||||||
|
good_to_merge = new Set([
|
||||||
"good-to-merge/waiting-for-ci 👍",
|
"good-to-merge/waiting-for-ci 👍",
|
||||||
"good-to-merge/after-next-release",
|
"good-to-merge/after-next-release",
|
||||||
"good-to-merge/with-minor-suggestions",
|
"good-to-merge/with-minor-suggestions",
|
||||||
"good-to-merge/waiting-for-reporter-feedback 👍",
|
"good-to-merge/waiting-for-reporter-feedback 👍",
|
||||||
];
|
]);
|
||||||
|
|
||||||
if (response.data.every(l => !good_to_merge.includes(l.name))) {
|
if (Array.from(labels).filter(l => good_to_merge.has(l)).length == 0) {
|
||||||
await github.rest.issues.addLabels({
|
labels.add("please-review");
|
||||||
issue_number: context.issue.number,
|
|
||||||
owner: context.repo.owner,
|
|
||||||
repo: context.repo.repo,
|
|
||||||
labels: ["please-review"]
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const label of ["reviewed/needs-rework 🔨",
|
for (const label of ["reviewed/needs-rework 🔨",
|
||||||
"ci-fails/needs-rework 🔥",
|
"ci-fails/needs-rework 🔥",
|
||||||
"ci-failure-appears-unrelated",
|
"ci-failure-appears-unrelated",
|
||||||
"needs-rebase"]) {
|
"needs-rebase"]) {
|
||||||
try {
|
labels.delete(label);
|
||||||
await github.rest.issues.removeLabel({
|
}
|
||||||
|
|
||||||
|
if (labels.size != original.size || Array.from(labels).some(l => !original.has(l))) {
|
||||||
|
await github.rest.issues.setLabels({
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
name: label,
|
labels: Array.from(labels),
|
||||||
});
|
});
|
||||||
} catch (err) {
|
|
||||||
if (err.status != 404) {
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- name: Add please-review label on command in issue comment
|
- name: Add please-review label on command in issue comment
|
||||||
|
@ -103,6 +99,15 @@ jobs:
|
||||||
if: startsWith(github.event_name, 'pull_request') && github.event.action == 'closed'
|
if: startsWith(github.event_name, 'pull_request') && github.event.action == 'closed'
|
||||||
with:
|
with:
|
||||||
script: |
|
script: |
|
||||||
|
response = await github.rest.issues.listLabelsOnIssue({
|
||||||
|
issue_number: context.issue.number,
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
});
|
||||||
|
|
||||||
|
original = new Set(response.data.map(l => l.name));
|
||||||
|
labels = new Set(original);
|
||||||
|
|
||||||
for (const label of ["please-review",
|
for (const label of ["please-review",
|
||||||
"reviewed/needs-rework 🔨",
|
"reviewed/needs-rework 🔨",
|
||||||
"ci-fails/needs-rework 🔥",
|
"ci-fails/needs-rework 🔥",
|
||||||
|
@ -116,16 +121,14 @@ jobs:
|
||||||
"dont-merge 💣",
|
"dont-merge 💣",
|
||||||
"squash-on-merge",
|
"squash-on-merge",
|
||||||
"quick-review 🏃♂️"]) {
|
"quick-review 🏃♂️"]) {
|
||||||
try {
|
labels.delete(label);
|
||||||
await github.rest.issues.removeLabel({
|
}
|
||||||
|
|
||||||
|
if (labels.size != original.size || Array.from(labels).some(l => !original.has(l))) {
|
||||||
|
await github.rest.issues.setLabels({
|
||||||
issue_number: context.issue.number,
|
issue_number: context.issue.number,
|
||||||
owner: context.repo.owner,
|
owner: context.repo.owner,
|
||||||
repo: context.repo.repo,
|
repo: context.repo.repo,
|
||||||
name: label,
|
labels: Array.from(labels),
|
||||||
});
|
});
|
||||||
} catch (err) {
|
|
||||||
if (err.status != 404) {
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue