Selaa lähdekoodia

获取git最新版本

root 2 vuotta sitten
vanhempi
commit
bf3463802c

+ 9 - 0
api-common/pom.xml

@@ -17,10 +17,19 @@
         <jackson-core.version>2.13.1</jackson-core.version>
         <sshd-netty.version>2.8.0</sshd-netty.version>
         <dom4j.version>2.1.3</dom4j.version>
+        <gitlab4j-api.version>5.0.1</gitlab4j-api.version>
     </properties>
 
     <dependencies>
 
+        <!-- gitlab -->
+        <dependency>
+            <groupId>org.gitlab4j</groupId>
+            <artifactId>gitlab4j-api</artifactId>
+            <version>${gitlab4j-api.version}</version>
+        </dependency>
+
+
         <!-- xml 处理库 -->
         <dependency>
             <groupId>org.dom4j</groupId>

+ 42 - 0
api-common/src/main/java/api/common/util/GitLabUtil.java

@@ -0,0 +1,42 @@
+package api.common.util;
+
+import lombok.SneakyThrows;
+import org.gitlab4j.api.GitLabApi;
+import org.gitlab4j.api.models.Commit;
+import org.gitlab4j.api.models.Project;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * <!-- https://mvnrepository.com/artifact/org.gitlab4j/gitlab4j-api -->
+ * <dependency>
+ * <groupId>org.gitlab4j</groupId>
+ * <artifactId>gitlab4j-api</artifactId>
+ * <version>5.0.1</version>
+ * </dependency>
+ */
+public class GitLabUtil {
+
+    /**
+     * @param projectUrl git 仓库地址 http://gitlab-441-442-443/root/test1021.git
+     * @param username
+     * @param password
+     * @return
+     */
+    @SneakyThrows
+    public static long getLastCommitTimestamp(String projectUrl, String username, String password) {
+        String[] split = projectUrl.split("/");
+        String hostUrl = split[0] + "/" + split[1] + "/" + split[2];
+        String projectName = split[4].split("\\.")[0];
+        GitLabApi gitLabApi = GitLabApi.oauth2Login(hostUrl, username, password);
+        Project project = gitLabApi.getProjectApi().getProject(username, projectName);
+        Long projectId = project.getId();
+        List<Commit> master = gitLabApi.getCommitsApi().getCommits(projectId, "master", new Date(1666331629),
+                new Date(System.currentTimeMillis()));
+        master.sort((commit1, commit2) -> commit2.getCommittedDate().compareTo(commit1.getCommittedDate()));    // 降序
+        Commit commit = master.get(0);
+        Date committedDate = commit.getCommittedDate();
+        return committedDate.getTime();
+    }
+}

+ 1 - 2
simulation-resource-server/src/main/java/com/css/simulation/resource/algorithm/serviceImpl/AlgorithmServiceImpl.java

@@ -265,8 +265,7 @@ public class AlgorithmServiceImpl implements AlgorithmService {
         String replace = gitUrl.replace(gitConfiguration.getName(), gitConfiguration.getUrl());
         String gitUserName = algorithmPO.getGitUserName();
         String gitPassword = algorithmPO.getGitPassword();
-        return JgitUtil.getLastCommitTimestamp(replace, gitUserName, gitPassword,
-                gitConfiguration.getTempDirectory() + StringUtil.getRandomEightBitUUID()) + "";
+        return GitLabUtil.getLastCommitTimestamp(replace, gitUserName, gitPassword) + "";
     }
 
     @Override