mirror of
https://github.com/jlengrand/github-api.git
synced 2026-03-11 08:21:23 +00:00
Compare commits
11 Commits
github-api
...
github-api
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3606f412b3 | ||
|
|
6e0e94094b | ||
|
|
976960f495 | ||
|
|
d2f2f3b2d3 | ||
|
|
2da7c45840 | ||
|
|
fb078de627 | ||
|
|
da46b7fddb | ||
|
|
c4e0729b7d | ||
|
|
eee9f0ace5 | ||
|
|
d0692458a3 | ||
|
|
c96e6c7c92 |
2
pom.xml
2
pom.xml
@@ -7,7 +7,7 @@
|
||||
</parent>
|
||||
|
||||
<artifactId>github-api</artifactId>
|
||||
<version>1.43</version>
|
||||
<version>1.44</version>
|
||||
<name>GitHub API for Java</name>
|
||||
<url>http://github-api.kohsuke.org/</url>
|
||||
<description>GitHub API for Java</description>
|
||||
|
||||
@@ -5,6 +5,7 @@ import java.net.URL;
|
||||
import java.util.AbstractList;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -16,6 +17,55 @@ import java.util.List;
|
||||
*/
|
||||
public class GHCommit {
|
||||
private GHRepository owner;
|
||||
|
||||
private ShortInfo commit;
|
||||
|
||||
/**
|
||||
* Short summary of this commit.
|
||||
*/
|
||||
public static class ShortInfo {
|
||||
private GHAuthor author;
|
||||
private GHAuthor committer;
|
||||
|
||||
private String message;
|
||||
|
||||
private int comment_count;
|
||||
|
||||
public GHAuthor getAuthor() {
|
||||
return author;
|
||||
}
|
||||
|
||||
public GHAuthor getCommitter() {
|
||||
return committer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Commit message.
|
||||
*/
|
||||
public String getMessage() {
|
||||
return message;
|
||||
}
|
||||
|
||||
public int getCommentCount() {
|
||||
return comment_count;
|
||||
}
|
||||
}
|
||||
|
||||
public static class GHAuthor {
|
||||
private String name,email,date;
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return GitHub.parseDate(date);
|
||||
}
|
||||
}
|
||||
|
||||
public static class Stats {
|
||||
int total,additions,deletions;
|
||||
@@ -110,8 +160,14 @@ public class GHCommit {
|
||||
Stats stats;
|
||||
List<Parent> parents;
|
||||
User author,committer;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
public ShortInfo getCommitShortInfo() {
|
||||
return commit;
|
||||
}
|
||||
|
||||
/**
|
||||
* The repository that contains the commit.
|
||||
*/
|
||||
public GHRepository getOwner() {
|
||||
|
||||
@@ -3,7 +3,12 @@ package org.kohsuke.github;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.TreeMap;
|
||||
|
||||
/**
|
||||
* Represents the account that's logging into GitHub.
|
||||
@@ -35,7 +40,50 @@ public class GHMyself extends GHUser {
|
||||
public List<GHKey> getPublicKeys() throws IOException {
|
||||
return Collections.unmodifiableList(Arrays.asList(root.retrieve().to("/user/keys", GHKey[].class)));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Gets the organization that this user belongs to.
|
||||
*/
|
||||
public GHPersonSet<GHOrganization> getAllOrganizations() throws IOException {
|
||||
GHPersonSet<GHOrganization> orgs = new GHPersonSet<GHOrganization>();
|
||||
Set<String> names = new HashSet<String>();
|
||||
for (GHOrganization o : root.retrieve().to("/user/orgs", GHOrganization[].class)) {
|
||||
if (names.add(o.getLogin())) // in case of rumoured duplicates in the data
|
||||
orgs.add(root.getOrganization(o.getLogin()));
|
||||
}
|
||||
return orgs;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the all repositories this user owns (public and private).
|
||||
*/
|
||||
public synchronized Map<String,GHRepository> getAllRepositories() throws IOException {
|
||||
Map<String,GHRepository> repositories = new TreeMap<String, GHRepository>();
|
||||
for (GHRepository r : listAllRepositories()) {
|
||||
repositories.put(r.getName(),r);
|
||||
}
|
||||
return Collections.unmodifiableMap(repositories);
|
||||
}
|
||||
|
||||
/**
|
||||
* Lists up all repositories this user owns (public and private).
|
||||
*
|
||||
* Unlike {@link #getAllRepositories()}, this does not wait until all the repositories are returned.
|
||||
*/
|
||||
public PagedIterable<GHRepository> listAllRepositories() {
|
||||
return new PagedIterable<GHRepository>() {
|
||||
public PagedIterator<GHRepository> iterator() {
|
||||
return new PagedIterator<GHRepository>(root.retrieve().asIterator("/user/repos", GHRepository[].class)) {
|
||||
@Override
|
||||
protected void wrapUp(GHRepository[] page) {
|
||||
for (GHRepository c : page)
|
||||
c.wrap(root);
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
// public void addEmails(Collection<String> emails) throws IOException {
|
||||
//// new Requester(root,ApiVersion.V3).withCredential().to("/user/emails");
|
||||
// root.retrieveWithAuth3()
|
||||
|
||||
@@ -192,8 +192,16 @@ public class GitHub {
|
||||
return new GitHub(null,null,null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Is this an anonymous connection
|
||||
* @return {@code true} if operations that require authentication will fail.
|
||||
*/
|
||||
public boolean isAnonymous() {
|
||||
return login==null && encodedAuthorization==null;
|
||||
}
|
||||
|
||||
/*package*/ void requireCredential() {
|
||||
if (login==null && encodedAuthorization==null)
|
||||
if (isAnonymous())
|
||||
throw new IllegalStateException("This operation requires a credential but none is given to the GitHub constructor");
|
||||
}
|
||||
|
||||
|
||||
@@ -332,6 +332,12 @@ public class AppTest extends TestCase {
|
||||
assertEquals("oops!",state.getDescription());
|
||||
assertEquals("http://jenkins-ci.org/",state.getTargetUrl());
|
||||
}
|
||||
|
||||
public void testCommitShortInfo() throws Exception {
|
||||
GHCommit commit = gitHub.getUser("kohsuke").getRepository("test").getCommit("c77360d6f2ff2c2e6dd11828ad5dccf72419fa1b");
|
||||
assertEquals(commit.getCommitShortInfo().getAuthor().getName(), "Kohsuke Kawaguchi");
|
||||
assertEquals(commit.getCommitShortInfo().getMessage(), "Added a file");
|
||||
}
|
||||
|
||||
public void testPullRequestPopulate() throws Exception {
|
||||
GHRepository r = gitHub.getUser("kohsuke").getRepository("github-api");
|
||||
|
||||
Reference in New Issue
Block a user