mirror of
https://github.com/jlengrand/github-api.git
synced 2026-03-12 15:50:06 +00:00
Compare commits
12 Commits
github-api
...
github-api
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8353499d18 | ||
|
|
d2c5994616 | ||
|
|
500b9097f7 | ||
|
|
7993266e6e | ||
|
|
74090103a9 | ||
|
|
a18cde2340 | ||
|
|
ee98e97876 | ||
|
|
ff63bafd72 | ||
|
|
3f8c8be77a | ||
|
|
769cdc73e7 | ||
|
|
cef8f74c00 | ||
|
|
9f5ab709de |
22
LICENSE.txt
Normal file
22
LICENSE.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
Copyright (c) 2011- Kohsuke Kawaguchi and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
17
pom.xml
17
pom.xml
@@ -7,7 +7,7 @@
|
||||
</parent>
|
||||
|
||||
<artifactId>github-api</artifactId>
|
||||
<version>1.50</version>
|
||||
<version>1.51</version>
|
||||
<name>GitHub API for Java</name>
|
||||
<url>http://github-api.kohsuke.org/</url>
|
||||
<description>GitHub API for Java</description>
|
||||
@@ -16,7 +16,7 @@
|
||||
<connection>scm:git:git@github.com/kohsuke/${project.artifactId}.git</connection>
|
||||
<developerConnection>scm:git:ssh://git@github.com/kohsuke/${project.artifactId}.git</developerConnection>
|
||||
<url>http://${project.artifactId}.kohsuke.org/</url>
|
||||
<tag>HEAD</tag>
|
||||
<tag>github-api-1.51</tag>
|
||||
</scm>
|
||||
|
||||
<distributionManagement>
|
||||
@@ -92,6 +92,12 @@
|
||||
<version>3.1.0.201310021548-r</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.squareup.okhttp</groupId>
|
||||
<artifactId>okhttp</artifactId>
|
||||
<version>1.5.3</version>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<repositories>
|
||||
<repository>
|
||||
@@ -115,4 +121,11 @@
|
||||
</plugins>
|
||||
</reporting>
|
||||
|
||||
<licenses>
|
||||
<license>
|
||||
<name>The MIT license</name>
|
||||
<url>http://www.opensource.org/licenses/mit-license.php</url>
|
||||
<distribution>repo</distribution>
|
||||
</license>
|
||||
</licenses>
|
||||
</project>
|
||||
|
||||
@@ -57,6 +57,14 @@ public class GHOrganization extends GHPerson {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a member of the organisation - which will remove them from
|
||||
* all teams, and remove their access to the organization’s repositories.
|
||||
*/
|
||||
public void remove(GHUser user) throws IOException {
|
||||
root.retrieve().method("DELETE").to("/orgs/" + login + "/members/" + user.getLogin());
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if this organization has the specified user as a public member.
|
||||
*/
|
||||
|
||||
@@ -33,6 +33,7 @@ import java.util.Locale;
|
||||
* A pull request.
|
||||
*
|
||||
* @author Kohsuke Kawaguchi
|
||||
* @see GHRepository#getPullRequest(int)
|
||||
*/
|
||||
@SuppressWarnings({"UnusedDeclaration"})
|
||||
public class GHPullRequest extends GHIssue {
|
||||
|
||||
@@ -68,6 +68,8 @@ public class GitHub {
|
||||
|
||||
private final String apiUrl;
|
||||
|
||||
private HttpConnector connector = HttpConnector.DEFAULT;
|
||||
|
||||
/**
|
||||
* Connects to GitHub.com
|
||||
*/
|
||||
@@ -201,6 +203,17 @@ public class GitHub {
|
||||
return login==null && encodedAuthorization==null;
|
||||
}
|
||||
|
||||
public HttpConnector getConnector() {
|
||||
return connector;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the custom connector used to make requests to GitHub.
|
||||
*/
|
||||
public void setConnector(HttpConnector connector) {
|
||||
this.connector = connector;
|
||||
}
|
||||
|
||||
/*package*/ void requireCredential() {
|
||||
if (isAnonymous())
|
||||
throw new IllegalStateException("This operation requires a credential but none is given to the GitHub constructor");
|
||||
|
||||
29
src/main/java/org/kohsuke/github/HttpConnector.java
Normal file
29
src/main/java/org/kohsuke/github/HttpConnector.java
Normal file
@@ -0,0 +1,29 @@
|
||||
package org.kohsuke.github;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
|
||||
/**
|
||||
* Pluggability for customizing HTTP request behaviors or using altogether different library.
|
||||
*
|
||||
* <p>
|
||||
* For example, you can implement this to st custom timeouts.
|
||||
*
|
||||
* @author Kohsuke Kawaguchi
|
||||
*/
|
||||
public interface HttpConnector {
|
||||
/**
|
||||
* Opens a connection to the given URL.
|
||||
*/
|
||||
HttpURLConnection connect(URL url) throws IOException;
|
||||
|
||||
/**
|
||||
* Default implementation that uses {@link URL#openConnection()}.
|
||||
*/
|
||||
HttpConnector DEFAULT = new HttpConnector() {
|
||||
public HttpURLConnection connect(URL url) throws IOException {
|
||||
return (HttpURLConnection) url.openConnection();
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -25,7 +25,6 @@ package org.kohsuke.github;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -294,7 +293,7 @@ class Requester {
|
||||
|
||||
|
||||
private HttpURLConnection setupConnection(URL url) throws IOException {
|
||||
HttpsURLConnection uc = (HttpsURLConnection) url.openConnection();
|
||||
HttpURLConnection uc = root.getConnector().connect(url);
|
||||
|
||||
// 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.)
|
||||
|
||||
31
src/main/java/org/kohsuke/github/extras/OkHttpConnector.java
Normal file
31
src/main/java/org/kohsuke/github/extras/OkHttpConnector.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package org.kohsuke.github.extras;
|
||||
|
||||
import com.squareup.okhttp.OkHttpClient;
|
||||
import org.kohsuke.github.HttpConnector;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.URL;
|
||||
|
||||
/**
|
||||
* {@link HttpConnector} for {@link OkHttpClient}.
|
||||
*
|
||||
* Unlike {@link #DEFAULT}, OkHttp does response caching.
|
||||
* Making a conditional request against GitHubAPI and receiving a 304
|
||||
* response does not count against the rate limit.
|
||||
* See http://developer.github.com/v3/#conditional-requests
|
||||
*
|
||||
* @author Roberto Tyley
|
||||
* @author Kohsuke Kawaguchi
|
||||
*/
|
||||
public class OkHttpConnector implements HttpConnector {
|
||||
private final OkHttpClient client;
|
||||
|
||||
public OkHttpConnector(OkHttpClient client) {
|
||||
this.client = client;
|
||||
}
|
||||
|
||||
public HttpURLConnection connect(URL url) throws IOException {
|
||||
return client.open(url);
|
||||
}
|
||||
}
|
||||
@@ -7,6 +7,8 @@ operations that act on them as defined as methods (such as `GHUser.follow()`), a
|
||||
are used in favor of using string handle (such as `GHUser.isMemberOf(GHOrganization)` instead of
|
||||
`GHUser.isMemberOf(String)`)
|
||||
|
||||
The library supports both github.com and GitHub Enterprise.
|
||||
|
||||
There are some corners of the GitHub API that's not yet implemented, but
|
||||
the library is implemented with the right abstractions and libraries to make it very easy to improve the coverage.
|
||||
|
||||
@@ -34,3 +36,10 @@ Alternatively, you can have just the OAuth token in this file:
|
||||
|
||||
oauth=4d98173f7c075527cb64878561d1fe70
|
||||
|
||||
OkHttp
|
||||
----
|
||||
This library comes with a pluggable connector to use different HTTP client implementations
|
||||
through `HttpConnector`. In particular, this means you can use [OkHttp](http://square.github.io/okhttp/),
|
||||
so we can make use of it's HTTP response cache.
|
||||
Making a conditional request against the GitHub API and receiving a 304 response
|
||||
[does not count against the rate limit](http://developer.github.com/v3/#conditional-requests).
|
||||
Reference in New Issue
Block a user