fixing to support pipeline, multibranch-pipeline and job in JobRunTable

Signed-off-by: Abhay-soni-developer <abhaysoni.developer@gmail.com>
This commit is contained in:
Abhay-soni-developer
2023-10-12 11:42:59 +05:30
parent cb25195c89
commit b514c862f5
2 changed files with 28 additions and 7 deletions
@@ -54,6 +54,7 @@ export class JenkinsApiImpl {
private static readonly jobTreeSpec = `actions[*],
${JenkinsApiImpl.lastBuildTreeSpec}
jobs{0,1},
url,
name,
fullName,
displayName,
@@ -340,13 +341,33 @@ export class JenkinsApiImpl {
return `${jenkinsInfo.baseUrl}/job/${jobs.join('/job/')}/${buildId}`;
}
async getJobBuilds(jenkinsInfo: JenkinsInfo) {
const client = await JenkinsApiImpl.getClient(jenkinsInfo);
async getJobBuilds(jenkinsInfo: JenkinsInfo, jobFullName: string) {
let jobName = jobFullName;
const jobBuilds = await client.job.get({
name: jenkinsInfo.jobFullName,
tree: JenkinsApiImpl.jobBuildsTreeSpec.replace(/\s/g, ''),
});
if (jobFullName.includes('/')) {
const arr = jobFullName.split('/');
const multibranchJobName = arr.shift();
jobName = [
multibranchJobName,
'job',
encodeURIComponent(arr.join('/')),
].join('/');
}
const response = await fetch(
`${
jenkinsInfo.baseUrl
}/job/${jobName}/api/json?tree=${JenkinsApiImpl.jobBuildsTreeSpec.replace(
/\s/g,
'',
)}`,
{
method: 'get',
headers: jenkinsInfo.headers as HeaderInit,
},
);
const jobBuilds = await response.json();
return jobBuilds;
}
@@ -169,7 +169,7 @@ export async function createRouter(
backstageToken: token,
});
const build = await jenkinsApi.getJobBuilds(jenkinsInfo);
const build = await jenkinsApi.getJobBuilds(jenkinsInfo, jobFullName);
response.json({
build: build,