Gitlab提供了很多种方式来使用API访问其信息,本文将主要讲解如何使用其中的“Access Tokens”来访问其API里的信息。
目录
1、前期准备
登录gitlab,找到个人设置里的如下图一中的左边侧边栏中的“Access Tokens”,然后根据自身的需要填写图中的信息,最终点击create按钮得到图二中的关键信息,保存下来。
2、代码实战
pom文件包为
<dependency>
<groupId>org.gitlab</groupId>
<artifactId>java-gitlab-api</artifactId>
<version>4.1.1</version>
</dependency>
public static void main(String[] args) {
GitlabAPI gitlabAPI = GitlabAPI.connect("url地址", "刚刚获得的accessToken");
try {
GitlabProject gitlabProject = gitlabAPI.getProject("你的namespace", "你的projectName");
List<GitlabBranch> gitlabBranchList = gitlabAPI.getBranches(gitlabProject);
for(int i = 0;i<gitlabBranchList.size();i++){
System.out.println(gitlabBranchList.get(i).getName());
}
} catch (IOException e) {
e.printStackTrace();
}
}
最终输出的结果为:
3、GitlabAPI源代码关键方法解析
查看源代码,其中有大量的get方法,可以通过其获取到你想要的信息内容。举例几个关键常用的
getRepositoryFile()
首先看源代码,很明确清晰的可以看到,这个方法是用来获取项目的所有文件,通过传入项目对象,路径,分支名三个参数获取整个项目的文件对象
public GitlabRepositoryFile getRepositoryFile(GitlabProject project, String path, String ref) throws IOException {
Query query = new Query()
.append("ref", ref);
String tailUrl = GitlabProject.URL + "/" + project.getId() + "/repository/files/" + sanitizePath(path) + query.toString();
return retrieve().to(tailUrl, GitlabRepositoryFile.class);
}
获取到文件对象之后,通过GitlabRepositoryFile实体类中的getContent()方法获取里面的内容,但要想最终实现代码的查看,还必须做如下的解密算法。
new String(decoder.decode(gitlabRepositoryFile.getContent()), "UTF-8");