|
|
@@ -1,7 +1,9 @@
|
|
|
package cn.seecoder.web.service.impl.project;
|
|
|
|
|
|
+import cn.seecoder.api.ApplicationProperties;
|
|
|
import cn.seecoder.common.util.LogTrackingUtil;
|
|
|
import cn.seecoder.common.util.OpType;
|
|
|
+import cn.seecoder.common.util.SpringUtil;
|
|
|
import cn.seecoder.web.dao.commit.CommitQualityMapper;
|
|
|
import cn.seecoder.web.dao.user.UserMapper;
|
|
|
import cn.seecoder.web.model.enums.CommitCheckResultEnum;
|
|
|
@@ -9,6 +11,7 @@ import cn.seecoder.web.model.enums.CommitRelatedEnum;
|
|
|
import cn.seecoder.web.model.po.bug_list.BugListPO;
|
|
|
import cn.seecoder.web.model.po.commit.CommitQualityPO;
|
|
|
import cn.seecoder.web.model.po.tree.TreeNodePO;
|
|
|
+import cn.seecoder.web.model.vo.commit.CommitQualityVO;
|
|
|
import cn.seecoder.web.model.vo.commit.CommitVO;
|
|
|
import cn.seecoder.web.model.vo.hook.SonarResultHookVO;
|
|
|
import cn.seecoder.web.service.bug_list.BugListService;
|
|
|
@@ -43,7 +46,6 @@ public class CommitServiceImpl implements CommitService {
|
|
|
private final TreeNodeService treeNodeService;
|
|
|
private final BugListService bugListService;
|
|
|
|
|
|
-
|
|
|
@Autowired
|
|
|
public CommitServiceImpl(CommitMapper commitMapper, SeecoderGitlabApi seecoderGitlabApi, TreeNodeService treeNodeService, BugListService bugListService) {
|
|
|
this.commitMapper = commitMapper;
|
|
|
@@ -56,6 +58,8 @@ public class CommitServiceImpl implements CommitService {
|
|
|
private UserMapper userMapper;
|
|
|
@Autowired
|
|
|
private CommitQualityMapper commitQualityMapper;
|
|
|
+ @Autowired
|
|
|
+ private ApplicationProperties applicationProperties;
|
|
|
|
|
|
@Override
|
|
|
public void save(CommitPO po) {
|
|
|
@@ -134,10 +138,8 @@ public class CommitServiceImpl implements CommitService {
|
|
|
CommitQualityPO commitQualityPO = stringCommitQualityPOMap.getOrDefault(hash, null);
|
|
|
if (commitQualityPO == null) {
|
|
|
commitVO.setCheckResult(CommitCheckResultEnum.NONE);
|
|
|
- } else if (commitQualityPO.getCheckResult().equals("OK")) {
|
|
|
- commitVO.setCheckResult(CommitCheckResultEnum.PASS);
|
|
|
} else {
|
|
|
- commitVO.setCheckResult(CommitCheckResultEnum.FAIL);
|
|
|
+ commitVO.setCheckResult(convertCommitCheckResult(commitQualityPO.getCheckResult()));
|
|
|
}
|
|
|
|
|
|
allCommits.add(commitVO);
|
|
|
@@ -162,17 +164,14 @@ public class CommitServiceImpl implements CommitService {
|
|
|
commitVO.setRelatedType(commitPO.getRelatedType());
|
|
|
commitVO.setRelatedId(commitPO.getRelatedId());
|
|
|
} else {
|
|
|
- System.out.println("hh");
|
|
|
commitVO.setRelatedType(CommitRelatedEnum.NONE);
|
|
|
}
|
|
|
|
|
|
CommitQualityPO commitQualityPO = commitQualityMapper.selectByCommitHash(hash);
|
|
|
if (commitQualityPO == null) {
|
|
|
commitVO.setCheckResult(CommitCheckResultEnum.NONE);
|
|
|
- } else if (commitQualityPO.getCheckResult().equals("OK")) {
|
|
|
- commitVO.setCheckResult(CommitCheckResultEnum.PASS);
|
|
|
} else {
|
|
|
- commitVO.setCheckResult(CommitCheckResultEnum.FAIL);
|
|
|
+ commitVO.setCheckResult(convertCommitCheckResult(commitQualityPO.getCheckResult()));
|
|
|
}
|
|
|
|
|
|
return commitVO;
|
|
|
@@ -251,10 +250,20 @@ public class CommitServiceImpl implements CommitService {
|
|
|
commitQualityPO.setProjectId(properties.getProjectId());
|
|
|
commitQualityPO.setCommitHash(commitHash);
|
|
|
commitQualityPO.setCheckResult(sonarResultHookVO.getQualityGate().getStatus());
|
|
|
+
|
|
|
DateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
|
|
|
simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
|
|
|
Date date = simpleDateFormat.parse(sonarResultHookVO.getChangedAt());
|
|
|
commitQualityPO.setCheckTime(date);
|
|
|
+
|
|
|
+ String url = sonarResultHookVO.getProject().getUrl();
|
|
|
+ // http://localhost:9000/dashboard?id\u003dsonart-4194-sonar-sonar-83700f2455cef5ca81ee0561d1a5509229ee0bcb
|
|
|
+ // to
|
|
|
+ // https://sonarqube-test.seec.seecoder.cn/dashboard?id=sonart-4194-sonar-sonar-83700f2455cef5ca81ee0561d1a5509229ee0bcb
|
|
|
+ String host = applicationProperties.getSonar().getHost();
|
|
|
+ url = url.replace("http://localhost:9000", host).replace("\\u003", "=");
|
|
|
+ commitQualityPO.setResultUrl(url);
|
|
|
+
|
|
|
commitQualityPO.setSonarProjectKey(sonarResultHookVO.getProject().getKey());
|
|
|
CommitQualityPO lastCommitQualityPO = commitQualityMapper.selectByCommitHash(commitHash);
|
|
|
if (lastCommitQualityPO != null) {
|
|
|
@@ -272,4 +281,30 @@ public class CommitServiceImpl implements CommitService {
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public CommitQualityVO getQualityByCommit(Integer projectId, String commitHash) {
|
|
|
+ CommitQualityPO commitQualityPO = commitQualityMapper.selectByCommitHash(commitHash);
|
|
|
+ if (commitQualityPO != null) {
|
|
|
+ CommitQualityVO commitQualityVO = new CommitQualityVO();
|
|
|
+ commitQualityVO.setCommitHash(commitHash);
|
|
|
+ commitQualityVO.setCheckResult(convertCommitCheckResult(commitQualityPO.getCheckResult()));
|
|
|
+ commitQualityVO.setCheckTime(commitQualityPO.getCheckTime());
|
|
|
+ commitQualityVO.setResultUrl(commitQualityPO.getResultUrl());
|
|
|
+ return commitQualityVO;
|
|
|
+ } else {
|
|
|
+ CommitQualityVO commitQualityVO = new CommitQualityVO();
|
|
|
+ commitQualityVO.setCheckResult(CommitCheckResultEnum.NONE);
|
|
|
+ return commitQualityVO;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // convert String result to Enum result
|
|
|
+ private CommitCheckResultEnum convertCommitCheckResult(String rawResult) {
|
|
|
+ if (rawResult.equals("OK")) {
|
|
|
+ return CommitCheckResultEnum.PASS;
|
|
|
+ } else {
|
|
|
+ return CommitCheckResultEnum.FAIL;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|