Skip to content

Commit 60e763f

Browse files
committed
add command: Add general labels when specific labels are added.
This adds the relevant general area labels whenever a specific area label is added with the "add" command. Co-authored-by: Skyler Simpson Fixes #29739.
1 parent dd069d3 commit 60e763f

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

src/commands/add.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,24 @@ export const run = async function (payload, commenter, args) {
2323
.match(/".*?"/g)
2424
.map((string) => string.replaceAll('"', ""));
2525

26+
// Get all specific area labels
27+
const specificLabels = labels.filter(
28+
(label) =>
29+
label.includes("area: ") && label.includes("(") && label.includes(")"),
30+
);
31+
32+
const generalLabels = new Set();
33+
// Add general labels from every specific label
34+
for (const label of specificLabels) {
35+
generalLabels.add(label.slice(0, Math.max(0, label.indexOf(" ("))));
36+
}
37+
2638
const alreadyAdded = labels.filter((label) => issueLabels.has(label));
2739
const rejected = labels.filter((label) => !repoLabels.has(label));
28-
const addLabels = labels.filter(
40+
41+
// Add general lables to the input lables and filter
42+
const combinedLabels = new Set([...labels, ...generalLabels]);
43+
const addLabels = [...combinedLabels].filter(
2944
(label) => repoLabels.has(label) && !issueLabels.has(label),
3045
);
3146

0 commit comments

Comments
 (0)