Skip to content

Commit 4cb0818

Browse files
authored
Add workflow for automatic issue headers (#108054)
We don't get the "Bug report" and "Feature or enhancement" titles anymore, with the new issue forms. This brings them back!
1 parent 8a19f22 commit 4cb0818

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
+53
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: Add issue header
2+
# Automatically edits an issue's descriptions with a header,
3+
# one of:
4+
#
5+
# - Bug report
6+
# - Crash report
7+
# - Feature or enhancement
8+
9+
on:
10+
issues:
11+
types:
12+
# Only ever run once
13+
- opened
14+
15+
16+
jobs:
17+
add-header:
18+
runs-on: ubuntu-latest
19+
permissions:
20+
issues: write
21+
steps:
22+
- uses: actions/github-script@v6
23+
with:
24+
# language=JavaScript
25+
script: |
26+
// https://devguide.python.org/triage/labels/#type-labels
27+
const HEADERS = new Map([
28+
['type-bug', 'Bug report'],
29+
['type-crash', 'Crash report'],
30+
['type-feature', 'Feature or enhancement'],
31+
]);
32+
let issue_data = await github.rest.issues.get({
33+
issue_number: context.issue.number,
34+
owner: context.repo.owner,
35+
repo: context.repo.repo
36+
}).then(issue => issue.data);
37+
let header = '';
38+
for (const label_data of issue_data.labels) {
39+
const label_name = (typeof label_data === 'string') ? label_data : label_data.name;
40+
if (HEADERS.has(label_name)) {
41+
header = HEADERS.get(label_name);
42+
break;
43+
}
44+
}
45+
if (header !== '') {
46+
console.log(`Setting new header: ${header}`);
47+
await github.rest.issues.update({
48+
issue_number: context.issue.number,
49+
owner: context.repo.owner,
50+
repo: context.repo.repo,
51+
body: `# ${header}\n\n${issue_data.body.replaceAll('\r', '')}`
52+
});
53+
}

0 commit comments

Comments
 (0)