@@ -35,34 +35,20 @@ async function run() {
35
35
36
36
core . debug ( `Found PRs in release body: ${ prNumbers . join ( ', ' ) } ` ) ;
37
37
38
+ const linkedIssues = Promise . all ( prNumbers . map ( ( prNumber ) => getLinkedIssuesForPr ( octokit , { repo, owner, prNumber } ) ) ) ;
38
39
39
- const res = await octokit . graphql ( `
40
- {
41
- query issuesForPr($owner: String!, $repo: String!, $prNumber: Int!) {
42
- repository(owner: $owner, name: $repo) {
43
- pullRequest(number: $prNumber) {
44
- id
45
- closingIssuesReferences (first: 50) {
46
- edges {
47
- node {
48
- id
49
- number
50
- }
51
- }
52
- }
53
- }
54
- }
55
- }
40
+ console . log ( linkedIssues ) ;
41
+
42
+ for ( const pr of linkedIssues ) {
43
+ if ( ! pr . issues . length ) {
44
+ core . debug ( `No linked issues found for PR #${ pr . prNumber } ` ) ;
45
+ continue ;
56
46
}
57
- ` , {
58
- prNumber : prNumbers [ 0 ] ,
59
- owner,
60
- repo
61
- } ) ;
62
47
63
- const linkedIssues = Promise . all ( prNumbers . map ( ( prNumber ) => getLinkedIssuesForPr ( octokit , { repo, owner, prNumber } ) ) ) ;
48
+ core . debug ( `Linked issues for PR #${ pr . prNumber } : ${ pr . issues . map ( issue => issue . number ) . join ( ',' ) } ` ) ;
49
+ }
50
+
64
51
65
- console . log ( linkedIssues ) ;
66
52
}
67
53
68
54
/**
@@ -75,16 +61,15 @@ function extractPrsFromReleaseBody(body) {
75
61
const prNumbers = Array . from ( new Set ( [ ...body . matchAll ( regex ) ] . map ( ( match ) => parseInt ( match [ 1 ] ) ) ) ) ;
76
62
77
63
return prNumbers . filter ( number => ! ! number && ! Number . isNaN ( number ) ) ;
78
- }
79
-
80
- /**
64
+ } /**
81
65
*
82
66
* @param {ReturnType<import('@actions/github').getOctokit> } octokit
83
67
* @param {{ repo: string, owner: string, prNumber: number} } options
84
- * @returns {Promise<{id: string, number: number}[]> }
68
+ * @returns {Promise<{ prNumber: number, issues: { id: string, number: number}[] } > }
85
69
*/
86
70
async function getLinkedIssuesForPr ( octokit , { repo, owner, prNumber } ) {
87
- const res = await octokit . graphql ( `
71
+ const res = await octokit . graphql (
72
+ `
88
73
query issuesForPr($owner: String!, $repo: String!, $prNumber: Int!) {
89
74
repository(owner: $owner, name: $repo) {
90
75
pullRequest(number: $prNumber) {
@@ -99,13 +84,21 @@ query issuesForPr($owner: String!, $repo: String!, $prNumber: Int!) {
99
84
}
100
85
}
101
86
}
102
- }` , {
103
- prNumber,
104
- owner,
105
- repo
106
- } ) ;
87
+ }` ,
88
+ {
89
+ prNumber,
90
+ owner,
91
+ repo,
92
+ } ,
93
+ ) ;
107
94
108
- return res . data . repository ?. pullRequest ?. closingIssuesReferences . edges . map ( edge => edge . node ) ;
95
+ console . log ( res ) ;
96
+
97
+ const issues = res . data . repository ?. pullRequest ?. closingIssuesReferences . edges . map ( edge => edge . node ) ;
98
+ return {
99
+ prNumber,
100
+ issues
101
+ } ;
109
102
}
110
103
111
104
run ( ) ;
0 commit comments