Commit 017d71c4 authored by 黎博's avatar 黎博

Merge branch 'master' into monitor

parents b721d8d2 ebed049a
package cn.qg.holmes.controller.gitlab;
import cn.qg.holmes.common.JsonResult;
import cn.qg.holmes.entity.k8s.DockerProject;
import cn.qg.holmes.service.k8s.DockerProjectService;
import cn.qg.holmes.utils.GitlabService;
import cn.qg.holmes.utils.HttpClientUtils;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
......@@ -15,36 +20,83 @@ import java.util.*;
@RequestMapping("/gitlab")
public class GitlabController {
@Autowired
GitlabService gitlabService;
@Autowired
DockerProjectService dockerProjectService;
/**
* 获取项目名列表
* @return
*/
@GetMapping("/projects")
public JsonResult getProjectsList() {
String baseUrl = "http://qaapi.liangkebang.com/proconfig/get_project_for_jenkins?type=";
String javaResult = HttpClientUtils.doGet(baseUrl + "java");
String uiResult = HttpClientUtils.doGet(baseUrl + "ui");
String nodeResult = HttpClientUtils.doGet(baseUrl + "node");
List<String> javaList = Arrays.asList(javaResult.split("\n"));
List<String> uiList = Arrays.asList(uiResult.split("\n"));
List<String> nodeList = Arrays.asList(nodeResult.split("\n"));
// String baseUrl = "http://qaapi.liangkebang.com/proconfig/get_project_for_jenkins?type=";
// String javaResult = HttpClientUtils.doGet(baseUrl + "java");
// String uiResult = HttpClientUtils.doGet(baseUrl + "ui");
// String nodeResult = HttpClientUtils.doGet(baseUrl + "node");
// List<String> javaList = Arrays.asList(javaResult.split("\n"));
// List<String> uiList = Arrays.asList(uiResult.split("\n"));
// List<String> nodeList = Arrays.asList(nodeResult.split("\n"));
// List<Map<String, String>> serviceList = new ArrayList<>();
// for (String service: javaList) {
// Map<String, String> map = new HashMap<>();
// map.put("name", service);
// map.put("type", "java");
// serviceList.add(map);
// }
// for (String service: uiList) {
// Map<String, String> map = new HashMap<>();
// map.put("name", service);
// map.put("type", "ui");
// serviceList.add(map);
// }
// for (String service: nodeList) {
// Map<String, String> map = new HashMap<>();
// map.put("name", service);
// map.put("type", "node");
// serviceList.add(map);
// }
// return JsonResult.buildSuccessResult(serviceList);
List<Map<String, String>> serviceList = new ArrayList<>();
for (String service: javaList) {
QueryWrapper<DockerProject> dockerProjectQueryWrapper = new QueryWrapper<>();
dockerProjectQueryWrapper
.eq("is_active", 1)
.eq("project_type", "java")
.orderByAsc("project_name");
List<DockerProject> dockerProjectList = dockerProjectService.list(dockerProjectQueryWrapper);
for (DockerProject dockerProject: dockerProjectList) {
Map<String, String> map = new HashMap<>();
map.put("name", service);
map.put("type", "java");
map.put("name", dockerProject.getProjectName());
map.put("type", dockerProject.getProjectType());
serviceList.add(map);
}
for (String service: uiList) {
dockerProjectQueryWrapper.clear();
dockerProjectList.clear();
dockerProjectQueryWrapper
.eq("is_active", 1)
.eq("project_type", "ui")
.orderByAsc("project_name");
dockerProjectList = dockerProjectService.list(dockerProjectQueryWrapper);
for (DockerProject dockerProject: dockerProjectList) {
Map<String, String> map = new HashMap<>();
map.put("name", service);
map.put("type", "ui");
map.put("name", dockerProject.getProjectName());
map.put("type", dockerProject.getProjectType());
serviceList.add(map);
}
for (String service: nodeList) {
dockerProjectQueryWrapper.clear();
dockerProjectList.clear();
dockerProjectQueryWrapper
.eq("is_active", 1)
.eq("project_type", "node")
.orderByAsc("project_name");
dockerProjectList = dockerProjectService.list(dockerProjectQueryWrapper);
for (DockerProject dockerProject: dockerProjectList) {
Map<String, String> map = new HashMap<>();
map.put("name", service);
map.put("type", "node");
map.put("name", dockerProject.getProjectName());
map.put("type", dockerProject.getProjectType());
serviceList.add(map);
}
return JsonResult.buildSuccessResult(serviceList);
......@@ -57,7 +109,15 @@ public class GitlabController {
*/
@GetMapping("/branches")
public JsonResult getBranchesByProject(String projectName) {
String url = "https://qaapi.liangkebang.com/pipeline/getGitBranch?name=" + projectName;
return JsonResult.buildSuccessResult(JSON.parseObject(HttpClientUtils.doGet(url), Map.class));
List<Map<String, Object>> projectList = gitlabService.getProjectByRestApi(projectName);
Integer projectId = null;
for (Map<String, Object> project: projectList) {
if (project.get("name").toString().equals(projectName) || project.get("path").toString().equals(projectName)) {
projectId = (Integer) project.get("id");
}
}
return JsonResult.buildSuccessResult(gitlabService.getBranchesByProjectId(projectId));
// String url = "https://qaapi.liangkebang.com/pipeline/getGitBranch?name=" + projectName;
// return JsonResult.buildSuccessResult(JSON.parseObject(HttpClientUtils.doGet(url), Map.class));
}
}
package cn.qg.holmes.utils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import org.gitlab.api.GitlabAPI;
import org.gitlab.api.models.GitlabBranch;
import org.gitlab.api.models.GitlabProject;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Component
public class GitlabService {
private static final String URL = "http://git.quantgroup.cn/";
......@@ -59,10 +58,38 @@ public class GitlabService {
return branches;
}
public List<Map<String, Object>> getProjectByRestApi(String projectName) {
String url = URL + "api/v4/projects";
Map<String, String> params = new HashMap<>();
params.put("per_page", "200");
params.put("search", projectName);
params.put("private_token", TOKEN);
params.put("simple", "true");
String result = HttpClientUtils.doGet(url, params);
return (List<Map<String, Object>>) JSON.parse(result);
}
public List<Map> getBranchesByProjectId(Integer projectId) {
String url = URL + "api/v4/projects/" + projectId.toString() + "/repository/branches";
Map<String, String> params = new HashMap<>();
List<Map> branchList = new ArrayList<>();
params.put("per_page", "100");
params.put("private_token", TOKEN);
for (int i=0; i < 4; i++) {
params.put("page", String.valueOf(i+1));
String requestResult = HttpClientUtils.doGet(url, params);
branchList.addAll(JSONArray.parseArray(requestResult, Map.class));
}
return branchList;
}
public static void main(String[] args) {
GitlabService gitlabService = new GitlabService();
List<String> branches = gitlabService.getBranchesByProjectName("holmes");
System.out.println(branches);
// List<String> branches = gitlabService.getBranchesByProjectName("holmes");
// System.out.println(branches);
// System.out.println(gitlabService.getProjectByRestApi("holmes"));
System.out.println(gitlabService.getBranchesByProjectId(795).size());
}
}
......@@ -17,5 +17,6 @@
<if test="testcaseName != null and testcaseName !=''">
AND tc.`name` LIKE CONCAT('%', #{testcaseName}, '%')
</if>
order by tc.`id` desc
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment