|
|
@@ -11,11 +11,10 @@ import lombok.RequiredArgsConstructor;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.util.StringUtils;
|
|
|
|
|
|
-import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
+import java.util.Random;
|
|
|
|
|
|
@RequiredArgsConstructor
|
|
|
@Service
|
|
|
@@ -24,6 +23,8 @@ public class ForkServiceImpl implements ForkService {
|
|
|
private final SeecoderGitlabApi gitlabApi;
|
|
|
private final ProjectMapper projectMapper;
|
|
|
private final ApplicationProperties properties;
|
|
|
+ private final String ALPHABETS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|
|
+ private final Random random = new Random();
|
|
|
|
|
|
@Override
|
|
|
public ForkVO forkProject(ForkVO forkVO) {
|
|
|
@@ -35,14 +36,11 @@ public class ForkServiceImpl implements ForkService {
|
|
|
log.error("不存在想要 Fork 的项目 id: " + forkVO.getProjectId());
|
|
|
return null;
|
|
|
}
|
|
|
- String newName;
|
|
|
- if (StringUtils.isEmpty(forkVO.getName())) {
|
|
|
- // 默认命名为 原项目名-用户名
|
|
|
- newName = oldProject.getName() + "-" + principal.getUsername();
|
|
|
- } else {
|
|
|
- // 有用户自定义命名时,使用自定义命名
|
|
|
- newName = forkVO.getName();
|
|
|
+ StringBuilder sb = new StringBuilder(oldProject.getName() + "-");
|
|
|
+ for (int i = 0; i < 6; ++i) {
|
|
|
+ sb.append(ALPHABETS.charAt(random.nextInt(ALPHABETS.length())));
|
|
|
}
|
|
|
+ String newName = sb.toString();
|
|
|
List<com.nju.edu.gitlab.vo.ProjectVO> allProjects = gitlabApi.getAllProjectsByUserId(userId);
|
|
|
// 检测是否已经有重名项目
|
|
|
for (com.nju.edu.gitlab.vo.ProjectVO project: allProjects) {
|