Skip to content

Commit b0bde0e

Browse files
Add ticket linking workflow (#72)
1 parent d614b25 commit b0bde0e

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
name: Link issue to cross-repo milestone parent
2+
3+
on:
4+
issues:
5+
types: [milestoned]
6+
7+
jobs:
8+
link:
9+
runs-on: ubuntu-latest
10+
11+
steps:
12+
- name: Link to parent issue in aind-scientific-computing
13+
uses: actions/github-script@v7
14+
with:
15+
github-token: ${{ secrets.SERVICE_TOKEN }}
16+
script: |
17+
const issue = context.payload.issue;
18+
const milestone = issue.milestone;
19+
20+
if (!milestone) return;
21+
22+
const targetOwner = "AllenNeuralDynamics";
23+
const targetRepo = "aind-scientific-computing";
24+
25+
const url = milestone.description;
26+
const match = url?.match(/\/issues\/(\d+)$/);
27+
28+
if (!match) {
29+
console.log(`Milestone description is not a roadmap URL: ${url}`);
30+
return;
31+
}
32+
33+
const parentNumber = parseInt(match[1]);
34+
35+
const { data: parent } = await github.rest.issues.get({
36+
owner: targetOwner,
37+
repo: targetRepo,
38+
issue_number: parentNumber
39+
});
40+
41+
if (!parent) {
42+
console.log(`No issue found at ${url}`);
43+
return;
44+
}
45+
46+
await github.request("POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues", {
47+
owner: targetOwner,
48+
repo: targetRepo,
49+
issue_number: parentNumber,
50+
sub_issue_id: issue.id,
51+
headers: {
52+
"X-GitHub-Api-Version": "2022-11-28"
53+
}
54+
});
55+
56+
console.log(`Linked issue #${issue.number} as sub-issue of ${targetRepo}#${parentNumber}`);

0 commit comments

Comments
 (0)