From 73a20ad829b8a40332bcadfab7e43b7bf5ae4144 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 21 May 2012 22:16:52 -0700 Subject: [PATCH 1/4] [maven-release-plugin] prepare for next development iteration --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ae6d3dedfd..091c7d198c 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ github-api - 1.24 + 1.25-SNAPSHOT GitHub API for Java http://github-api.kohsuke.org/ GitHub API for Java From 66656ce612776c88d15a1c8e66102a9ffd2a9283 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 21 May 2012 22:37:48 -0700 Subject: [PATCH 2/4] when authenticated, repository returns additional information, so always send in a credential when one is available --- src/main/java/org/kohsuke/github/GHOrganization.java | 9 --------- src/main/java/org/kohsuke/github/GHPerson.java | 2 +- 2 files changed, 1 insertion(+), 10 deletions(-) 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; } From 9ba74b945d5aa0610bd5c3aed0e473ce13a3146b Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 21 May 2012 22:40:43 -0700 Subject: [PATCH 3/4] added permission check methods --- .../java/org/kohsuke/github/GHRepository.java | 28 ++++++++++++++++++- src/test/java/org/kohsuke/AppTest.java | 9 ++++++ 2 files changed, 36 insertions(+), 1 deletion(-) 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(); From 9e627769055f2155d33a3107dc952c76f61898fc Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 21 May 2012 22:42:19 -0700 Subject: [PATCH 4/4] [maven-release-plugin] prepare release github-api-1.25 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 091c7d198c..a8b2e87842 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ github-api - 1.25-SNAPSHOT + 1.25 GitHub API for Java http://github-api.kohsuke.org/ GitHub API for Java