diff --git a/pom.xml b/pom.xml
index ae6d3dedfd..a8b2e87842 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
github-api
- 1.24
+ 1.25
GitHub API for Java
http://github-api.kohsuke.org/
GitHub API for Java
diff --git a/src/main/java/org/kohsuke/github/GHOrganization.java b/src/main/java/org/kohsuke/github/GHOrganization.java
index 92fafaf319..8af52fc0af 100644
--- a/src/main/java/org/kohsuke/github/GHOrganization.java
+++ b/src/main/java/org/kohsuke/github/GHOrganization.java
@@ -43,15 +43,6 @@ public Map getTeams() throws IOException {
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.
*/
diff --git a/src/main/java/org/kohsuke/github/GHPerson.java b/src/main/java/org/kohsuke/github/GHPerson.java
index 70ba8f27d0..1c345462c3 100644
--- a/src/main/java/org/kohsuke/github/GHPerson.java
+++ b/src/main/java/org/kohsuke/github/GHPerson.java
@@ -87,7 +87,7 @@ public void remove() {
*/
public GHRepository getRepository(String name) throws IOException {
try {
- return root.retrieve3("/repos/" + login + '/' + name, GHRepository.class).wrap(root);
+ return root.retrieveWithAuth3("/repos/" + login + '/' + name, GHRepository.class).wrap(root);
} catch (FileNotFoundException e) {
return null;
}
diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java
index 909554a6b0..5516382317 100644
--- a/src/main/java/org/kohsuke/github/GHRepository.java
+++ b/src/main/java/org/kohsuke/github/GHRepository.java
@@ -72,9 +72,16 @@ public class GHRepository {
private String created_at, pushed_at;
private Map milestones = new HashMap();
- private String master_branch;
+ private String master_branch,language;
private Map commits = new HashMap();
+ private GHRepoPermission permissions;
+
+ private static class GHRepoPermission {
+ boolean pull,push,admin;
+ }
+
+
public String getDescription() {
return description;
}
@@ -113,6 +120,25 @@ public String getName() {
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 {
return root.getUser(owner.login); // because 'owner' isn't fully populated
}
diff --git a/src/test/java/org/kohsuke/AppTest.java b/src/test/java/org/kohsuke/AppTest.java
index 71e869fc8d..75d40d1712 100644
--- a/src/test/java/org/kohsuke/AppTest.java
+++ b/src/test/java/org/kohsuke/AppTest.java
@@ -43,6 +43,15 @@ public void testFetchPullRequest() throws Exception {
r.getPullRequest(1);
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 {
GitHub hub = GitHub.connect();