Procházet zdrojové kódy

fix: 修复了branchName中含有反斜杠不能正常处理的bug

claws před 3 roky
rodič
revize
9b7d654d19

+ 3 - 1
seecoder-gitlab-client/src/main/java/com.nju.edu.gitlab/SeecoderGitlabClient.java

@@ -20,6 +20,7 @@ import org.slf4j.LoggerFactory;
 import okhttp3.*;
 
 import java.io.IOException;
+import java.net.URLEncoder;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
@@ -653,8 +654,9 @@ public class SeecoderGitlabClient implements SeecoderGitlabApi {
             ObjectMapper objectMapper = new ObjectMapper();
             Request.Builder builder = new Request.Builder()
                     .addHeader("Authorization", token);
+            String branchNameEncode = URLEncoder.encode(branchName, "UTF-8");
             builder = builder
-                    .url(host + "/api/project/" + projectId + "/branch-commit/" + branchName)
+                    .url(host + "/api/project/" + projectId + "/branch-commit/" + branchNameEncode)
                     .get();
             Request request = builder.build();
             final Call call = client.newCall(request);

+ 11 - 5
seecoder-gitlab-server/src/main/java/com/nju/edu/gitlab/service/impl/ProjectServiceImpl.java

@@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.io.*;
+import java.net.URLDecoder;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -224,11 +225,16 @@ public class ProjectServiceImpl implements ProjectService {
 
     @Override
     public List<CommitVO> getCommitsByBranch(int projectId, String branchName) throws GitLabApiException {
-        List<Commit> commits=gitlabApi.getCommitsApi().getCommits(projectId, branchName,null,null);
-        if (commits.size() != 0){
-            return commits.stream()
-                    .map(com -> castCommitToVO(com,branchName))
-                    .collect(Collectors.toList());
+        try {
+            String branchNameDecode = URLDecoder.decode(branchName, "UTF-8");
+            List<Commit> commits=gitlabApi.getCommitsApi().getCommits(projectId, branchName,null,null);
+            if (commits.size() != 0){
+                return commits.stream()
+                        .map(com -> castCommitToVO(com,branchNameDecode))
+                        .collect(Collectors.toList());
+            }
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException(e);
         }
         return null;
     }