Compare commits

..

4 Commits

Author SHA1 Message Date
Kohsuke Kawaguchi
9e62776905 [maven-release-plugin] prepare release github-api-1.25 2012-05-21 22:42:19 -07:00
Kohsuke Kawaguchi
9ba74b945d added permission check methods 2012-05-21 22:40:43 -07:00
Kohsuke Kawaguchi
66656ce612 when authenticated, repository returns additional information, so always send in a credential when one is available 2012-05-21 22:37:48 -07:00
Kohsuke Kawaguchi
73a20ad829 [maven-release-plugin] prepare for next development iteration 2012-05-21 22:16:52 -07:00
5 changed files with 38 additions and 12 deletions

View File

@@ -7,7 +7,7 @@
</parent> </parent>
<artifactId>github-api</artifactId> <artifactId>github-api</artifactId>
<version>1.24</version> <version>1.25</version>
<name>GitHub API for Java</name> <name>GitHub API for Java</name>
<url>http://github-api.kohsuke.org/</url> <url>http://github-api.kohsuke.org/</url>
<description>GitHub API for Java</description> <description>GitHub API for Java</description>

View File

@@ -43,15 +43,6 @@ public class GHOrganization extends GHPerson {
return root.retrieveWithAuth("/organizations/"+login+"/teams",JsonTeams.class).toMap(this); return root.retrieveWithAuth("/organizations/"+login+"/teams",JsonTeams.class).toMap(this);
} }
@Override
public GHRepository getRepository(String name) throws IOException {
try {
return root.retrieveWithAuth3("/repos/" + login + '/' + name, GHRepository.class).wrap(root);
} catch (FileNotFoundException e) {
return null;
}
}
/** /**
* Publicizes the membership. * Publicizes the membership.
*/ */

View File

@@ -87,7 +87,7 @@ public abstract class GHPerson {
*/ */
public GHRepository getRepository(String name) throws IOException { public GHRepository getRepository(String name) throws IOException {
try { try {
return root.retrieve3("/repos/" + login + '/' + name, GHRepository.class).wrap(root); return root.retrieveWithAuth3("/repos/" + login + '/' + name, GHRepository.class).wrap(root);
} catch (FileNotFoundException e) { } catch (FileNotFoundException e) {
return null; return null;
} }

View File

@@ -72,9 +72,16 @@ public class GHRepository {
private String created_at, pushed_at; private String created_at, pushed_at;
private Map<Integer,GHMilestone> milestones = new HashMap<Integer, GHMilestone>(); private Map<Integer,GHMilestone> milestones = new HashMap<Integer, GHMilestone>();
private String master_branch; private String master_branch,language;
private Map<String,GHCommit> commits = new HashMap<String, GHCommit>(); private Map<String,GHCommit> commits = new HashMap<String, GHCommit>();
private GHRepoPermission permissions;
private static class GHRepoPermission {
boolean pull,push,admin;
}
public String getDescription() { public String getDescription() {
return description; return description;
} }
@@ -113,6 +120,25 @@ public class GHRepository {
return name; return name;
} }
public boolean hasPullAccess() {
return permissions!=null && permissions.pull;
}
public boolean hasPushAccess() {
return permissions!=null && permissions.push;
}
public boolean hasAdminAccess() {
return permissions!=null && permissions.admin;
}
/**
* Gets the primary programming language.
*/
public String getLanguage() {
return language;
}
public GHUser getOwner() throws IOException { public GHUser getOwner() throws IOException {
return root.getUser(owner.login); // because 'owner' isn't fully populated return root.getUser(owner.login); // because 'owner' isn't fully populated
} }

View File

@@ -43,6 +43,15 @@ public class AppTest extends TestCase {
r.getPullRequest(1); r.getPullRequest(1);
r.getPullRequests(GHIssueState.OPEN); r.getPullRequests(GHIssueState.OPEN);
} }
public void testRepoPermissions() throws Exception {
GitHub gh = GitHub.connect();
GHRepository r = gh.getOrganization("jenkinsci").getRepository("jenkins");
assertTrue(r.hasPullAccess());
r = gh.getOrganization("github").getRepository("tire");
assertFalse(r.hasAdminAccess());
}
public void tryGetMyself() throws Exception { public void tryGetMyself() throws Exception {
GitHub hub = GitHub.connect(); GitHub hub = GitHub.connect();