diff --git a/chart/gitlab-service/templates/NOTES.txt b/chart/gitlab-service/templates/NOTES.txt
index 9f6345e..c9a7709 100755
--- a/chart/gitlab-service/templates/NOTES.txt
+++ b/chart/gitlab-service/templates/NOTES.txt
@@ -3,7 +3,7 @@
Verify deployment:
curl -s $(kubectl get po --namespace {{ .Release.Namespace }} \
- -l choerodon.io/release={{ .Release.Name }} \
+ -l app.kubernetes.io/name={{ .Release.Name }} \
-o jsonpath="{.items[0].status.podIP}"):{{ .Values.containerPort.actuatorPort }}/actuator/health | jq -r .status
If the following similar information appears, it is a successful deployment:
diff --git a/chart/gitlab-service/templates/deployment.yaml b/chart/gitlab-service/templates/deployment.yaml
index 27e7232..99aa66c 100755
--- a/chart/gitlab-service/templates/deployment.yaml
+++ b/chart/gitlab-service/templates/deployment.yaml
@@ -194,9 +194,8 @@ spec:
{{- end }}
{{- if .Values.startupProbe.enabled }}
startupProbe:
- httpGet:
- path: /actuator/health
- port: actuator
+ tcpSocket:
+ port: server
initialDelaySeconds: {{ .Values.startupProbe.initialDelaySeconds }}
periodSeconds: {{ .Values.startupProbe.periodSeconds }}
timeoutSeconds: {{ .Values.startupProbe.timeoutSeconds }}
diff --git a/chart/gitlab-service/values.yaml b/chart/gitlab-service/values.yaml
index 1afd656..2d268d1 100755
--- a/chart/gitlab-service/values.yaml
+++ b/chart/gitlab-service/values.yaml
@@ -264,7 +264,7 @@ livenessProbe:
# -- Enable livenessProbe
enabled: true
# -- Initial delay seconds for livenessProbe
- initialDelaySeconds: 480
+ initialDelaySeconds: 300
# -- Period seconds for livenessProbe
periodSeconds: 5
# -- Timeout seconds for livenessProbe
@@ -272,12 +272,12 @@ livenessProbe:
# -- Success threshold for livenessProbe
successThreshold: 1
# -- Failure threshold for livenessProbe
- failureThreshold: 5
+ failureThreshold: 2
readinessProbe:
# -- Enable readinessProbe
enabled: true
# -- Initial delay seconds for readinessProbe
- initialDelaySeconds: 30
+ initialDelaySeconds: 20
# -- Period seconds for readinessProbe
periodSeconds: 5
# -- Timeout seconds for readinessProbe
@@ -285,16 +285,16 @@ readinessProbe:
# -- Success threshold for readinessProbe
successThreshold: 1
# -- Failure threshold for readinessProbe
- failureThreshold: 5
+ failureThreshold: 2
startupProbe:
# -- Enable startupProbe
- enabled: false
+ enabled: true
# -- Initial delay seconds for startupProbe
- initialDelaySeconds: 0
+ initialDelaySeconds: 10
# -- Period seconds for startupProbe
- periodSeconds: 5
+ periodSeconds: 3
# -- Timeout seconds for startupProbe
- timeoutSeconds: 3
+ timeoutSeconds: 2
# -- Success threshold for startupProbe
successThreshold: 1
# -- Failure threshold for startupProbe
diff --git a/pom.xml b/pom.xml
index 10c32c7..2ef8da8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
gitlab-service
- 2.0.0.RELEASE
+ 2.2.0-20-SNAPSHOT
jar
https://github.com/choerodon/gitlab-service
@@ -12,7 +12,7 @@
io.choerodon
choerodon-framework-parent
- 2.0.0.RELEASE
+ 2.2.0-20-SNAPSHOT
@@ -56,7 +56,7 @@
io.choerodon
choerodon-gitlab4j-api
- 1.3.0-SNAPSHOT
+ 2.1.2.RELEASE
org.springframework.boot
@@ -117,7 +117,7 @@
commons-io
commons-io
- 2.4
+ 2.7
org.springframework.boot
diff --git a/src/main/java/io/choerodon/gitlab/api/controller/v1/CommitController.java b/src/main/java/io/choerodon/gitlab/api/controller/v1/CommitController.java
index 4fe69e6..8abf67d 100644
--- a/src/main/java/io/choerodon/gitlab/api/controller/v1/CommitController.java
+++ b/src/main/java/io/choerodon/gitlab/api/controller/v1/CommitController.java
@@ -3,9 +3,6 @@
import java.util.List;
import java.util.Optional;
-import io.choerodon.gitlab.api.vo.CommitVO;
-import io.choerodon.gitlab.api.vo.GitlabTransferVO;
-
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.gitlab4j.api.models.Commit;
@@ -18,10 +15,9 @@
import io.choerodon.core.exception.FeignException;
import io.choerodon.gitlab.api.vo.CommitStatuseVO;
+import io.choerodon.gitlab.api.vo.GitlabTransferVO;
import io.choerodon.gitlab.app.service.CommitService;
-import javax.validation.Valid;
-
/**
* Created by zzy on 2018/1/14.
*/
diff --git a/src/main/java/io/choerodon/gitlab/api/controller/v1/GroupsController.java b/src/main/java/io/choerodon/gitlab/api/controller/v1/GroupsController.java
index 9ddef8b..2297f50 100644
--- a/src/main/java/io/choerodon/gitlab/api/controller/v1/GroupsController.java
+++ b/src/main/java/io/choerodon/gitlab/api/controller/v1/GroupsController.java
@@ -12,6 +12,7 @@
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
+import io.choerodon.core.domain.Page;
import io.choerodon.core.exception.FeignException;
import io.choerodon.gitlab.api.vo.GitlabTransferVO;
import io.choerodon.gitlab.api.vo.GroupVO;
@@ -44,6 +45,24 @@ public ResponseEntity> list(@ApiParam(value = "userId")
return ResponseEntity.ok(groupService.listGroupsWithParam(userId, owned, search, skipGroups));
}
+ /**
+ * 分页查询所有组
+ *
+ * @return List
+ */
+ @ApiOperation(value = "分页查询有权限的所有组")
+ @PostMapping("/{userId}/paging")
+ public ResponseEntity> paging(@ApiParam(value = "userId")
+ @PathVariable(value = "userId") Integer userId,
+ @RequestParam(value = "page") Integer page,
+ @RequestParam(value = "size") Integer size,
+ @RequestParam(value = "owned", required = false) Boolean owned,
+ @RequestParam(value = "search", required = false) String search,
+ @RequestParam(value = "minAccessLevel", required = false) Integer minAccessLevel,
+ @RequestBody List skipGroups) {
+ return ResponseEntity.ok(groupService.pagingGroupsWithParam(userId, page, size, owned, search, skipGroups,minAccessLevel));
+ }
+
/**
* 查询所有组
*
@@ -122,6 +141,25 @@ public ResponseEntity> listMember(
.orElseThrow(() -> new FeignException("error.groups.members.get"));
}
+ /**
+ * 查询组中的成员
+ *
+ * @param groupId 组对象Id
+ * @return List
+ */
+ @ApiOperation(value = "分页查询成员列表")
+ @GetMapping(value = "/{groupId}/members/page")
+ public ResponseEntity> pageMember(
+ @ApiParam(value = "组ID", required = true)
+ @PathVariable Integer groupId,
+ @RequestParam Integer page,
+ @RequestParam Integer size,
+ @ApiParam(value = "用户userId")
+ @RequestParam(required = false) Integer userId,
+ @RequestParam(value = "search", required = false) String search) {
+ return ResponseEntity.ok(groupService.pageMember(groupId, page, size, userId, search));
+ }
+
/**
* 根据用户ID获得组成员信息
*
@@ -230,8 +268,9 @@ public ResponseEntity> listProjects(
@RequestParam(value = "owned", required = false) Boolean owned,
@RequestParam(value = "search", required = false) String search,
@RequestParam(value = "page", required = false) Integer page,
- @RequestParam(value = "perPage", required = false) Integer perPage) {
- return ResponseEntity.ok(groupService.listProjects(groupId, userId, owned, search, page, perPage));
+ @RequestParam(value = "perPage", required = false) Integer perPage,
+ @RequestParam(value = "minAccessLevel", required = false) Integer minAccessLevel) {
+ return ResponseEntity.ok(groupService.listProjects(groupId, userId, owned, search, page, perPage, minAccessLevel));
}
/**
@@ -252,6 +291,16 @@ public ResponseEntity queryGroupByName(
return new ResponseEntity<>(groupService.queryGroupByName(groupName, userId), HttpStatus.OK);
}
+ @ApiOperation(value = "根据组id查询组")
+ @GetMapping(value = "/query_by_id/{group_iid}")
+ public ResponseEntity queryGroupByIid(
+ @ApiParam(value = "组名", required = true)
+ @PathVariable(value = "group_iid") Integer groupIid,
+ @ApiParam(value = "userId")
+ @RequestParam(required = false) Integer userId) {
+ return new ResponseEntity<>(groupService.queryGroupByIid(groupIid, userId), HttpStatus.OK);
+ }
+
@ApiOperation(value = "根据组名检索组的列表")
@GetMapping(value = "/{group_name}/with_statistics")
public ResponseEntity> queryGroupWithStatisticsByName(
diff --git a/src/main/java/io/choerodon/gitlab/api/controller/v1/HookController.java b/src/main/java/io/choerodon/gitlab/api/controller/v1/HookController.java
index 6895dcd..9a88f1a 100644
--- a/src/main/java/io/choerodon/gitlab/api/controller/v1/HookController.java
+++ b/src/main/java/io/choerodon/gitlab/api/controller/v1/HookController.java
@@ -71,6 +71,20 @@ public ResponseEntity create(
.orElseThrow(() -> new FeignException("error.projects.update.hook"));
}
+ @ApiOperation(value = "更新ProjectHook对象")
+ @PutMapping("{hook_id}")
+ public ResponseEntity update(
+ @ApiParam(value = "项目ID", required = true)
+ @RequestParam Integer projectId,
+ @ApiParam(value = "userId")
+ @RequestParam(required = false) Integer userId,
+ @ApiParam(value = "hookId", required = true)
+ @PathVariable(value = "hook_id") Integer hookId,
+ @RequestBody @Valid ProjectHook projectHook) {
+ return Optional.ofNullable(hookService.updateProjectHook(projectId, hookId, userId, projectHook))
+ .map(target -> new ResponseEntity<>(target, HttpStatus.NO_CONTENT))
+ .orElseThrow(() -> new FeignException("error.projects.update.hook"));
+ }
/**
* 获取ProjectHook对象
diff --git a/src/main/java/io/choerodon/gitlab/api/controller/v1/PipelineScheduleController.java b/src/main/java/io/choerodon/gitlab/api/controller/v1/PipelineScheduleController.java
index a1ba8d4..91d3159 100644
--- a/src/main/java/io/choerodon/gitlab/api/controller/v1/PipelineScheduleController.java
+++ b/src/main/java/io/choerodon/gitlab/api/controller/v1/PipelineScheduleController.java
@@ -6,7 +6,6 @@
import io.swagger.annotations.ApiParam;
import org.gitlab4j.api.models.PipelineSchedule;
import org.gitlab4j.api.models.Variable;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
diff --git a/src/main/java/io/choerodon/gitlab/api/controller/v1/ProjectsController.java b/src/main/java/io/choerodon/gitlab/api/controller/v1/ProjectsController.java
index f34306e..3edccca 100644
--- a/src/main/java/io/choerodon/gitlab/api/controller/v1/ProjectsController.java
+++ b/src/main/java/io/choerodon/gitlab/api/controller/v1/ProjectsController.java
@@ -133,7 +133,7 @@ public ResponseEntity>> batchSaveVariableEvent(
@ApiParam(value = "项目ID", required = true)
@PathVariable Integer projectId,
@ApiParam(value = "用户ID", required = true)
- @RequestParam(value = "userId") Integer userId,
+ @RequestParam(value = "userId", required = false) Integer userId,
@ApiParam(value = "variable信息", required = true)
@RequestBody @Valid List list) {
return Optional.ofNullable(projectService.batchCreateVariable(projectId, list, userId))
@@ -323,7 +323,7 @@ public ResponseEntity> getDeployKeys(
@ApiParam(value = "项目ID", required = true)
@RequestParam Integer projectId,
@ApiParam(value = "用户Id")
- @RequestParam Integer userId) {
+ @RequestParam(required = false) Integer userId) {
return Optional.ofNullable(projectService.getDeployKeys(projectId, userId))
.map(target -> new ResponseEntity<>(target, HttpStatus.OK))
.orElseThrow(() -> new FeignException("error.project.deploy.key.get"));
@@ -461,6 +461,23 @@ public ResponseEntity getMember(
.orElseThrow(() -> new FeignException("error.groups.member.create"));
}
+ /**
+ * 查询项目角色
+ *
+ * @param projectId 项目id
+ * @param userId 用户Id
+ * @return Member
+ */
+ @ApiOperation(value = "查询项目角色,包含继承的角色")
+ @GetMapping(value = "/{projectId}/members/all/{userId}")
+ public ResponseEntity getAllMember(
+ @ApiParam(value = "项目id", required = true)
+ @PathVariable(value = "projectId") Integer projectId,
+ @ApiParam(value = "成员信息", required = true)
+ @PathVariable(value = "userId") Integer userId) {
+ return ResponseEntity.ok(projectService.getAllMember(projectId, userId));
+ }
+
/**
* 获取项目下所有成员
*
@@ -476,6 +493,20 @@ public ResponseEntity> getAllMemberByProjectId(
.map(result -> new ResponseEntity<>(result, HttpStatus.OK))
.orElseThrow(() -> new FeignException("error.project.member.list"));
}
+ /**
+ * 获取项目下所有成员
+ *
+ * @param projectId 项目id
+ * @return List
+ */
+ @ApiOperation(value = "获取项目下所有成员")
+ @GetMapping(value = "/{project_id}/all_members/list")
+ public ResponseEntity> getAllMemberByProjectIdAndQuery(
+ @ApiParam(value = "项目id", required = true)
+ @PathVariable(value = "project_id") Integer projectId,
+ @RequestParam(value = "query") String query) {
+ return ResponseEntity.ok(projectService.getAllMemberByProjectIdAndQuery(projectId, query));
+ }
/**
* 获取用户的gitlab项目列表
diff --git a/src/main/java/io/choerodon/gitlab/api/controller/v1/UserController.java b/src/main/java/io/choerodon/gitlab/api/controller/v1/UserController.java
index 852edcf..7f14f83 100644
--- a/src/main/java/io/choerodon/gitlab/api/controller/v1/UserController.java
+++ b/src/main/java/io/choerodon/gitlab/api/controller/v1/UserController.java
@@ -86,6 +86,19 @@ public ResponseEntity> list(
.orElseThrow(() -> new FeignException("error.users.queryAll"));
}
+ /**
+ * 查找所有admin用户
+ *
+ * @return List
+ */
+ @ApiOperation(value = "查找所有用户")
+ @GetMapping(value = "/list_admin_users")
+ public ResponseEntity> listAdminUsers() {
+ return Optional.ofNullable(userService.getAdminUsers())
+ .map(target -> new ResponseEntity<>(target, HttpStatus.OK))
+ .orElseThrow(() -> new FeignException("error.users.queryAll"));
+ }
+
/**
* 根据用户ID获得用户信息
*
diff --git a/src/main/java/io/choerodon/gitlab/api/vo/GitlabUserReqDTO.java b/src/main/java/io/choerodon/gitlab/api/vo/GitlabUserReqDTO.java
index 7ab6000..ce83d7c 100644
--- a/src/main/java/io/choerodon/gitlab/api/vo/GitlabUserReqDTO.java
+++ b/src/main/java/io/choerodon/gitlab/api/vo/GitlabUserReqDTO.java
@@ -1,7 +1,5 @@
package io.choerodon.gitlab.api.vo;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
import java.util.Date;
/**
diff --git a/src/main/java/io/choerodon/gitlab/app/service/ConfigService.java b/src/main/java/io/choerodon/gitlab/app/service/ConfigService.java
index 90074df..44146bf 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/ConfigService.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/ConfigService.java
@@ -1,7 +1,5 @@
package io.choerodon.gitlab.app.service;
-import org.springframework.http.ResponseEntity;
-
/**
* @author: trump
* @date: 2019/8/21 16:33
diff --git a/src/main/java/io/choerodon/gitlab/app/service/GroupService.java b/src/main/java/io/choerodon/gitlab/app/service/GroupService.java
index aae272e..0e22653 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/GroupService.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/GroupService.java
@@ -1,11 +1,13 @@
package io.choerodon.gitlab.app.service;
+import java.util.List;
+
+import org.gitlab4j.api.models.*;
+
+import io.choerodon.core.domain.Page;
import io.choerodon.gitlab.api.vo.GroupVO;
import io.choerodon.gitlab.api.vo.MemberVO;
import io.choerodon.gitlab.api.vo.VariableVO;
-import org.gitlab4j.api.models.*;
-
-import java.util.List;
public interface GroupService {
/**
@@ -196,8 +198,13 @@ List batchCreateVariable(Integer groupId,
* @param userId 用户Id
* @return List
*/
- List listProjects(Integer groupId, Integer userId, Boolean owned, String search, Integer page, Integer perPage);
+ List listProjects(Integer groupId, Integer userId, Boolean owned, String search, Integer page, Integer perPage, Integer minAccessLevel);
List queryGroupWithStatisticsByName(String groupName, Integer userId, Boolean statistics);
+ Group queryGroupByIid(Integer groupIid, Integer userId);
+
+ Page pageMember(Integer groupId, Integer page, Integer size, Integer userId, String search);
+
+ Page pagingGroupsWithParam(Integer userId, Integer page, Integer size, Boolean owned, String search, List skipGroups, Integer minAccessLevel);
}
diff --git a/src/main/java/io/choerodon/gitlab/app/service/HookService.java b/src/main/java/io/choerodon/gitlab/app/service/HookService.java
index 1d552d6..7b987d0 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/HookService.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/HookService.java
@@ -2,7 +2,6 @@
import java.util.List;
-import org.gitlab4j.api.models.CommitStatuse;
import org.gitlab4j.api.models.ProjectHook;
@@ -23,4 +22,6 @@ public interface HookService {
ProjectHook updateProjectHook(Integer projectId,Integer hookId, Integer userId);
List listProjectHook(Integer projectId, Integer userId);
+
+ ProjectHook updateProjectHook(Integer projectId, Integer hookId, Integer userId, ProjectHook projectHook);
}
diff --git a/src/main/java/io/choerodon/gitlab/app/service/ProjectService.java b/src/main/java/io/choerodon/gitlab/app/service/ProjectService.java
index a9c0d00..8f2d64c 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/ProjectService.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/ProjectService.java
@@ -251,4 +251,7 @@ Map createProtectedBranches(Integer projectId,
Project updateNameAndPath(Integer projectId, Integer userId, String name);
+ List getAllMemberByProjectIdAndQuery(Integer projectId, String query);
+
+ Member getAllMember(Integer projectId, Integer userId);
}
diff --git a/src/main/java/io/choerodon/gitlab/app/service/RepositoryService.java b/src/main/java/io/choerodon/gitlab/app/service/RepositoryService.java
index 6697f98..4265de7 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/RepositoryService.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/RepositoryService.java
@@ -105,16 +105,6 @@ public interface RepositoryService {
*/
List listBranches(Integer projectId, Integer userId, AppExternalConfigDTO appExternalConfigDTO);
-
-// /**
-// * 项目下创建readme
-// *
-// * @param projectId 项目id
-// * @param userId 用户Id
-// */
-// boolean createFile(Integer projectId, Integer userId);
-
-
/**
* 项目下获取file
*
diff --git a/src/main/java/io/choerodon/gitlab/app/service/UserService.java b/src/main/java/io/choerodon/gitlab/app/service/UserService.java
index 90e03d1..0cbc780 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/UserService.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/UserService.java
@@ -10,6 +10,8 @@
public interface UserService {
+ List getAdminUsers();
+
/**
* 获得当前用户信息
*
diff --git a/src/main/java/io/choerodon/gitlab/app/service/impl/GroupServiceImpl.java b/src/main/java/io/choerodon/gitlab/app/service/impl/GroupServiceImpl.java
index 9e3698d..e3b8a66 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/impl/GroupServiceImpl.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/impl/GroupServiceImpl.java
@@ -7,12 +7,15 @@
import org.gitlab4j.api.GitLabApi;
import org.gitlab4j.api.GitLabApiException;
import org.gitlab4j.api.GroupApi;
+import org.gitlab4j.api.Pager;
import org.gitlab4j.api.models.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import io.choerodon.core.domain.Page;
+import io.choerodon.core.domain.PageInfo;
import io.choerodon.core.exception.FeignException;
import io.choerodon.gitlab.api.vo.GroupVO;
import io.choerodon.gitlab.api.vo.MemberVO;
@@ -238,9 +241,7 @@ public void deleteVariable(Integer groupId, String key, Integer userId) {
@Override
public void batchDeleteVariable(Integer groupId, List keys, Integer userId) {
- keys.forEach(key -> {
- deleteVariable(groupId, key, userId);
- });
+ keys.forEach(key -> deleteVariable(groupId, key, userId));
}
@Override
@@ -264,11 +265,16 @@ public List batchCreateVariable(Integer groupId, List list
}
@Override
- public List listProjects(Integer groupId, Integer userId, Boolean owned, String search, Integer page, Integer perPage) {
+ public List listProjects(Integer groupId, Integer userId, Boolean owned, String search, Integer page, Integer perPage, Integer minAccessLevel) {
GitLabApi gitLabApi = gitlab4jclient.getGitLabApi(userId);
try {
GroupProjectsFilter groupProjectsFilter = new GroupProjectsFilter();
- groupProjectsFilter.withOwned(owned).withSearch(search).withPage(page).withPerPage(perPage);
+ groupProjectsFilter
+ .withOwned(owned)
+ .withSearch(search)
+ .withPage(page)
+ .withPerPage(perPage)
+ .withMinAccessLevel(minAccessLevel);
return gitLabApi.getGroupApi().getProjects(groupId, groupProjectsFilter);
} catch (GitLabApiException e) {
throw new FeignException(e.getMessage(), e);
@@ -285,4 +291,42 @@ public List queryGroupWithStatisticsByName(String groupName, Integer user
return null;
}
}
+
+ @Override
+ public Group queryGroupByIid(Integer groupIid, Integer userId) {
+ GitLabApi gitLabApi = gitlab4jclient.getGitLabApi(userId);
+ try {
+ return gitLabApi.getGroupApi().getGroup(groupIid);
+ } catch (GitLabApiException e) {
+ throw new FeignException(e.getMessage(), e);
+ }
+ }
+
+ @Override
+ public Page pageMember(Integer groupId, Integer page, Integer size, Integer userId, String search) {
+ GitLabApi gitLabApi = gitlab4jclient.getGitLabApi(userId);
+ try {
+ Pager allMembers = gitLabApi.getGroupApi().getAllMembers(groupId, search, null, page + 1, size);
+ return new Page<>(allMembers.getCurrentItems(), new PageInfo(page, size), allMembers.getTotalItems());
+ } catch (GitLabApiException e) {
+ throw new FeignException(e.getMessage(), e);
+ }
+ }
+
+ @Override
+ public Page pagingGroupsWithParam(Integer userId, Integer page, Integer size, Boolean owned, String search, List skipGroups, Integer minAccessLevel) {
+ GitLabApi gitLabApi = gitlab4jclient.getGitLabApi(userId);
+ try {
+ GroupFilter groupFilter = new GroupFilter();
+ if (minAccessLevel != null) {
+ groupFilter.withSkipGroups(skipGroups).withOwned(owned).withSearch(search).withMinAccessLevel(AccessLevel.forValue(minAccessLevel));
+ } else {
+ groupFilter.withSkipGroups(skipGroups).withOwned(owned).withSearch(search);
+ }
+ Pager groups = gitLabApi.getGroupApi().getGroups(groupFilter, page + 1, size);
+ return new Page<>(groups.getCurrentItems(), new PageInfo(page, size), groups.getTotalItems());
+ } catch (GitLabApiException e) {
+ throw new FeignException(e.getMessage(), e);
+ }
+ }
}
\ No newline at end of file
diff --git a/src/main/java/io/choerodon/gitlab/app/service/impl/HookServiceImpl.java b/src/main/java/io/choerodon/gitlab/app/service/impl/HookServiceImpl.java
index 1bfbf7d..34b4bed 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/impl/HookServiceImpl.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/impl/HookServiceImpl.java
@@ -53,4 +53,13 @@ public List listProjectHook(Integer projectId,Integer userId) {
}
}
+
+ @Override
+ public ProjectHook updateProjectHook(Integer projectId, Integer hookId, Integer userId, ProjectHook projectHook) {
+ try {
+ return gitlab4jclient.getGitLabApi(userId).getProjectApi().modifyHook(projectHook);
+ } catch (GitLabApiException e) {
+ throw new FeignException(e.getMessage(), e);
+ }
+ }
}
diff --git a/src/main/java/io/choerodon/gitlab/app/service/impl/MergeRequestServiceImpl.java b/src/main/java/io/choerodon/gitlab/app/service/impl/MergeRequestServiceImpl.java
index 9bb26f9..e5985a3 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/impl/MergeRequestServiceImpl.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/impl/MergeRequestServiceImpl.java
@@ -3,6 +3,7 @@
import java.util.List;
import java.util.stream.Collectors;
+import org.gitlab4j.api.Constants;
import org.gitlab4j.api.GitLabApiException;
import org.gitlab4j.api.models.Commit;
import org.gitlab4j.api.models.MergeRequest;
@@ -68,7 +69,7 @@ public MergeRequest queryMergeRequest(Integer projectId, Integer mergeRequestId,
public List listMergeRequests(Integer projectId) {
try {
return gitlab4jclient.getGitLabApi(null).getMergeRequestApi()
- .getMergeRequests(projectId);
+ .getMergeRequests(projectId, Constants.MergeRequestState.ALL);
} catch (GitLabApiException e) {
throw new FeignException("error.mergeRequests.list");
}
diff --git a/src/main/java/io/choerodon/gitlab/app/service/impl/ProjectServiceImpl.java b/src/main/java/io/choerodon/gitlab/app/service/impl/ProjectServiceImpl.java
index 15152a2..077da04 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/impl/ProjectServiceImpl.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/impl/ProjectServiceImpl.java
@@ -317,4 +317,25 @@ public Project updateNameAndPath(Integer projectId, Integer userId, String name)
throw new FeignException(e.getMessage(), e);
}
}
+
+ @Override
+ public List getAllMemberByProjectIdAndQuery(Integer projectId, String query) {
+ try {
+ return gitlab4jclient.getGitLabApi().getProjectApi().getAllMembers(projectId, query);
+ } catch (GitLabApiException e) {
+ throw new FeignException(e.getMessage(), e);
+ }
+ }
+
+ @Override
+ public Member getAllMember(Integer projectId, Integer userId) {
+ try {
+ return gitlab4jclient.getGitLabApi().getProjectApi().getMember(projectId, userId, true);
+ } catch (GitLabApiException e) {
+ LOGGER.error("no member found");
+ Member member = new Member();
+ member.setAccessLevel(AccessLevel.NONE);
+ return member;
+ }
+ }
}
\ No newline at end of file
diff --git a/src/main/java/io/choerodon/gitlab/app/service/impl/RepositoryServiceImpl.java b/src/main/java/io/choerodon/gitlab/app/service/impl/RepositoryServiceImpl.java
index c7b8430..0ddcdc5 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/impl/RepositoryServiceImpl.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/impl/RepositoryServiceImpl.java
@@ -26,8 +26,6 @@
@Service
public class RepositoryServiceImpl implements RepositoryService {
- private static final Logger logger = LoggerFactory.getLogger(RepositoryServiceImpl.class);
-
private Gitlab4jClient gitlab4jclient;
public RepositoryServiceImpl(Gitlab4jClient gitlab4jclient) {
diff --git a/src/main/java/io/choerodon/gitlab/app/service/impl/UserServiceImpl.java b/src/main/java/io/choerodon/gitlab/app/service/impl/UserServiceImpl.java
index 854a687..6d04b6f 100644
--- a/src/main/java/io/choerodon/gitlab/app/service/impl/UserServiceImpl.java
+++ b/src/main/java/io/choerodon/gitlab/app/service/impl/UserServiceImpl.java
@@ -5,6 +5,7 @@
import org.gitlab4j.api.Constants;
import org.gitlab4j.api.GitLabApiException;
+import org.gitlab4j.api.Pager;
import org.gitlab4j.api.UserApi;
import org.gitlab4j.api.models.Email;
import org.gitlab4j.api.models.ImpersonationToken;
@@ -53,6 +54,16 @@ public List listUser(Integer perPage, Integer page, Boolean active) {
}
}
+ @Override
+ public List getAdminUsers() {
+ try {
+ Pager adminUsers = gitlab4jclient.getGitLabApi().getUserApi().getAdminUsers(1, 100);
+ return adminUsers.all();
+ } catch (GitLabApiException e) {
+ throw new FeignException(e.getMessage(), e);
+ }
+ }
+
@Override
public User queryCurrentUser() {
try {
diff --git a/src/main/java/io/choerodon/gitlab/infra/common/config/GitlabHealthy.java b/src/main/java/io/choerodon/gitlab/infra/common/config/GitlabHealthy.java
index b96df31..7dd5262 100644
--- a/src/main/java/io/choerodon/gitlab/infra/common/config/GitlabHealthy.java
+++ b/src/main/java/io/choerodon/gitlab/infra/common/config/GitlabHealthy.java
@@ -1,10 +1,9 @@
package io.choerodon.gitlab.infra.common.config;
-import io.choerodon.core.exception.CommonException;
-import io.choerodon.core.exception.FeignException;
-import io.choerodon.gitlab.app.service.impl.GroupServiceImpl;
import org.gitlab4j.api.GitLabApi;
import org.gitlab4j.api.GitLabApiException;
+import org.gitlab4j.api.models.ApplicationSettings;
+import org.gitlab4j.api.models.Setting;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
@@ -12,6 +11,9 @@
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;
+import io.choerodon.core.exception.CommonException;
+import io.choerodon.core.exception.FeignException;
+
@Component
public class GitlabHealthy implements HealthIndicator {
@@ -44,7 +46,10 @@ public Health health() {
return Health.down().withDetail("Error Code", "the token or the url is error, or the ingress resolution error!").build();
} else {
try {
- gitLabApi.getApplicationApi().modifyApplicationSetting(true);
+ ApplicationSettings applicationSettings = gitLabApi.getApplicationSettingsApi().getApplicationSettings();
+ if (!Boolean.TRUE.equals(applicationSettings.getSetting(Setting.ALLOW_LOCAL_REQUESTS_FROM_WEB_HOOKS_AND_SERVICES))) {
+ gitLabApi.getApplicationSettingsApi().updateApplicationSetting(Setting.ALLOW_LOCAL_REQUESTS_FROM_WEB_HOOKS_AND_SERVICES, true);
+ }
} catch (GitLabApiException e) {
throw new FeignException(e);
}
diff --git a/src/main/resources/messages/messages_zh_CN.properties b/src/main/resources/messages/messages_zh_CN.properties
index df59402..fe0a083 100644
--- a/src/main/resources/messages/messages_zh_CN.properties
+++ b/src/main/resources/messages/messages_zh_CN.properties
@@ -55,4 +55,5 @@ error.member.projects.list=获取用户的gitlab项目失败
error.user.email.check=用户邮箱校验失败
error.reset.user.password=重置用户密码失败
error.group.variable.get=获取组变量失败
-error.group.variable.create=创建组变量失败
\ No newline at end of file
+error.group.variable.create=创建组变量失败
+error.key-encrypt.decrypt.abnormal_content=页面失效,请重新访问首页进入
\ No newline at end of file