Skip to content

Commit c3587ec

Browse files
committed
feat: add workflow to automatically assign GSSoC 2026 labels to project milestones
1 parent b25110f commit c3587ec

1 file changed

Lines changed: 47 additions & 0 deletions

File tree

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: Milestone Manager
2+
3+
on:
4+
issues:
5+
types: [labeled]
6+
pull_request:
7+
types: [labeled]
8+
9+
permissions:
10+
issues: write
11+
pull-requests: write
12+
13+
jobs:
14+
assign-to-milestone:
15+
if: >
16+
github.event.label.name == 'GSSoC 2026' ||
17+
github.event.label.name == 'gssoc:approved'
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Assign to GSSoC 2026 Milestone
21+
uses: actions/github-script@v7
22+
env:
23+
# Update this to match your actual GSSoC 2026 milestone number.
24+
# Find it at: https://github.com/<owner>/<repo>/milestones
25+
MILESTONE_NUMBER: '1'
26+
with:
27+
script: |
28+
const milestoneNumber = parseInt(process.env.MILESTONE_NUMBER, 10);
29+
30+
// Works for both issues and pull_request events
31+
const issueNumber =
32+
context.payload.issue?.number ??
33+
context.payload.pull_request?.number;
34+
35+
if (!issueNumber) {
36+
core.setFailed('Could not determine issue/PR number from event payload.');
37+
return;
38+
}
39+
40+
await github.rest.issues.update({
41+
owner: context.repo.owner,
42+
repo: context.repo.repo,
43+
issue_number: issueNumber,
44+
milestone: milestoneNumber,
45+
});
46+
47+
core.info(`Assigned #${issueNumber} to milestone ${milestoneNumber}.`);

0 commit comments

Comments
 (0)