@@ -88,7 +88,7 @@ export default async function success(pluginConfig, context, { Octokit }) {
88
88
for ( const { nodes, pageInfo } of responseAssociatedPRs ) {
89
89
if ( nodes . length === 0 ) continue ;
90
90
91
- responsePRs . push ( ...buildIssuesOrPRsFromResponseNode ( nodes , "PR" ) ) ;
91
+ responsePRs . push ( ...buildIssuesOrPRsFromResponseNode ( nodes ) ) ;
92
92
if ( pageInfo . hasNextPage ) {
93
93
let cursor = pageInfo . endCursor ;
94
94
let hasNextPage = true ;
@@ -171,7 +171,7 @@ export default async function success(pluginConfig, context, { Octokit }) {
171
171
if ( ! isEmpty ( parsedIssues ) ) {
172
172
const uniqueParsedIssues = uniqBy ( flatten ( parsedIssues ) , "number" ) ;
173
173
174
- // Get relatedIssues
174
+ // Get relatedIssues (or relatedPRs i.e. Issues/PRs that are closed by an associatedPR)
175
175
issues = await inChunks ( uniqueParsedIssues , 100 , async ( chunk ) => {
176
176
const { repository } = await octokit . graphql (
177
177
buildRelatedIssuesQuery ( chunk . map ( ( issue ) => issue . number ) ) ,
@@ -360,6 +360,7 @@ async function inChunks(items, chunkSize, callback) {
360
360
* Fields common accross PRs and Issue
361
361
*/
362
362
const baseFields = `
363
+ __typename
363
364
id
364
365
title
365
366
body
@@ -420,8 +421,25 @@ function buildRelatedIssuesQuery(numbers) {
420
421
repository(owner: $owner, name: $repo) {
421
422
${ numbers
422
423
. map ( ( num ) => {
423
- return `issue${ num } : issue(number: ${ num } ) {
424
- ${ baseFields }
424
+ return `issue${ num } : issueOrPullRequest(number: ${ num } ) {
425
+ ... on Issue {
426
+ ${ baseFields }
427
+ }
428
+ ... on PullRequest {
429
+ ${ baseFields }
430
+ mergeable
431
+ changedFiles
432
+ mergedAt
433
+ isDraft
434
+ mergedBy {
435
+ login
436
+ avatarUrl
437
+ url
438
+ }
439
+ commits {
440
+ totalCount
441
+ }
442
+ }
425
443
}` ;
426
444
} )
427
445
. join ( "" ) }
@@ -513,10 +531,9 @@ const loadSingleCommitAssociatedPRs = `#graphql
513
531
/**
514
532
* Build associatedPRs or RelatedIssues object (into issue-like object with `pull_request` property) from the GraphQL repository response
515
533
* @param {object } responseNodes
516
- * @param {"ISSUE" | "PR" } type
517
534
* @returns {object[] }
518
535
*/
519
- function buildIssuesOrPRsFromResponseNode ( responseNodes , type = "ISSUE" ) {
536
+ function buildIssuesOrPRsFromResponseNode ( responseNodes ) {
520
537
const resultArray = [ ] ;
521
538
for ( const node of responseNodes ) {
522
539
let baseProps = {
@@ -569,7 +586,7 @@ function buildIssuesOrPRsFromResponseNode(responseNodes, type = "ISSUE") {
569
586
570
587
let result = baseProps ;
571
588
572
- if ( type === "PR " ) {
589
+ if ( node . __typename === "PullRequest " ) {
573
590
const prProps = {
574
591
pull_request : true ,
575
592
mergeable : node . mergeable ,
0 commit comments