From 576f38efdcb0ffdb161fe1fa72176d065c7f7d49 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Fri, 16 Feb 2018 16:10:58 +0100 Subject: [PATCH] fix: use isUmergeable instead of mergeable --- lib/platform/github/index.js | 4 ++-- lib/workers/pr/index.js | 2 +- test/platform/github/__snapshots__/index.spec.js.snap | 2 ++ test/platform/github/index.spec.js | 10 ++++++++-- test/workers/pr/index.spec.js | 6 +----- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/lib/platform/github/index.js b/lib/platform/github/index.js index cc72538a07..8ae4bc5270 100644 --- a/lib/platform/github/index.js +++ b/lib/platform/github/index.js @@ -766,8 +766,8 @@ async function getPr(prNo) { // Harmonise PR values pr.displayNumber = `Pull Request #${pr.number}`; if (pr.state === 'open') { - if (pr.mergeable_state === 'dirty') { - logger.debug(`PR mergeable state is dirty`); + if (!pr.mergeable || pr.mergeable_state === 'dirty') { + logger.debug(`PR is not mergeable`); pr.isUnmergeable = true; } if (pr.commits === 1) { diff --git a/lib/workers/pr/index.js b/lib/workers/pr/index.js index 6c49115cbb..cccab2c7ce 100644 --- a/lib/workers/pr/index.js +++ b/lib/workers/pr/index.js @@ -335,7 +335,7 @@ async function checkAutoMerge(pr, config) { if (config.automerge) { logger.info('PR is configured for automerge'); // Return if PR not ready for automerge - if (pr.mergeable !== true) { + if (pr.isUnmergeable) { logger.info('PR is not mergeable'); logger.debug({ pr }); return false; diff --git a/test/platform/github/__snapshots__/index.spec.js.snap b/test/platform/github/__snapshots__/index.spec.js.snap index 8ac0e42395..a4ae36f632 100644 --- a/test/platform/github/__snapshots__/index.spec.js.snap +++ b/test/platform/github/__snapshots__/index.spec.js.snap @@ -435,6 +435,7 @@ Object { "sha": "1234", }, "displayNumber": "Pull Request #1", + "mergeable": true, "number": 1, "state": "closed", } @@ -464,6 +465,7 @@ Object { "commits": 1, "displayNumber": "Pull Request #1", "isStale": true, + "mergeable": true, "number": 1, "state": "open", } diff --git a/test/platform/github/index.spec.js b/test/platform/github/index.spec.js index f91dee47a3..7b840d9568 100644 --- a/test/platform/github/index.spec.js +++ b/test/platform/github/index.spec.js @@ -1164,7 +1164,7 @@ describe('platform/github', () => { expect(pr).toBe(null); }); [ - { number: 1, state: 'closed', base: { sha: '1234' } }, + { number: 1, state: 'closed', base: { sha: '1234' }, mergeable: true }, { number: 1, state: 'open', @@ -1172,7 +1172,13 @@ describe('platform/github', () => { base: { sha: '1234' }, commits: 1, }, - { number: 1, state: 'open', base: { sha: '5678' }, commits: 1 }, + { + number: 1, + state: 'open', + base: { sha: '5678' }, + commits: 1, + mergeable: true, + }, ].forEach((body, i) => { it(`should return a PR object - ${i}`, async () => { await initRepo({ repository: 'some/repo', token: 'token' }); diff --git a/test/workers/pr/index.spec.js b/test/workers/pr/index.spec.js index 8f6c684d32..076221c848 100644 --- a/test/workers/pr/index.spec.js +++ b/test/workers/pr/index.spec.js @@ -48,7 +48,6 @@ describe('workers/pr', () => { it('should automerge if enabled and pr is mergeable', async () => { config.automerge = true; pr.canRebase = true; - pr.mergeable = true; platform.getBranchStatus.mockReturnValueOnce('success'); await prWorker.checkAutoMerge(pr, config); expect(platform.mergePr.mock.calls.length).toBe(1); @@ -56,28 +55,25 @@ describe('workers/pr', () => { it('should not automerge if enabled and pr is mergeable but cannot rebase', async () => { config.automerge = true; pr.canRebase = false; - pr.mergeable = true; platform.getBranchStatus.mockReturnValueOnce('success'); await prWorker.checkAutoMerge(pr, config); expect(platform.mergePr.mock.calls.length).toBe(0); }); it('should not automerge if enabled and pr is mergeable but branch status is not success', async () => { config.automerge = true; - pr.mergeable = true; platform.getBranchStatus.mockReturnValueOnce('pending'); await prWorker.checkAutoMerge(pr, config); expect(platform.mergePr.mock.calls.length).toBe(0); }); it('should not automerge if enabled and pr is mergeable but unstable', async () => { config.automerge = true; - pr.mergeable = true; pr.mergeable_state = 'unstable'; await prWorker.checkAutoMerge(pr, config); expect(platform.mergePr.mock.calls.length).toBe(0); }); it('should not automerge if enabled and pr is unmergeable', async () => { config.automerge = true; - pr.mergeable = false; + pr.isUnmergeable = true; await prWorker.checkAutoMerge(pr, config); expect(platform.mergePr.mock.calls.length).toBe(0); }); -- GitLab