From 0be51b9123bca686f2d96f1af99460d1528ab809 Mon Sep 17 00:00:00 2001 From: Reece Appling <19520870+reeceappling@users.noreply.github.com> Date: Fri, 11 Aug 2023 18:05:07 -0400 Subject: [PATCH 1/9] Update bitbucket-pipelines.service.js, make result optional in schema --- services/bitbucket/bitbucket-pipelines.service.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/bitbucket/bitbucket-pipelines.service.js b/services/bitbucket/bitbucket-pipelines.service.js index d00b85e64711b..d6f67a7de9244 100644 --- a/services/bitbucket/bitbucket-pipelines.service.js +++ b/services/bitbucket/bitbucket-pipelines.service.js @@ -16,7 +16,7 @@ const bitbucketPipelinesSchema = Joi.object({ 'STOPPED', 'EXPIRED', ), - }).required(), + }).optional(), }).required(), }), ) From 03fddc4be8a35ac2588aa6c0a9845ed82ba088ff Mon Sep 17 00:00:00 2001 From: Reece Appling <19520870+reeceappling@users.noreply.github.com> Date: Fri, 11 Aug 2023 18:13:13 -0400 Subject: [PATCH 2/9] Update bitbucket-pipelines.service.js --- services/bitbucket/bitbucket-pipelines.service.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/bitbucket/bitbucket-pipelines.service.js b/services/bitbucket/bitbucket-pipelines.service.js index d6f67a7de9244..76d170628c431 100644 --- a/services/bitbucket/bitbucket-pipelines.service.js +++ b/services/bitbucket/bitbucket-pipelines.service.js @@ -72,6 +72,9 @@ class BitbucketPipelines extends BaseJsonService { value => value.state && value.state.name === 'COMPLETED', ) if (values.length > 0) { + if !values[0].state.hasOwnProperty('result') { // DID THIS ------------------------------------------------------------------ + return 'HALTED' + } return values[0].state.result.name } return 'never built' From 0c0f77f5cdea867563dee9999f0acd7c0922f5d3 Mon Sep 17 00:00:00 2001 From: Reece Appling <19520870+reeceappling@users.noreply.github.com> Date: Fri, 11 Aug 2023 18:47:54 -0400 Subject: [PATCH 3/9] first attempt --- .../bitbucket/bitbucket-pipelines.service.js | 16 ++++++++----- .../bitbucket/bitbucket-pipelines.tester.js | 23 +++++++++++++++++++ 2 files changed, 33 insertions(+), 6 deletions(-) diff --git a/services/bitbucket/bitbucket-pipelines.service.js b/services/bitbucket/bitbucket-pipelines.service.js index 76d170628c431..09d7f072409bd 100644 --- a/services/bitbucket/bitbucket-pipelines.service.js +++ b/services/bitbucket/bitbucket-pipelines.service.js @@ -16,8 +16,12 @@ const bitbucketPipelinesSchema = Joi.object({ 'STOPPED', 'EXPIRED', ), - }).optional(), - }).required(), + }), + stage: Joi.object({ + name: Joi.string().required(), + type: Joi.string().optional(), + }), + }).required().or('result','stage'), }), ) .required(), @@ -69,13 +73,13 @@ class BitbucketPipelines extends BaseJsonService { static transform(data) { const values = data.values.filter( - value => value.state && value.state.name === 'COMPLETED', + value => value.state && (value.state.name === 'COMPLETED' || value.state.name === 'IN_PROGRESS'), ) if (values.length > 0) { - if !values[0].state.hasOwnProperty('result') { // DID THIS ------------------------------------------------------------------ - return 'HALTED' + if (values[0].state.hasOwnProperty('result')) { + return values[0].state.result.name } - return values[0].state.result.name + return values[0].state.stage.name } return 'never built' } diff --git a/services/bitbucket/bitbucket-pipelines.tester.js b/services/bitbucket/bitbucket-pipelines.tester.js index a271c04daea5e..427717dd4593b 100644 --- a/services/bitbucket/bitbucket-pipelines.tester.js +++ b/services/bitbucket/bitbucket-pipelines.tester.js @@ -23,6 +23,20 @@ function bitbucketApiResponse(status) { }) } +function bitbucketNoResultResponse(stageName) { + return JSON.stringify({ + values: [ + { + state: { + type: 'pipeline_state_in_progress', + name: 'IN_PROGRESS', + stage: { name: stageName, type: 'pipeline_state_in_progress_halted' } + }, + }, + ], + }) +} + t.create('master build result (not found)') .get('/atlassian/not-a-repo/master.json') .expectBadge({ label: 'build', message: 'not found' }) @@ -42,6 +56,15 @@ t.create('branch build result (never built)') .get('/atlassian/adf-builder-javascript/some/new/branch.json') .expectBadge({ label: 'build', message: 'never built' }) +t.create('build result (stage only)') +.get('/atlassian/adf-builder-javascript/master.json') + .intercept(nock => + nock('https://api.bitbucket.org') + .get(/^\/2.0\/.*/) + .reply(200, bitbucketNoResultResponse('HALTED')), + ) + .expectBadge({ label: 'build', message: 'HALTED' }) + t.create('build result (passing)') .get('/atlassian/adf-builder-javascript/master.json') .intercept(nock => From 95ea4891627b31a6ddfff31a1cc9451121262484 Mon Sep 17 00:00:00 2001 From: Reece Appling <19520870+reeceappling@users.noreply.github.com> Date: Fri, 11 Aug 2023 18:50:53 -0400 Subject: [PATCH 4/9] Update bitbucket-pipelines.tester.js --- services/bitbucket/bitbucket-pipelines.tester.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/bitbucket/bitbucket-pipelines.tester.js b/services/bitbucket/bitbucket-pipelines.tester.js index 427717dd4593b..f6bae183bf00c 100644 --- a/services/bitbucket/bitbucket-pipelines.tester.js +++ b/services/bitbucket/bitbucket-pipelines.tester.js @@ -30,7 +30,10 @@ function bitbucketNoResultResponse(stageName) { state: { type: 'pipeline_state_in_progress', name: 'IN_PROGRESS', - stage: { name: stageName, type: 'pipeline_state_in_progress_halted' } + stage: { + name: stageName, + type: 'pipeline_state_in_progress_halted' + } }, }, ], From c9f6c82eec792ed72b6faa3ed40b7a1b646656d1 Mon Sep 17 00:00:00 2001 From: Reece Appling <19520870+reeceappling@users.noreply.github.com> Date: Fri, 11 Aug 2023 18:59:56 -0400 Subject: [PATCH 5/9] Linted --- services/bitbucket/bitbucket-pipelines.service.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/bitbucket/bitbucket-pipelines.service.js b/services/bitbucket/bitbucket-pipelines.service.js index 09d7f072409bd..a401b9d5475d2 100644 --- a/services/bitbucket/bitbucket-pipelines.service.js +++ b/services/bitbucket/bitbucket-pipelines.service.js @@ -76,7 +76,7 @@ class BitbucketPipelines extends BaseJsonService { value => value.state && (value.state.name === 'COMPLETED' || value.state.name === 'IN_PROGRESS'), ) if (values.length > 0) { - if (values[0].state.hasOwnProperty('result')) { + if(Object.prototype.hasOwnProperty.call(values[0].state, 'result')) { return values[0].state.result.name } return values[0].state.stage.name From c04c7a3a67c4d9e9910eacc9f515abe9cc59d0a5 Mon Sep 17 00:00:00 2001 From: Reece Appling <19520870+reeceappling@users.noreply.github.com> Date: Sat, 12 Aug 2023 16:43:25 -0400 Subject: [PATCH 6/9] prettier 1 --- services/bitbucket/bitbucket-pipelines.service.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/services/bitbucket/bitbucket-pipelines.service.js b/services/bitbucket/bitbucket-pipelines.service.js index a401b9d5475d2..8ff3e17b04ad9 100644 --- a/services/bitbucket/bitbucket-pipelines.service.js +++ b/services/bitbucket/bitbucket-pipelines.service.js @@ -21,7 +21,9 @@ const bitbucketPipelinesSchema = Joi.object({ name: Joi.string().required(), type: Joi.string().optional(), }), - }).required().or('result','stage'), + }) + .required() + .or('result','stage'), }), ) .required(), @@ -73,10 +75,13 @@ class BitbucketPipelines extends BaseJsonService { static transform(data) { const values = data.values.filter( - value => value.state && (value.state.name === 'COMPLETED' || value.state.name === 'IN_PROGRESS'), + value => + value.state && + (value.state.name === 'COMPLETED' || + value.state.name === 'IN_PROGRESS'), ) if (values.length > 0) { - if(Object.prototype.hasOwnProperty.call(values[0].state, 'result')) { + if (Object.prototype.hasOwnProperty.call(values[0].state, 'result')) { return values[0].state.result.name } return values[0].state.stage.name From 1fc585c5cbd4e96bade04243414f3ca8505b00b6 Mon Sep 17 00:00:00 2001 From: Reece Appling <19520870+reeceappling@users.noreply.github.com> Date: Sat, 12 Aug 2023 16:44:22 -0400 Subject: [PATCH 7/9] Should be ready for review --- services/bitbucket/bitbucket-pipelines.tester.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/services/bitbucket/bitbucket-pipelines.tester.js b/services/bitbucket/bitbucket-pipelines.tester.js index f6bae183bf00c..39864802fc395 100644 --- a/services/bitbucket/bitbucket-pipelines.tester.js +++ b/services/bitbucket/bitbucket-pipelines.tester.js @@ -32,8 +32,8 @@ function bitbucketNoResultResponse(stageName) { name: 'IN_PROGRESS', stage: { name: stageName, - type: 'pipeline_state_in_progress_halted' - } + type: 'pipeline_state_in_progress_halted', + }, }, }, ], @@ -60,7 +60,7 @@ t.create('branch build result (never built)') .expectBadge({ label: 'build', message: 'never built' }) t.create('build result (stage only)') -.get('/atlassian/adf-builder-javascript/master.json') + .get('/atlassian/adf-builder-javascript/master.json') .intercept(nock => nock('https://api.bitbucket.org') .get(/^\/2.0\/.*/) From 898400440bc0b9957570c5362d27bc821661ad3e Mon Sep 17 00:00:00 2001 From: Reece Appling <19520870+reeceappling@users.noreply.github.com> Date: Sat, 12 Aug 2023 16:58:25 -0400 Subject: [PATCH 8/9] fmt --- services/bitbucket/bitbucket-pipelines.service.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/bitbucket/bitbucket-pipelines.service.js b/services/bitbucket/bitbucket-pipelines.service.js index 8ff3e17b04ad9..d7f07a821efb2 100644 --- a/services/bitbucket/bitbucket-pipelines.service.js +++ b/services/bitbucket/bitbucket-pipelines.service.js @@ -23,7 +23,7 @@ const bitbucketPipelinesSchema = Joi.object({ }), }) .required() - .or('result','stage'), + .or('result', 'stage'), }), ) .required(), From 73e4a4bed3510ee4851878b22a9bf66247247cee Mon Sep 17 00:00:00 2001 From: Reece Appling <19520870+reeceappling@users.noreply.github.com> Date: Sat, 12 Aug 2023 16:59:48 -0400 Subject: [PATCH 9/9] spacing --- services/bitbucket/bitbucket-pipelines.service.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/bitbucket/bitbucket-pipelines.service.js b/services/bitbucket/bitbucket-pipelines.service.js index d7f07a821efb2..95fe668ed4397 100644 --- a/services/bitbucket/bitbucket-pipelines.service.js +++ b/services/bitbucket/bitbucket-pipelines.service.js @@ -78,7 +78,7 @@ class BitbucketPipelines extends BaseJsonService { value => value.state && (value.state.name === 'COMPLETED' || - value.state.name === 'IN_PROGRESS'), + value.state.name === 'IN_PROGRESS'), ) if (values.length > 0) { if (Object.prototype.hasOwnProperty.call(values[0].state, 'result')) {