From 21296e785a09ff781d76f69814e5ec8f6a62fdef Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Mon, 11 Jan 2021 09:53:13 +0100 Subject: [PATCH 1/3] Handle missing values in Jenkins API requests --- plugins/jenkins/src/api/JenkinsApi.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/jenkins/src/api/JenkinsApi.ts b/plugins/jenkins/src/api/JenkinsApi.ts index 8dbde9160d..3c04a79d54 100644 --- a/plugins/jenkins/src/api/JenkinsApi.ts +++ b/plugins/jenkins/src/api/JenkinsApi.ts @@ -63,7 +63,7 @@ export class JenkinsApi { return lastBuild; } - extractScmDetailsFromJob(jobDetails: any): any { + extractScmDetailsFromJob(jobDetails: any): any | undefined { const scmInfo = jobDetails.actions .filter( (action: any) => @@ -79,6 +79,10 @@ export class JenkinsApi { }) .pop(); + if (!scmInfo) { + return undefined; + } + const author = jobDetails.actions .filter( (action: any) => @@ -141,7 +145,7 @@ export class JenkinsApi { for (const jobDetails of folder.jobs) { const jobScmInfo = this.extractScmDetailsFromJob(jobDetails); - if (jobDetails.jobs) { + if (jobDetails && jobDetails.jobs) { // skipping folders inside folders for now } else { for (const buildDetails of jobDetails.builds) { From feabc7f0cd912ba404ba7e001b253b9d939823b0 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Mon, 11 Jan 2021 09:54:30 +0100 Subject: [PATCH 2/3] Add changeset --- .changeset/friendly-rats-wonder.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/friendly-rats-wonder.md diff --git a/.changeset/friendly-rats-wonder.md b/.changeset/friendly-rats-wonder.md new file mode 100644 index 0000000000..5a5b30f98a --- /dev/null +++ b/.changeset/friendly-rats-wonder.md @@ -0,0 +1,5 @@ +--- +'@backstage/plugin-jenkins': patch +--- + +Handle missing ObjectMetadataAction in Jenkins API From 2ee01130319ed024e64e8d34e434c9b80b252b85 Mon Sep 17 00:00:00 2001 From: Oliver Sand Date: Mon, 11 Jan 2021 10:37:14 +0100 Subject: [PATCH 3/3] Review comments --- plugins/jenkins/src/api/JenkinsApi.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/jenkins/src/api/JenkinsApi.ts b/plugins/jenkins/src/api/JenkinsApi.ts index 3c04a79d54..ed70607c27 100644 --- a/plugins/jenkins/src/api/JenkinsApi.ts +++ b/plugins/jenkins/src/api/JenkinsApi.ts @@ -145,7 +145,7 @@ export class JenkinsApi { for (const jobDetails of folder.jobs) { const jobScmInfo = this.extractScmDetailsFromJob(jobDetails); - if (jobDetails && jobDetails.jobs) { + if (jobDetails?.jobs) { // skipping folders inside folders for now } else { for (const buildDetails of jobDetails.builds) {