gitlab api根据标签或者分支获取目录和文件

官网gitlab api相关url

https://docs.gitlab.com/ee/api/repositories.html
gitlab api根据标签或者分支获取目录和文件_第1张图片
https://docs.gitlab.com/ee/api/commits.html
gitlab api根据标签或者分支获取目录和文件_第2张图片

代码

根据标签或者分支获取目录和文件

在这里插入图片描述
参数解析

project:gitlab上的项目,可以通过GitlaAPI.getProject()获得
path:要查询的文件路径,为空则表示查询根目录
ref_name:标签或者分支名
recursive:是否递归查找所有目录和文件

返回结果
gitlab api根据标签或者分支获取目录和文件_第3张图片

获取每个目录或者文件的最新提交时间

   PS: GitlabAPI中若没有拼接这个url——https://gitlab.example.com/api/v4/projects/5/repository/commits,需要修改GitlabAPI源码,拼接这个url
在这里插入图片描述
参数解析

projectId:项目编码
branchOrTag:分支名或者标签名
path:需要查询的目录或者文件路径
pagination:设置返回条数等

返回结果
gitlab api根据标签或者分支获取目录和文件_第4张图片

实例代码

@Autowired
GitlabAPI api;
public void getTree(String projectId,String branchOrTag,String path,String recursive){
	//获取连接
	api = GitlabAPI.getConnect();
	//获取项目
	GitlabProject pro = api.getProject(projectId);
	//获取目录和文件
	List<GitlabRepositoryTree> tree = api.getRepositoryTree(pro, path, branchOrTag, recursive);
	//获取每个文件或目录的提交历史,列表第一个为最新提交
	for (GitlabRepositoryTree t : tree ) {
		List<GitlabCommit> gc = api.getCommits(projectId, branchOrTag, t.getPath(), null);
		//获取最新提交时间
		gc.get(0).getCreatedAt();
		//获取最新提交者
		gc.get(0).getAuthorName();
	}
}

你可能感兴趣的:(gitlab,api)