From ee9c0124fdd0d430a012d009c4de3762ee0597b8 Mon Sep 17 00:00:00 2001 From: dengqichen Date: Fri, 7 Nov 2025 13:14:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=8D=B0=E4=BA=86JENKINS=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integration/IJenkinsServiceIntegration.java | 11 ++++++++--- .../impl/JenkinsServiceIntegrationImpl.java | 10 ++++------ .../workflow/delegate/JenkinsBuildDelegate.java | 6 +++--- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/integration/IJenkinsServiceIntegration.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/integration/IJenkinsServiceIntegration.java index f328a16a..c59d58ee 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/integration/IJenkinsServiceIntegration.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/integration/IJenkinsServiceIntegration.java @@ -24,13 +24,17 @@ public interface IJenkinsServiceIntegration extends IExternalSystemIntegration { /** * 获取Jenkins Crumb(用于CSRF保护) * + * @param externalSystem Jenkins系统配置 * @return Crumb响应信息 */ - JenkinsCrumbIssuerResponse getJenkinsCrumbIssue(); + JenkinsCrumbIssuerResponse getJenkinsCrumbIssue(ExternalSystem externalSystem); /** * 使用参数触发构建 * + * @param externalSystem Jenkins系统配置 + * @param jobName 任务名称 + * @param parameters 构建参数 * @return 构建队列ID */ String buildWithParameters(ExternalSystem externalSystem, String jobName, Map parameters); @@ -38,10 +42,11 @@ public interface IJenkinsServiceIntegration extends IExternalSystemIntegration { /** * 获取队列中的构建信息 * - * @param queueId 队列ID + * @param externalSystem Jenkins系统配置 + * @param queueId 队列ID * @return 队列构建信息 */ - JenkinsQueueBuildInfoResponse getQueuedBuildInfo(String queueId); + JenkinsQueueBuildInfoResponse getQueuedBuildInfo(ExternalSystem externalSystem, String queueId); /** * 获取构建状态 diff --git a/backend/src/main/java/com/qqchen/deploy/backend/deploy/integration/impl/JenkinsServiceIntegrationImpl.java b/backend/src/main/java/com/qqchen/deploy/backend/deploy/integration/impl/JenkinsServiceIntegrationImpl.java index 70646d8d..d980d5c9 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/deploy/integration/impl/JenkinsServiceIntegrationImpl.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/deploy/integration/impl/JenkinsServiceIntegrationImpl.java @@ -120,8 +120,7 @@ public class JenkinsServiceIntegrationImpl implements IJenkinsServiceIntegration @Override - public JenkinsCrumbIssuerResponse getJenkinsCrumbIssue() { - ExternalSystem externalSystem = systemRepository.findById(1L).orElseThrow(() -> new RuntimeException("没有找到三方系统")); + public JenkinsCrumbIssuerResponse getJenkinsCrumbIssue(ExternalSystem externalSystem) { String url = externalSystem.getUrl() + "/crumbIssuer/api/json"; HttpHeaders headers = createHeaders(externalSystem); HttpEntity entity = new HttpEntity<>(headers); @@ -137,7 +136,7 @@ public class JenkinsServiceIntegrationImpl implements IJenkinsServiceIntegration } // 1. 获取Crumb - JenkinsCrumbIssuerResponse jenkinsCrumbIssue = getJenkinsCrumbIssue(); + JenkinsCrumbIssuerResponse jenkinsCrumbIssue = getJenkinsCrumbIssue(externalSystem); // 2. 构建URL String url = UriComponentsBuilder.fromHttpUrl(externalSystem.getUrl()) @@ -184,7 +183,7 @@ public class JenkinsServiceIntegrationImpl implements IJenkinsServiceIntegration private void ensurePipelineScriptParameter(ExternalSystem externalSystem, String jobName) { try { // 获取 Crumb - JenkinsCrumbIssuerResponse jenkinsCrumbIssue = getJenkinsCrumbIssue(); + JenkinsCrumbIssuerResponse jenkinsCrumbIssue = getJenkinsCrumbIssue(externalSystem); // 获取Job配置 String configUrl = String.format("%s/job/%s/config.xml", externalSystem.getUrl(), jobName); @@ -359,8 +358,7 @@ public class JenkinsServiceIntegrationImpl implements IJenkinsServiceIntegration } @Override - public JenkinsQueueBuildInfoResponse getQueuedBuildInfo(String queueId) { - ExternalSystem externalSystem = systemRepository.findById(1L).orElseThrow(() -> new RuntimeException("没有找到三方系统")); + public JenkinsQueueBuildInfoResponse getQueuedBuildInfo(ExternalSystem externalSystem, String queueId) { String queueUrl = String.format("%s/queue/item/%s/api/json", externalSystem.getUrl().trim(), queueId); ResponseEntity> response = restTemplate.exchange(queueUrl, HttpMethod.GET, createHttpEntity(externalSystem), new ParameterizedTypeReference<>() { }); diff --git a/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/JenkinsBuildDelegate.java b/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/JenkinsBuildDelegate.java index 1a06e9f2..4b802037 100644 --- a/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/JenkinsBuildDelegate.java +++ b/backend/src/main/java/com/qqchen/deploy/backend/workflow/delegate/JenkinsBuildDelegate.java @@ -76,7 +76,7 @@ public class JenkinsBuildDelegate extends BaseNodeDelegate