Pārlūkot izejas kodu

feat: sonar java test add sonarhookvo, fix job name problem

claws 4 gadi atpakaļ
vecāks
revīzija
2feb8e331b

+ 3 - 2
web/src/main/java/cn/seecoder/web/controller/gitlab/CommitController.java

@@ -10,6 +10,7 @@ import cn.seecoder.web.model.enums.CommitRelatedEnum;
 import cn.seecoder.web.model.po.project.CommitPO;
 import cn.seecoder.web.model.vo.GitWebHookVO;
 import cn.seecoder.web.model.vo.Response;
+import cn.seecoder.web.model.vo.hook.SonarResultHookVO;
 import cn.seecoder.web.model.vo.project.CommitVO;
 import cn.seecoder.web.service.bug_list.BugListService;
 import cn.seecoder.web.service.project.CommitService;
@@ -63,8 +64,8 @@ public class CommitController {
     @ApiOperation(value = "sonarqube回调接口", httpMethod = "POST")
     @PostMapping("/sonar_hook")
     @ApiImplicitParam(name = "hahaVO", dataType = "object", paramType = "body")
-    public Response<String> sonarHook(@RequestBody Object haha) throws ServiceException{
-        System.out.println();
+    public Response<String> sonarHook(@RequestBody SonarResultHookVO sonarResultHookVO) throws ServiceException{
+        log.info(sonarResultHookVO.toString());
         return Response.buildSuccess("yes");
     }
 

+ 1 - 1
web/src/main/java/cn/seecoder/web/core/pipeline/handler/K8sJobHandler.java

@@ -92,7 +92,7 @@ public class K8sJobHandler extends AbstractHandler{
         // deployName 是流水线的 name
         String deployName = context.getDeployName();
         // K8sConstants.JOB_SUFFIX = -job, 例如流水线叫做haha, jobname = haha-job
-        String jobName = deployName + K8sConstants.JOB_SUFFIX;
+        String jobName = String.format("%s-%s%s", deployName, imageTag, K8sConstants.JOB_SUFFIX);
 
         context.appendSuccessResult("变量准备完成,开始配置容器");
         // 1 配置容器

+ 75 - 0
web/src/main/java/cn/seecoder/web/model/vo/hook/SonarResultHookVO.java

@@ -0,0 +1,75 @@
+package cn.seecoder.web.model.vo.hook;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import java.util.List;
+
+@Data
+@ToString
+@ApiModel("sonar hook 传回结果VO")
+public class SonarResultHookVO {
+    private String serverUrl;
+    private String taskId;
+    private String status;
+    private String analysedAt;
+    private String revision;
+    private String changedAt;
+    private Project project;
+    private Branch branch;
+    private QualityGate qualityGate;
+    private Properties properties;
+
+    @Data
+    @NoArgsConstructor
+    private static class Project{
+        private String key;
+        private String name;
+        private String url;
+    }
+
+    @Data
+    @NoArgsConstructor
+    private static class Branch{
+        private String name;
+        private String type;
+        private Boolean isMain;
+        private String url;
+    }
+
+    @Data
+    @NoArgsConstructor
+    private static class QualityGate{
+        private String name;
+        private String status;
+        private List<Condition> conditions;
+
+        @Data
+        @NoArgsConstructor
+        private static class Condition{
+            private String metric;
+            private String operator;
+            private String value;
+            private String status;
+            private String errorThreshold;
+        }
+    }
+
+    private static class Properties{
+        @JsonProperty("sonar.analysis.detectedscm")
+        private String detectedscm;
+        @JsonProperty("sonar.analysis.detectedci")
+        private String detectedci;
+        @JsonProperty("sonar.analysis.projectId")
+        private String projectId;
+        @JsonProperty("sonar.analysis.imageTag")
+        private String imageTag;
+        @JsonProperty("sonar.analysis.imageName")
+        private String imageName;
+        @JsonProperty("sonar.analysis.commitHash")
+        private String commitHash;
+    }
+}