From 4c199256a558977ef877eca531f9877ce5222e8b Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 21 May 2012 22:42:24 -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 a8b2e87842..c5f13e7595 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ github-api - 1.25 + 1.26-SNAPSHOT GitHub API for Java http://github-api.kohsuke.org/ GitHub API for Java From 33657c9c920bd210efb245517b5fe9d81b17f0fd Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 4 Jun 2012 10:05:03 -0700 Subject: [PATCH 2/4] made the authentication header optional. This was needed now that GHPerson.getRepository() always try with authentication on, and it'll break if logged in anonymously --- src/main/java/org/kohsuke/github/GitHub.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/kohsuke/github/GitHub.java b/src/main/java/org/kohsuke/github/GitHub.java index faffd27d79..fdfc42a67d 100644 --- a/src/main/java/org/kohsuke/github/GitHub.java +++ b/src/main/java/org/kohsuke/github/GitHub.java @@ -288,7 +288,10 @@ private void findNextURL(HttpURLConnection uc) throws MalformedURLException { private HttpURLConnection setupConnection(String method, boolean withAuth, URL url) throws IOException { HttpURLConnection uc = (HttpURLConnection) url.openConnection(); - if (withAuth && this.oauthAccessToken == null) + // if the authentication is needed but no credential is given, try it anyway (so that some calls + // that do work with anonymous access in the reduced form should still work.) + // if OAuth token is present, it'll be set in the URL, so need to set the Authorization header + if (withAuth && encodedAuthorization!=null && this.oauthAccessToken == null) uc.setRequestProperty("Authorization", "Basic " + encodedAuthorization); uc.setRequestMethod(method); From 057c32d4103ee9b15d736264e62daf6daa07cfc8 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 4 Jun 2012 10:08:31 -0700 Subject: [PATCH 3/4] added API to retrieve rate limit. --- .../java/org/kohsuke/github/GHRateLimit.java | 21 +++++++++++++++++++ src/main/java/org/kohsuke/github/GitHub.java | 7 +++++++ .../org/kohsuke/github/JsonRateLimit.java | 8 +++++++ src/test/java/org/kohsuke/AppTest.java | 4 ++++ 4 files changed, 40 insertions(+) create mode 100644 src/main/java/org/kohsuke/github/GHRateLimit.java create mode 100644 src/main/java/org/kohsuke/github/JsonRateLimit.java diff --git a/src/main/java/org/kohsuke/github/GHRateLimit.java b/src/main/java/org/kohsuke/github/GHRateLimit.java new file mode 100644 index 0000000000..9d54953d54 --- /dev/null +++ b/src/main/java/org/kohsuke/github/GHRateLimit.java @@ -0,0 +1,21 @@ +package org.kohsuke.github; + +/** + * Rate limit. + * @author Kohsuke Kawaguchi + */ +public class GHRateLimit { + /** + * Remaining calls that can be made. + */ + public int remaining; + /** + * Alotted API call per hour. + */ + public int limit; + + @Override + public String toString() { + return remaining+"/"+limit; + } +} diff --git a/src/main/java/org/kohsuke/github/GitHub.java b/src/main/java/org/kohsuke/github/GitHub.java index fdfc42a67d..faf1ddc66e 100644 --- a/src/main/java/org/kohsuke/github/GitHub.java +++ b/src/main/java/org/kohsuke/github/GitHub.java @@ -358,6 +358,13 @@ private InputStream wrapStream(HttpURLConnection uc, InputStream in) throws IOEx } } + /** + * Gets the current rate limit. + */ + public GHRateLimit getRateLimit() throws IOException { + return retrieveWithAuth3("/rate_limit",JsonRateLimit.class).rate; + } + /** * Gets the {@link GHUser} that represents yourself. */ diff --git a/src/main/java/org/kohsuke/github/JsonRateLimit.java b/src/main/java/org/kohsuke/github/JsonRateLimit.java new file mode 100644 index 0000000000..6276ae9b87 --- /dev/null +++ b/src/main/java/org/kohsuke/github/JsonRateLimit.java @@ -0,0 +1,8 @@ +package org.kohsuke.github; + +/** + * @author Kohsuke Kawaguchi + */ +class JsonRateLimit { + GHRateLimit rate; +} diff --git a/src/test/java/org/kohsuke/AppTest.java b/src/test/java/org/kohsuke/AppTest.java index 75d40d1712..139e905e3b 100644 --- a/src/test/java/org/kohsuke/AppTest.java +++ b/src/test/java/org/kohsuke/AppTest.java @@ -36,6 +36,10 @@ public void testCredentialValid() throws IOException { assertFalse(GitHub.connect("totally","bogus").isCredentialValid()); } + public void testRateLimit() throws IOException { + System.out.println(GitHub.connect().getRateLimit()); + } + public void testFetchPullRequest() throws Exception { GitHub gh = GitHub.connect(); GHRepository r = gh.getOrganization("jenkinsci").getRepository("jenkins"); From 3a9ade667a7c47610600521e09110beeec755031 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 4 Jun 2012 10:09:10 -0700 Subject: [PATCH 4/4] [maven-release-plugin] prepare release github-api-1.26 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c5f13e7595..a57550ca7c 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ github-api - 1.26-SNAPSHOT + 1.26 GitHub API for Java http://github-api.kohsuke.org/ GitHub API for Java