From cc693fe2322eb03a30c2ef7dda35836fc504637d Mon Sep 17 00:00:00 2001 From: Darren Ethier Date: Sat, 28 Nov 2020 17:07:23 -0500 Subject: [PATCH 1/3] expand the scope of when duplicate checker returns duplicate pr. --- .../release/utils/duplicate-pr-checker.js | 14 +++++--- .../utils/test/duplicate-pr-checker.js | 36 +++++++++++++++++++ 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/lib/automations/release/utils/duplicate-pr-checker.js b/lib/automations/release/utils/duplicate-pr-checker.js index 06f3ae56..044b0620 100644 --- a/lib/automations/release/utils/duplicate-pr-checker.js +++ b/lib/automations/release/utils/duplicate-pr-checker.js @@ -16,14 +16,20 @@ */ const duplicateChecker = async ( context, octokit, title ) => { const search = await octokit.search.issuesAndPullRequests( { - q: `${ title } in:title type:pr state:open repo:${ context.payload.repository.full_name }`, + q: `${ title } in:title type:pr repo:${ context.payload.repository.full_name }`, per_page: 50, } ); if ( search.data.total_count !== 0 ) { - const existingPr = search.data.items.find( - ( pr ) => pr.title === title - ); + const existingPr = search.data.items.find( ( pr ) => { + if ( + pr.title !== title || + ( pr.merged === true && pr.state === 'closed' ) + ) { + return false; + } + return true; + } ); return existingPr; } }; diff --git a/lib/automations/release/utils/test/duplicate-pr-checker.js b/lib/automations/release/utils/test/duplicate-pr-checker.js index ac770f4b..2bc16163 100644 --- a/lib/automations/release/utils/test/duplicate-pr-checker.js +++ b/lib/automations/release/utils/test/duplicate-pr-checker.js @@ -32,4 +32,40 @@ describe( 'check-for-duplicate-pull', () => { const actual = await duplicateChecker( context, octokit, 'hello' ); expect( actual ).toBe( mock.data.items[ 0 ] ); } ); + it( 'returns the pull request if the pr is closed, matches the title and is not merged', async () => { + // mocked pull + const mock = { + data: { + total_count: 1, + items: [ + { + title: 'hello', + merged: false, + state: 'closed', + }, + ], + }, + }; + octokit.search.issuesAndPullRequests.mockReturnValueOnce( mock ); + const actual = await duplicateChecker( context, octokit, 'hello' ); + expect( actual ).toBe( mock.data.items[ 0 ] ); + } ); + it( 'returns undefined if the pr is closed, matches the title, and is merged', async () => { + // mocked pull + const mock = { + data: { + total_count: 1, + items: [ + { + title: 'hello', + merged: true, + state: 'closed', + }, + ], + }, + }; + octokit.search.issuesAndPullRequests.mockReturnValueOnce( mock ); + const actual = await duplicateChecker( context, octokit, 'hello' ); + expect( actual ).toBe( undefined ); + } ); } ); From f5a0bd1b47e48f7b23dc2d01ae60b8051bb68845 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sat, 28 Nov 2020 22:07:48 +0000 Subject: [PATCH 2/3] generating changeset for pull request --- .release-artifact | 1 + 1 file changed, 1 insertion(+) create mode 100644 .release-artifact diff --git a/.release-artifact b/.release-artifact new file mode 100644 index 00000000..7d2d6e93 --- /dev/null +++ b/.release-artifact @@ -0,0 +1 @@ +Sat Nov 28 22:07:48 UTC 2020 From 72955bb42c6bd52d1d736bf03d860f5c9ab4b584 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sat, 28 Nov 2020 22:07:48 +0000 Subject: [PATCH 3/3] generating changeset for pull request --- .release-artifact | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .release-artifact diff --git a/.release-artifact b/.release-artifact deleted file mode 100644 index 7d2d6e93..00000000 --- a/.release-artifact +++ /dev/null @@ -1 +0,0 @@ -Sat Nov 28 22:07:48 UTC 2020