Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
holmes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
holmes
Commits
017d71c4
Commit
017d71c4
authored
Dec 29, 2021
by
黎博
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into monitor
parents
b721d8d2
ebed049a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
113 additions
and
25 deletions
+113
-25
GitlabController.java
...java/cn/qg/holmes/controller/gitlab/GitlabController.java
+78
-18
GitlabService.java
src/main/java/cn/qg/holmes/utils/GitlabService.java
+34
-7
TestcaseMapper.xml
src/main/resources/mapper/auto/TestcaseMapper.xml
+1
-0
No files found.
src/main/java/cn/qg/holmes/controller/gitlab/GitlabController.java
View file @
017d71c4
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));
}
}
src/main/java/cn/qg/holmes/utils/GitlabService.java
View file @
017d71c4
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
());
}
}
src/main/resources/mapper/auto/TestcaseMapper.xml
View file @
017d71c4
...
...
@@ -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
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment