官网gitlab api相关url
https://docs.gitlab.com/ee/api/repositories.html
https://docs.gitlab.com/ee/api/commits.html
代码
根据标签或者分支获取目录和文件
参数解析
project:gitlab上的项目,可以通过GitlaAPI.getProject()获得
path:要查询的文件路径,为空则表示查询根目录
ref_name:标签或者分支名
recursive:是否递归查找所有目录和文件
返回结果
获取每个目录或者文件的最新提交时间
PS: GitlabAPI中若没有拼接这个url——https://gitlab.example.com/api/v4/projects/5/repository/commits,需要修改GitlabAPI源码,拼接这个url
参数解析
projectId:项目编码
branchOrTag:分支名或者标签名
path:需要查询的目录或者文件路径
pagination:设置返回条数等
返回结果
实例代码
@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();
}
}