Other day I was trying to use Github API using Java to do some operation on our github corp account. Though there are bunch of Java Libraries available for Git operation, I didn't find a good documentation for any of them.
I used kohsuke github-api library which is very simple and object oriented.
To use this library in maven project add following dependency:
<dependency>
<groupId>org.kohsuke</groupId>
<artifactId>github-api</artifactId>
<version>1.69</version>
</dependency>
- Connect to Corp Git Hub account:
There are 2 ways to connect to enterprise github account either using OAuth Token, or using username/password. Here are the APIs to do that:
org.kohsuke.github.GitHub github = GitHub.connectToEnterprise(
"https://github.corp.<abc>.com/api/v3", "<Oauth Token>");
org.kohsuke.github.GitHub github = GitHub.connectToEnterprise(
"https://github.corp.<abc>.com/api/v3", "<User Name>","<Password>");
- Get your information
GHMyself my = github.getMyself();
- Search a keyword in code
Create GHContentSearchBuilder object from github object. Set keyword in GHContentSearchBuilder object.
GHContentSearchBuilder search = github.searchContent();
GHContentSearchBuilder s = search.q(<keyword>);
PagedSearchIterable<GHContent> res = s.list();
- Get repositories for each searched code
For each GHContent object use getOwner()
for (GHContent ghContent : res) {
repoSet.add(ghContent.getOwner()
.getFullName());
}
- Search repositories
Create GHRepositorySearchBuilder object from github object. Set keyword in GHRepositorySearchBuilder object.
GHRepositorySearchBuilder repo = github.searchRepositories();
GHRepositorySearchBuilder repo = repo.q(<keyword>);
PagedSearchIterable<GHRepository> repoList = repo.list();
And there is much more, APIs are simple and you can explore it more to get other information. Feel free to drop a comment if you have any question and till than Happy Coding :)
No comments:
Post a Comment