Java中使用Git提交代码
创建空仓库
一定需要添加README.md文件,否则无法提交代码

创建token
https://github.com/settings/personal-access-tokens



复制生成的token到
引入依赖
<dependency>
<groupId>org.eclipse.jgit</groupId>
<artifactId>org.eclipse.jgit</artifactId>
<version>5.13.0.202109080827-r</version>
</dependency>
Java代码
主要步骤:
- 连接数据库
- 创建文件夹和日志文件
- 提交暂存区、提交commit、提交代码
里面的token就是刚才创建的
private static String writeLogs(String token, String log) throws GitAPIException {
// 1. 连接Git仓库
Git git = Git.cloneRepository()
.setURI("https://github.com/flycodeu/openai-code-review-logs.git")
.setDirectory(new File("repo"))
.setCredentialsProvider(new UsernamePasswordCredentialsProvider(token, ""))
.call();
// 2. 创建文件夹
String dateFolderName = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
File dateFolder = new File("repo/" + dateFolderName);
if (!dateFolder.exists()) {
dateFolder.mkdirs();
}
// 3. 写入日志文件
String fileName = generateRandomString(12) + ".md";
File file = new File(dateFolder, fileName);
try (FileWriter writer = new FileWriter(file)) {
writer.write(log);
} catch (IOException e) {
throw new RuntimeException(e);
}
// 4. 提交并推送更改
git.add().addFilepattern(dateFolderName + "/" + fileName).call();
git.commit().setMessage("Add new log via Github Actions").call();
git.push().setCredentialsProvider(new UsernamePasswordCredentialsProvider(token, ""));
return "https://github.com/flycodeu/openai-code-review-logs/blob/master/" + dateFolderName + "/" + fileName;
}
/**
* 随机字母作为名称
*
* @param length
* @return
*/
private static String generateRandomString(int length) {
String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
Random random = new Random();
StringBuilder sb = new StringBuilder(length);
for (int i = 0; i < length; i++) {
sb.append(characters.charAt(random.nextInt(characters.length())));
}
return sb.toString();
}

贡献者
flycodeu
版权所有
版权归属:flycodeu