From 9e9db7287842d0c63c98df12e69f360586915ff0 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Wed, 13 Jun 2012 08:27:58 -0700 Subject: [PATCH 1/9] [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 015506a02a..a568d3aa57 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ github-api - 1.28 + 1.29-SNAPSHOT GitHub API for Java http://github-api.kohsuke.org/ GitHub API for Java From ba7fe10a0849e636d8646a05271116b392c2ebc0 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 18 Jun 2012 12:23:20 -0700 Subject: [PATCH 2/9] bug fix --- src/main/java/org/kohsuke/github/GitHub.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/kohsuke/github/GitHub.java b/src/main/java/org/kohsuke/github/GitHub.java index 687e414c5a..9f8d1df240 100644 --- a/src/main/java/org/kohsuke/github/GitHub.java +++ b/src/main/java/org/kohsuke/github/GitHub.java @@ -285,12 +285,12 @@ private HttpURLConnection setupConnection(String method, boolean withAuth, URL u uc.setRequestProperty("Authorization", "Basic " + encodedAuthorization); uc.setRequestMethod(method); + uc.setRequestProperty("Accept-Encoding", "gzip"); if (method.equals("PUT")) { uc.setDoOutput(true); uc.setRequestProperty("Content-Length","0"); uc.getOutputStream().close(); } - uc.setRequestProperty("Accept-Encoding", "gzip"); return uc; } From c8f46a3666b9ff5005f3d40b54f0da37811d4881 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 18 Jun 2012 12:23:34 -0700 Subject: [PATCH 3/9] needs to wrap up --- src/main/java/org/kohsuke/github/GHOrganization.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/kohsuke/github/GHOrganization.java b/src/main/java/org/kohsuke/github/GHOrganization.java index d2c124d4ec..f15626370c 100644 --- a/src/main/java/org/kohsuke/github/GHOrganization.java +++ b/src/main/java/org/kohsuke/github/GHOrganization.java @@ -45,7 +45,7 @@ public Map getTeams() throws IOException { GHTeam[] teams = root.retrieveWithAuth("/orgs/" + login + "/teams", GHTeam[].class); Map r = new TreeMap(); for (GHTeam t : teams) { - r.put(t.getName(),t); + r.put(t.getName(),t.wrapUp(this)); } return r; } From dee28e7a7a19c30df020beef0179df3c4c6c8f55 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 18 Jun 2012 12:23:48 -0700 Subject: [PATCH 4/9] Doc says this is asynchronous --- src/main/java/org/kohsuke/github/GHRepository.java | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java index 031a6d65bf..cbe216ceac 100644 --- a/src/main/java/org/kohsuke/github/GHRepository.java +++ b/src/main/java/org/kohsuke/github/GHRepository.java @@ -32,6 +32,7 @@ import com.infradna.tool.bridge_method_injector.WithBridgeMethods; import java.io.IOException; +import java.io.InterruptedIOException; import java.net.URL; import java.util.AbstractSet; import java.util.ArrayList; @@ -336,7 +337,18 @@ public GHRepository fork() throws IOException { */ public GHRepository forkTo(GHOrganization org) throws IOException { new Poster(root).withCredential().to(String.format("/repos/%s/%s/forks?org=%s",owner.login,name,org.getLogin())); - return org.getRepository(name); + + // this API is asynchronous. we need to wait for a bit + for (int i=0; i<10; i++) { + GHRepository r = org.getRepository(name); + if (r!=null) return r; + try { + Thread.sleep(3000); + } catch (InterruptedException e) { + throw (IOException)new InterruptedIOException().initCause(e); + } + } + throw new IOException(this+" was forked into "+org.getLogin()+" but can't find the new repository"); } /** From 21aa6695030ff5b48cf6846c513cf46073d6603a Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 18 Jun 2012 12:24:30 -0700 Subject: [PATCH 5/9] redundant test case --- src/test/java/org/kohsuke/AppTest.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/test/java/org/kohsuke/AppTest.java b/src/test/java/org/kohsuke/AppTest.java index ae64a3600e..021e30ca10 100644 --- a/src/test/java/org/kohsuke/AppTest.java +++ b/src/test/java/org/kohsuke/AppTest.java @@ -253,11 +253,6 @@ private void tryRenaming(GitHub gitHub) throws IOException { gitHub.getUser("kohsuke").getRepository("test").renameTo("test2"); } - private void tryOrgFork(GitHub gitHub) throws IOException { - GHOrganization o = gitHub.getOrganization("HudsonLabs"); - System.out.println(gitHub.getUser("rtyler").getRepository("memcache-ada").forkTo(o).getUrl()); - } - private void tryTeamCreation(GitHub gitHub) throws IOException { GHOrganization o = gitHub.getOrganization("HudsonLabs"); GHTeam t = o.createTeam("auto team", Permission.PUSH); From 926202900c0c1900bc69cbbee827983fbf6b8aaa Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 18 Jun 2012 12:37:27 -0700 Subject: [PATCH 6/9] fixed a bug in editing the repository definition --- src/main/java/org/kohsuke/github/GHRepository.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java index cbe216ceac..73d6dfac76 100644 --- a/src/main/java/org/kohsuke/github/GHRepository.java +++ b/src/main/java/org/kohsuke/github/GHRepository.java @@ -270,8 +270,11 @@ public void setEmailServiceHook(String address) throws IOException { } private void edit(String key, String value) throws IOException { - new Poster(root).withCredential().with(key,value) - .to("/repos/" + owner.login + "/" + name,null,"PATCH"); + Poster poster = new Poster(root).withCredential(); + if (!key.equals("name")) + poster.with("name",name); // even when we don't change the name, we need to send it in + poster.with(key, value) + .to("/repos/" + owner.login + "/" + name, null, "PATCH"); } /** From 45eae77f8f75fe18410e618b1bd56a13dc75c38b Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 18 Jun 2012 12:50:40 -0700 Subject: [PATCH 7/9] added missing repository delete operation --- src/main/java/org/kohsuke/github/GHRepository.java | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java index 73d6dfac76..6ff0553580 100644 --- a/src/main/java/org/kohsuke/github/GHRepository.java +++ b/src/main/java/org/kohsuke/github/GHRepository.java @@ -272,7 +272,7 @@ public void setEmailServiceHook(String address) throws IOException { private void edit(String key, String value) throws IOException { Poster poster = new Poster(root).withCredential(); if (!key.equals("name")) - poster.with("name",name); // even when we don't change the name, we need to send it in + poster.with("name", name); // even when we don't change the name, we need to send it in poster.with(key, value) .to("/repos/" + owner.login + "/" + name, null, "PATCH"); } @@ -314,12 +314,7 @@ public void setHomepage(String value) throws IOException { * Deletes this repository. */ public void delete() throws IOException { - throw new UnsupportedOperationException(); // doesn't appear to be available in V3 -// Poster poster = new Poster(root).withCredential(); -// String url = "/repos/delete/" + owner.login +"/"+name; -// -// DeleteToken token = poster.to(url, DeleteToken.class); -// poster.with("delete_token", token.delete_token).to(url); + new Poster(root).withCredential().to("/repos/" + owner.login +"/"+name, null, "DELETE"); } /** From c9cd0a4d1f97b57d1f9251115c6cbd784f3d5b62 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 18 Jun 2012 12:50:47 -0700 Subject: [PATCH 8/9] added a simple CRUD test --- src/test/java/org/kohsuke/AppTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/test/java/org/kohsuke/AppTest.java b/src/test/java/org/kohsuke/AppTest.java index 021e30ca10..120ef0e7c1 100644 --- a/src/test/java/org/kohsuke/AppTest.java +++ b/src/test/java/org/kohsuke/AppTest.java @@ -31,6 +31,16 @@ * Unit test for simple App. */ public class AppTest extends TestCase { + public void testRepoCRUD() throws Exception { + GitHub hub = GitHub.connect(); + GHRepository r = hub.createRepository("github-api-test", "a test repository", "http://github-api.kohsuke.org/", true); + r.enableIssueTracker(false); + r.enableDownloads(false); + r.enableWiki(false); + r.renameTo("github-api-test2"); + hub.getMyself().getRepository("github-api-test2").delete(); + } + public void testCredentialValid() throws IOException { assertTrue(GitHub.connect().isCredentialValid()); assertFalse(GitHub.connect("totally","bogus").isCredentialValid()); From 40a8c110bf381181a1fcd7417ea67f7795be95d8 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 18 Jun 2012 12:51:25 -0700 Subject: [PATCH 9/9] [maven-release-plugin] prepare release github-api-1.29 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a568d3aa57..bba5978ae8 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ github-api - 1.29-SNAPSHOT + 1.29 GitHub API for Java http://github-api.kohsuke.org/ GitHub API for Java