@@ -18,53 +18,71 @@ jobs:
1818 script : |
1919 console.log("PR Details", context.issue)
2020
21- const result = await github.graphql(
22- `
23- query($owner: String!, $name: String!, $prNum: Int!) {
24- repository(owner: $owner, name: $name ) {
25- pullRequest(number: $prNum) {
26- closingIssuesReferences(first: 10) {
27- nodes {
28- number
29- repository {
30- name
31- owner {
32- login
33- }
21+ let hasNextPage = true;
22+ let afterCursor = null;
23+
24+ while (hasNextPage ) {
25+ const result = await github.graphql(
26+ `
27+ query($owner: String!, $name: String!, $prNum: Int!, $afterCursor: String) {
28+ repository(owner: $owner, name: $name) {
29+ pullRequest(number: $prNum) {
30+ closingIssuesReferences(first: 50, after: $afterCursor) {
31+ pageInfo {
32+ hasNextPage
33+ endCursor
3434 }
35- labels(first: 50) {
36- edges {
37- node {
38- name
35+ nodes {
36+ number
37+ repository {
38+ name
39+ owner {
40+ login
41+ }
42+ }
43+ labels(first: 50) {
44+ edges {
45+ node {
46+ name
47+ }
3948 }
4049 }
4150 }
4251 }
4352 }
4453 }
4554 }
46- }
47- `,
48- {
49- owner: context.issue.owner,
50- name: context.issue.repo,
51- prNum: context.issue.number,
52- },
53- )
54- console.log("GraphQL result", JSON.stringify(result, null, 2));
55+ `,
56+ {
57+ owner: context.issue.owner,
58+ name: context.issue.repo,
59+ prNum: context.issue.number,
60+ afterCursor,
61+ },
62+ )
5563
56- for (const node of result.repository.pullRequest.closingIssuesReferences.nodes) {
57- const shouldQA = node.labels.edges.find(edge => edge.node.name === "Enhancement" || edge.node.name === "Bug") != null
58- if (!shouldQA) {
59- continue
64+ const closingIssues = result?.repository?.pullRequest?.closingIssuesReferences
65+ if (!closingIssues?.nodes) {
66+ break
6067 }
61- console.log("Adding QA to", node.repository.owner.login, node.repository.name, node.number)
62- github.rest.issues.addLabels({
63- issue_number: node.number,
64- owner: node.repository.owner.login,
65- repo: node.repository.name,
66- labels: ["QA"],
67- })
68+
69+ for (const node of closingIssues.nodes) {
70+ const shouldQA = node.labels.edges.find(edge => edge.node.name === "Enhancement" || edge.node.name === "Bug") != null
71+ if (!shouldQA) {
72+ continue
73+ }
74+ console.log("Adding QA to", node.repository.owner.login, node.repository.name, node.number)
75+ await github.rest.issues.addLabels({
76+ issue_number: node.number,
77+ owner: node.repository.owner.login,
78+ repo: node.repository.name,
79+ labels: ["QA"],
80+ })
81+ }
82+
83+ hasNextPage = closingIssues.pageInfo?.hasNextPage ?? false
84+ afterCursor = closingIssues.pageInfo?.endCursor ?? null
6885 }
6986
7087 console.log("Fin")
88+
0 commit comments