From 72404706ab3529cc8f19575a420e6659eb5fb688 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Wed, 14 Aug 2019 11:48:56 +0200 Subject: [PATCH] feat(platform): return PR targetBranch --- lib/platform/azure/azure-helper.ts | 2 ++ lib/platform/bitbucket-server/utils.ts | 1 + lib/platform/bitbucket/utils.ts | 1 + lib/platform/github/index.ts | 3 +++ lib/platform/gitlab/index.ts | 1 + .../__snapshots__/azure-helper.spec.ts.snap | 4 ++++ .../__snapshots__/index.spec.ts.snap | 16 ++++++++++++++++ test/platform/bitbucket-server/index.spec.ts | 1 + .../bitbucket/__snapshots__/index.spec.ts.snap | 6 ++++++ test/platform/bitbucket/_fixtures/responses.js | 1 + .../github/__snapshots__/index.spec.ts.snap | 1 + .../github/_fixtures/graphql/pullrequest-1.json | 2 ++ .../_fixtures/graphql/pullrequests-closed.json | 1 + .../gitlab/__snapshots__/index.spec.ts.snap | 8 ++++++++ test/platform/gitlab/index.spec.ts | 13 ++++++++++++- 15 files changed, 60 insertions(+), 1 deletion(-) diff --git a/lib/platform/azure/azure-helper.ts b/lib/platform/azure/azure-helper.ts index 6fc995dd23..a65d38cb61 100644 --- a/lib/platform/azure/azure-helper.ts +++ b/lib/platform/azure/azure-helper.ts @@ -198,12 +198,14 @@ export function getRenovatePRFormat(azurePr: { description: any; status: number; mergeStatus: number; + targetRefName: string; }) { const pr = azurePr as any; pr.displayNumber = `Pull Request #${azurePr.pullRequestId}`; pr.number = azurePr.pullRequestId; pr.body = azurePr.description; + pr.targetBranch = azurePr.targetRefName; // status // export declare enum PullRequestStatus { diff --git a/lib/platform/bitbucket-server/utils.ts b/lib/platform/bitbucket-server/utils.ts index 61c4847b6a..5c7a33431f 100644 --- a/lib/platform/bitbucket-server/utils.ts +++ b/lib/platform/bitbucket-server/utils.ts @@ -15,6 +15,7 @@ export function prInfo(pr: any) { number: pr.id, body: pr.description, branchName: pr.fromRef.displayId, + targetBranch: pr.toRef.displayId, title: pr.title, state: prStateMapping[pr.state], createdAt: pr.createdDate, diff --git a/lib/platform/bitbucket/utils.ts b/lib/platform/bitbucket/utils.ts index 44ed49d963..a4814c2d90 100644 --- a/lib/platform/bitbucket/utils.ts +++ b/lib/platform/bitbucket/utils.ts @@ -103,6 +103,7 @@ export function prInfo(pr: any) { number: pr.id, body: pr.summary ? pr.summary.raw : /* istanbul ignore next */ undefined, branchName: pr.source.branch.name, + targetBranch: pr.destination.branch.name, title: pr.title, state: prStates.closed.includes(pr.state) ? /* istanbul ignore next */ 'closed' diff --git a/lib/platform/github/index.ts b/lib/platform/github/index.ts index ca3c058c02..e07762bf13 100644 --- a/lib/platform/github/index.ts +++ b/lib/platform/github/index.ts @@ -1230,6 +1230,7 @@ async function getOpenPrs() { nodes { number headRefName + baseRefName title mergeable mergeStateStatus @@ -1289,6 +1290,8 @@ async function getOpenPrs() { const branchName = pr.branchName; const prNo = pr.number; delete pr.headRefName; + pr.targetBranch = pr.baseRefName; + delete pr.baseRefName; // https://developer.github.com/v4/enum/mergeablestate const canMergeStates = ['BEHIND', 'CLEAN']; const hasNegativeReview = diff --git a/lib/platform/gitlab/index.ts b/lib/platform/gitlab/index.ts index 87b79926bd..db7094b2a7 100644 --- a/lib/platform/gitlab/index.ts +++ b/lib/platform/gitlab/index.ts @@ -723,6 +723,7 @@ export async function getPr(iid: number) { const pr = (await api.get(url)).body; // Harmonize fields with GitHub pr.branchName = pr.source_branch; + pr.targetBranch = pr.target_branch; pr.number = pr.iid; pr.displayNumber = `Merge Request #${pr.iid}`; pr.body = pr.description; diff --git a/test/platform/azure/__snapshots__/azure-helper.spec.ts.snap b/test/platform/azure/__snapshots__/azure-helper.spec.ts.snap index 2934db296b..fd8b5ddd8b 100644 --- a/test/platform/azure/__snapshots__/azure-helper.spec.ts.snap +++ b/test/platform/azure/__snapshots__/azure-helper.spec.ts.snap @@ -92,6 +92,7 @@ Object { "number": undefined, "state": "merged", "status": 3, + "targetBranch": undefined, } `; @@ -103,6 +104,7 @@ Object { "number": undefined, "state": "closed", "status": 2, + "targetBranch": undefined, } `; @@ -115,6 +117,7 @@ Object { "mergeStatus": 2, "number": undefined, "state": "open", + "targetBranch": undefined, } `; @@ -126,6 +129,7 @@ Object { "number": undefined, "state": "open", "status": 1, + "targetBranch": undefined, } `; diff --git a/test/platform/bitbucket-server/__snapshots__/index.spec.ts.snap b/test/platform/bitbucket-server/__snapshots__/index.spec.ts.snap index c1cef2e052..ea6651cbfb 100644 --- a/test/platform/bitbucket-server/__snapshots__/index.spec.ts.snap +++ b/test/platform/bitbucket-server/__snapshots__/index.spec.ts.snap @@ -505,6 +505,7 @@ Object { "createdAt": 1547853840016, "number": 5, "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -556,6 +557,7 @@ Object { "userName2", ], "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -722,6 +724,7 @@ Object { "userName2", ], "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -743,6 +746,7 @@ Object { "userName2", ], "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -764,6 +768,7 @@ Object { "userName2", ], "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -850,6 +855,7 @@ Object { "userName2", ], "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -895,6 +901,7 @@ Object { "number": undefined, "reviewers": Array [], "state": "merged", + "targetBranch": undefined, "title": undefined, "version": 0, } @@ -960,6 +967,7 @@ Array [ "createdAt": 1547853840016, "number": 5, "state": "open", + "targetBranch": "master", "title": "title", "version": 1, }, @@ -1979,6 +1987,7 @@ Object { "createdAt": 1547853840016, "number": 5, "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -2030,6 +2039,7 @@ Object { "userName2", ], "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -2196,6 +2206,7 @@ Object { "userName2", ], "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -2217,6 +2228,7 @@ Object { "userName2", ], "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -2238,6 +2250,7 @@ Object { "userName2", ], "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -2324,6 +2337,7 @@ Object { "userName2", ], "state": "open", + "targetBranch": "master", "title": "title", "version": 1, } @@ -2369,6 +2383,7 @@ Object { "number": undefined, "reviewers": Array [], "state": "merged", + "targetBranch": undefined, "title": undefined, "version": 0, } @@ -2434,6 +2449,7 @@ Array [ "createdAt": 1547853840016, "number": 5, "state": "open", + "targetBranch": "master", "title": "title", "version": 1, }, diff --git a/test/platform/bitbucket-server/index.spec.ts b/test/platform/bitbucket-server/index.spec.ts index dfd8d36a2b..063944356a 100644 --- a/test/platform/bitbucket-server/index.spec.ts +++ b/test/platform/bitbucket-server/index.spec.ts @@ -533,6 +533,7 @@ describe('platform/bitbucket-server', () => { state: 'MERGED', reviewers: [], fromRef: {}, + toRef: {}, }, } as any); expect(await bitbucket.getPr(5)).toMatchSnapshot(); diff --git a/test/platform/bitbucket/__snapshots__/index.spec.ts.snap b/test/platform/bitbucket/__snapshots__/index.spec.ts.snap index 9adeaf50ad..8e42c66191 100644 --- a/test/platform/bitbucket/__snapshots__/index.spec.ts.snap +++ b/test/platform/bitbucket/__snapshots__/index.spec.ts.snap @@ -134,6 +134,7 @@ Object { "createdAt": "2018-07-02T07:02:25.275030+00:00", "number": 5, "state": "open", + "targetBranch": "master", "title": "title", } `; @@ -150,6 +151,7 @@ Object { "isStale": false, "number": 5, "state": "open", + "targetBranch": "master", "title": "title", } `; @@ -166,6 +168,7 @@ Object { "isStale": false, "number": 3, "state": "open", + "targetBranch": "master", "title": "title", } `; @@ -182,6 +185,7 @@ Object { "isStale": false, "number": 5, "state": "open", + "targetBranch": "master", "title": "title", } `; @@ -198,6 +202,7 @@ Object { "isStale": false, "number": 5, "state": "open", + "targetBranch": "master", "title": "title", } `; @@ -255,6 +260,7 @@ Object { "isStale": false, "number": 5, "state": "open", + "targetBranch": "master", "title": "title", } `; diff --git a/test/platform/bitbucket/_fixtures/responses.js b/test/platform/bitbucket/_fixtures/responses.js index ff871a2f56..0c47566b7b 100644 --- a/test/platform/bitbucket/_fixtures/responses.js +++ b/test/platform/bitbucket/_fixtures/responses.js @@ -1,6 +1,7 @@ const pr = id => ({ id, source: { branch: { name: 'branch' } }, + destination: { branch: { name: 'master' } }, title: 'title', summary: { raw: 'summary' }, state: 'OPEN', diff --git a/test/platform/github/__snapshots__/index.spec.ts.snap b/test/platform/github/__snapshots__/index.spec.ts.snap index 6446d9ae65..f022c4567e 100644 --- a/test/platform/github/__snapshots__/index.spec.ts.snap +++ b/test/platform/github/__snapshots__/index.spec.ts.snap @@ -217,6 +217,7 @@ Object { "isStale": true, "number": 2500, "state": "open", + "targetBranch": "master", "title": "chore(deps): update dependency jest to v23.6.0", } `; diff --git a/test/platform/github/_fixtures/graphql/pullrequest-1.json b/test/platform/github/_fixtures/graphql/pullrequest-1.json index 7278c6921a..d028e8025a 100644 --- a/test/platform/github/_fixtures/graphql/pullrequest-1.json +++ b/test/platform/github/_fixtures/graphql/pullrequest-1.json @@ -5,6 +5,7 @@ "nodes": [ { "number": 2433, + "baseRefName": "master", "headRefName": "renovate/major-got-packages", "title": "build(deps): update got packages (major)", "mergeable": "MERGEABLE", @@ -44,6 +45,7 @@ }, { "number": 2500, + "baseRefName": "master", "headRefName": "renovate/jest-monorepo", "title": "chore(deps): update dependency jest to v23.6.0", "mergeable": "UNKNOWN", diff --git a/test/platform/github/_fixtures/graphql/pullrequests-closed.json b/test/platform/github/_fixtures/graphql/pullrequests-closed.json index f4488f76e5..497c086abc 100644 --- a/test/platform/github/_fixtures/graphql/pullrequests-closed.json +++ b/test/platform/github/_fixtures/graphql/pullrequests-closed.json @@ -5,6 +5,7 @@ "nodes": [ { "number": 2500, + "baseRefName": "master", "headRefName": "renovate/jest-monorepo", "state": "MERGED", "title": "chore(deps): update dependency jest to v23.6.0", diff --git a/test/platform/gitlab/__snapshots__/index.spec.ts.snap b/test/platform/gitlab/__snapshots__/index.spec.ts.snap index 8ffa8dd1b6..9db70e0fa2 100644 --- a/test/platform/gitlab/__snapshots__/index.spec.ts.snap +++ b/test/platform/gitlab/__snapshots__/index.spec.ts.snap @@ -147,6 +147,8 @@ Object { "number": 91, "source_branch": "some-branch", "state": "open", + "targetBranch": "master", + "target_branch": "master", } `; @@ -167,6 +169,8 @@ Object { "number": 12345, "source_branch": "some-branch", "state": "merged", + "targetBranch": "master", + "target_branch": "master", } `; @@ -186,6 +190,8 @@ Object { "number": 12345, "source_branch": "some-branch", "state": "open", + "targetBranch": "master", + "target_branch": "master", } `; @@ -204,6 +210,8 @@ Object { "number": 12345, "source_branch": "some-branch", "state": "open", + "targetBranch": "master", + "target_branch": "master", } `; diff --git a/test/platform/gitlab/index.spec.ts b/test/platform/gitlab/index.spec.ts index 022c93c81d..106d2f0bb4 100644 --- a/test/platform/gitlab/index.spec.ts +++ b/test/platform/gitlab/index.spec.ts @@ -310,7 +310,14 @@ describe('platform/gitlab', () => { it('should return the PR object', async () => { await initRepo(); api.get.mockReturnValueOnce({ - body: [{ iid: 91, source_branch: 'some-branch', state: 'opened' }], + body: [ + { + iid: 91, + source_branch: 'some-branch', + target_branch: 'master', + state: 'opened', + }, + ], } as any); api.get.mockReturnValueOnce({ body: { @@ -320,6 +327,7 @@ describe('platform/gitlab', () => { deletions: 1, commits: 1, source_branch: 'some-branch', + target_branch: 'master', base: { sha: '1234', }, @@ -778,6 +786,7 @@ describe('platform/gitlab', () => { merge_status: 'cannot_be_merged', diverged_commits_count: 5, source_branch: 'some-branch', + target_branch: 'master', }, } as any); api.get.mockReturnValueOnce({ @@ -798,6 +807,7 @@ describe('platform/gitlab', () => { state: 'open', diverged_commits_count: 5, source_branch: 'some-branch', + target_branch: 'master', }, } as any); api.get.mockReturnValueOnce({ body: [{ status: 'success' }] } as any); // get commit statuses @@ -817,6 +827,7 @@ describe('platform/gitlab', () => { merge_status: 'cannot_be_merged', diverged_commits_count: 2, source_branch: 'some-branch', + target_branch: 'master', }, } as any) ); -- GitLab