From 315d1e6494692c247702a1e319be2ee2106a34be Mon Sep 17 00:00:00 2001 From: Green-Ranger11 Date: Thu, 6 Jan 2022 10:03:28 +1300 Subject: [PATCH] [Fix] pr inference --- bin/can-merge | 2 +- utils/buildQuery.js | 36 ++++++++---------------------------- utils/parsePullRequest.js | 4 +--- 3 files changed, 10 insertions(+), 32 deletions(-) diff --git a/bin/can-merge b/bin/can-merge index 54abbc9..482bc9f 100755 --- a/bin/can-merge +++ b/bin/can-merge @@ -115,7 +115,7 @@ function outputStatus(response) { if (NODE_ENV === 'DEBUG') { console.log(JSON.stringify(response, null, 2)); } - const prs = parsePullRequest(response.repository); + const prs = parsePullRequest(response); if (prs.length === 0) { console.info(chalk.redBright(`⚠ This remote repository does not contain any pull requests matching sha: ${args.sha}`)); process.exitCode = 1; diff --git a/utils/buildQuery.js b/utils/buildQuery.js index e8f5ac1..c3cb9a6 100644 --- a/utils/buildQuery.js +++ b/utils/buildQuery.js @@ -50,36 +50,16 @@ module.exports = function buildQuery({ }) { return ` { - repository(owner: "${owner}", name: "${name}") { - branchProtectionRules(first: 10) { - nodes { - requiresStatusChecks - requiredApprovingReviewCount - requiredStatusCheckContexts - } - } - ${pr ? `pullRequest(number: ${pr}) { - ${pullRequestQuery()} - }` : sha ? `commit: object(expression: "${sha}") { - ... on Commit { - associatedPullRequests(first:50){ - edges{ - node{ - ${pullRequestQuery()} - } - } - } - } - }` : `pullRequests(first: 100) { - nodes { + search(query: "is:open is:pr repo:${owner}/${name} ${sha ? `sha:${sha}` : ''} ${pr ? `pr: ${pr}` : ''}", type:ISSUE, first: 100) { + issueCount + edges { + node { + ... on PullRequest { ${pullRequestQuery()} + } } - }`} - } - rateLimit { - cost - remaining + } } } - `; + `; }; diff --git a/utils/parsePullRequest.js b/utils/parsePullRequest.js index 700f423..738cd67 100644 --- a/utils/parsePullRequest.js +++ b/utils/parsePullRequest.js @@ -1,9 +1,7 @@ 'use strict'; module.exports = function parsePullRequest(response) { - return response.pullRequest - ? [response.pullRequest] - : response.commit?.associatedPullRequests.edges.flatMap(({ node }) => node) + return response.search.edges.flatMap(({ node }) => node) || response.pullRequests?.nodes || []; };