From 0b4acc40b76a5fc68a8adf9822ad86d9c5b06221 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=9C=E5=BB=BA=E8=B6=85?= <3182967682@qq.com>
Date: Thu, 17 Dec 2020 18:59:43 +0800
Subject: [PATCH] fix
---
pom.xml | 5 +
.../controller/ExportController.java | 79 ------
.../performance/controller/GitController.java | 235 ++++++++++++++++++
.../resources/mapper/sys/SysUserTokenDao.xml | 4 +-
4 files changed, 242 insertions(+), 81 deletions(-)
create mode 100644 src/main/java/com/lz/modules/performance/controller/GitController.java
diff --git a/pom.xml b/pom.xml
index 54874c8a..d5043898 100644
--- a/pom.xml
+++ b/pom.xml
@@ -261,6 +261,11 @@
JsoupXpath
${jsoupXpath.version}
+
+ org.eclipse.jgit
+ org.eclipse.jgit
+ 5.1.3.201810200350-r
+
diff --git a/src/main/java/com/lz/modules/performance/controller/ExportController.java b/src/main/java/com/lz/modules/performance/controller/ExportController.java
index 0485e5f3..77e614c0 100644
--- a/src/main/java/com/lz/modules/performance/controller/ExportController.java
+++ b/src/main/java/com/lz/modules/performance/controller/ExportController.java
@@ -416,86 +416,7 @@ public class ExportController {
" }*/
- public static void main(String[] args) {
- //域名
- String domain = "";
- //项目名
- String projectName = "";
- //分支名
- String branchName = "";
- //session
- String session = "";
- //分页 ?limit=40&offset=120
- try {
- URLConnection urlConnection = new URL("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/commits/version_performance_2.0").openConnection();
- //URLConnection urlConnection = new URL("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/graphs/master").openConnection();
- HttpURLConnection connection = (HttpURLConnection) urlConnection;
- connection.setRequestMethod("GET");
- connection.addRequestProperty("Host", "gitlab.ldxinyong.com");
-
- connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0");
-
- connection.addRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
- connection.addRequestProperty("Accept-Encoding", "gzip, deflate");
- connection.addRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
- connection.addRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22");
-
- //connection.addRequestProperty("Referer", "http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/commits/master");
-
- //connection.addRequestProperty("Connection", "keep-alive");
-
- //connection.addRequestProperty("Upgrade-Insecure-Requests", "1");
-
- //connection.addRequestProperty("If-None-Match", "W/\"352c90856827b53f3735109727c9f3a1\"");
-
- connection.addRequestProperty("Cookie", "_gitlab_session=4e14c53a8cb378a65fda996b0bc15021; sidebar_collapsed=false");
- connection.connect();// 连接会话
- // 获取输入流
- BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
- String line;
- StringBuilder sb = new StringBuilder();
- while ((line = br.readLine()) != null) {// 循环读取流
- sb.append(line);
- }
- br.close();// 关闭流
- connection.disconnect();// 断开连接
- System.out.println(sb.toString());
- JXDocument document = JXDocument.create(sb.toString());
- JXNode jxNode = document.selNOne("//*[@id='commits-list']");
- List sel = jxNode.sel("//*[@class='commits-row']");
- for(JXNode jx:sel){
- List sel2 = jx.sel("//*[@class='commit flex-row js-toggle-container']");
- for(JXNode j:sel2){
- String avatar = j.sel("//img[@class='avatar s36 hidden-xs has-tooltip']/@src").get(0).toString();
- System.out.println("头像 " + avatar);
-
- String commit = j.sel("//a[@class='commit-row-message item-title']/text()").get(0).toString();
- System.out.println("摘要 " + commit);
-
- String name = j.sel("//a[@class='commit-author-link has-tooltip']/text()").get(0).toString();
- System.out.println("姓名 " + name);
-
- String time = j.sel("//time[@class='js-timeago']/@datetime").get(0).toString();
- System.out.println("时间 " + time);
-
-
- String version = j.sel("//div[@class='label label-monospace']/text()").get(0).toString();
- System.out.println("版本 " + version);
-
- }
-
-
-
- }
- System.out.println();
-
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- }
-
}
diff --git a/src/main/java/com/lz/modules/performance/controller/GitController.java b/src/main/java/com/lz/modules/performance/controller/GitController.java
new file mode 100644
index 00000000..a209f7f3
--- /dev/null
+++ b/src/main/java/com/lz/modules/performance/controller/GitController.java
@@ -0,0 +1,235 @@
+package com.lz.modules.performance.controller;
+
+import org.eclipse.jgit.api.CloneCommand;
+import org.eclipse.jgit.api.Git;
+import org.eclipse.jgit.api.LogCommand;
+import org.eclipse.jgit.api.PullResult;
+import org.eclipse.jgit.diff.DiffEntry;
+import org.eclipse.jgit.internal.storage.file.FileRepository;
+import org.eclipse.jgit.lib.ObjectReader;
+import org.eclipse.jgit.lib.PersonIdent;
+import org.eclipse.jgit.revwalk.RevCommit;
+import org.eclipse.jgit.revwalk.RevTree;
+import org.eclipse.jgit.revwalk.RevWalk;
+import org.eclipse.jgit.transport.UsernamePasswordCredentialsProvider;
+import org.eclipse.jgit.treewalk.AbstractTreeIterator;
+import org.eclipse.jgit.treewalk.CanonicalTreeParser;
+import org.eclipse.jgit.treewalk.filter.PathFilterGroup;
+import org.seimicrawler.xpath.JXDocument;
+import org.seimicrawler.xpath.JXNode;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Author: djc
+ * @Desc:
+ * @Date: 2020/12/17 17:06
+ */
+public class GitController {
+
+
+ /*public static void main(String[] args) throws Exception{
+
+
+ //设置远程服务器上的用户名和密码
+ UsernamePasswordCredentialsProvider usernamePasswordCredentialsProvider =new
+ UsernamePasswordCredentialsProvider("dujianchao31","Du1262707462");
+ //克隆代码库命令
+ CloneCommand cloneCommand = Git.cloneRepository();
+
+ Git git= cloneCommand.setURI("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/") //设置远程URI
+ .setBranch("version_performance_2.0") //设置clone下来的分支
+ .setDirectory(new File("D:\\test\\")) //设置下载存放路径
+ .setCredentialsProvider(usernamePasswordCredentialsProvider) //设置权限验证
+ .call();
+ }*/
+
+ public static void main(String[] args) throws Exception{
+ UsernamePasswordCredentialsProvider usernamePasswordCredentialsProvider =new
+ UsernamePasswordCredentialsProvider("dujianchao31","Du1262707462");
+ /* //git仓库地址
+ Git git = new Git(new FileRepository("D:\\test\\"+"/.git"));
+ PullResult call = git.pull().setRemoteBranchName("version_performance_2.0").
+ setCredentialsProvider(usernamePasswordCredentialsProvider).call();*/
+
+ //git仓库地址
+ Git git = new Git(new FileRepository("D:\\test\\"+"/.git"));
+
+
+ }
+
+ public static AbstractTreeIterator prepareTreeParser(RevCommit commit){
+ System.out.println(commit.getId());
+ try (RevWalk walk = new RevWalk(new FileRepository("D:\\test\\"+"/.git"))) {
+ System.out.println(commit.getTree().getId());
+ RevTree tree = walk.parseTree(commit.getTree().getId());
+
+ CanonicalTreeParser oldTreeParser = new CanonicalTreeParser();
+ try (ObjectReader oldReader = new FileRepository("D:\\test\\"+"/.git").newObjectReader()) {
+ oldTreeParser.reset(oldReader, tree.getId());
+ }
+
+ walk.dispose();
+
+ return oldTreeParser;
+ }catch (Exception e) {
+ // TODO: handle exception
+ }
+ return null;
+ }
+
+
+ //日志信息
+
+ public static void commit(Git git) throws Exception{
+ List versions = new ArrayList<>();
+ Iterable commits = git.log().all().call();
+ int count = 0;
+ for (RevCommit commit : commits) {
+ System.out.println("LogCommit: " + commit);
+ System.out.println("提交信息:" + commit.getFullMessage());
+ String version = commit.getName(); //版本号,用来查询详细信息
+ versions.add(version);
+ System.out.println("版本号:" + commit.getName());
+ PersonIdent authorIdent = commit.getAuthorIdent();
+ System.out.println("作者:" + authorIdent.getName());
+ System.out.println("邮箱:" + authorIdent.getEmailAddress());
+ System.out.println("时间:" + authorIdent.getWhen());
+ count++;
+ }
+ System.out.println("=========");
+ System.out.println("总计" + count);
+ }
+
+
+ //文件变动
+ public void diff(Git git) throws Exception{
+ List commitsList = new ArrayList<>();
+ Iterable commits = git.log().all().call();
+ for(RevCommit commit:commits){
+ commitsList.add(commit);
+ }
+
+ AbstractTreeIterator newTree = prepareTreeParser(commitsList.get(0));
+ AbstractTreeIterator oldTree = prepareTreeParser(commitsList.get(1));
+
+ List diffEntries = git.diff().setNewTree(newTree).setOldTree(oldTree).call();
+ DiffEntry.ChangeType changeType;
+ int add =0;
+ int copy =0;
+ int delete =0;
+ int modify =0;
+ int rename =0;
+ for(DiffEntry entry : diffEntries){
+ changeType = entry.getChangeType();
+ System.out.println("=====" + changeType);
+ switch (changeType) {
+ case ADD:
+ System.out.println(++add);
+ break;
+ case COPY:
+ System.out.println(++copy);
+ break;
+ case DELETE:
+ System.out.println(++delete);
+ break;
+ case MODIFY:
+ System.out.println(++modify);
+ break;
+ case RENAME:
+ System.out.println(rename++);
+ break;
+ }
+ }
+
+ System.out.println("=========");
+ }
+
+ public void webTest(){
+ //域名
+ String domain = "";
+ //项目名
+ String projectName = "";
+ //分支名
+ String branchName = "";
+ //session
+ String session = "";
+ //分页 ?limit=40&offset=120
+
+ try {
+ URLConnection urlConnection = new URL("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/commits/version_performance_2.0").openConnection();
+ //URLConnection urlConnection = new URL("http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/graphs/master").openConnection();
+ HttpURLConnection connection = (HttpURLConnection) urlConnection;
+ connection.setRequestMethod("GET");
+ connection.addRequestProperty("Host", "gitlab.ldxinyong.com");
+
+ connection.addRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0");
+
+ connection.addRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
+ connection.addRequestProperty("Accept-Encoding", "gzip, deflate");
+ connection.addRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");
+ connection.addRequestProperty("User-Agent", "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.160 Safari/537.22");
+
+ //connection.addRequestProperty("Referer", "http://gitlab.ldxinyong.com/enterpriseManagement/lz_management/commits/master");
+
+ //connection.addRequestProperty("Connection", "keep-alive");
+
+ //connection.addRequestProperty("Upgrade-Insecure-Requests", "1");
+
+ //connection.addRequestProperty("If-None-Match", "W/\"352c90856827b53f3735109727c9f3a1\"");
+
+ connection.addRequestProperty("Cookie", "_gitlab_session=4e14c53a8cb378a65fda996b0bc15021; sidebar_collapsed=false");
+ connection.connect();// 连接会话
+ // 获取输入流
+ BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
+ String line;
+ StringBuilder sb = new StringBuilder();
+ while ((line = br.readLine()) != null) {// 循环读取流
+ sb.append(line);
+ }
+ br.close();// 关闭流
+ connection.disconnect();// 断开连接
+ System.out.println(sb.toString());
+ JXDocument document = JXDocument.create(sb.toString());
+ JXNode jxNode = document.selNOne("//*[@id='commits-list']");
+ List sel = jxNode.sel("//*[@class='commits-row']");
+ for(JXNode jx:sel){
+ List sel2 = jx.sel("//*[@class='commit flex-row js-toggle-container']");
+ for(JXNode j:sel2){
+ String avatar = j.sel("//img[@class='avatar s36 hidden-xs has-tooltip']/@src").get(0).toString();
+ System.out.println("头像 " + avatar);
+
+ String commit = j.sel("//a[@class='commit-row-message item-title']/text()").get(0).toString();
+ System.out.println("摘要 " + commit);
+
+ String name = j.sel("//a[@class='commit-author-link has-tooltip']/text()").get(0).toString();
+ System.out.println("姓名 " + name);
+
+ String time = j.sel("//time[@class='js-timeago']/@datetime").get(0).toString();
+ System.out.println("时间 " + time);
+
+
+ String version = j.sel("//div[@class='label label-monospace']/text()").get(0).toString();
+ System.out.println("版本 " + version);
+
+ }
+
+
+
+ }
+ System.out.println();
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ }
+}
diff --git a/src/main/resources/mapper/sys/SysUserTokenDao.xml b/src/main/resources/mapper/sys/SysUserTokenDao.xml
index 47abba9f..22c0d6f4 100644
--- a/src/main/resources/mapper/sys/SysUserTokenDao.xml
+++ b/src/main/resources/mapper/sys/SysUserTokenDao.xml
@@ -18,8 +18,8 @@
#{token},
#{expireTime},
#{type},
- tokenCode,
- codeTime,
+ #{tokenCode},
+ #{codeTime},
now()
)