Ver Fonte

算法库-获取git仓库提交版本、仓库测试连接功能

zhaoyan há 3 anos atrás
pai
commit
e33f13fe24

+ 5 - 2
api-common/src/main/java/api/common/pojo/param/algorithm/AlgorithmParameter.java

@@ -28,8 +28,11 @@ public class AlgorithmParameter extends PageParameter {
     //仓库地址
     private String gitUrl;
 
-    //代码仓库访问令牌
-    private String gitToken;
+    //代码仓库访问用户名
+    private String gitUserName;
+
+    //代码仓库访问密码
+    private String gitPassword;
 
     //算法文件在 minio 上的位置
     private String minioPath;

+ 5 - 2
api-common/src/main/java/api/common/pojo/po/algorithm/AlgorithmPO.java

@@ -28,8 +28,11 @@ public class AlgorithmPO extends BasePo {
     //仓库地址
     private String gitUrl;
 
-    //代码仓库访问令牌
-    private String gitToken;
+    //代码仓库访问用户名
+    private String gitUserName;
+
+    //代码仓库访问密码
+    private String gitPassword;
 
     //算法文件名称
     private String fileName;

+ 19 - 10
api-common/src/main/java/api/common/util/JgitUtil.java

@@ -1,17 +1,14 @@
 package api.common.util;
 
-import io.minio.MinioClient;
-import io.minio.PutObjectArgs;
-import io.minio.errors.MinioException;
 import org.eclipse.jgit.api.Git;
 import org.eclipse.jgit.api.errors.GitAPIException;
 import org.eclipse.jgit.lib.Ref;
 import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
 
 import java.io.*;
-import java.security.InvalidKeyException;
+import java.security.KeyManagementException;
+import java.security.KeyStoreException;
 import java.security.NoSuchAlgorithmException;
-import java.util.Date;
 import java.util.Map;
 
 
@@ -25,11 +22,11 @@ import java.util.Map;
 public class JgitUtil {
 
 
-   public static Map<String, Ref> testConnection(String remoteUrl, String username, String password) throws GitAPIException {
+    public static Map<String, Ref> testConnection(String remoteUrl, String username, String password) throws GitAPIException {
        UsernamePasswordCredentialsProvider provider = new UsernamePasswordCredentialsProvider(username,password);
        Map<String, Ref> asMap = Git.lsRemoteRepository().setRemote(remoteUrl).setCredentialsProvider(provider).callAsMap();
        return asMap;
-   }
+    }
 
     public static Map<String, Ref> testConnectionByToken(String remoteUrl, String gitToken) throws GitAPIException {
         UsernamePasswordCredentialsProvider provider = new UsernamePasswordCredentialsProvider("PRIVATE-TOKEN", gitToken);
@@ -44,11 +41,23 @@ public class JgitUtil {
         return result;
     }
 
-    public static void main(String[] args) throws GitAPIException, IOException {
+
+    public static void main(String[] args) throws GitAPIException, IOException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
        try {
-           Map<String, Ref> asMap = testConnection("http://10.15.12.70:3000/CSS/simulation-cloud.git","zhaoyan","111112111");
+           Git git = clone("https://github.com/tensorflow/serving.git","E:\\simulation-cloud\\test","","");
+//           Iterable<RevCommit> iterable = git.log().call();
+//           for (RevCommit u : iterable) {
+//               String ID = String.valueOf(u.getId());
+//               System.out.println("cgfghdnhg");
+//               System.out.println(u.getFullMessage());
+//               System.out.println( ID);
+//               System.out.println("done!!");
+////               正则表达式 截取需要的部分
+////               versionID = getMatcher("commit\\s(\\w+)\\s?", ID);
+//               break;
+//           }
            System.out.println("slfasjkfasfksd:");
-           System.out.println(asMap);
+           System.out.println(git.log());
        }catch (Exception e){
            System.out.println("failllll:");
        }

+ 13 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/algorithm/ctrl/AlgorithmCtrl.java

@@ -9,6 +9,9 @@ import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.security.KeyManagementException;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
 
 /**
  * 算法库模块
@@ -121,5 +124,15 @@ public class AlgorithmCtrl {
         return service.testConnection(param);
     }
 
+    /**
+     * 根据git仓库地址获取版本号
+     * @param param
+     * @return
+     */
+    @RequestMapping("getGitVersion")
+    @ResponseBody
+    public ResponseBodyVO getGitVersion(@RequestBody AlgorithmParameter param) throws IOException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
+        return service.getGitVersion(param);
+    }
 
 }

+ 5 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/algorithm/service/AlgorithmService.java

@@ -4,6 +4,9 @@ import api.common.pojo.common.ResponseBodyVO;
 import api.common.pojo.param.algorithm.AlgorithmParameter;
 
 import java.io.IOException;
+import java.security.KeyManagementException;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
 import java.util.Map;
 
 
@@ -27,5 +30,7 @@ public interface AlgorithmService {
 
     ResponseBodyVO testConnection(AlgorithmParameter param);
 
+    ResponseBodyVO getGitVersion(AlgorithmParameter param) throws NoSuchAlgorithmException, KeyStoreException, KeyManagementException, IOException;
+
     Map<String,Integer> selectDetailsBySy();
 }

+ 34 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/algorithm/serviceImpl/AlgorithmServiceImpl.java

@@ -13,12 +13,20 @@ import com.css.simulation.resource.algorithm.mapper.AlgorithmMapper;
 import com.css.simulation.resource.algorithm.service.AlgorithmService;
 import com.css.simulation.resource.feign.AlgoPlatformService;
 import com.css.simulation.resource.system.service.DictService;
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.github.pagehelper.PageInfo;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.impl.client.CloseableHttpClient;
 import org.eclipse.jgit.lib.Ref;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.io.IOException;
+import java.security.KeyManagementException;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -172,13 +180,34 @@ public class AlgorithmServiceImpl implements AlgorithmService {
     @Override
     public ResponseBodyVO testConnection(AlgorithmParameter param) {
         try{
-            Map<String, Ref> asMap = JgitUtil.testConnectionByToken(param.getGitUrl(),param.getGitToken());
+            Map<String, Ref> asMap = JgitUtil.testConnection(param.getGitUrl(), param.getGitUserName(), param.getGitPassword());
         } catch (Exception e){
             return new ResponseBodyVO(ResponseBodyVO.Response.SERVER_FAILURE,"连接失败!");
         }
         return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,"连接成功");
     }
 
+    @Override
+    public ResponseBodyVO getGitVersion(AlgorithmParameter param) throws IOException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException {
+        String gitUrl = param.getGitUrl();
+        if(StringUtil.isEmpty(gitUrl)){
+            return new ResponseBodyVO(ResponseBodyVO.Response.CLIENT_FAILURE);
+        }
+        //拼接get请求地址
+        String prefix = "https://api.github.com/repos/";
+        String suffix = "/commits?page=1&per_page=1";
+        String gitInfo = gitUrl.substring(19, gitUrl.length()-4);
+        String requestUrl = prefix + gitInfo + suffix;
+        String result = HttpUtil.get(HttpUtil.getHttpClient(), HttpUtil.getRequestConfig(), requestUrl);
+        List<HashMap> hashMaps = JsonUtil.jsonToList(result, HashMap.class);
+        String sha = "";
+        if(hashMaps.size() > 0){
+            HashMap hashMap = hashMaps.get(0);
+            sha = hashMap.get("sha").toString();
+        }
+        return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS,"请求成功", sha);
+    }
+
     @Override
     public ResponseBodyVO isAlgorithmRunning(AlgorithmParameter param)
     {
@@ -247,9 +276,11 @@ public class AlgorithmServiceImpl implements AlgorithmService {
         //设置po信息
         if("2".equals(param.getUploadMode())){ //使用仓库地址上传
             String gitUrl = param.getGitUrl();
-            String gitToken = param.getGitToken();
+            String gitUserName = param.getGitUserName();
+            String gitPassword = param.getGitPassword();
             po.setGitUrl(gitUrl);
-            po.setGitToken(gitToken);
+            po.setGitUserName(gitUserName);
+            po.setGitPassword(gitPassword);
         }else {
             String minioPath = param.getMinioPath();
             String[] splits = minioPath.split("/");