Skip to content

Commit d6c37db

Browse files
committed
fix: paginate coderabbit autofix review thread query
1 parent ede9764 commit d6c37db

1 file changed

Lines changed: 22 additions & 9 deletions

File tree

.github/workflows/coderabbit-autofix.yml

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,27 +52,40 @@ jobs:
5252
}
5353
5454
const query = `
55-
query($owner:String!, $name:String!, $number:Int!) {
55+
query($owner:String!, $name:String!, $number:Int!, $cursor:String) {
5656
repository(owner:$owner, name:$name) {
5757
pullRequest(number:$number) {
58-
reviewThreads(first:100) {
58+
reviewThreads(first:100, after:$cursor) {
5959
nodes {
6060
isResolved
6161
isOutdated
6262
}
63+
pageInfo {
64+
hasNextPage
65+
endCursor
66+
}
6367
}
6468
}
6569
}
6670
}
6771
`;
6872
69-
const result = await github.graphql(query, {
70-
owner,
71-
name: repo,
72-
number: pr.number
73-
});
74-
const nodes = result.repository.pullRequest.reviewThreads.nodes || [];
75-
const unresolvedCount = nodes.filter((node) => !node.isResolved && !node.isOutdated).length;
73+
let unresolvedCount = 0;
74+
let cursor = null;
75+
let hasNextPage = true;
76+
while (hasNextPage) {
77+
const result = await github.graphql(query, {
78+
owner,
79+
name: repo,
80+
number: pr.number,
81+
cursor
82+
});
83+
const reviewThreads = result?.repository?.pullRequest?.reviewThreads;
84+
const nodes = reviewThreads?.nodes || [];
85+
unresolvedCount += nodes.filter((node) => !node.isResolved && !node.isOutdated).length;
86+
hasNextPage = Boolean(reviewThreads?.pageInfo?.hasNextPage);
87+
cursor = reviewThreads?.pageInfo?.endCursor ?? null;
88+
}
7689
7790
if (unresolvedCount <= 0) {
7891
core.info('No unresolved review threads found, skip autofix trigger.');

0 commit comments

Comments
 (0)