events) {
+ this.events = events;
+ }
+
+ public String getSingleFileName() {
+ return singleFileName;
+ }
+
+ public void setSingleFileName(String singleFileName) {
+ this.singleFileName = singleFileName;
+ }
+
+ public GHRepositorySelection getRepositorySelection() {
+ return repositorySelection;
+ }
+
+ public void setRepositorySelection(GHRepositorySelection repositorySelection) {
+ this.repositorySelection = repositorySelection;
+ }
+
+ /*package*/ GHAppInstallation wrapUp(GitHub root) {
+ this.root = root;
+ return this;
+ }
+
+ /**
+ * Delete a Github App installation
+ *
+ * You must use a JWT to access this endpoint.
+ *
+ * @see Delete an installation
+ */
+ @Preview @Deprecated
+ public void deleteInstallation() throws IOException {
+ root.retrieve().method("DELETE").withPreview(GAMBIT).to(String.format("/app/installations/%d", id));
+ }
+
+
+ /**
+ * Starts a builder that creates a new App Installation Token.
+ *
+ *
+ * You use the returned builder to set various properties, then call {@link GHAppCreateTokenBuilder#create()}
+ * to finally create an access token.
+ */
+ @Preview @Deprecated
+ public GHAppCreateTokenBuilder createToken(Map permissions){
+ return new GHAppCreateTokenBuilder(root,String.format("/app/installations/%d/access_tokens", id), permissions);
+ }
+}
diff --git a/src/main/java/org/kohsuke/github/GHAppInstallationToken.java b/src/main/java/org/kohsuke/github/GHAppInstallationToken.java
new file mode 100644
index 000000000..2b6e78fde
--- /dev/null
+++ b/src/main/java/org/kohsuke/github/GHAppInstallationToken.java
@@ -0,0 +1,87 @@
+package org.kohsuke.github;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.infradna.tool.bridge_method_injector.WithBridgeMethods;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * A Github App Installation Token.
+ *
+ * @author Paulo Miguel Almeida
+ *
+ * @see GHAppInstallation#createToken(Map)
+ */
+
+public class GHAppInstallationToken {
+ private GitHub root;
+
+ private String token;
+ protected String expires_at;
+ private Map permissions;
+ private List repositories;
+ @JsonProperty("repository_selection")
+ private GHRepositorySelection repositorySelection;
+
+ public GitHub getRoot() {
+ return root;
+ }
+
+ public void setRoot(GitHub root) {
+ this.root = root;
+ }
+
+ public Map getPermissions() {
+ return permissions;
+ }
+
+ public void setPermissions(Map permissions) {
+ this.permissions = permissions;
+ }
+
+ public String getToken() {
+ return token;
+ }
+
+ public void setToken(String token) {
+ this.token = token;
+ }
+
+ public List getRepositories() {
+ return repositories;
+ }
+
+ public void setRepositories(List repositories) {
+ this.repositories = repositories;
+ }
+
+ public GHRepositorySelection getRepositorySelection() {
+ return repositorySelection;
+ }
+
+ public void setRepositorySelection(GHRepositorySelection repositorySelection) {
+ this.repositorySelection = repositorySelection;
+ }
+
+ /**
+ * When was this tokens expires?
+ */
+ @WithBridgeMethods(value=String.class, adapterMethod="expiresAtStr")
+ public Date getExpiresAt() throws IOException {
+ return GitHub.parseDate(expires_at);
+ }
+
+ @SuppressFBWarnings(value = "UPM_UNCALLED_PRIVATE_METHOD", justification = "Bridge method of getExpiresAt")
+ private Object expiresAtStr(Date id, Class type) {
+ return expires_at;
+ }
+
+ /*package*/ GHAppInstallationToken wrapUp(GitHub root) {
+ this.root = root;
+ return this;
+ }
+}
diff --git a/src/main/java/org/kohsuke/github/GHEvent.java b/src/main/java/org/kohsuke/github/GHEvent.java
index 970b6afbf..8ad6368fe 100644
--- a/src/main/java/org/kohsuke/github/GHEvent.java
+++ b/src/main/java/org/kohsuke/github/GHEvent.java
@@ -23,6 +23,8 @@ public enum GHEvent {
GOLLUM,
INSTALLATION,
INSTALLATION_REPOSITORIES,
+ INTEGRATION_INSTALLATION_REPOSITORIES,
+ CHECK_SUITE,
ISSUE_COMMENT,
ISSUES,
LABEL,
diff --git a/src/main/java/org/kohsuke/github/GHRepository.java b/src/main/java/org/kohsuke/github/GHRepository.java
index 90a0106da..1b580a263 100644
--- a/src/main/java/org/kohsuke/github/GHRepository.java
+++ b/src/main/java/org/kohsuke/github/GHRepository.java
@@ -624,6 +624,10 @@ public class GHRepository extends GHObject {
edit("default_branch", value);
}
+ public void setPrivate(boolean value) throws IOException {
+ edit("private", Boolean.toString(value));
+ }
+
/**
* Deletes this repository.
*/
diff --git a/src/main/java/org/kohsuke/github/GHRepositorySelection.java b/src/main/java/org/kohsuke/github/GHRepositorySelection.java
new file mode 100644
index 000000000..afba38aaa
--- /dev/null
+++ b/src/main/java/org/kohsuke/github/GHRepositorySelection.java
@@ -0,0 +1,22 @@
+package org.kohsuke.github;
+
+import java.util.Locale;
+
+/**
+ * App installation repository selection.
+ *
+ * @author Paulo Miguel Almeida
+ *
+ * @see GHAppInstallation
+ */
+public enum GHRepositorySelection {
+ SELECTED,
+ ALL;
+
+ /**
+ * Returns GitHub's internal representation of this event.
+ */
+ String symbol() {
+ return name().toLowerCase(Locale.ENGLISH);
+ }
+}
diff --git a/src/main/java/org/kohsuke/github/GHSubscription.java b/src/main/java/org/kohsuke/github/GHSubscription.java
index 16acbed45..40939fa42 100644
--- a/src/main/java/org/kohsuke/github/GHSubscription.java
+++ b/src/main/java/org/kohsuke/github/GHSubscription.java
@@ -49,7 +49,7 @@ public class GHSubscription {
* Removes this subscription.
*/
public void delete() throws IOException {
- new Requester(root).method("DELETE").to(url);
+ new Requester(root).method("DELETE").to(repo.getApiTailUrl("subscription"));
}
GHSubscription wrapUp(GHRepository repo) {
diff --git a/src/main/java/org/kohsuke/github/GHTargetType.java b/src/main/java/org/kohsuke/github/GHTargetType.java
new file mode 100644
index 000000000..42a23d872
--- /dev/null
+++ b/src/main/java/org/kohsuke/github/GHTargetType.java
@@ -0,0 +1,24 @@
+package org.kohsuke.github;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.Locale;
+
+/**
+ * App installation target type.
+ *
+ * @author Paulo Miguel Almeida
+ *
+ * @see GHAppInstallation
+ */
+public enum GHTargetType {
+ ORGANIZATION,
+ USER;
+
+ /**
+ * Returns GitHub's internal representation of this event.
+ */
+ String symbol() {
+ return StringUtils.capitalize(name().toLowerCase(Locale.ENGLISH));
+ }
+}
diff --git a/src/main/java/org/kohsuke/github/GHTeam.java b/src/main/java/org/kohsuke/github/GHTeam.java
index d18ba0d33..b7895645f 100644
--- a/src/main/java/org/kohsuke/github/GHTeam.java
+++ b/src/main/java/org/kohsuke/github/GHTeam.java
@@ -12,7 +12,7 @@ import java.util.TreeMap;
* @author Kohsuke Kawaguchi
*/
public class GHTeam {
- private String name,permission,slug;
+ private String name,permission,slug,description;
private int id;
private GHOrganization organization; // populated by GET /user/teams where Teams+Orgs are returned together
@@ -59,6 +59,16 @@ public class GHTeam {
return slug;
}
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) throws IOException {
+ org.root.retrieve().method("PATCH")
+ .with("description", description)
+ .to(api(""));
+ }
+
public int getId() {
return id;
}
diff --git a/src/main/java/org/kohsuke/github/GHUser.java b/src/main/java/org/kohsuke/github/GHUser.java
index 77beb11b8..cd365b82b 100644
--- a/src/main/java/org/kohsuke/github/GHUser.java
+++ b/src/main/java/org/kohsuke/github/GHUser.java
@@ -26,8 +26,7 @@ package org.kohsuke.github;
import com.infradna.tool.bridge_method_injector.WithBridgeMethods;
import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.*;
/**
* Represents an user of GitHub.
@@ -36,6 +35,10 @@ import java.util.Set;
*/
public class GHUser extends GHPerson {
+ public List getKeys() throws IOException {
+ return Collections.unmodifiableList(Arrays.asList(root.retrieve().to(getApiTailUrl("keys"), GHKey[].class)));
+ }
+
/**
* Follow this user.
*/
diff --git a/src/main/java/org/kohsuke/github/GitHub.java b/src/main/java/org/kohsuke/github/GitHub.java
index 002fda9b1..23973f354 100644
--- a/src/main/java/org/kohsuke/github/GitHub.java
+++ b/src/main/java/org/kohsuke/github/GitHub.java
@@ -115,6 +115,12 @@ public class GitHub {
* Specify oauthAccessToken, and optionally specify the login. Leave password null.
* This will send OAuth token to the GitHub API. If the login parameter is null,
* The constructor makes an API call to figure out the user name that owns the token.
+ *
+ * Log in with JWT token
+ * Specify jwtToken. Leave password null.
+ * This will send JWT token to the GitHub API via the Authorization HTTP header.
+ * Please note that only operations in which permissions have been previously configured and accepted during
+ * the GitHub App will be executed successfully.
*
*
* @param apiUrl
@@ -132,7 +138,7 @@ public class GitHub {
* @param connector
* HttpConnector to use. Pass null to use default connector.
*/
- /* package */ GitHub(String apiUrl, String login, String oauthAccessToken, String password, HttpConnector connector, RateLimitHandler rateLimitHandler, AbuseLimitHandler abuseLimitHandler) throws IOException {
+ /* package */ GitHub(String apiUrl, String login, String oauthAccessToken, String jwtToken, String password, HttpConnector connector, RateLimitHandler rateLimitHandler, AbuseLimitHandler abuseLimitHandler) throws IOException {
if (apiUrl.endsWith("/")) apiUrl = apiUrl.substring(0, apiUrl.length()-1); // normalize
this.apiUrl = apiUrl;
if (null != connector) this.connector = connector;
@@ -140,7 +146,9 @@ public class GitHub {
if (oauthAccessToken!=null) {
encodedAuthorization = "token "+oauthAccessToken;
} else {
- if (password!=null) {
+ if(jwtToken!=null){
+ encodedAuthorization = "Bearer "+jwtToken;
+ }else if (password!=null) {
String authorization = (login + ':' + password);
String charsetName = Charsets.UTF_8.name();
encodedAuthorization = "Basic "+new String(Base64.encodeBase64(authorization.getBytes(charsetName)), charsetName);
@@ -154,7 +162,7 @@ public class GitHub {
this.rateLimitHandler = rateLimitHandler;
this.abuseLimitHandler = abuseLimitHandler;
- if (login==null && encodedAuthorization!=null)
+ if (login==null && encodedAuthorization!=null && jwtToken == null)
login = getMyself().getLogin();
this.login = login;
}
@@ -699,6 +707,18 @@ public class GitHub {
return retrieve().method("POST").to("/applications/" + clientId + "/tokens/" + accessToken, GHAuthorization.class);
}
+ /**
+ * Returns the GitHub App associated with the authentication credentials used.
+ *
+ * You must use a JWT to access this endpoint.
+ *
+ * @see Get the authenticated GitHub App
+ */
+ @Preview @Deprecated
+ public GHApp getApp() throws IOException {
+ return retrieve().withPreview(MACHINE_MAN).to("/app", GHApp.class).wrapUp(this);
+ }
+
/**
* Ensures that the credential is valid.
*/
@@ -922,7 +942,11 @@ public class GitHub {
/*package*/ static final ObjectMapper MAPPER = new ObjectMapper();
- private static final String[] TIME_FORMATS = {"yyyy/MM/dd HH:mm:ss ZZZZ","yyyy-MM-dd'T'HH:mm:ss'Z'"};
+ private static final String[] TIME_FORMATS = {
+ "yyyy/MM/dd HH:mm:ss ZZZZ",
+ "yyyy-MM-dd'T'HH:mm:ss'Z'",
+ "yyyy-MM-dd'T'HH:mm:ss.S'Z'" // GitHub App endpoints return a different date format
+ };
static {
MAPPER.setVisibilityChecker(new Std(NONE, NONE, NONE, NONE, ANY));
diff --git a/src/main/java/org/kohsuke/github/GitHubBuilder.java b/src/main/java/org/kohsuke/github/GitHubBuilder.java
index a2be04ec0..e299e7340 100644
--- a/src/main/java/org/kohsuke/github/GitHubBuilder.java
+++ b/src/main/java/org/kohsuke/github/GitHubBuilder.java
@@ -19,14 +19,15 @@ import java.util.Properties;
*
* @since 1.59
*/
-public class GitHubBuilder {
+public class GitHubBuilder implements Cloneable {
// default scoped so unit tests can read them.
/* private */ String endpoint = GitHub.GITHUB_URL;
/* private */ String user;
/* private */ String password;
/* private */ String oauthToken;
-
+ /* private */ String jwtToken;
+
private HttpConnector connector;
private RateLimitHandler rateLimitHandler = RateLimitHandler.WAIT;
@@ -36,10 +37,11 @@ public class GitHubBuilder {
}
/**
- * First check if the credentials are configured using the ~/.github properties file.
- *
- * If no user is specified it means there is no configuration present so check the environment instead.
+ * First check if the credentials are configured in the environment.
+ * We use environment first because users are not likely to give required (full) permissions to their default key.
*
+ * If no user is specified it means there is no configuration present, so try using the ~/.github properties file.
+ **
* If there is still no user it means there are no credentials defined and throw an IOException.
*
* @return the configured Builder from credentials defined on the system or in the environment. Otherwise returns null.
@@ -50,22 +52,21 @@ public class GitHubBuilder {
Exception cause = null;
GitHubBuilder builder = null;
+ builder = fromEnvironment();
+
+ if (builder.oauthToken != null || builder.user != null || builder.jwtToken != null)
+ return builder;
+
try {
builder = fromPropertyFile();
- if (builder.oauthToken != null || builder.user != null)
+ if (builder.oauthToken != null || builder.user != null || builder.jwtToken != null)
return builder;
} catch (FileNotFoundException e) {
// fall through
cause = e;
}
-
- builder = fromEnvironment();
-
- if (builder.oauthToken != null || builder.user != null)
- return builder;
- else
- throw (IOException)new IOException("Failed to resolve credentials from ~/.github or the environment.").initCause(cause);
+ throw (IOException)new IOException("Failed to resolve credentials from ~/.github or the environment.").initCause(cause);
}
/**
@@ -108,6 +109,7 @@ public class GitHubBuilder {
* GITHUB_PASSWORD: raw password
* GITHUB_OAUTH: OAuth token to login
* GITHUB_ENDPOINT: URL of the API endpoint
+ * GITHUB_JWT: JWT token to login
*
*
*
@@ -149,6 +151,7 @@ public class GitHubBuilder {
public static GitHubBuilder fromProperties(Properties props) {
GitHubBuilder self = new GitHubBuilder();
self.withOAuthToken(props.getProperty("oauth"), props.getProperty("login"));
+ self.withJwtToken(props.getProperty("jwt"));
self.withPassword(props.getProperty("login"), props.getProperty("password"));
self.withEndpoint(props.getProperty("endpoint", GitHub.GITHUB_URL));
return self;
@@ -177,6 +180,10 @@ public class GitHubBuilder {
this.user = user;
return this;
}
+ public GitHubBuilder withJwtToken(String jwtToken){
+ this.jwtToken = jwtToken;
+ return this;
+ }
public GitHubBuilder withConnector(HttpConnector connector) {
this.connector = connector;
return this;
@@ -204,6 +211,15 @@ public class GitHubBuilder {
}
public GitHub build() throws IOException {
- return new GitHub(endpoint, user, oauthToken, password, connector, rateLimitHandler, abuseLimitHandler);
+ return new GitHub(endpoint, user, oauthToken, jwtToken, password, connector, rateLimitHandler, abuseLimitHandler);
+ }
+
+ @Override
+ public GitHubBuilder clone() {
+ try {
+ return (GitHubBuilder) super.clone();
+ } catch (CloneNotSupportedException e) {
+ throw new RuntimeException("Clone should be supported", e);
+ }
}
}
diff --git a/src/main/java/org/kohsuke/github/Previews.java b/src/main/java/org/kohsuke/github/Previews.java
index ad23bbf4c..d99743f8e 100644
--- a/src/main/java/org/kohsuke/github/Previews.java
+++ b/src/main/java/org/kohsuke/github/Previews.java
@@ -36,4 +36,6 @@ package org.kohsuke.github;
* @see GitHub API Previews
*/
static final String ZZZAX = "application/vnd.github.zzzax-preview+json";
+ static final String MACHINE_MAN = "application/vnd.github.machine-man-preview+json";
+ static final String GAMBIT = "application/vnd.github.gambit-preview+json";
}
diff --git a/src/main/java/org/kohsuke/github/Requester.java b/src/main/java/org/kohsuke/github/Requester.java
index 3c0e95ecd..618ca87ff 100644
--- a/src/main/java/org/kohsuke/github/Requester.java
+++ b/src/main/java/org/kohsuke/github/Requester.java
@@ -154,18 +154,14 @@ class Requester {
public Requester with(String key, Enum e) {
if (e==null) return _with(key, null);
-
- // by convention Java constant names are upper cases, but github uses
- // lower-case constants. GitHub also uses '-', which in Java we always
- // replace by '_'
- return with(key, e.toString().toLowerCase(Locale.ENGLISH).replace('_', '-'));
+ return with(key, transformEnum(e));
}
public Requester with(String key, String value) {
return _with(key, value);
}
- public Requester with(String key, Collection value) {
+ public Requester with(String key, Collection> value) {
return _with(key, value);
}
@@ -181,6 +177,14 @@ class Requester {
return _with(key, value);
}
+ public Requester withPermissions(String key, Map value) {
+ Map retMap = new HashMap();
+ for (Map.Entry entry : value.entrySet()) {
+ retMap.put(entry.getKey(), transformEnum(entry.getValue()));
+ }
+ return _with(key, retMap);
+ }
+
public Requester with(@WillClose/*later*/ InputStream body) {
this.body = body;
return this;
@@ -726,6 +730,18 @@ class Requester {
throw e;
}
+ /**
+ * Transform Java Enum into Github constants given its conventions
+ * @param en - Enum to be transformed
+ * @return a String containing the value of a Github constant
+ */
+ private String transformEnum(Enum en){
+ // by convention Java constant names are upper cases, but github uses
+ // lower-case constants. GitHub also uses '-', which in Java we always
+ // replace by '_'
+ return en.toString().toLowerCase(Locale.ENGLISH).replace('_', '-');
+ }
+
private static final List METHODS_WITHOUT_BODY = asList("GET", "DELETE");
private static final Logger LOGGER = Logger.getLogger(Requester.class.getName());
}
diff --git a/src/main/java/org/kohsuke/github/extras/OkHttp3Connector.java b/src/main/java/org/kohsuke/github/extras/OkHttp3Connector.java
index d2fd8c697..17b93b331 100644
--- a/src/main/java/org/kohsuke/github/extras/OkHttp3Connector.java
+++ b/src/main/java/org/kohsuke/github/extras/OkHttp3Connector.java
@@ -16,12 +16,18 @@ import java.net.URL;
* response does not count against the rate limit.
* See http://developer.github.com/v3/#conditional-requests
*
+ * @see org.kohsuke.github.extras.okhttp3.OkHttpConnector
* @author Roberto Tyley
* @author Kohsuke Kawaguchi
*/
+@Deprecated
public class OkHttp3Connector implements HttpConnector {
private final OkUrlFactory urlFactory;
+ /*
+ * @see org.kohsuke.github.extras.okhttp3.OkHttpConnector
+ */
+ @Deprecated
public OkHttp3Connector(OkUrlFactory urlFactory) {
this.urlFactory = urlFactory;
}
diff --git a/src/main/java/org/kohsuke/github/extras/OkHttpConnector.java b/src/main/java/org/kohsuke/github/extras/OkHttpConnector.java
index e7802c6ba..60b41e18e 100644
--- a/src/main/java/org/kohsuke/github/extras/OkHttpConnector.java
+++ b/src/main/java/org/kohsuke/github/extras/OkHttpConnector.java
@@ -1,5 +1,6 @@
package org.kohsuke.github.extras;
+import com.squareup.okhttp.CacheControl;
import com.squareup.okhttp.ConnectionSpec;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.OkUrlFactory;
@@ -16,6 +17,7 @@ import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.List;
+import java.util.concurrent.TimeUnit;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
@@ -32,16 +34,49 @@ import javax.net.ssl.SSLSocketFactory;
* @author Kohsuke Kawaguchi
*/
public class OkHttpConnector implements HttpConnector {
+ private static final String HEADER_NAME = "Cache-Control";
private final OkUrlFactory urlFactory;
+ private final String maxAgeHeaderValue;
+
public OkHttpConnector(OkUrlFactory urlFactory) {
+ this(urlFactory, 0);
+ }
+
+ /**
+ * package private for tests to be able to change max-age for cache.
+ * @param urlFactory
+ * @param cacheMaxAge
+ */
+ OkHttpConnector(OkUrlFactory urlFactory, int cacheMaxAge) {
urlFactory.client().setSslSocketFactory(TlsSocketFactory());
urlFactory.client().setConnectionSpecs(TlsConnectionSpecs());
this.urlFactory = urlFactory;
+
+ if (cacheMaxAge >= 0 && urlFactory.client() != null && urlFactory.client().getCache() != null) {
+ maxAgeHeaderValue = new CacheControl.Builder()
+ .maxAge(cacheMaxAge, TimeUnit.SECONDS)
+ .build()
+ .toString();
+ } else {
+ maxAgeHeaderValue = null;
+ }
}
+
public HttpURLConnection connect(URL url) throws IOException {
- return urlFactory.open(url);
+ HttpURLConnection urlConnection = urlFactory.open(url);
+ if (maxAgeHeaderValue != null) {
+ // By default OkHttp honors max-age, meaning it will use local cache
+ // without checking the network within that time frame.
+ // However, that can result in stale data being returned during that time so
+ // we force network-based checking no matter how often the query is made.
+ // OkHttp still automatically does ETag checking and returns cached data when
+ // GitHub reports 304, but those do not count against rate limit.
+ urlConnection.setRequestProperty(HEADER_NAME, maxAgeHeaderValue);
+ }
+
+ return urlConnection;
}
/** Returns TLSv1.2 only SSL Socket Factory. */
diff --git a/src/main/java/org/kohsuke/github/extras/okhttp3/ObsoleteUrlFactory.java b/src/main/java/org/kohsuke/github/extras/okhttp3/ObsoleteUrlFactory.java
new file mode 100644
index 000000000..7a4b53f11
--- /dev/null
+++ b/src/main/java/org/kohsuke/github/extras/okhttp3/ObsoleteUrlFactory.java
@@ -0,0 +1,1193 @@
+package org.kohsuke.github.extras.okhttp3;
+
+/*
+ * Copyright (C) 2014 Square, Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InterruptedIOException;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.InetSocketAddress;
+import java.net.MalformedURLException;
+import java.net.ProtocolException;
+import java.net.Proxy;
+import java.net.SocketPermission;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.net.URLStreamHandler;
+import java.net.URLStreamHandlerFactory;
+import java.security.AccessControlException;
+import java.security.Permission;
+import java.security.Principal;
+import java.security.cert.Certificate;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import javax.annotation.Nullable;
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLSocketFactory;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.Dispatcher;
+import okhttp3.Handshake;
+import okhttp3.Headers;
+import okhttp3.HttpUrl;
+import okhttp3.Interceptor;
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Protocol;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+import okio.Buffer;
+import okio.BufferedSink;
+import okio.Okio;
+import okio.Pipe;
+import okio.Timeout;
+
+import static java.net.HttpURLConnection.HTTP_NOT_MODIFIED;
+import static java.net.HttpURLConnection.HTTP_NO_CONTENT;
+
+/**
+ * OkHttp 3.14 dropped support for the long-deprecated OkUrlFactory class, which allows you to use
+ * the HttpURLConnection API with OkHttp's implementation. This class does the same thing using only
+ * public APIs in OkHttp. It requires OkHttp 3.14 or newer.
+ *
+ * Rather than pasting this 1100 line gist into your source code, please upgrade to OkHttp's
+ * request/response API. Your code will be shorter, easier to read, and you'll be able to use
+ * interceptors.
+ */
+public final class ObsoleteUrlFactory implements URLStreamHandlerFactory, Cloneable {
+ static final String SELECTED_PROTOCOL = "ObsoleteUrlFactory-Selected-Protocol";
+
+ static final String RESPONSE_SOURCE = "ObsoleteUrlFactory-Response-Source";
+
+ static final Set METHODS = new LinkedHashSet<>(
+ Arrays.asList("OPTIONS", "GET", "HEAD", "POST", "PUT", "DELETE", "TRACE", "PATCH"));
+
+ static final TimeZone UTC = TimeZone.getTimeZone("GMT");
+
+ static final int HTTP_CONTINUE = 100;
+
+ static final ThreadLocal STANDARD_DATE_FORMAT = ThreadLocal.withInitial(() -> {
+ // Date format specified by RFC 7231 section 7.1.1.1.
+ DateFormat rfc1123 = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss 'GMT'", Locale.US);
+ rfc1123.setLenient(false);
+ rfc1123.setTimeZone(UTC);
+ return rfc1123;
+ });
+
+ static final Comparator FIELD_NAME_COMPARATOR = (a, b) -> {
+ if (Objects.equals(a, b)) {
+ return 0;
+ } else if (Objects.isNull(a)) {
+ return -1;
+ } else if (Objects.isNull(b)) {
+ return 1;
+ } else {
+ return String.CASE_INSENSITIVE_ORDER.compare(a, b);
+ }
+ };
+
+ private OkHttpClient client;
+
+ public ObsoleteUrlFactory(OkHttpClient client) {
+ this.client = client;
+ }
+
+ public OkHttpClient client() {
+ return client;
+ }
+
+ public ObsoleteUrlFactory setClient(OkHttpClient client) {
+ this.client = client;
+ return this;
+ }
+
+ /**
+ * Returns a copy of this stream handler factory that includes a shallow copy of the internal
+ * {@linkplain OkHttpClient HTTP client}.
+ */
+ @Override public ObsoleteUrlFactory clone() {
+ return new ObsoleteUrlFactory(client);
+ }
+
+ public HttpURLConnection open(URL url) {
+ return open(url, client.proxy());
+ }
+
+ HttpURLConnection open(URL url, @Nullable Proxy proxy) {
+ String protocol = url.getProtocol();
+ OkHttpClient copy = client.newBuilder()
+ .proxy(proxy)
+ .build();
+
+ if (protocol.equals("http")) return new OkHttpURLConnection(url, copy);
+ if (protocol.equals("https")) return new OkHttpsURLConnection(url, copy);
+ throw new IllegalArgumentException("Unexpected protocol: " + protocol);
+ }
+
+ /**
+ * Creates a URLStreamHandler as a {@link java.net.URL#setURLStreamHandlerFactory}.
+ *
+ * This code configures OkHttp to handle all HTTP and HTTPS connections
+ * created with {@link java.net.URL#openConnection()}:
{@code
+ *
+ * OkHttpClient okHttpClient = new OkHttpClient();
+ * URL.setURLStreamHandlerFactory(new ObsoleteUrlFactory(okHttpClient));
+ * }
+ */
+ @Override public URLStreamHandler createURLStreamHandler(final String protocol) {
+ if (!protocol.equals("http") && !protocol.equals("https")) return null;
+
+ return new URLStreamHandler() {
+ @Override protected URLConnection openConnection(URL url) {
+ return open(url);
+ }
+
+ @Override protected URLConnection openConnection(URL url, Proxy proxy) {
+ return open(url, proxy);
+ }
+
+ @Override protected int getDefaultPort() {
+ if (protocol.equals("http")) return 80;
+ if (protocol.equals("https")) return 443;
+ throw new AssertionError();
+ }
+ };
+ }
+
+ static String format(Date value) {
+ return STANDARD_DATE_FORMAT.get().format(value);
+ }
+
+ static boolean permitsRequestBody(String method) {
+ return !(method.equals("GET") || method.equals("HEAD"));
+ }
+
+ /** Returns true if the response must have a (possibly 0-length) body. See RFC 7231. */
+ static boolean hasBody(Response response) {
+ // HEAD requests never yield a body regardless of the response headers.
+ if (response.request().method().equals("HEAD")) {
+ return false;
+ }
+
+ int responseCode = response.code();
+ if ((responseCode < HTTP_CONTINUE || responseCode >= 200)
+ && responseCode != HTTP_NO_CONTENT
+ && responseCode != HTTP_NOT_MODIFIED) {
+ return true;
+ }
+
+ // If the Content-Length or Transfer-Encoding headers disagree with the response code, the
+ // response is malformed. For best compatibility, we honor the headers.
+ if (contentLength(response.headers()) != -1
+ || "chunked".equalsIgnoreCase(response.header("Transfer-Encoding"))) {
+ return true;
+ }
+
+ return false;
+ }
+
+ static long contentLength(Headers headers) {
+ String s = headers.get("Content-Length");
+ if (s == null) return -1;
+ try {
+ return Long.parseLong(s);
+ } catch (NumberFormatException e) {
+ return -1;
+ }
+ }
+
+ static String responseSourceHeader(Response response) {
+ if (response.networkResponse() == null) {
+ return response.cacheResponse() == null
+ ? "NONE"
+ : "CACHE " + response.code();
+ }
+ return response.cacheResponse() == null
+ ? "NETWORK " + response.code()
+ : "CONDITIONAL_CACHE " + response.networkResponse().code();
+ }
+
+ static String statusLineToString(Response response) {
+ return (response.protocol() == Protocol.HTTP_1_0 ? "HTTP/1.0" : "HTTP/1.1")
+ + ' ' + response.code()
+ + ' ' + response.message();
+ }
+
+ static String toHumanReadableAscii(String s) {
+ for (int i = 0, length = s.length(), c; i < length; i += Character.charCount(c)) {
+ c = s.codePointAt(i);
+ if (c > '\u001f' && c < '\u007f') continue;
+
+ Buffer buffer = new Buffer();
+ buffer.writeUtf8(s, 0, i);
+ buffer.writeUtf8CodePoint('?');
+ for (int j = i + Character.charCount(c); j < length; j += Character.charCount(c)) {
+ c = s.codePointAt(j);
+ buffer.writeUtf8CodePoint(c > '\u001f' && c < '\u007f' ? c : '?');
+ }
+ return buffer.readUtf8();
+ }
+ return s;
+ }
+
+ static Map> toMultimap(Headers headers, @Nullable String valueForNullKey) {
+ Map> result = new TreeMap<>(FIELD_NAME_COMPARATOR);
+ for (int i = 0, size = headers.size(); i < size; i++) {
+ String fieldName = headers.name(i);
+ String value = headers.value(i);
+
+ List allValues = new ArrayList<>();
+ List otherValues = result.get(fieldName);
+ if (otherValues != null) {
+ allValues.addAll(otherValues);
+ }
+ allValues.add(value);
+ result.put(fieldName, Collections.unmodifiableList(allValues));
+ }
+ if (valueForNullKey != null) {
+ result.put(null, Collections.unmodifiableList(Collections.singletonList(valueForNullKey)));
+ }
+ return Collections.unmodifiableMap(result);
+ }
+
+ static String getSystemProperty(String key, @Nullable String defaultValue) {
+ String value;
+ try {
+ value = System.getProperty(key);
+ } catch (AccessControlException ex) {
+ return defaultValue;
+ }
+ return value != null ? value : defaultValue;
+ }
+
+ static String defaultUserAgent() {
+ String agent = getSystemProperty("http.agent", null);
+ return agent != null ? toHumanReadableAscii(agent) : "ObsoleteUrlFactory";
+ }
+
+ static IOException propagate(Throwable throwable) throws IOException {
+ if (throwable instanceof IOException) throw (IOException) throwable;
+ if (throwable instanceof Error) throw (Error) throwable;
+ if (throwable instanceof RuntimeException) throw (RuntimeException) throwable;
+ throw new AssertionError();
+ }
+
+ static final class OkHttpURLConnection extends HttpURLConnection implements Callback {
+ // These fields are confined to the application thread that uses HttpURLConnection.
+ OkHttpClient client;
+ final NetworkInterceptor networkInterceptor = new NetworkInterceptor();
+ Headers.Builder requestHeaders = new Headers.Builder();
+ Headers responseHeaders;
+ boolean executed;
+ Call call;
+
+ /** Like the superclass field of the same name, but a long and available on all platforms. */
+ long fixedContentLength = -1L;
+
+ // These fields are guarded by lock.
+ private final Object lock = new Object();
+ private Response response;
+ private Throwable callFailure;
+ Response networkResponse;
+ boolean connectPending = true;
+ Proxy proxy;
+ Handshake handshake;
+
+ OkHttpURLConnection(URL url, OkHttpClient client) {
+ super(url);
+ this.client = client;
+ }
+
+ @Override public void connect() throws IOException {
+ if (executed) return;
+
+ Call call = buildCall();
+ executed = true;
+ call.enqueue(this);
+
+ synchronized (lock) {
+ try {
+ while (connectPending && response == null && callFailure == null) {
+ lock.wait(); // Wait 'til the network interceptor is reached or the call fails.
+ }
+ if (callFailure != null) {
+ throw propagate(callFailure);
+ }
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt(); // Retain interrupted status.
+ throw new InterruptedIOException();
+ }
+ }
+ }
+
+ @Override public void disconnect() {
+ // Calling disconnect() before a connection exists should have no effect.
+ if (call == null) return;
+
+ networkInterceptor.proceed(); // Unblock any waiting async thread.
+ call.cancel();
+ }
+
+ @Override public InputStream getErrorStream() {
+ try {
+ Response response = getResponse(true);
+ if (hasBody(response) && response.code() >= HTTP_BAD_REQUEST) {
+ return response.body().byteStream();
+ }
+ return null;
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+ Headers getHeaders() throws IOException {
+ if (responseHeaders == null) {
+ Response response = getResponse(true);
+ Headers headers = response.headers();
+ responseHeaders = headers.newBuilder()
+ .add(SELECTED_PROTOCOL, response.protocol().toString())
+ .add(RESPONSE_SOURCE, responseSourceHeader(response))
+ .build();
+ }
+ return responseHeaders;
+ }
+
+ @Override public String getHeaderField(int position) {
+ try {
+ Headers headers = getHeaders();
+ if (position < 0 || position >= headers.size()) return null;
+ return headers.value(position);
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+ @Override public String getHeaderField(String fieldName) {
+ try {
+ return fieldName == null
+ ? statusLineToString(getResponse(true))
+ : getHeaders().get(fieldName);
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+ @Override public String getHeaderFieldKey(int position) {
+ try {
+ Headers headers = getHeaders();
+ if (position < 0 || position >= headers.size()) return null;
+ return headers.name(position);
+ } catch (IOException e) {
+ return null;
+ }
+ }
+
+ @Override public Map> getHeaderFields() {
+ try {
+ return toMultimap(getHeaders(), statusLineToString(getResponse(true)));
+ } catch (IOException e) {
+ return Collections.emptyMap();
+ }
+ }
+
+ @Override public Map> getRequestProperties() {
+ if (connected) {
+ throw new IllegalStateException(
+ "Cannot access request header fields after connection is set");
+ }
+
+ return toMultimap(requestHeaders.build(), null);
+ }
+
+ @Override public InputStream getInputStream() throws IOException {
+ if (!doInput) {
+ throw new ProtocolException("This protocol does not support input");
+ }
+
+ Response response = getResponse(false);
+ if (response.code() >= HTTP_BAD_REQUEST) throw new FileNotFoundException(url.toString());
+ return response.body().byteStream();
+ }
+
+ @Override public OutputStream getOutputStream() throws IOException {
+ OutputStreamRequestBody requestBody = (OutputStreamRequestBody) buildCall().request().body();
+ if (requestBody == null) {
+ throw new ProtocolException("method does not support a request body: " + method);
+ }
+
+ if (requestBody instanceof StreamedRequestBody) {
+ connect();
+ networkInterceptor.proceed();
+ }
+
+ if (requestBody.closed) {
+ throw new ProtocolException("cannot write request body after response has been read");
+ }
+
+ return requestBody.outputStream;
+ }
+
+ @Override public Permission getPermission() {
+ URL url = getURL();
+ String hostname = url.getHost();
+ int hostPort = url.getPort() != -1
+ ? url.getPort()
+ : HttpUrl.defaultPort(url.getProtocol());
+ if (usingProxy()) {
+ InetSocketAddress proxyAddress = (InetSocketAddress) client.proxy().address();
+ hostname = proxyAddress.getHostName();
+ hostPort = proxyAddress.getPort();
+ }
+ return new SocketPermission(hostname + ":" + hostPort, "connect, resolve");
+ }
+
+ @Override public String getRequestProperty(String field) {
+ if (field == null) return null;
+ return requestHeaders.get(field);
+ }
+
+ @Override public void setConnectTimeout(int timeoutMillis) {
+ client = client.newBuilder()
+ .connectTimeout(timeoutMillis, TimeUnit.MILLISECONDS)
+ .build();
+ }
+
+ @Override public void setInstanceFollowRedirects(boolean followRedirects) {
+ client = client.newBuilder()
+ .followRedirects(followRedirects)
+ .build();
+ }
+
+ @Override public boolean getInstanceFollowRedirects() {
+ return client.followRedirects();
+ }
+
+ @Override public int getConnectTimeout() {
+ return client.connectTimeoutMillis();
+ }
+
+ @Override public void setReadTimeout(int timeoutMillis) {
+ client = client.newBuilder()
+ .readTimeout(timeoutMillis, TimeUnit.MILLISECONDS)
+ .build();
+ }
+
+ @Override public int getReadTimeout() {
+ return client.readTimeoutMillis();
+ }
+
+ @SuppressFBWarnings("RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE")
+ private Call buildCall() throws IOException {
+ if (call != null) {
+ return call;
+ }
+
+ connected = true;
+ if (doOutput) {
+ if (method.equals("GET")) {
+ method = "POST";
+ } else if (!permitsRequestBody(method)) {
+ throw new ProtocolException(method + " does not support writing");
+ }
+ }
+
+ if (requestHeaders.get("User-Agent") == null) {
+ requestHeaders.add("User-Agent", defaultUserAgent());
+ }
+
+ OutputStreamRequestBody requestBody = null;
+ if (permitsRequestBody(method)) {
+ String contentType = requestHeaders.get("Content-Type");
+ if (contentType == null) {
+ contentType = "application/x-www-form-urlencoded";
+ requestHeaders.add("Content-Type", contentType);
+ }
+
+ boolean stream = fixedContentLength != -1L || chunkLength > 0;
+
+ long contentLength = -1L;
+ String contentLengthString = requestHeaders.get("Content-Length");
+ if (fixedContentLength != -1L) {
+ contentLength = fixedContentLength;
+ } else if (contentLengthString != null) {
+ contentLength = Long.parseLong(contentLengthString);
+ }
+
+ requestBody = stream
+ ? new StreamedRequestBody(contentLength)
+ : new BufferedRequestBody(contentLength);
+ requestBody.timeout.timeout(client.writeTimeoutMillis(), TimeUnit.MILLISECONDS);
+ }
+
+ HttpUrl url;
+ try {
+ url = HttpUrl.get(getURL().toString());
+ } catch (IllegalArgumentException e) {
+ MalformedURLException malformedUrl = new MalformedURLException();
+ malformedUrl.initCause(e);
+ throw malformedUrl;
+ }
+
+ Request request = new Request.Builder()
+ .url(url)
+ .headers(requestHeaders.build())
+ .method(method, requestBody)
+ .build();
+
+ OkHttpClient.Builder clientBuilder = client.newBuilder();
+ clientBuilder.interceptors().clear();
+ clientBuilder.interceptors().add(UnexpectedException.INTERCEPTOR);
+ clientBuilder.networkInterceptors().clear();
+ clientBuilder.networkInterceptors().add(networkInterceptor);
+
+ // Use a separate dispatcher so that limits aren't impacted. But use the same executor service!
+ clientBuilder.dispatcher(new Dispatcher(client.dispatcher().executorService()));
+
+ // If we're currently not using caches, make sure the engine's client doesn't have one.
+ if (!getUseCaches()) {
+ clientBuilder.cache(null);
+ }
+
+ return call = clientBuilder.build().newCall(request);
+ }
+
+ private Response getResponse(boolean networkResponseOnError) throws IOException {
+ synchronized (lock) {
+ if (response != null) return response;
+ if (callFailure != null) {
+ if (networkResponseOnError && networkResponse != null) return networkResponse;
+ throw propagate(callFailure);
+ }
+ }
+
+ Call call = buildCall();
+ networkInterceptor.proceed();
+
+ OutputStreamRequestBody requestBody = (OutputStreamRequestBody) call.request().body();
+ if (requestBody != null) requestBody.outputStream.close();
+
+ if (executed) {
+ synchronized (lock) {
+ try {
+ while (response == null && callFailure == null) {
+ lock.wait(); // Wait until the response is returned or the call fails.
+ }
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt(); // Retain interrupted status.
+ throw new InterruptedIOException();
+ }
+ }
+ } else {
+ executed = true;
+ try {
+ onResponse(call, call.execute());
+ } catch (IOException e) {
+ onFailure(call, e);
+ }
+ }
+
+ synchronized (lock) {
+ if (callFailure != null) throw propagate(callFailure);
+ if (response != null) return response;
+ }
+
+ throw new AssertionError();
+ }
+
+ @Override public boolean usingProxy() {
+ if (proxy != null) return true;
+ Proxy clientProxy = client.proxy();
+ return clientProxy != null && clientProxy.type() != Proxy.Type.DIRECT;
+ }
+
+ @Override public String getResponseMessage() throws IOException {
+ return getResponse(true).message();
+ }
+
+ @Override public int getResponseCode() throws IOException {
+ return getResponse(true).code();
+ }
+
+ @Override public void setRequestProperty(String field, String newValue) {
+ if (connected) {
+ throw new IllegalStateException("Cannot set request property after connection is made");
+ }
+ if (field == null) {
+ throw new NullPointerException("field == null");
+ }
+ if (newValue == null) {
+ return;
+ }
+
+ requestHeaders.set(field, newValue);
+ }
+
+ @Override public void setIfModifiedSince(long newValue) {
+ super.setIfModifiedSince(newValue);
+ if (ifModifiedSince != 0) {
+ requestHeaders.set("If-Modified-Since", format(new Date(ifModifiedSince)));
+ } else {
+ requestHeaders.removeAll("If-Modified-Since");
+ }
+ }
+
+ @Override public void addRequestProperty(String field, String value) {
+ if (connected) {
+ throw new IllegalStateException("Cannot add request property after connection is made");
+ }
+ if (field == null) {
+ throw new NullPointerException("field == null");
+ }
+ if (value == null) {
+ return;
+ }
+
+ requestHeaders.add(field, value);
+ }
+
+ @Override public void setRequestMethod(String method) throws ProtocolException {
+ if (!METHODS.contains(method)) {
+ throw new ProtocolException("Expected one of " + METHODS + " but was " + method);
+ }
+ this.method = method;
+ }
+
+ @Override public void setFixedLengthStreamingMode(int contentLength) {
+ setFixedLengthStreamingMode((long) contentLength);
+ }
+
+ @Override public void setFixedLengthStreamingMode(long contentLength) {
+ if (super.connected) throw new IllegalStateException("Already connected");
+ if (chunkLength > 0) throw new IllegalStateException("Already in chunked mode");
+ if (contentLength < 0) throw new IllegalArgumentException("contentLength < 0");
+ this.fixedContentLength = contentLength;
+ super.fixedContentLength = (int) Math.min(contentLength, Integer.MAX_VALUE);
+ }
+
+ @Override public void onFailure(Call call, IOException e) {
+ synchronized (lock) {
+ this.callFailure = (e instanceof UnexpectedException) ? e.getCause() : e;
+ lock.notifyAll();
+ }
+ }
+
+ @Override public void onResponse(Call call, Response response) {
+ synchronized (lock) {
+ this.response = response;
+ this.handshake = response.handshake();
+ this.url = response.request().url().url();
+ lock.notifyAll();
+ }
+ }
+
+ final class NetworkInterceptor implements Interceptor {
+ // Guarded by HttpUrlConnection.this.
+ private boolean proceed;
+
+ public void proceed() {
+ synchronized (lock) {
+ this.proceed = true;
+ lock.notifyAll();
+ }
+ }
+
+ @Override public Response intercept(Chain chain) throws IOException {
+ Request request = chain.request();
+
+ synchronized (lock) {
+ connectPending = false;
+ proxy = chain.connection().route().proxy();
+ handshake = chain.connection().handshake();
+ lock.notifyAll();
+
+ try {
+ while (!proceed) {
+ lock.wait(); // Wait until proceed() is called.
+ }
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt(); // Retain interrupted status.
+ throw new InterruptedIOException();
+ }
+ }
+
+ // Try to lock in the Content-Length before transmitting the request body.
+ if (request.body() instanceof OutputStreamRequestBody) {
+ OutputStreamRequestBody requestBody = (OutputStreamRequestBody) request.body();
+ request = requestBody.prepareToSendRequest(request);
+ }
+
+ Response response = chain.proceed(request);
+
+ synchronized (lock) {
+ networkResponse = response;
+ url = response.request().url().url();
+ }
+
+ return response;
+ }
+ }
+ }
+
+ abstract static class OutputStreamRequestBody extends RequestBody {
+ Timeout timeout;
+ long expectedContentLength;
+ OutputStream outputStream;
+ boolean closed;
+
+ void initOutputStream(BufferedSink sink, long expectedContentLength) {
+ this.timeout = sink.timeout();
+ this.expectedContentLength = expectedContentLength;
+
+ // An output stream that writes to sink. If expectedContentLength is not -1, then this expects
+ // exactly that many bytes to be written.
+ this.outputStream = new OutputStream() {
+ private long bytesReceived;
+
+ @Override public void write(int b) throws IOException {
+ write(new byte[] {(byte) b}, 0, 1);
+ }
+
+ @Override public void write(byte[] source, int offset, int byteCount) throws IOException {
+ if (closed) throw new IOException("closed"); // Not IllegalStateException!
+
+ if (expectedContentLength != -1L && bytesReceived + byteCount > expectedContentLength) {
+ throw new ProtocolException("expected " + expectedContentLength
+ + " bytes but received " + bytesReceived + byteCount);
+ }
+
+ bytesReceived += byteCount;
+ try {
+ sink.write(source, offset, byteCount);
+ } catch (InterruptedIOException e) {
+ throw new SocketTimeoutException(e.getMessage());
+ }
+ }
+
+ @Override public void flush() throws IOException {
+ if (closed) return; // Weird, but consistent with historical behavior.
+ sink.flush();
+ }
+
+ @Override public void close() throws IOException {
+ closed = true;
+
+ if (expectedContentLength != -1L && bytesReceived < expectedContentLength) {
+ throw new ProtocolException("expected " + expectedContentLength
+ + " bytes but received " + bytesReceived);
+ }
+
+ sink.close();
+ }
+ };
+ }
+
+ @Override public long contentLength() {
+ return expectedContentLength;
+ }
+
+ @Override public final @Nullable MediaType contentType() {
+ return null; // Let the caller provide this in a regular header.
+ }
+
+ public Request prepareToSendRequest(Request request) throws IOException {
+ return request;
+ }
+ }
+
+ static final class BufferedRequestBody extends OutputStreamRequestBody {
+ final Buffer buffer = new Buffer();
+ long contentLength = -1L;
+
+ BufferedRequestBody(long expectedContentLength) {
+ initOutputStream(buffer, expectedContentLength);
+ }
+
+ @Override public long contentLength() {
+ return contentLength;
+ }
+
+ @Override public Request prepareToSendRequest(Request request) throws IOException {
+ if (request.header("Content-Length") != null) return request;
+
+ outputStream.close();
+ contentLength = buffer.size();
+ return request.newBuilder()
+ .removeHeader("Transfer-Encoding")
+ .header("Content-Length", Long.toString(buffer.size()))
+ .build();
+ }
+
+ @Override public void writeTo(BufferedSink sink) {
+ buffer.copyTo(sink.buffer(), 0, buffer.size());
+ }
+ }
+
+ static final class StreamedRequestBody extends OutputStreamRequestBody {
+ private final Pipe pipe = new Pipe(8192);
+
+ StreamedRequestBody(long expectedContentLength) {
+ initOutputStream(Okio.buffer(pipe.sink()), expectedContentLength);
+ }
+
+ public boolean isOneShot() {
+ return true;
+ }
+
+ @Override public void writeTo(BufferedSink sink) throws IOException {
+ Buffer buffer = new Buffer();
+ while (pipe.source().read(buffer, 8192) != -1L) {
+ sink.write(buffer, buffer.size());
+ }
+ }
+ }
+
+ abstract static class DelegatingHttpsURLConnection extends HttpsURLConnection {
+ private final HttpURLConnection delegate;
+
+ DelegatingHttpsURLConnection(HttpURLConnection delegate) {
+ super(delegate.getURL());
+ this.delegate = delegate;
+ }
+
+ protected abstract Handshake handshake();
+
+ @Override public abstract void setHostnameVerifier(HostnameVerifier hostnameVerifier);
+
+ @Override public abstract HostnameVerifier getHostnameVerifier();
+
+ @Override public abstract void setSSLSocketFactory(SSLSocketFactory sslSocketFactory);
+
+ @Override public abstract SSLSocketFactory getSSLSocketFactory();
+
+ @Override public String getCipherSuite() {
+ Handshake handshake = handshake();
+ return handshake != null ? handshake.cipherSuite().javaName() : null;
+ }
+
+ @Override public Certificate[] getLocalCertificates() {
+ Handshake handshake = handshake();
+ if (handshake == null) return null;
+ List result = handshake.localCertificates();
+ return !result.isEmpty() ? result.toArray(new Certificate[result.size()]) : null;
+ }
+
+ @Override public Certificate[] getServerCertificates() {
+ Handshake handshake = handshake();
+ if (handshake == null) return null;
+ List result = handshake.peerCertificates();
+ return !result.isEmpty() ? result.toArray(new Certificate[result.size()]) : null;
+ }
+
+ @Override public Principal getPeerPrincipal() {
+ Handshake handshake = handshake();
+ return handshake != null ? handshake.peerPrincipal() : null;
+ }
+
+ @Override public Principal getLocalPrincipal() {
+ Handshake handshake = handshake();
+ return handshake != null ? handshake.localPrincipal() : null;
+ }
+
+ @Override public void connect() throws IOException {
+ connected = true;
+ delegate.connect();
+ }
+
+ @Override public void disconnect() {
+ delegate.disconnect();
+ }
+
+ @Override public InputStream getErrorStream() {
+ return delegate.getErrorStream();
+ }
+
+ @Override public String getRequestMethod() {
+ return delegate.getRequestMethod();
+ }
+
+ @Override public int getResponseCode() throws IOException {
+ return delegate.getResponseCode();
+ }
+
+ @Override public String getResponseMessage() throws IOException {
+ return delegate.getResponseMessage();
+ }
+
+ @Override public void setRequestMethod(String method) throws ProtocolException {
+ delegate.setRequestMethod(method);
+ }
+
+ @Override public boolean usingProxy() {
+ return delegate.usingProxy();
+ }
+
+ @Override public boolean getInstanceFollowRedirects() {
+ return delegate.getInstanceFollowRedirects();
+ }
+
+ @Override public void setInstanceFollowRedirects(boolean followRedirects) {
+ delegate.setInstanceFollowRedirects(followRedirects);
+ }
+
+ @Override public boolean getAllowUserInteraction() {
+ return delegate.getAllowUserInteraction();
+ }
+
+ @Override public Object getContent() throws IOException {
+ return delegate.getContent();
+ }
+
+ @Override public Object getContent(Class[] types) throws IOException {
+ return delegate.getContent(types);
+ }
+
+ @Override public String getContentEncoding() {
+ return delegate.getContentEncoding();
+ }
+
+ @Override public int getContentLength() {
+ return delegate.getContentLength();
+ }
+
+ // Should only be invoked on Java 8+ or Android API 24+.
+ @Override public long getContentLengthLong() {
+ return delegate.getContentLengthLong();
+ }
+
+ @Override public String getContentType() {
+ return delegate.getContentType();
+ }
+
+ @Override public long getDate() {
+ return delegate.getDate();
+ }
+
+ @Override public boolean getDefaultUseCaches() {
+ return delegate.getDefaultUseCaches();
+ }
+
+ @Override public boolean getDoInput() {
+ return delegate.getDoInput();
+ }
+
+ @Override public boolean getDoOutput() {
+ return delegate.getDoOutput();
+ }
+
+ @Override public long getExpiration() {
+ return delegate.getExpiration();
+ }
+
+ @Override public String getHeaderField(int pos) {
+ return delegate.getHeaderField(pos);
+ }
+
+ @Override public Map> getHeaderFields() {
+ return delegate.getHeaderFields();
+ }
+
+ @Override public Map> getRequestProperties() {
+ return delegate.getRequestProperties();
+ }
+
+ @Override public void addRequestProperty(String field, String newValue) {
+ delegate.addRequestProperty(field, newValue);
+ }
+
+ @Override public String getHeaderField(String key) {
+ return delegate.getHeaderField(key);
+ }
+
+ // Should only be invoked on Java 8+ or Android API 24+.
+ @Override public long getHeaderFieldLong(String field, long defaultValue) {
+ return delegate.getHeaderFieldLong(field, defaultValue);
+ }
+
+ @Override public long getHeaderFieldDate(String field, long defaultValue) {
+ return delegate.getHeaderFieldDate(field, defaultValue);
+ }
+
+ @Override public int getHeaderFieldInt(String field, int defaultValue) {
+ return delegate.getHeaderFieldInt(field, defaultValue);
+ }
+
+ @Override public String getHeaderFieldKey(int position) {
+ return delegate.getHeaderFieldKey(position);
+ }
+
+ @Override public long getIfModifiedSince() {
+ return delegate.getIfModifiedSince();
+ }
+
+ @Override public InputStream getInputStream() throws IOException {
+ return delegate.getInputStream();
+ }
+
+ @Override public long getLastModified() {
+ return delegate.getLastModified();
+ }
+
+ @Override public OutputStream getOutputStream() throws IOException {
+ return delegate.getOutputStream();
+ }
+
+ @Override public Permission getPermission() throws IOException {
+ return delegate.getPermission();
+ }
+
+ @Override public String getRequestProperty(String field) {
+ return delegate.getRequestProperty(field);
+ }
+
+ @Override public URL getURL() {
+ return delegate.getURL();
+ }
+
+ @Override public boolean getUseCaches() {
+ return delegate.getUseCaches();
+ }
+
+ @Override public void setAllowUserInteraction(boolean newValue) {
+ delegate.setAllowUserInteraction(newValue);
+ }
+
+ @Override public void setDefaultUseCaches(boolean newValue) {
+ delegate.setDefaultUseCaches(newValue);
+ }
+
+ @Override public void setDoInput(boolean newValue) {
+ delegate.setDoInput(newValue);
+ }
+
+ @Override public void setDoOutput(boolean newValue) {
+ delegate.setDoOutput(newValue);
+ }
+
+ // Should only be invoked on Java 8+ or Android API 24+.
+ @Override public void setFixedLengthStreamingMode(long contentLength) {
+ delegate.setFixedLengthStreamingMode(contentLength);
+ }
+
+ @Override public void setIfModifiedSince(long newValue) {
+ delegate.setIfModifiedSince(newValue);
+ }
+
+ @Override public void setRequestProperty(String field, String newValue) {
+ delegate.setRequestProperty(field, newValue);
+ }
+
+ @Override public void setUseCaches(boolean newValue) {
+ delegate.setUseCaches(newValue);
+ }
+
+ @Override public void setConnectTimeout(int timeoutMillis) {
+ delegate.setConnectTimeout(timeoutMillis);
+ }
+
+ @Override public int getConnectTimeout() {
+ return delegate.getConnectTimeout();
+ }
+
+ @Override public void setReadTimeout(int timeoutMillis) {
+ delegate.setReadTimeout(timeoutMillis);
+ }
+
+ @Override public int getReadTimeout() {
+ return delegate.getReadTimeout();
+ }
+
+ @Override public String toString() {
+ return delegate.toString();
+ }
+
+ @Override public void setFixedLengthStreamingMode(int contentLength) {
+ delegate.setFixedLengthStreamingMode(contentLength);
+ }
+
+ @Override public void setChunkedStreamingMode(int chunkLength) {
+ delegate.setChunkedStreamingMode(chunkLength);
+ }
+ }
+
+ static final class OkHttpsURLConnection extends DelegatingHttpsURLConnection {
+ private final OkHttpURLConnection delegate;
+
+ OkHttpsURLConnection(URL url, OkHttpClient client) {
+ this(new OkHttpURLConnection(url, client));
+ }
+
+ OkHttpsURLConnection(OkHttpURLConnection delegate) {
+ super(delegate);
+ this.delegate = delegate;
+ }
+
+ @Override protected Handshake handshake() {
+ if (delegate.call == null) {
+ throw new IllegalStateException("Connection has not yet been established");
+ }
+
+ return delegate.handshake;
+ }
+
+ @Override public void setHostnameVerifier(HostnameVerifier hostnameVerifier) {
+ delegate.client = delegate.client.newBuilder()
+ .hostnameVerifier(hostnameVerifier)
+ .build();
+ }
+
+ @Override public HostnameVerifier getHostnameVerifier() {
+ return delegate.client.hostnameVerifier();
+ }
+
+ @Override public void setSSLSocketFactory(SSLSocketFactory sslSocketFactory) {
+ if (sslSocketFactory == null) {
+ throw new IllegalArgumentException("sslSocketFactory == null");
+ }
+ // This fails in JDK 9 because OkHttp is unable to extract the trust manager.
+ delegate.client = delegate.client.newBuilder()
+ .sslSocketFactory(sslSocketFactory)
+ .build();
+ }
+
+ @Override public SSLSocketFactory getSSLSocketFactory() {
+ return delegate.client.sslSocketFactory();
+ }
+ }
+
+ static final class UnexpectedException extends IOException {
+ static final Interceptor INTERCEPTOR = chain -> {
+ try {
+ return chain.proceed(chain.request());
+ } catch (Error | RuntimeException e) {
+ throw new UnexpectedException(e);
+ }
+ };
+
+ UnexpectedException(Throwable cause) {
+ super(cause);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/org/kohsuke/github/extras/okhttp3/OkHttpConnector.java b/src/main/java/org/kohsuke/github/extras/okhttp3/OkHttpConnector.java
new file mode 100644
index 000000000..315ac0c35
--- /dev/null
+++ b/src/main/java/org/kohsuke/github/extras/okhttp3/OkHttpConnector.java
@@ -0,0 +1,77 @@
+package org.kohsuke.github.extras.okhttp3;
+
+import com.squareup.okhttp.CacheControl;
+import okhttp3.ConnectionSpec;
+import okhttp3.OkHttpClient;
+
+import org.kohsuke.github.HttpConnector;
+
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+
+/**
+ * {@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 Liam Newman
+ * @author Kohsuke Kawaguchi
+ */
+public class OkHttpConnector implements HttpConnector {
+ private static final String HEADER_NAME = "Cache-Control";
+ private final String maxAgeHeaderValue;
+
+ private final OkHttpClient client;
+ private final ObsoleteUrlFactory urlFactory;
+
+
+ public OkHttpConnector(OkHttpClient client) {
+ this(client, 0);
+ }
+
+ public OkHttpConnector(OkHttpClient client, int cacheMaxAge) {
+
+ OkHttpClient.Builder builder = client.newBuilder();
+
+ builder.connectionSpecs(TlsConnectionSpecs());
+ this.client = builder.build();
+ if (cacheMaxAge >= 0 && this.client != null && this.client.cache() != null) {
+ maxAgeHeaderValue = new CacheControl.Builder()
+ .maxAge(cacheMaxAge, TimeUnit.SECONDS)
+ .build()
+ .toString();
+ } else {
+ maxAgeHeaderValue = null;
+ }
+ this.urlFactory = new ObsoleteUrlFactory(this.client);
+ }
+
+ public HttpURLConnection connect(URL url) throws IOException {
+ HttpURLConnection urlConnection = urlFactory.open(url);
+ if (maxAgeHeaderValue != null) {
+ // By default OkHttp honors max-age, meaning it will use local cache
+ // without checking the network within that timeframe.
+ // However, that can result in stale data being returned during that time so
+ // we force network-based checking no matter how often the query is made.
+ // OkHttp still automatically does ETag checking and returns cached data when
+ // GitHub reports 304, but those do not count against rate limit.
+ urlConnection.setRequestProperty(HEADER_NAME, maxAgeHeaderValue);
+ }
+
+ return urlConnection;
+ }
+
+ /** Returns connection spec with TLS v1.2 in it */
+ private List TlsConnectionSpecs() {
+ return Arrays.asList(ConnectionSpec.MODERN_TLS, ConnectionSpec.CLEARTEXT);
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/org/kohsuke/HookApp.java b/src/test/java/org/kohsuke/HookApp.java
index aac24ddf8..66f6fb7f6 100644
--- a/src/test/java/org/kohsuke/HookApp.java
+++ b/src/test/java/org/kohsuke/HookApp.java
@@ -26,7 +26,7 @@ public class HookApp {
public void doIndex(StaplerRequest req) throws IOException {
String str = req.getParameter("payload");
System.out.println(str);
- GHEventPayload.PullRequest o = GitHub.connect().parseEventPayload(new StringReader(str),GHEventPayload.PullRequest.class);
+ GHEventPayload.PullRequest o = GitHub.connect().parseEventPayload(new StringReader(str), GHEventPayload.PullRequest.class);
System.out.println(o);
}
}
diff --git a/src/test/java/org/kohsuke/github/AbstractGitHubApiTestBase.java b/src/test/java/org/kohsuke/github/AbstractGitHubApiTestBase.java
index c0cd49e31..d3c5d5e31 100644
--- a/src/test/java/org/kohsuke/github/AbstractGitHubApiTestBase.java
+++ b/src/test/java/org/kohsuke/github/AbstractGitHubApiTestBase.java
@@ -2,6 +2,7 @@ package org.kohsuke.github;
import java.io.FileInputStream;
import java.util.Properties;
+
import org.apache.commons.io.IOUtils;
import org.junit.Assert;
import org.junit.Assume;
@@ -20,15 +21,7 @@ public abstract class AbstractGitHubApiTestBase extends AbstractGitHubApiWireMoc
@Before
public void setUp() throws Exception {
- assumeTrue( "All tests inheriting from this class are not guaranteed to work without proxy", githubApi.isUseProxy());
- }
-
- protected GHUser getUser() {
- try {
- return gitHub.getMyself();
- } catch (IOException e) {
- throw new RuntimeException(e.getMessage(), e);
- }
+ assumeTrue("All tests inheriting from this class are not guaranteed to work without proxy", githubApi.isUseProxy());
}
protected void kohsuke() {
diff --git a/src/test/java/org/kohsuke/github/AbstractGitHubApiWireMockTest.java b/src/test/java/org/kohsuke/github/AbstractGitHubApiWireMockTest.java
index b7846d9bd..24f071621 100644
--- a/src/test/java/org/kohsuke/github/AbstractGitHubApiWireMockTest.java
+++ b/src/test/java/org/kohsuke/github/AbstractGitHubApiWireMockTest.java
@@ -4,6 +4,7 @@ import com.github.tomakehurst.wiremock.common.FileSource;
import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
import com.github.tomakehurst.wiremock.extension.Parameters;
import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+import com.github.tomakehurst.wiremock.extension.responsetemplating.ResponseTemplateTransformer;
import com.github.tomakehurst.wiremock.http.Request;
import com.github.tomakehurst.wiremock.http.Response;
import org.apache.commons.io.IOUtils;
@@ -22,6 +23,7 @@ import java.util.Properties;
import static com.github.tomakehurst.wiremock.client.WireMock.*;
import static org.junit.Assume.assumeFalse;
+import static org.junit.Assume.assumeTrue;
/**
* @author Liam Newman
@@ -35,6 +37,8 @@ public abstract class AbstractGitHubApiWireMockTest extends Assert {
final static String STUBBED_USER_LOGIN = "placeholder-user";
final static String STUBBED_USER_PASSWORD = "placeholder-password";
+ protected boolean useDefaultGitHub = true;
+
/**
* {@link GitHub} instance for use during test.
* Traffic will be part of snapshot when taken.
@@ -52,11 +56,19 @@ public abstract class AbstractGitHubApiWireMockTest extends Assert {
protected final String baseRecordPath = "src/test/resources/" + baseFilesClassPath + "/wiremock";
@Rule
- public GitHubApiWireMockRule githubApi = new GitHubApiWireMockRule(
- WireMockConfiguration.options()
+ public final GitHubApiWireMockRule githubApi;
+
+ public AbstractGitHubApiWireMockTest() {
+ githubApi = new GitHubApiWireMockRule(
+ this.getWireMockOptions()
+ );
+ }
+
+ protected WireMockConfiguration getWireMockOptions() {
+ return WireMockConfiguration.options()
.dynamicPort()
- .usingFilesUnderDirectory(baseRecordPath)
- );
+ .usingFilesUnderDirectory(baseRecordPath);
+ }
private static GitHubBuilder createGitHubBuilder() {
@@ -77,6 +89,9 @@ public abstract class AbstractGitHubApiWireMockTest extends Assert {
// to clutter their event stream.
builder = GitHubBuilder.fromProperties(props);
} else {
+
+ builder = GitHubBuilder.fromEnvironment();
+
builder = GitHubBuilder.fromCredentials();
}
} catch (IOException e) {
@@ -86,26 +101,31 @@ public abstract class AbstractGitHubApiWireMockTest extends Assert {
}
protected GitHubBuilder getGitHubBuilder() {
- return githubBuilder;
- }
-
- @Before
- public void wireMockSetup() throws Exception {
- GitHubBuilder builder = getGitHubBuilder();
+ GitHubBuilder builder = githubBuilder.clone();
if (!githubApi.isUseProxy()) {
// This sets the user and password to a placeholder for wiremock testing
// This makes the tests believe they are running with permissions
// The recorded stubs will behave like they running with permissions
+ builder.oauthToken = null;
builder.withPassword(STUBBED_USER_LOGIN, STUBBED_USER_PASSWORD);
}
- gitHub = builder
- .withEndpoint("http://localhost:" + githubApi.port())
- .build();
+ return builder;
+ }
+
+ @Before
+ public void wireMockSetup() throws Exception {
+ GitHubBuilder builder = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl());
+
+ if (useDefaultGitHub) {
+ gitHub = builder
+ .build();
+ }
if (githubApi.isUseProxy()) {
- gitHubBeforeAfter = builder
+ gitHubBeforeAfter = getGitHubBuilder()
.withEndpoint("https://api.github.com/")
.build();
} else {
@@ -117,4 +137,29 @@ public abstract class AbstractGitHubApiWireMockTest extends Assert {
assumeFalse("Test contains hand written mappings. Only valid when not taking a snapshot.", githubApi.isTakeSnapshot());
}
+ protected void requireProxy(String reason) {
+ assumeTrue("Test only valid when proxying (-Dtest.github.useProxy to enable): " + reason, githubApi.isUseProxy());
+ }
+
+ protected GHUser getUser() {
+ return getUser(gitHub);
+ }
+
+ protected static GHUser getUser(GitHub gitHub) {
+ try {
+ return gitHub.getMyself();
+ } catch (IOException e) {
+ throw new RuntimeException(e.getMessage(), e);
+ }
+ }
+
+ protected void kohsuke() {
+ // No-op for now
+ // Generally this means the test is doing something that requires additional access rights
+ // Not always clear which ones.
+ // TODO: Add helpers that assert the expected rights using gitHubBeforeAfter and only when proxy is enabled
+// String login = getUserTest().getLogin();
+// assumeTrue(login.equals("kohsuke") || login.equals("kohsuke2"));
+ }
+
}
diff --git a/src/test/java/org/kohsuke/github/AppTest.java b/src/test/java/org/kohsuke/github/AppTest.java
index b29cba5e8..4b0795707 100755
--- a/src/test/java/org/kohsuke/github/AppTest.java
+++ b/src/test/java/org/kohsuke/github/AppTest.java
@@ -5,6 +5,7 @@ import com.google.common.collect.Iterables;
import com.google.common.collect.Lists;
import org.apache.commons.io.IOUtils;
+import org.junit.Ignore;
import org.junit.Test;
import org.kohsuke.github.GHCommit.File;
import org.kohsuke.github.GHOrganization.Permission;
@@ -17,22 +18,29 @@ import java.util.Map.Entry;
import java.util.regex.Pattern;
import static org.hamcrest.CoreMatchers.*;
+import static org.hamcrest.Matchers.contains;
+import static org.hamcrest.Matchers.hasProperty;
/**
* Unit test for simple App.
*/
-public class AppTest extends AbstractGitHubApiTestBase {
+public class AppTest extends AbstractGitHubApiWireMockTest {
+ static final String GITHUB_API_TEST_REPO = "github-api-test";
+
private String getTestRepositoryName() throws IOException {
- return getUser().getLogin() + "/github-api-test";
+ return GITHUB_API_TEST_ORG + "/" + GITHUB_API_TEST_REPO;
}
@Test
public void testRepoCRUD() throws Exception {
String targetName = "github-api-test-rename2";
- deleteRepository("github-api-test-rename");
- deleteRepository(targetName);
+ cleanupRepository("github-api-test-rename");
+ cleanupRepository(targetName);
+
GHRepository r = gitHub.createRepository("github-api-test-rename", "a test repository", "http://github-api.kohsuke.org/", true);
+ assertThat(r.hasIssues(), is(true));
+
r.enableIssueTracker(false);
r.enableDownloads(false);
r.enableWiki(false);
@@ -43,23 +51,27 @@ public class AppTest extends AbstractGitHubApiTestBase {
@Test
public void testRepositoryWithAutoInitializationCRUD() throws Exception {
String name = "github-api-test-autoinit";
- deleteRepository(name);
+ cleanupRepository(name);
GHRepository r = gitHub.createRepository(name)
- .description("a test repository for auto init")
- .homepage("http://github-api.kohsuke.org/")
- .autoInit(true).create();
+ .description("a test repository for auto init")
+ .homepage("http://github-api.kohsuke.org/")
+ .autoInit(true).create();
r.enableIssueTracker(false);
r.enableDownloads(false);
r.enableWiki(false);
- Thread.sleep(3000);
+ if (githubApi.isUseProxy()) {
+ Thread.sleep(3000);
+ }
assertNotNull(r.getReadme());
getUser().getRepository(name).delete();
}
- private void deleteRepository(final String name) throws IOException {
- GHRepository repository = getUser().getRepository(name);
- if(repository != null) {
- repository.delete();
+ private void cleanupRepository(final String name) throws IOException {
+ if (githubApi.isUseProxy()) {
+ GHRepository repository = getUser(gitHubBeforeAfter).getRepository(name);
+ if (repository != null) {
+ repository.delete();
+ }
}
}
@@ -74,11 +86,11 @@ public class AppTest extends AbstractGitHubApiTestBase {
public void testIssueWithNoComment() throws IOException {
GHRepository repository = gitHub.getRepository("kohsuke/test");
List v = repository.getIssue(4).getComments();
- System.out.println(v);
+ //System.out.println(v);
assertTrue(v.isEmpty());
v = repository.getIssue(3).getComments();
- System.out.println(v);
+ //System.out.println(v);
assertTrue(v.size() == 3);
}
@@ -86,90 +98,91 @@ public class AppTest extends AbstractGitHubApiTestBase {
public void testCreateIssue() throws IOException {
GHUser u = getUser();
GHRepository repository = getTestRepository();
- GHMilestone milestone = repository.createMilestone(System.currentTimeMillis() + "", "Test Milestone");
+ GHMilestone milestone = repository.createMilestone("Test Milestone Title3", "Test Milestone");
GHIssue o = repository.createIssue("testing")
- .body("this is body")
- .assignee(u)
- .label("bug")
- .label("question")
- .milestone(milestone)
- .create();
+ .body("this is body")
+ .assignee(u)
+ .label("bug")
+ .label("question")
+ .milestone(milestone)
+ .create();
assertNotNull(o);
o.close();
}
@Test
- public void testCreateDeployment() throws IOException {
+ public void testCreateAndListDeployments() throws IOException {
GHRepository repository = getTestRepository();
GHDeployment deployment = repository.createDeployment("master")
- .payload("{\"user\":\"atmos\",\"room_id\":123456}")
- .description("question")
- .create();
+ .payload("{\"user\":\"atmos\",\"room_id\":123456}")
+ .description("question")
+ .environment("unittest")
+ .create();
assertNotNull(deployment.getCreator());
assertNotNull(deployment.getId());
- }
-
- @Test
- public void testListDeployments() throws IOException {
- GHRepository repository = getTestRepository();
- GHDeployment deployment = repository.createDeployment("master")
- .payload("{\"user\":\"atmos\",\"room_id\":123456}")
- .description("question")
- .environment("unittest")
- .create();
- assertNotNull(deployment.getCreator());
- assertNotNull(deployment.getId());
- ArrayList deployments = Lists.newArrayList(repository.listDeployments(null, "master", null, "unittest"));
+ List deployments = repository.listDeployments(null, "master", null, "unittest").asList();
assertNotNull(deployments);
assertFalse(Iterables.isEmpty(deployments));
GHDeployment unitTestDeployment = deployments.get(0);
- assertEquals("unittest",unitTestDeployment.getEnvironment());
+ assertEquals("unittest", unitTestDeployment.getEnvironment());
assertEquals("master", unitTestDeployment.getRef());
}
+ @Ignore("Needs mocking check")
@Test
public void testGetDeploymentStatuses() throws IOException {
GHRepository repository = getTestRepository();
GHDeployment deployment = repository.createDeployment("master")
- .description("question")
- .payload("{\"user\":\"atmos\",\"room_id\":123456}")
- .create();
+ .description("question")
+ .payload("{\"user\":\"atmos\",\"room_id\":123456}")
+ .create();
GHDeploymentStatus ghDeploymentStatus = deployment.createStatus(GHDeploymentState.SUCCESS)
- .description("success")
- .targetUrl("http://www.github.com").create();
+ .description("success")
+ .targetUrl("http://www.github.com").create();
Iterable deploymentStatuses = deployment.listStatuses();
assertNotNull(deploymentStatuses);
- assertEquals(1,Iterables.size(deploymentStatuses));
+ assertEquals(1, Iterables.size(deploymentStatuses));
assertEquals(ghDeploymentStatus.getId(), Iterables.get(deploymentStatuses, 0).getId());
}
@Test
public void testGetIssues() throws Exception {
- List closedIssues = gitHub.getUser("kohsuke").getRepository("github-api").getIssues(GHIssueState.CLOSED);
+ List closedIssues = gitHub.getOrganization("github-api").getRepository("github-api").getIssues(GHIssueState.CLOSED);
// prior to using PagedIterable GHRepository.getIssues(GHIssueState) would only retrieve 30 issues
- assertTrue(closedIssues.size() > 30);
+ assertTrue(closedIssues.size() > 150);
}
private GHRepository getTestRepository() throws IOException {
- GHRepository repository;
- try {
- repository = gitHub.getRepository(getTestRepositoryName());
- } catch (IOException e) {
- repository = gitHub.createRepository("github-api-test", "A test repository for testing" +
- "the github-api project", "http://github-api.kohsuke.org/", true);
+ if (githubApi.isUseProxy()) {
+ GHRepository repository = gitHubBeforeAfter
+ .getOrganization(GITHUB_API_TEST_ORG)
+ .getRepository(GITHUB_API_TEST_REPO);
+ if (repository != null) {
+ repository.delete();
+ }
+
+ repository = gitHubBeforeAfter.getOrganization(GITHUB_API_TEST_ORG)
+ .createRepository(GITHUB_API_TEST_REPO)
+ .description("A test repository for testing the github-api project")
+ .homepage("http://github-api.kohsuke.org/")
+ .autoInit(true)
+ .create();
try {
Thread.sleep(2000);
- } catch (InterruptedException e1) {
+ } catch (InterruptedException e) {
throw new RuntimeException(e.getMessage(), e);
}
repository.enableIssueTracker(true);
repository.enableDownloads(true);
repository.enableWiki(true);
}
- return repository;
+
+ return gitHub.getRepository(getTestRepositoryName());
+
}
+ @Ignore("Needs to be rewritten to not create new issues just to check that they can be found.")
@Test
public void testListIssues() throws IOException {
GHUser u = getUser();
@@ -181,17 +194,17 @@ public class AppTest extends AbstractGitHubApiTestBase {
GHIssue homed = null;
try {
unhomed = repository.createIssue("testing").body("this is body")
- .assignee(u)
- .label("bug")
- .label("question")
- .create();
+ .assignee(u)
+ .label("bug")
+ .label("question")
+ .create();
assertEquals(unhomed.getNumber(), repository.getIssues(GHIssueState.OPEN, null).get(0).getNumber());
homed = repository.createIssue("testing").body("this is body")
- .assignee(u)
- .label("bug")
- .label("question")
- .milestone(milestone)
- .create();
+ .assignee(u)
+ .label("bug")
+ .label("question")
+ .milestone(milestone)
+ .create();
assertEquals(homed.getNumber(), repository.getIssues(GHIssueState.OPEN, milestone).get(0).getNumber());
} finally {
if (unhomed != null) {
@@ -205,14 +218,14 @@ public class AppTest extends AbstractGitHubApiTestBase {
@Test
public void testRateLimit() throws IOException {
- System.out.println(gitHub.getRateLimit());
+ assertThat(gitHub.getRateLimit(), notNullValue());
}
@Test
public void testMyOrganizations() throws IOException {
Map org = gitHub.getMyOrganizations();
assertFalse(org.keySet().contains(null));
- System.out.println(org);
+ //System.out.println(org);
}
@Test
@@ -223,7 +236,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
//https://help.github.com/articles/about-improved-organization-permissions/
assertTrue(myOrganizations.keySet().containsAll(teams.keySet()));
}
-
+
@Test
public void testMyTeamsShouldIncludeMyself() throws IOException {
Map> teams = gitHub.getMyTeams();
@@ -232,8 +245,8 @@ public class AppTest extends AbstractGitHubApiTestBase {
for (GHTeam team : teamsPerOrg.getValue()) {
String teamName = team.getName();
assertTrue("Team " + teamName + " in organization " + organizationName
- + " does not contain myself",
- shouldBelongToTeam(organizationName, teamName));
+ + " does not contain myself",
+ shouldBelongToTeam(organizationName, teamName));
}
}
}
@@ -245,29 +258,32 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertNotNull(team);
return team.hasMember(gitHub.getMyself());
}
-
+
+ @Ignore("Needs mocking check")
@Test
public void testShouldFetchTeam() throws Exception {
- GHOrganization j = gitHub.getOrganization("github-api-test-org");
+ GHOrganization j = gitHub.getOrganization(GITHUB_API_TEST_ORG);
GHTeam teamByName = j.getTeams().get("Core Developers");
GHTeam teamById = gitHub.getTeam(teamByName.getId());
assertNotNull(teamById);
-
+
assertEquals(teamByName, teamById);
}
+ @Ignore("Needs mocking check")
@Test
public void testFetchPullRequest() throws Exception {
GHRepository r = gitHub.getOrganization("jenkinsci").getRepository("jenkins");
- assertEquals("master",r.getMasterBranch());
+ assertEquals("master", r.getMasterBranch());
r.getPullRequest(1);
r.getPullRequests(GHIssueState.OPEN);
}
+ @Ignore("Needs mocking check")
@Test
public void testFetchPullRequestAsList() throws Exception {
- GHRepository r = gitHub.getRepository("kohsuke/github-api");
+ GHRepository r = gitHub.getRepository("github-api/github-api");
assertEquals("master", r.getMasterBranch());
PagedIterable i = r.listPullRequests(GHIssueState.CLOSED);
List prs = i.asList();
@@ -275,16 +291,19 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertTrue(prs.size() > 0);
}
+ @Ignore("Needs mocking check")
@Test
public void testRepoPermissions() throws Exception {
kohsuke();
- GHRepository r = gitHub.getOrganization("jenkinsci").getRepository("jenkins");
+
+ GHRepository r = gitHub.getOrganization(GITHUB_API_TEST_ORG).getRepository("github-api");
assertTrue(r.hasPullAccess());
r = gitHub.getOrganization("github").getRepository("hub");
assertFalse(r.hasAdminAccess());
}
-
+
+ @Ignore("Needs mocking check")
@Test
public void testGetMyself() throws Exception {
GHMyself me = gitHub.getMyself();
@@ -294,74 +313,83 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertTrue(ghRepositories.iterator().hasNext());
}
+ @Ignore("Needs mocking check")
@Test
public void testPublicKeys() throws Exception {
List keys = gitHub.getMyself().getPublicKeys();
assertFalse(keys.isEmpty());
}
+ @Ignore("Needs mocking check")
@Test
public void testOrgFork() throws Exception {
kohsuke();
- gitHub.getRepository("kohsuke/rubywm").forkTo(gitHub.getOrganization("github-api-test-org"));
+
+ gitHub.getRepository("kohsuke/rubywm").forkTo(gitHub.getOrganization(GITHUB_API_TEST_ORG));
}
+ @Ignore("Needs mocking check")
@Test
public void testGetTeamsForRepo() throws Exception {
kohsuke();
// 'Core Developers' and 'Owners'
- assertEquals(2, gitHub.getOrganization("github-api-test-org").getRepository("testGetTeamsForRepo").getTeams().size());
+ assertEquals(2, gitHub.getOrganization(GITHUB_API_TEST_ORG).getRepository("testGetTeamsForRepo").getTeams().size());
}
+ @Ignore("Needs mocking check")
@Test
public void testMembership() throws Exception {
- Set members = gitHub.getOrganization("github-api-test-org").getRepository("jenkins").getCollaboratorNames();
+ Set members = gitHub.getOrganization(GITHUB_API_TEST_ORG).getRepository("jenkins").getCollaboratorNames();
System.out.println(members.contains("kohsuke"));
}
+ @Ignore("Needs mocking check")
@Test
public void testMemberOrgs() throws Exception {
- Set o = gitHub.getUser("kohsuke").getOrganizations();
- System.out.println(o);
+ HashSet o = gitHub.getUser("kohsuke").getOrganizations();
+ assertThat(o, hasItem(hasProperty("name", equalTo("CloudBees"))));
}
+ @Ignore("Needs mocking check")
@Test
public void testOrgTeams() throws Exception {
kohsuke();
- int sz=0;
- for (GHTeam t : gitHub.getOrganization("github-api-test-org").listTeams()) {
+ int sz = 0;
+ for (GHTeam t : gitHub.getOrganization(GITHUB_API_TEST_ORG).listTeams()) {
assertNotNull(t.getName());
sz++;
}
assertTrue(sz < 100);
}
+ @Ignore("Needs mocking check")
@Test
public void testOrgTeamByName() throws Exception {
kohsuke();
- GHTeam e = gitHub.getOrganization("github-api-test-org").getTeamByName("Core Developers");
+ GHTeam e = gitHub.getOrganization(GITHUB_API_TEST_ORG).getTeamByName("Core Developers");
assertNotNull(e);
}
+ @Ignore("Needs mocking check")
@Test
public void testOrgTeamBySlug() throws Exception {
kohsuke();
- GHTeam e = gitHub.getOrganization("github-api-test-org").getTeamBySlug("core-developers");
+ GHTeam e = gitHub.getOrganization(GITHUB_API_TEST_ORG).getTeamBySlug("core-developers");
assertNotNull(e);
}
+ @Ignore("Needs mocking check")
@Test
public void testCommit() throws Exception {
GHCommit commit = gitHub.getUser("jenkinsci").getRepository("jenkins").getCommit("08c1c9970af4d609ae754fbe803e06186e3206f7");
- System.out.println(commit);
assertEquals(1, commit.getParents().size());
- assertEquals(1,commit.getFiles().size());
+ assertEquals(1, commit.getFiles().size());
assertEquals("https://github.com/jenkinsci/jenkins/commit/08c1c9970af4d609ae754fbe803e06186e3206f7",
- commit.getHtmlUrl().toString());
+ commit.getHtmlUrl().toString());
File f = commit.getFiles().get(0);
- assertEquals(48,f.getLinesChanged());
- assertEquals("modified",f.getStatus());
+ assertEquals(48, f.getLinesChanged());
+ assertEquals("modified", f.getStatus());
assertEquals("changelog.html", f.getFileName());
// walk the tree
@@ -370,6 +398,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertNotNull(t.getEntry("war").asTree());
}
+ @Ignore("Needs mocking check")
@Test
public void testListCommits() throws Exception {
List sha1 = new ArrayList();
@@ -384,21 +413,23 @@ public class AppTest extends AbstractGitHubApiTestBase {
public void testQueryCommits() throws Exception {
List sha1 = new ArrayList();
for (GHCommit c : gitHub.getUser("jenkinsci").getRepository("jenkins").queryCommits()
- .since(new Date(1199174400000L)).until(1201852800000L).path("pom.xml").list()) {
+ .since(new Date(1199174400000L)).until(1201852800000L).path("pom.xml").list()) {
System.out.println(c.getSHA1());
sha1.add(c.getSHA1());
}
- assertEquals("1cccddb22e305397151b2b7b87b4b47d74ca337b",sha1.get(0));
+ assertEquals("1cccddb22e305397151b2b7b87b4b47d74ca337b", sha1.get(0));
assertEquals(29, sha1.size());
}
+ @Ignore("Needs mocking check")
@Test
public void testBranches() throws Exception {
- Map b =
- gitHub.getUser("jenkinsci").getRepository("jenkins").getBranches();
+ Map b =
+ gitHub.getUser("jenkinsci").getRepository("jenkins").getBranches();
System.out.println(b);
}
+ @Ignore("Needs mocking check")
@Test
public void testCommitComment() throws Exception {
GHRepository r = gitHub.getUser("jenkinsci").getRepository("jenkins");
@@ -410,6 +441,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
}
}
+ @Ignore("Needs mocking check")
@Test
public void testCreateCommitComment() throws Exception {
GHCommit commit = gitHub.getUser("kohsuke").getRepository("sandbox-ant").getCommit("8ae38db0ea5837313ab5f39d43a6f73de3bd9000");
@@ -420,22 +452,28 @@ public class AppTest extends AbstractGitHubApiTestBase {
c.delete();
}
+ @Ignore("Needs mocking check")
@Test
public void tryHook() throws Exception {
kohsuke();
- GHRepository r = gitHub.getMyself().getRepository("test2");
+ GHRepository r = gitHub.getOrganization(GITHUB_API_TEST_ORG).getRepository("github-api");
GHHook hook = r.createWebHook(new URL("http://www.google.com/"));
System.out.println(hook);
- for (GHHook h : r.getHooks())
- h.delete();
+ if (githubApi.isUseProxy()) {
+ r = gitHubBeforeAfter.getOrganization(GITHUB_API_TEST_ORG).getRepository("github-api");
+ for (GHHook h : r.getHooks()) {
+ h.delete();
+ }
+ }
}
-
+
+ @Ignore("Needs mocking check")
@Test
public void testEventApi() throws Exception {
for (GHEventInfo ev : gitHub.getEvents()) {
System.out.println(ev);
- if (ev.getType()==GHEvent.PULL_REQUEST) {
+ if (ev.getType() == GHEvent.PULL_REQUEST) {
GHEventPayload.PullRequest pr = ev.getPayload(GHEventPayload.PullRequest.class);
System.out.println(pr.getNumber());
System.out.println(pr.getPullRequest());
@@ -443,6 +481,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
}
}
+ @Ignore("Needs mocking check")
@Test
public void testApp() throws IOException {
System.out.println(gitHub.getMyself().getEmails());
@@ -479,19 +518,19 @@ public class AppTest extends AbstractGitHubApiTestBase {
// r.
// GitHub hub = GitHub.connectAnonymously();
//// hub.createRepository("test","test repository",null,true);
-//// hub.getUser("kohsuke").getRepository("test").delete();
+//// hub.getUserTest("kohsuke").getRepository("test").delete();
//
-// System.out.println(hub.getUser("kohsuke").getRepository("hudson").getCollaborators());
+// System.out.println(hub.getUserTest("kohsuke").getRepository("hudson").getCollaborators());
}
private void tryDisablingIssueTrackers(GitHub gitHub) throws IOException {
for (GHRepository r : gitHub.getOrganization("jenkinsci").getRepositories().values()) {
if (r.hasIssues()) {
- if (r.getOpenIssueCount()==0) {
- System.out.println("DISABLED "+r.getName());
+ if (r.getOpenIssueCount() == 0) {
+ System.out.println("DISABLED " + r.getName());
r.enableIssueTracker(false);
} else {
- System.out.println("UNTOUCHED "+r.getName());
+ System.out.println("UNTOUCHED " + r.getName());
}
}
}
@@ -500,7 +539,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
private void tryDisablingWiki(GitHub gitHub) throws IOException {
for (GHRepository r : gitHub.getOrganization("jenkinsci").getRepositories().values()) {
if (r.hasWiki()) {
- System.out.println("DISABLED "+r.getName());
+ System.out.println("DISABLED " + r.getName());
r.enableWiki(false);
}
}
@@ -532,6 +571,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
System.out.println(hooks);
}
+ @Ignore("Needs mocking check")
@Test
public void testOrgRepositories() throws IOException {
kohsuke();
@@ -541,11 +581,12 @@ public class AppTest extends AbstractGitHubApiTestBase {
long end = System.currentTimeMillis();
System.out.printf("%d repositories in %dms\n", repos.size(), end - start);
}
-
+
+ @Ignore("Needs mocking check")
@Test
public void testOrganization() throws IOException {
kohsuke();
- GHOrganization j = gitHub.getOrganization("github-api-test-org");
+ GHOrganization j = gitHub.getOrganization(GITHUB_API_TEST_ORG);
GHTeam t = j.getTeams().get("Core Developers");
assertNotNull(j.getRepository("jenkins"));
@@ -553,9 +594,10 @@ public class AppTest extends AbstractGitHubApiTestBase {
// t.add(labs.getRepository("xyz"));
}
+ @Ignore("Needs mocking check")
@Test
public void testCommitStatus() throws Exception {
- GHRepository r = gitHub.getRepository("kohsuke/github-api");
+ GHRepository r = gitHub.getRepository("github-api/github-api");
GHCommitStatus state;
@@ -564,18 +606,20 @@ public class AppTest extends AbstractGitHubApiTestBase {
List lst = r.listCommitStatuses("ecbfdd7315ef2cf04b2be7f11a072ce0bd00c396").asList();
state = lst.get(0);
System.out.println(state);
- assertEquals("testing!",state.getDescription());
+ assertEquals("testing!", state.getDescription());
assertEquals("http://kohsuke.org/", state.getTargetUrl());
}
-
+
+ @Ignore("Needs mocking check")
@Test
public void testCommitShortInfo() throws Exception {
- GHRepository r = gitHub.getRepository("kohsuke/github-api");
+ GHRepository r = gitHub.getRepository("github-api/github-api");
GHCommit commit = r.getCommit("86a2e245aa6d71d54923655066049d9e21a15f23");
assertEquals(commit.getCommitShortInfo().getAuthor().getName(), "Kohsuke Kawaguchi");
assertEquals(commit.getCommitShortInfo().getMessage(), "doc");
}
+ @Ignore("Needs mocking check")
@Test
public void testPullRequestPopulate() throws Exception {
GHRepository r = gitHub.getUser("kohsuke").getRepository("github-api");
@@ -584,6 +628,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertNotNull(u.getName());
}
+ @Ignore("Needs mocking check")
@Test
public void testCheckMembership() throws Exception {
kohsuke();
@@ -598,6 +643,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertFalse(j.hasPublicMember(b));
}
+ @Ignore("Needs mocking check")
@Test
public void testCreateRelease() throws Exception {
kohsuke();
@@ -608,9 +654,9 @@ public class AppTest extends AbstractGitHubApiTestBase {
String releaseName = "release-" + tagName;
GHRelease rel = r.createRelease(tagName)
- .name(releaseName)
- .prerelease(false)
- .create();
+ .name(releaseName)
+ .prerelease(false)
+ .create();
Thread.sleep(3000);
@@ -619,8 +665,8 @@ public class AppTest extends AbstractGitHubApiTestBase {
for (GHTag tag : r.listTags()) {
if (tagName.equals(tag.getName())) {
String ash = tag.getCommit().getSHA1();
- GHRef ref = r.createRef("refs/heads/"+releaseName, ash);
- assertEquals(ref.getRef(),"refs/heads/"+releaseName);
+ GHRef ref = r.createRef("refs/heads/" + releaseName, ash);
+ assertEquals(ref.getRef(), "refs/heads/" + releaseName);
for (Map.Entry entry : r.getBranches().entrySet()) {
System.out.println(entry.getKey() + "/" + entry.getValue());
@@ -637,12 +683,14 @@ public class AppTest extends AbstractGitHubApiTestBase {
}
}
+ @Ignore("Needs mocking check")
@Test
public void testRef() throws IOException {
GHRef masterRef = gitHub.getRepository("jenkinsci/jenkins").getRef("heads/master");
assertEquals("https://api.github.com/repos/jenkinsci/jenkins/git/refs/heads/master", masterRef.getUrl().toString());
}
+ @Ignore("Needs mocking check")
@Test
public void directoryListing() throws IOException {
List children = gitHub.getRepository("jenkinsci/jenkins").getDirectoryContent("core");
@@ -650,12 +698,13 @@ public class AppTest extends AbstractGitHubApiTestBase {
System.out.println(c.getName());
if (c.isDirectory()) {
for (GHContent d : c.listDirectoryContent()) {
- System.out.println(" "+d.getName());
+ System.out.println(" " + d.getName());
}
}
}
}
-
+
+ @Ignore("Needs mocking check")
@Test
public void testAddDeployKey() throws IOException {
GHRepository myRepository = getTestRepository();
@@ -673,35 +722,39 @@ public class AppTest extends AbstractGitHubApiTestBase {
newDeployKey.delete();
}
}
-
+
+ @Ignore("Needs mocking check")
@Test
public void testCommitStatusContext() throws IOException {
GHRepository myRepository = getTestRepository();
GHRef masterRef = myRepository.getRef("heads/master");
GHCommitStatus commitStatus = myRepository.createCommitStatus(masterRef.getObject().getSha(), GHCommitState.SUCCESS, "http://www.example.com", "test", "test/context");
assertEquals("test/context", commitStatus.getContext());
-
+
}
+ @Ignore("Needs mocking check")
@Test
public void testMemberPagenation() throws IOException {
Set all = new HashSet();
- for (GHUser u : gitHub.getOrganization("github-api-test-org").getTeamByName("Core Developers").listMembers()) {
+ for (GHUser u : gitHub.getOrganization(GITHUB_API_TEST_ORG).getTeamByName("Core Developers").listMembers()) {
System.out.println(u.getLogin());
all.add(u);
}
assertFalse(all.isEmpty());
}
+ @Ignore("Needs mocking check")
@Test
public void testCommitSearch() throws IOException {
PagedSearchIterable r = gitHub.searchCommits().author("kohsuke").list();
assertTrue(r.getTotalCount() > 0);
-
+
GHCommit firstCommit = r.iterator().next();
assertTrue(firstCommit.getFiles().size() > 0);
}
+ @Ignore("Needs mocking check")
@Test
public void testIssueSearch() throws IOException {
PagedSearchIterable r = gitHub.searchIssues().mentions("kohsuke").isOpen().list();
@@ -710,33 +763,36 @@ public class AppTest extends AbstractGitHubApiTestBase {
}
}
+ @Ignore("Needs mocking check")
@Test // issue #99
public void testReadme() throws IOException {
GHContent readme = gitHub.getRepository("github-api-test-org/test-readme").getReadme();
- assertEquals(readme.getName(),"README.md");
- assertEquals(readme.getContent(),"This is a markdown readme.\n");
+ assertEquals(readme.getName(), "README.md");
+ assertEquals(readme.getContent(), "This is a markdown readme.\n");
}
-
-
+
+
+ @Ignore("Needs mocking check")
@Test
public void testTrees() throws IOException {
- GHTree masterTree = gitHub.getRepository("kohsuke/github-api").getTree("master");
+ GHTree masterTree = gitHub.getRepository("github-api/github-api").getTree("master");
boolean foundReadme = false;
- for(GHTreeEntry e : masterTree.getTree()){
- if("readme".equalsIgnoreCase(e.getPath().replaceAll("\\.md", ""))){
+ for (GHTreeEntry e : masterTree.getTree()) {
+ if ("readme".equalsIgnoreCase(e.getPath().replaceAll("\\.md", ""))) {
foundReadme = true;
break;
}
}
assertTrue(foundReadme);
}
-
+
+ @Ignore("Needs mocking check")
@Test
public void testTreesRecursive() throws IOException {
- GHTree masterTree = gitHub.getRepository("kohsuke/github-api").getTreeRecursive("master", 1);
+ GHTree masterTree = gitHub.getRepository("github-api/github-api").getTreeRecursive("master", 1);
boolean foundThisFile = false;
- for(GHTreeEntry e : masterTree.getTree()){
- if(e.getPath().endsWith(AppTest.class.getSimpleName() + ".java")){
+ for (GHTreeEntry e : masterTree.getTree()) {
+ if (e.getPath().endsWith(AppTest.class.getSimpleName() + ".java")) {
foundThisFile = true;
break;
}
@@ -744,6 +800,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertTrue(foundThisFile);
}
+ @Ignore("Needs mocking check")
@Test
public void testRepoLabel() throws IOException {
GHRepository r = gitHub.getRepository("github-api-test-org/test-labels");
@@ -753,9 +810,9 @@ public class AppTest extends AbstractGitHubApiTestBase {
}
assertTrue(lst.size() > 5);
GHLabel e = r.getLabel("enhancement");
- assertEquals("enhancement",e.getName());
+ assertEquals("enhancement", e.getName());
assertNotNull(e.getUrl());
- assertTrue(Pattern.matches("[0-9a-fA-F]{6}",e.getColor()));
+ assertTrue(Pattern.matches("[0-9a-fA-F]{6}", e.getColor()));
{// CRUD
GHLabel t = r.createLabel("test", "123456");
@@ -785,10 +842,11 @@ public class AppTest extends AbstractGitHubApiTestBase {
}
}
+ @Ignore("Needs mocking check")
@Test
public void testSubscribers() throws IOException {
boolean kohsuke = false;
- GHRepository mr = gitHub.getRepository("kohsuke/github-api");
+ GHRepository mr = gitHub.getRepository("github-api/github-api");
for (GHUser u : mr.listSubscribers()) {
System.out.println(u.getLogin());
kohsuke |= u.getLogin().equals("kohsuke");
@@ -804,21 +862,23 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertTrue(githubApi);
}
+ @Ignore("Needs mocking check")
@Test
public void testListAllRepositories() throws Exception {
Iterator itr = gitHub.listAllPublicRepositories().iterator();
- for (int i=0; i<30; i++) {
+ for (int i = 0; i < 30; i++) {
assertTrue(itr.hasNext());
GHRepository r = itr.next();
System.out.println(r.getFullName());
assertNotNull(r.getUrl());
- assertNotEquals(0L,r.getId());
+ assertNotEquals(0L, r.getId());
}
}
+ @Ignore("Needs mocking check")
@Test // issue #162
public void testIssue162() throws Exception {
- GHRepository r = gitHub.getRepository("kohsuke/github-api");
+ GHRepository r = gitHub.getRepository("github-api/github-api");
List contents = r.getDirectoryContent("", "gh-pages");
for (GHContent content : contents) {
if (content.isFile()) {
@@ -830,11 +890,12 @@ public class AppTest extends AbstractGitHubApiTestBase {
}
}
+ @Ignore("Needs mocking check")
@Test
public void markDown() throws Exception {
assertEquals("Test日本語
", IOUtils.toString(gitHub.renderMarkdown("**Test日本語**")).trim());
- String actual = IOUtils.toString(gitHub.getRepository("kohsuke/github-api").renderMarkdown("@kohsuke to fix issue #1", MarkdownMode.GFM));
+ String actual = IOUtils.toString(gitHub.getRepository("github-api/github-api").renderMarkdown("@kohsuke to fix issue #1", MarkdownMode.GFM));
System.out.println(actual);
assertTrue(actual.contains("href=\"https://github.com/kohsuke\""));
assertTrue(actual.contains("href=\"https://github.com/kohsuke/github-api/pull/1\""));
@@ -843,6 +904,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertTrue(actual.contains("to fix issue"));
}
+ @Ignore("Needs mocking check")
@Test
public void searchUsers() throws Exception {
PagedSearchIterable r = gitHub.searchUsers().q("tom").repos(">42").followers(">1000").list();
@@ -852,6 +914,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertTrue(r.getTotalCount() > 0);
}
+ @Ignore("Needs mocking check")
@Test
public void searchRepositories() throws Exception {
PagedSearchIterable r = gitHub.searchRepositories().q("tetris").language("assembly").sort(GHRepositorySearchBuilder.Sort.STARS).list();
@@ -862,6 +925,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
assertTrue(r.getTotalCount() > 0);
}
+ @Ignore("Needs mocking check")
@Test
public void searchContent() throws Exception {
PagedSearchIterable r = gitHub.searchContent().q("addClass").in("file").language("js").repo("jquery/jquery").list();
@@ -869,13 +933,14 @@ public class AppTest extends AbstractGitHubApiTestBase {
System.out.println(c.getName());
assertNotNull(c.getDownloadUrl());
assertNotNull(c.getOwner());
- assertEquals("jquery/jquery",c.getOwner().getFullName());
+ assertEquals("jquery/jquery", c.getOwner().getFullName());
assertTrue(r.getTotalCount() > 0);
}
+ @Ignore("Needs mocking check")
@Test
public void notifications() throws Exception {
- boolean found=false;
+ boolean found = false;
for (GHThread t : gitHub.listNotifications().nonBlocking(true).read(true)) {
if (!found) {
found = true;
@@ -896,6 +961,7 @@ public class AppTest extends AbstractGitHubApiTestBase {
/**
* Just basic code coverage to make sure toString() doesn't blow up
*/
+ @Ignore("Needs mocking check")
@Test
public void checkToString() throws Exception {
GHUser u = gitHub.getUser("rails");
@@ -905,53 +971,56 @@ public class AppTest extends AbstractGitHubApiTestBase {
System.out.println(r.getIssue(1));
}
+ @Ignore("Needs mocking check")
@Test
public void reactions() throws Exception {
- GHIssue i = gitHub.getRepository("kohsuke/github-api").getIssue(311);
+ GHIssue i = gitHub.getRepository("github-api/github-api").getIssue(311);
// retrieval
GHReaction r = i.listReactions().iterator().next();
assertThat(r.getUser().getLogin(), is("kohsuke"));
- assertThat(r.getContent(),is(ReactionContent.HEART));
+ assertThat(r.getContent(), is(ReactionContent.HEART));
// CRUD
GHReaction a = i.createReaction(ReactionContent.HOORAY);
- assertThat(a.getUser().getLogin(),is(gitHub.getMyself().getLogin()));
+ assertThat(a.getUser().getLogin(), is(gitHub.getMyself().getLogin()));
a.delete();
}
+ @Ignore("Needs mocking check")
@Test
public void listOrgMemberships() throws Exception {
GHMyself me = gitHub.getMyself();
for (GHMembership m : me.listOrgMemberships()) {
- assertThat(m.getUser(), is((GHUser)me));
+ assertThat(m.getUser(), is((GHUser) me));
assertNotNull(m.getState());
assertNotNull(m.getRole());
System.out.printf("%s %s %s\n",
- m.getOrganization().getLogin(),
- m.getState(),
- m.getRole());
+ m.getOrganization().getLogin(),
+ m.getState(),
+ m.getRole());
}
}
+ @Ignore("Needs mocking check")
@Test
public void blob() throws Exception {
- GHRepository r = gitHub.getRepository("kohsuke/github-api");
+ GHRepository r = gitHub.getRepository("github-api/github-api");
String sha1 = "a12243f2fc5b8c2ba47dd677d0b0c7583539584d";
assertBlobContent(r.readBlob(sha1));
GHBlob blob = r.getBlob(sha1);
assertBlobContent(blob.read());
- assertThat(blob.getSha(),is("a12243f2fc5b8c2ba47dd677d0b0c7583539584d"));
- assertThat(blob.getSize(),is(1104L));
+ assertThat(blob.getSha(), is("a12243f2fc5b8c2ba47dd677d0b0c7583539584d"));
+ assertThat(blob.getSize(), is(1104L));
}
private void assertBlobContent(InputStream is) throws Exception {
- String content = new String(IOUtils.toByteArray(is),"UTF-8");
- assertThat(content,containsString("Copyright (c) 2011- Kohsuke Kawaguchi and other contributors"));
- assertThat(content,containsString("FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR"));
- assertThat(content.length(),is(1104));
+ String content = new String(IOUtils.toByteArray(is), "UTF-8");
+ assertThat(content, containsString("Copyright (c) 2011- Kohsuke Kawaguchi and other contributors"));
+ assertThat(content, containsString("FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR"));
+ assertThat(content.length(), is(1104));
}
}
diff --git a/src/test/java/org/kohsuke/github/CommitTest.java b/src/test/java/org/kohsuke/github/CommitTest.java
index 4c28bd83f..9a199700a 100644
--- a/src/test/java/org/kohsuke/github/CommitTest.java
+++ b/src/test/java/org/kohsuke/github/CommitTest.java
@@ -20,7 +20,7 @@ public class CommitTest extends AbstractGitHubApiWireMockTest {
GHRepository repo = gitHub.getRepository("stapler/stapler");
PagedIterable commits = repo.queryCommits().path("pom.xml").list();
for (GHCommit commit : Iterables.limit(commits, 10)) {
- GHCommit expected = repo.getCommit( commit.getSHA1() );
+ GHCommit expected = repo.getCommit(commit.getSHA1());
assertEquals(expected.getFiles().size(), commit.getFiles().size());
}
}
diff --git a/src/test/java/org/kohsuke/github/GHAppTest.java b/src/test/java/org/kohsuke/github/GHAppTest.java
new file mode 100644
index 000000000..342312ff2
--- /dev/null
+++ b/src/test/java/org/kohsuke/github/GHAppTest.java
@@ -0,0 +1,148 @@
+package org.kohsuke.github;
+
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import static org.hamcrest.Matchers.*;
+
+/**
+ * Tests for the GitHub App API methods
+ *
+ * @author Paulo Miguel Almeida
+ */
+public class GHAppTest extends AbstractGitHubApiWireMockTest {
+
+ protected GitHubBuilder getGitHubBuilder() {
+ return super.getGitHubBuilder()
+ // ensure that only JWT will be used against the tests below
+ .withPassword(null, null)
+ .withJwtToken("bogus");
+ }
+
+ @Test
+ public void getGitHubApp() throws IOException {
+ GHApp app = gitHub.getApp();
+ assertThat(app.id, is((long) 11111));
+ assertThat(app.getOwner().id, is((long) 111111111));
+ assertThat(app.getOwner().login, is("bogus"));
+ assertThat(app.getName(), is("Bogus-Development"));
+ assertThat(app.getDescription(), is(""));
+ assertThat(app.getExternalUrl(), is("https://bogus.domain.com"));
+ assertThat(app.getHtmlUrl().toString(), is("https://github.com/apps/bogus-development"));
+ assertThat(app.getCreatedAt(), is(GitHub.parseDate("2019-06-10T04:21:41Z")));
+ assertThat(app.getUpdatedAt(), is(GitHub.parseDate("2019-06-10T04:21:41Z")));
+ assertThat(app.getPermissions().size(), is(4));
+ assertThat(app.getEvents().size(), is(2));
+ assertThat(app.getInstallationsCount(), is((long) 1));
+ }
+
+
+ @Test
+ public void listInstallations() throws IOException {
+ GHApp app = gitHub.getApp();
+ List installations = app.listInstallations().asList();
+ assertThat(installations.size(), is(1));
+
+ GHAppInstallation appInstallation = installations.get(0);
+ testAppInstallation(appInstallation);
+ }
+
+ @Test
+ public void getInstallationById() throws IOException {
+ GHApp app = gitHub.getApp();
+ GHAppInstallation installation = app.getInstallationById(1111111);
+ testAppInstallation(installation);
+ }
+
+ @Test
+ public void getInstallationByOrganization() throws IOException {
+ GHApp app = gitHub.getApp();
+ GHAppInstallation installation = app.getInstallationByOrganization("bogus");
+ testAppInstallation(installation);
+ }
+
+ @Test
+ public void getInstallationByRepository() throws IOException {
+ GHApp app = gitHub.getApp();
+ GHAppInstallation installation = app.getInstallationByRepository("bogus", "bogus");
+ testAppInstallation(installation);
+ }
+
+ @Test
+ public void getInstallationByUser() throws IOException {
+ GHApp app = gitHub.getApp();
+ GHAppInstallation installation = app.getInstallationByUser("bogus");
+ testAppInstallation(installation);
+ }
+
+ @Test
+ public void deleteInstallation() throws IOException {
+ GHApp app = gitHub.getApp();
+ GHAppInstallation installation = app.getInstallationByUser("bogus");
+ try {
+ installation.deleteInstallation();
+ } catch (IOException e) {
+ fail("deleteInstallation wasn't suppose to fail in this test");
+ }
+ }
+
+ @Test
+ public void createToken() throws IOException {
+ GHApp app = gitHub.getApp();
+ GHAppInstallation installation = app.getInstallationByUser("bogus");
+
+ Map permissions = new HashMap();
+ permissions.put("checks", GHPermissionType.WRITE);
+ permissions.put("pull_requests", GHPermissionType.WRITE);
+ permissions.put("contents", GHPermissionType.READ);
+ permissions.put("metadata", GHPermissionType.READ);
+
+ GHAppInstallationToken installationToken = installation.createToken(permissions)
+ .repositoryIds(Arrays.asList(111111111))
+ .create();
+
+ assertThat(installationToken.getToken(), is("bogus"));
+ assertThat(installation.getPermissions(), is(permissions));
+ assertThat(installationToken.getRepositorySelection(),is(GHRepositorySelection.SELECTED));
+ assertThat(installationToken.getExpiresAt(), is(GitHub.parseDate("2019-08-10T05:54:58Z")));
+
+ GHRepository repository = installationToken.getRepositories().get(0);
+ assertThat(installationToken.getRepositories().size(), is(1));
+ assertThat(repository.getId(), is((long) 111111111));
+ assertThat(repository.getName(), is("bogus"));
+ }
+
+ private void testAppInstallation(GHAppInstallation appInstallation) throws IOException {
+ Map appPermissions = appInstallation.getPermissions();
+ GHUser appAccount = appInstallation.getAccount();
+
+ assertThat(appInstallation.id, is((long) 11111111));
+ assertThat(appAccount.id, is((long) 111111111));
+ assertThat(appAccount.login, is("bogus"));
+ assertThat(appInstallation.getRepositorySelection(), is(GHRepositorySelection.SELECTED));
+ assertThat(appInstallation.getAccessTokenUrl(), endsWith("/app/installations/11111111/access_tokens"));
+ assertThat(appInstallation.getRepositoriesUrl(), endsWith("/installation/repositories"));
+ assertThat(appInstallation.getAppId(), is((long) 11111));
+ assertThat(appInstallation.getTargetId(), is((long) 111111111));
+ assertThat(appInstallation.getTargetType(), is(GHTargetType.ORGANIZATION));
+
+ Map permissionsMap = new HashMap();
+ permissionsMap.put("checks", GHPermissionType.WRITE);
+ permissionsMap.put("pull_requests", GHPermissionType.WRITE);
+ permissionsMap.put("contents", GHPermissionType.READ);
+ permissionsMap.put("metadata", GHPermissionType.READ);
+ assertThat(appPermissions, is(permissionsMap));
+
+ List events = Arrays.asList(GHEvent.PULL_REQUEST, GHEvent.PUSH);
+ assertThat(appInstallation.getEvents(), containsInAnyOrder(events.toArray(new GHEvent[0])));
+ assertThat(appInstallation.getCreatedAt(), is(GitHub.parseDate("2019-07-04T01:19:36.000Z")));
+ assertThat(appInstallation.getUpdatedAt(), is(GitHub.parseDate("2019-07-30T22:48:09.000Z")));
+ assertNull(appInstallation.getSingleFileName());
+ }
+
+}
diff --git a/src/test/java/org/kohsuke/github/GHBranchProtectionTest.java b/src/test/java/org/kohsuke/github/GHBranchProtectionTest.java
index 19e42c51b..63f142a3f 100644
--- a/src/test/java/org/kohsuke/github/GHBranchProtectionTest.java
+++ b/src/test/java/org/kohsuke/github/GHBranchProtectionTest.java
@@ -49,25 +49,25 @@ public class GHBranchProtectionTest extends AbstractGitHubApiTestBase {
public void testEnableBranchProtections() throws Exception {
// team/user restrictions require an organization repo to test against
GHBranchProtection protection = branch.enableProtection()
- .addRequiredChecks("test-status-check")
- .requireBranchIsUpToDate()
- .requireCodeOwnReviews()
- .dismissStaleReviews()
- .requiredReviewers(2)
- .includeAdmins()
- .enable();
+ .addRequiredChecks("test-status-check")
+ .requireBranchIsUpToDate()
+ .requireCodeOwnReviews()
+ .dismissStaleReviews()
+ .requiredReviewers(2)
+ .includeAdmins()
+ .enable();
RequiredStatusChecks statusChecks = protection.getRequiredStatusChecks();
assertNotNull(statusChecks);
assertTrue(statusChecks.isRequiresBranchUpToDate());
assertTrue(statusChecks.getContexts().contains("test-status-check"));
-
+
RequiredReviews requiredReviews = protection.getRequiredReviews();
assertNotNull(requiredReviews);
assertTrue(requiredReviews.isDismissStaleReviews());
assertTrue(requiredReviews.isRequireCodeOwnerReviews());
assertEquals(2, requiredReviews.getRequiredReviewers());
-
+
EnforceAdmins enforceAdmins = protection.getEnforceAdmins();
assertNotNull(enforceAdmins);
assertTrue(enforceAdmins.isEnabled());
@@ -82,10 +82,10 @@ public class GHBranchProtectionTest extends AbstractGitHubApiTestBase {
@Test
public void testEnableRequireReviewsOnly() throws Exception {
GHBranchProtection protection = branch.enableProtection()
- .requireReviews()
- .enable();
-
- assertNotNull(protection.getRequiredReviews());
+ .requireReviews()
+ .enable();
+
+ assertNotNull(protection.getRequiredReviews());
}
@Test
diff --git a/src/test/java/org/kohsuke/github/GHContentIntegrationTest.java b/src/test/java/org/kohsuke/github/GHContentIntegrationTest.java
index 4b8bf72d6..93491fd62 100644
--- a/src/test/java/org/kohsuke/github/GHContentIntegrationTest.java
+++ b/src/test/java/org/kohsuke/github/GHContentIntegrationTest.java
@@ -54,7 +54,7 @@ public class GHContentIntegrationTest extends AbstractGitHubApiTestBase {
@Test
public void testCRUDContent() throws Exception {
GHContentUpdateResponse created =
- repo.createContent("this is an awesome file I created\n", "Creating a file for integration tests.", createdFilename);
+ repo.createContent("this is an awesome file I created\n", "Creating a file for integration tests.", createdFilename);
GHContent createdContent = created.getContent();
assertNotNull(created.getCommit());
diff --git a/src/test/java/org/kohsuke/github/GHEventPayloadTest.java b/src/test/java/org/kohsuke/github/GHEventPayloadTest.java
index b0c2a0540..5287f4dab 100644
--- a/src/test/java/org/kohsuke/github/GHEventPayloadTest.java
+++ b/src/test/java/org/kohsuke/github/GHEventPayloadTest.java
@@ -15,7 +15,7 @@ public class GHEventPayloadTest {
@Test
public void commit_comment() throws Exception {
GHEventPayload.CommitComment event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.CommitComment.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.CommitComment.class);
assertThat(event.getAction(), is("created"));
assertThat(event.getComment().getSHA1(), is("9049f1265b7d61be4a8904a9a27120d2064dab3b"));
assertThat(event.getComment().getUser().getLogin(), is("baxterthehacker"));
@@ -27,7 +27,7 @@ public class GHEventPayloadTest {
@Test
public void create() throws Exception {
GHEventPayload.Create event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Create.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Create.class);
assertThat(event.getRef(), is("0.0.1"));
assertThat(event.getRefType(), is("tag"));
assertThat(event.getMasterBranch(), is("master"));
@@ -40,7 +40,7 @@ public class GHEventPayloadTest {
@Test
public void delete() throws Exception {
GHEventPayload.Delete event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Delete.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Delete.class);
assertThat(event.getRef(), is("simple-tag"));
assertThat(event.getRefType(), is("tag"));
assertThat(event.getRepository().getName(), is("public-repo"));
@@ -51,7 +51,7 @@ public class GHEventPayloadTest {
@Test
public void deployment() throws Exception {
GHEventPayload.Deployment event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Deployment.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Deployment.class);
assertThat(event.getDeployment().getSha(), is("9049f1265b7d61be4a8904a9a27120d2064dab3b"));
assertThat(event.getDeployment().getEnvironment(), is("production"));
assertThat(event.getDeployment().getCreator().getLogin(), is("baxterthehacker"));
@@ -63,7 +63,7 @@ public class GHEventPayloadTest {
@Test
public void deployment_status() throws Exception {
GHEventPayload.DeploymentStatus event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.DeploymentStatus.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.DeploymentStatus.class);
assertThat(event.getDeploymentStatus().getState(), is(GHDeploymentState.SUCCESS));
assertThat(event.getDeploymentStatus().getTargetUrl(), nullValue());
assertThat(event.getDeployment().getSha(), is("9049f1265b7d61be4a8904a9a27120d2064dab3b"));
@@ -77,7 +77,7 @@ public class GHEventPayloadTest {
@Test
public void fork() throws Exception {
GHEventPayload.Fork event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Fork.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Fork.class);
assertThat(event.getForkee().getName(), is("public-repo"));
assertThat(event.getForkee().getOwner().getLogin(), is("baxterandthehackers"));
assertThat(event.getRepository().getName(), is("public-repo"));
@@ -106,7 +106,7 @@ public class GHEventPayloadTest {
@Test
public void issue_comment() throws Exception {
GHEventPayload.IssueComment event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.IssueComment.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.IssueComment.class);
assertThat(event.getAction(), is("created"));
assertThat(event.getIssue().getNumber(), is(2));
assertThat(event.getIssue().getTitle(), is("Spelling error in the README file"));
@@ -122,8 +122,8 @@ public class GHEventPayloadTest {
@Test
public void issues() throws Exception {
- GHEventPayload.Issue event = GitHub.offline().parseEventPayload(payload.asReader(),GHEventPayload.Issue.class);
- assertThat(event.getAction(),is("opened"));
+ GHEventPayload.Issue event = GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Issue.class);
+ assertThat(event.getAction(), is("opened"));
assertThat(event.getIssue().getNumber(), is(2));
assertThat(event.getIssue().getTitle(), is("Spelling error in the README file"));
assertThat(event.getIssue().getState(), is(GHIssueState.OPEN));
@@ -158,7 +158,7 @@ public class GHEventPayloadTest {
@Payload("public")
public void public_() throws Exception {
GHEventPayload.Public event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Public.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Public.class);
assertThat(event.getRepository().getName(), is("public-repo"));
assertThat(event.getRepository().getOwner().getLogin(), is("baxterthehacker"));
assertThat(event.getSender().getLogin(), is("baxterthehacker"));
@@ -167,13 +167,13 @@ public class GHEventPayloadTest {
@Test
public void pull_request() throws Exception {
GHEventPayload.PullRequest event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.PullRequest.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.PullRequest.class);
assertThat(event.getAction(), is("opened"));
assertThat(event.getNumber(), is(1));
assertThat(event.getPullRequest().getNumber(), is(1));
assertThat(event.getPullRequest().getTitle(), is("Update the README with new information"));
assertThat(event.getPullRequest().getBody(), is("This is a pretty simple change that we need to pull into "
- + "master."));
+ + "master."));
assertThat(event.getPullRequest().getUser().getLogin(), is("baxterthehacker"));
assertThat(event.getPullRequest().getHead().getUser().getLogin(), is("baxterthehacker"));
assertThat(event.getPullRequest().getHead().getRef(), is("changes"));
@@ -200,13 +200,13 @@ public class GHEventPayloadTest {
@Test
public void pull_request_review() throws Exception {
GHEventPayload.PullRequestReview event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.PullRequestReview.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.PullRequestReview.class);
assertThat(event.getAction(), is("submitted"));
-
+
assertThat(event.getReview().getId(), is(2626884L));
assertThat(event.getReview().getBody(), is("Looks great!\n"));
assertThat(event.getReview().getState(), is(GHPullRequestReviewState.APPROVED));
-
+
assertThat(event.getPullRequest().getNumber(), is(8));
assertThat(event.getPullRequest().getTitle(), is("Add a README description"));
assertThat(event.getPullRequest().getBody(), is("Just a few more details"));
@@ -219,21 +219,21 @@ public class GHEventPayloadTest {
assertThat(event.getPullRequest().getBase().getRef(), is("master"));
assertThat(event.getPullRequest().getBase().getLabel(), is("baxterthehacker:master"));
assertThat(event.getPullRequest().getBase().getSha(), is("9049f1265b7d61be4a8904a9a27120d2064dab3b"));
-
+
assertThat(event.getRepository().getName(), is("public-repo"));
assertThat(event.getRepository().getOwner().getLogin(), is("baxterthehacker"));
-
+
assertThat(event.getSender().getLogin(), is("baxterthehacker"));
}
@Test
public void pull_request_review_comment() throws Exception {
GHEventPayload.PullRequestReviewComment event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.PullRequestReviewComment.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.PullRequestReviewComment.class);
assertThat(event.getAction(), is("created"));
-
+
assertThat(event.getComment().getBody(), is("Maybe you should use more emojji on this line."));
-
+
assertThat(event.getPullRequest().getNumber(), is(1));
assertThat(event.getPullRequest().getTitle(), is("Update the README with new information"));
assertThat(event.getPullRequest().getBody(), is("This is a pretty simple change that we need to pull into master."));
@@ -246,17 +246,17 @@ public class GHEventPayloadTest {
assertThat(event.getPullRequest().getBase().getRef(), is("master"));
assertThat(event.getPullRequest().getBase().getLabel(), is("baxterthehacker:master"));
assertThat(event.getPullRequest().getBase().getSha(), is("9049f1265b7d61be4a8904a9a27120d2064dab3b"));
-
+
assertThat(event.getRepository().getName(), is("public-repo"));
assertThat(event.getRepository().getOwner().getLogin(), is("baxterthehacker"));
-
+
assertThat(event.getSender().getLogin(), is("baxterthehacker"));
}
@Test
public void push() throws Exception {
GHEventPayload.Push event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Push.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Push.class);
assertThat(event.getRef(), is("refs/heads/changes"));
assertThat(event.getBefore(), is("9049f1265b7d61be4a8904a9a27120d2064dab3b"));
assertThat(event.getHead(), is("0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c"));
@@ -286,7 +286,7 @@ public class GHEventPayloadTest {
@Test
public void repository() throws Exception {
GHEventPayload.Repository event =
- GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Repository.class);
+ GitHub.offline().parseEventPayload(payload.asReader(), GHEventPayload.Repository.class);
assertThat(event.getAction(), is("created"));
assertThat(event.getRepository().getName(), is("new-repository"));
assertThat(event.getRepository().getOwner().getLogin(), is("baxterandthehackers"));
diff --git a/src/test/java/org/kohsuke/github/GHOrganizationTest.java b/src/test/java/org/kohsuke/github/GHOrganizationTest.java
index ca32bf72c..762131c1d 100644
--- a/src/test/java/org/kohsuke/github/GHOrganizationTest.java
+++ b/src/test/java/org/kohsuke/github/GHOrganizationTest.java
@@ -6,21 +6,15 @@ import org.junit.Test;
import java.io.IOException;
-public class GHOrganizationTest extends AbstractGitHubApiTestBase {
+public class GHOrganizationTest extends AbstractGitHubApiWireMockTest {
public static final String GITHUB_API_TEST = "github-api-test";
- private GHOrganization org;
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- if (githubApi.isUseProxy()) {
- org = gitHub.getOrganization("github-api-test-org");
- }
- }
@Test
public void testCreateRepository() throws IOException {
+ cleanUp();
+
+ GHOrganization org = gitHub.getOrganization(GITHUB_API_TEST_ORG);
GHRepository repository = org.createRepository(GITHUB_API_TEST,
"a test repository used to test kohsuke's github-api", "http://github-api.kohsuke.org/", "Core Developers", true);
Assert.assertNotNull(repository);
@@ -28,20 +22,25 @@ public class GHOrganizationTest extends AbstractGitHubApiTestBase {
@Test
public void testCreateRepositoryWithAutoInitialization() throws IOException {
+ cleanUp();
+
+ GHOrganization org = gitHub.getOrganization(GITHUB_API_TEST_ORG);
GHRepository repository = org.createRepository(GITHUB_API_TEST)
- .description("a test repository used to test kohsuke's github-api")
- .homepage("http://github-api.kohsuke.org/")
- .team(org.getTeamByName("Core Developers"))
- .autoInit(true).create();
+ .description("a test repository used to test kohsuke's github-api")
+ .homepage("http://github-api.kohsuke.org/")
+ .team(org.getTeamByName("Core Developers"))
+ .autoInit(true).create();
Assert.assertNotNull(repository);
Assert.assertNotNull(repository.getReadme());
}
@After
- public void cleanUp() throws Exception {
+ public void cleanUp() throws IOException {
if (githubApi.isUseProxy()) {
- GHRepository repository = org.getRepository(GITHUB_API_TEST);
- repository.delete();
+ GHRepository repository = gitHubBeforeAfter.getOrganization(GITHUB_API_TEST_ORG).getRepository(GITHUB_API_TEST);
+ if (repository != null) {
+ repository.delete();
+ }
+ }
}
}
-}
diff --git a/src/test/java/org/kohsuke/github/GHPullRequestTest.java b/src/test/java/org/kohsuke/github/GHPullRequestTest.java
index f1b66c802..a628b1b26 100644
--- a/src/test/java/org/kohsuke/github/GHPullRequestTest.java
+++ b/src/test/java/org/kohsuke/github/GHPullRequestTest.java
@@ -19,7 +19,9 @@ public class GHPullRequestTest extends AbstractGitHubApiWireMockTest {
@After
public void cleanUp() throws Exception {
// Cleanup is only needed when proxying
- if (!githubApi.isUseProxy()) return;
+ if (!githubApi.isUseProxy()) {
+ return;
+ }
for (GHPullRequest pr : getRepository(this.gitHubBeforeAfter).getPullRequests(GHIssueState.OPEN)) {
pr.close();
@@ -53,7 +55,7 @@ public class GHPullRequestTest extends AbstractGitHubApiWireMockTest {
}
- @Test
+ @Test
public void pullRequestReviews() throws Exception {
String name = "testPullRequestReviews";
GHPullRequest p = getRepository().createPullRequest(name, "test/stable", "master", "## test");
@@ -112,9 +114,9 @@ public class GHPullRequestTest extends AbstractGitHubApiWireMockTest {
p.getMergeable();
// mergeability computation takes time. give it more chance
Thread.sleep(1000);
- for (int i=0; i<10; i++) {
+ for (int i = 0; i < 10; i++) {
GHPullRequest updated = getRepository().getPullRequest(p.getNumber());
- if (updated.getMergeable() && updated.getMergeCommitSha()!=null) {
+ if (updated.getMergeable() && updated.getMergeCommitSha() != null) {
// make sure commit exists
GHCommit commit = getRepository().getCommit(updated.getMergeCommitSha());
assertNotNull(commit);
@@ -164,28 +166,28 @@ public class GHPullRequestTest extends AbstractGitHubApiWireMockTest {
Thread.sleep(1000);
p.merge("squash merge", null, GHPullRequest.MergeMethod.SQUASH);
}
-
+
@Test
public void queryPullRequestsQualifiedHead() throws Exception {
GHRepository repo = getRepository();
// Create PRs from two different branches to master
repo.createPullRequest("queryPullRequestsQualifiedHead_stable", "test/stable", "master", null);
repo.createPullRequest("queryPullRequestsQualifiedHead_rc", "test/rc", "master", null);
-
+
// Query by one of the heads and make sure we only get that branch's PR back.
List prs = repo.queryPullRequests().state(GHIssueState.OPEN).head("github-api-test-org:test/stable").base("master").list().asList();
assertNotNull(prs);
assertEquals(1, prs.size());
assertEquals("test/stable", prs.get(0).getHead().getRef());
}
-
+
@Test
public void queryPullRequestsUnqualifiedHead() throws Exception {
GHRepository repo = getRepository();
// Create PRs from two different branches to master
repo.createPullRequest("queryPullRequestsUnqualifiedHead_stable", "test/stable", "master", null);
repo.createPullRequest("queryPullRequestsUnqualifiedHead_rc", "test/rc", "master", null);
-
+
// Query by one of the heads and make sure we only get that branch's PR back.
List prs = repo.queryPullRequests().state(GHIssueState.OPEN).head("test/stable").base("master").list().asList();
assertNotNull(prs);
@@ -216,8 +218,8 @@ public class GHPullRequestTest extends AbstractGitHubApiWireMockTest {
}
@Test
- public void getUser() throws IOException {
- GHPullRequest p = getRepository().createPullRequest("getUser", "test/stable", "master", "## test");
+ public void getUserTest() throws IOException {
+ GHPullRequest p = getRepository().createPullRequest("getUserTest", "test/stable", "master", "## test");
GHPullRequest prSingle = getRepository().getPullRequest(p.getNumber());
assertNotNull(prSingle.getUser().root);
prSingle.getMergeable();
diff --git a/src/test/java/org/kohsuke/github/GHRepositoryTest.java b/src/test/java/org/kohsuke/github/GHRepositoryTest.java
index c184502cc..99c89fb2c 100644
--- a/src/test/java/org/kohsuke/github/GHRepositoryTest.java
+++ b/src/test/java/org/kohsuke/github/GHRepositoryTest.java
@@ -2,6 +2,7 @@ package org.kohsuke.github;
import org.junit.Test;
+import java.io.FileNotFoundException;
import java.io.IOException;
import static org.hamcrest.Matchers.is;
@@ -13,36 +14,183 @@ import static org.junit.Assume.assumeFalse;
*/
public class GHRepositoryTest extends AbstractGitHubApiWireMockTest {
- @Test
- public void archive() throws Exception {
- snapshotNotAllowed();
+ @Test
+ public void archive() throws Exception {
+ snapshotNotAllowed();
- // Archive is a one-way action in the API.
- // We do thi this one
- GHRepository repo = getRepository();
+ // Archive is a one-way action in the API.
+ // We do thi this one
+ GHRepository repo = getRepository();
- assertThat(repo.isArchived(), is(false));
+ assertThat(repo.isArchived(), is(false));
- repo.archive();
+ repo.archive();
- assertThat(repo.isArchived(), is(true));
- assertThat(getRepository().isArchived(), is(true));
- }
+ assertThat(repo.isArchived(), is(true));
+ assertThat(getRepository().isArchived(), is(true));
+ }
- @Test
- public void getBranch_URLEncoded() throws Exception {
- GHRepository repo = getRepository();
- GHBranch branch = repo.getBranch("test/#UrlEncode");
- assertThat(branch.getName(), is("test/#UrlEncode"));
- }
+ @Test
+ public void getBranch_URLEncoded() throws Exception {
+ GHRepository repo = getRepository();
+ GHBranch branch = repo.getBranch("test/#UrlEncode");
+ assertThat(branch.getName(), is("test/#UrlEncode"));
+ }
+
+ @Test
+ public void subscription() throws Exception {
+ GHRepository r = getRepository();
+ assertNull(r.getSubscription());
+
+ GHSubscription s = r.subscribe(true, false);
+ assertEquals(s.getRepository(), r);
+
+ s.delete();
+
+ assertNull(r.getSubscription());
+ }
+
+ @Test
+ public void testSetPublic() throws Exception {
+ kohsuke();
+ GHUser myself = gitHub.getMyself();
+ String repoName = "test-repo-public";
+ GHRepository repo = gitHub.createRepository(repoName).private_(false).create();
+ try {
+ assertFalse(repo.isPrivate());
+ repo.setPrivate(true);
+ assertTrue(myself.getRepository(repoName).isPrivate());
+ repo.setPrivate(false);
+ assertFalse(myself.getRepository(repoName).isPrivate());
+ } finally {
+ repo.delete();
+ }
+ }
+
+ @Test
+ public void listContributors() throws IOException {
+ GHRepository r = gitHub.getOrganization("github-api").getRepository("github-api");
+ int i = 0;
+ boolean kohsuke = false;
+
+ for (GHRepository.Contributor c : r.listContributors()) {
+ if (c.getLogin().equals("kohsuke")) {
+ assertTrue(c.getContributions() > 0);
+ kohsuke = true;
+ }
+ if (i++ > 5) {
+ break;
+ }
+ }
+
+ assertTrue(kohsuke);
+ }
+
+ @Test
+ public void getPermission() throws Exception {
+ kohsuke();
+ GHRepository r = gitHub.getRepository("github-api-test-org/test-permission");
+ assertEquals(GHPermissionType.ADMIN, r.getPermission("kohsuke"));
+ assertEquals(GHPermissionType.READ, r.getPermission("dude"));
+ r = gitHub.getOrganization("apache").getRepository("groovy");
+ try {
+ r.getPermission("jglick");
+ fail();
+ } catch (HttpException x) {
+ //x.printStackTrace(); // good
+ assertEquals(403, x.getResponseCode());
+ }
+
+ if (false) {
+ // can't easily test this; there's no private repository visible to the test user
+ r = gitHub.getOrganization("cloudbees").getRepository("private-repo-not-writable-by-me");
+ try {
+ r.getPermission("jglick");
+ fail();
+ } catch (FileNotFoundException x) {
+ x.printStackTrace(); // good
+ }
+ }
+ }
+ @Test
+ public void LatestRepositoryExist() {
+ try {
+ // add the repository that have latest release
+ GHRelease release = gitHub.getRepository("kamontat/CheckIDNumber").getLatestRelease();
+ assertEquals("v3.0", release.getTagName());
+ } catch (IOException e) {
+ e.printStackTrace();
+ fail();
+ }
+ }
+
+ @Test
+ public void LatestRepositoryNotExist() {
+ try {
+ // add the repository that `NOT` have latest release
+ GHRelease release = gitHub.getRepository("kamontat/Java8Example").getLatestRelease();
+ assertNull(release);
+ } catch (IOException e) {
+ e.printStackTrace();
+ fail();
+ }
+ }
+
+ @Test
+ public void listReleases() throws IOException {
+ PagedIterable releases = gitHub.getOrganization("github").getRepository("hub").listReleases();
+ assertTrue(releases.iterator().hasNext());
+ }
+
+ @Test
+ public void getReleaseExists() throws IOException {
+ GHRelease release = gitHub.getOrganization("github").getRepository("hub").getRelease(6839710);
+ assertEquals("v2.3.0-pre10", release.getTagName());
+ }
+
+ @Test
+ public void getReleaseDoesNotExist() throws IOException {
+ GHRelease release = gitHub.getOrganization("github").getRepository("hub").getRelease(Long.MAX_VALUE);
+ assertNull(release);
+ }
+
+ @Test
+ public void getReleaseByTagNameExists() throws IOException {
+ GHRelease release = gitHub.getOrganization("github").getRepository("hub").getReleaseByTagName("v2.3.0-pre10");
+ assertNotNull(release);
+ assertEquals("v2.3.0-pre10", release.getTagName());
+ }
+
+ @Test
+ public void getReleaseByTagNameDoesNotExist() throws IOException {
+ GHRelease release = getRepository().getReleaseByTagName("foo-bar-baz");
+ assertNull(release);
+ }
+
+ @Test
+ public void listLanguages() throws IOException {
+ GHRepository r = gitHub.getRepository("github-api/github-api");
+ String mainLanguage = r.getLanguage();
+ assertTrue(r.listLanguages().containsKey(mainLanguage));
+ }
+
+ @Test // Issue #261
+ public void listEmptyContributors() throws IOException {
+ for (GHRepository.Contributor c : gitHub.getRepository(GITHUB_API_TEST_ORG + "/empty").listContributors()) {
+ System.out.println(c);
+ fail("This list should be empty, but should return a valid empty iterable.");
+ }
+ }
+
+ protected GHRepository getRepository() throws IOException {
+ return getRepository(gitHub);
+ }
+
+ private GHRepository getRepository(GitHub gitHub) throws IOException {
+ return gitHub.getOrganization("github-api-test-org").getRepository("github-api");
+ }
- protected GHRepository getRepository() throws IOException {
- return getRepository(gitHub);
- }
- private GHRepository getRepository(GitHub gitHub) throws IOException {
- return gitHub.getOrganization("github-api-test-org").getRepository("github-api");
- }
}
\ No newline at end of file
diff --git a/src/test/java/org/kohsuke/github/GHTeamTest.java b/src/test/java/org/kohsuke/github/GHTeamTest.java
new file mode 100644
index 000000000..0d82ef4c5
--- /dev/null
+++ b/src/test/java/org/kohsuke/github/GHTeamTest.java
@@ -0,0 +1,33 @@
+package org.kohsuke.github;
+
+import org.junit.Test;
+
+import java.io.IOException;
+import java.util.Random;
+
+public class GHTeamTest extends AbstractGitHubApiWireMockTest {
+
+ @Test
+ public void testSetDescription() throws IOException {
+
+ String description = "Updated by API Test";
+ String teamSlug = "dummy-team";
+
+ // Set the description.
+ GHTeam team = gitHub.getOrganization(GITHUB_API_TEST_ORG).getTeamBySlug(teamSlug);
+ team.setDescription(description);
+
+ // Check that it was set correctly.
+ team = gitHub.getOrganization(GITHUB_API_TEST_ORG).getTeamBySlug(teamSlug);
+ assertEquals(description, team.getDescription());
+
+ description += "Modified";
+
+ // Set the description.
+ team.setDescription(description);
+
+ // Check that it was set correctly.
+ team = gitHub.getOrganization(GITHUB_API_TEST_ORG).getTeamBySlug(teamSlug);
+ assertEquals(description, team.getDescription());
+ }
+}
diff --git a/src/test/java/org/kohsuke/github/GistTest.java b/src/test/java/org/kohsuke/github/GistTest.java
index d46f07129..c0a090a92 100644
--- a/src/test/java/org/kohsuke/github/GistTest.java
+++ b/src/test/java/org/kohsuke/github/GistTest.java
@@ -18,11 +18,11 @@ public class GistTest extends AbstractGitHubApiWireMockTest {
@Test
public void lifecycleTest() throws Exception {
GHGist gist = gitHub.createGist()
- .public_(false)
- .description("Test Gist")
- .file("abc.txt","abc")
- .file("def.txt","def")
- .create();
+ .public_(false)
+ .description("Test Gist")
+ .file("abc.txt", "abc")
+ .file("def.txt", "def")
+ .create();
assertThat(gist.getCreatedAt(), is(notNullValue()));
@@ -39,7 +39,7 @@ public class GistTest extends AbstractGitHubApiWireMockTest {
@Test
public void starTest() throws Exception {
GHGist gist = gitHub.getGist("9903708");
- assertEquals("rtyler",gist.getOwner().getLogin());
+ assertEquals("rtyler", gist.getOwner().getLogin());
gist.star();
@@ -70,7 +70,7 @@ public class GistTest extends AbstractGitHubApiWireMockTest {
assertTrue(gist.isPublic());
- assertEquals(1,gist.getFiles().size());
+ assertEquals(1, gist.getFiles().size());
GHGistFile f = gist.getFile("keybase.md");
assertEquals("text/markdown", f.getType());
diff --git a/src/test/java/org/kohsuke/github/GitHubTest.java b/src/test/java/org/kohsuke/github/GitHubTest.java
index 962cf9d66..35e2e14ac 100644
--- a/src/test/java/org/kohsuke/github/GitHubTest.java
+++ b/src/test/java/org/kohsuke/github/GitHubTest.java
@@ -14,10 +14,6 @@ import org.junit.Test;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
@@ -41,12 +37,13 @@ public class GitHubTest extends AbstractGitHubApiTestBase {
@Test
public void testGitHubServerWithHttp() throws Exception {
- GitHub hub = GitHub.connectToEnterprise("http://enterprise.kohsuke.org/api/v3", "bogus","bogus");
+ GitHub hub = GitHub.connectToEnterprise("http://enterprise.kohsuke.org/api/v3", "bogus", "bogus");
assertEquals("http://enterprise.kohsuke.org/api/v3/test", hub.getApiURL("/test").toString());
}
+
@Test
public void testGitHubServerWithHttps() throws Exception {
- GitHub hub = GitHub.connectToEnterprise("https://enterprise.kohsuke.org/api/v3", "bogus","bogus");
+ GitHub hub = GitHub.connectToEnterprise("https://enterprise.kohsuke.org/api/v3", "bogus", "bogus");
assertEquals("https://enterprise.kohsuke.org/api/v3/test", hub.getApiURL("/test").toString());
}
@Test
@@ -54,30 +51,33 @@ public class GitHubTest extends AbstractGitHubApiTestBase {
GitHub hub = GitHub.connectUsingPassword("kohsuke", "bogus");
assertEquals("https://api.github.com/test", hub.getApiURL("/test").toString());
}
+
@Test
public void testGitHubBuilderFromEnvironment() throws IOException {
-
- Mapprops = new HashMap();
-
+
+ Map props = new HashMap();
+
props.put("login", "bogus");
props.put("oauth", "bogus");
props.put("password", "bogus");
-
+ props.put("jwt", "bogus");
+
setupEnvironment(props);
-
+
GitHubBuilder builder = GitHubBuilder.fromEnvironment();
-
+
assertEquals("bogus", builder.user);
assertEquals("bogus", builder.oauthToken);
assertEquals("bogus", builder.password);
-
+ assertEquals("bogus", builder.jwtToken);
+
}
-
+
/*
* Copied from StackOverflow: http://stackoverflow.com/a/7201825/2336755
- *
+ *
* This allows changing the in memory process environment.
- *
+ *
* Its used to wire in values for the github credentials to test that the GitHubBuilder works properly to resolve them.
*/
private void setupEnvironment(Map newenv) {
@@ -112,6 +112,7 @@ public class GitHubTest extends AbstractGitHubApiTestBase {
e1.printStackTrace();
}
}
+
@Test
public void testGitHubBuilderFromCustomEnvironment() throws IOException {
Map props = new HashMap();
@@ -154,8 +155,8 @@ public class GitHubTest extends AbstractGitHubApiTestBase {
@Test
public void listUsers() throws IOException {
GitHub hub = GitHub.connect();
- for (GHUser u : Iterables.limit(hub.listUsers(),10)) {
- assert u.getName()!=null;
+ for (GHUser u : Iterables.limit(hub.listUsers(), 10)) {
+ assert u.getName() != null;
System.out.println(u.getName());
}
}
diff --git a/src/test/java/org/kohsuke/github/LifecycleTest.java b/src/test/java/org/kohsuke/github/LifecycleTest.java
index c4e1d1e0d..629ccebc9 100644
--- a/src/test/java/org/kohsuke/github/LifecycleTest.java
+++ b/src/test/java/org/kohsuke/github/LifecycleTest.java
@@ -26,26 +26,26 @@ public class LifecycleTest extends AbstractGitHubApiTestBase {
Thread.sleep(1000);
}
repository = org.createRepository("github-api-test",
- "a test repository used to test kohsuke's github-api", "http://github-api.kohsuke.org/", "Core Developers", true);
+ "a test repository used to test kohsuke's github-api", "http://github-api.kohsuke.org/", "Core Developers", true);
Thread.sleep(1000); // wait for the repository to become ready
assertTrue(repository.getReleases().isEmpty());
try {
GHMilestone milestone = repository.createMilestone("Initial Release", "first one");
GHIssue issue = repository.createIssue("Test Issue")
- .body("issue body just for grins")
- .milestone(milestone)
- .assignee(myself)
- .label("bug")
- .create();
+ .body("issue body just for grins")
+ .milestone(milestone)
+ .assignee(myself)
+ .label("bug")
+ .create();
File repoDir = new File(System.getProperty("java.io.tmpdir"), "github-api-test");
delete(repoDir);
Git origin = Git.cloneRepository()
- .setBare(false)
- .setURI(repository.getSshUrl())
- .setDirectory(repoDir)
- .setCredentialsProvider(getCredentialsProvider(myself))
- .call();
+ .setBare(false)
+ .setURI(repository.getSshUrl())
+ .setDirectory(repoDir)
+ .setCredentialsProvider(getCredentialsProvider(myself))
+ .call();
commitTestFile(myself, repoDir, origin);
@@ -84,9 +84,9 @@ public class LifecycleTest extends AbstractGitHubApiTestBase {
private GHRelease createRelease(GHRepository repository) throws IOException {
GHRelease builder = repository.createRelease("release_tag")
- .name("Test Release")
- .body("How exciting! To be able to programmatically create releases is a dream come true!")
- .create();
+ .name("Test Release")
+ .body("How exciting! To be able to programmatically create releases is a dream come true!")
+ .create();
List releases = repository.getReleases();
assertEquals(1, releases.size());
GHRelease release = releases.get(0);
diff --git a/src/test/java/org/kohsuke/github/PayloadRule.java b/src/test/java/org/kohsuke/github/PayloadRule.java
index 7f9364fdb..20a6f46ac 100644
--- a/src/test/java/org/kohsuke/github/PayloadRule.java
+++ b/src/test/java/org/kohsuke/github/PayloadRule.java
@@ -6,6 +6,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.nio.charset.Charset;
+
import org.apache.commons.io.IOUtils;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
@@ -44,8 +45,8 @@ public class PayloadRule implements TestRule {
public InputStream asInputStream() throws FileNotFoundException {
String name = resourceName.startsWith("/")
- ? resourceName + type
- : testClass.getSimpleName() + "/" + resourceName + type;
+ ? resourceName + type
+ : testClass.getSimpleName() + "/" + resourceName + type;
InputStream stream = testClass.getResourceAsStream(name);
if (stream == null) {
throw new FileNotFoundException(String.format("Resource %s from class %s", name, testClass));
@@ -81,6 +82,7 @@ public class PayloadRule implements TestRule {
public Reader asReader(String encoding) throws IOException {
return new InputStreamReader(asInputStream(), encoding);
}
+
public Reader asReader(Charset encoding) throws FileNotFoundException {
return new InputStreamReader(asInputStream(), encoding);
}
diff --git a/src/test/java/org/kohsuke/github/RepositoryMockTest.java b/src/test/java/org/kohsuke/github/RepositoryMockTest.java
index 2ff984ef2..c9c65f3c4 100644
--- a/src/test/java/org/kohsuke/github/RepositoryMockTest.java
+++ b/src/test/java/org/kohsuke/github/RepositoryMockTest.java
@@ -41,14 +41,14 @@ public class RepositoryMockTest {
when(iterator.hasNext()).thenReturn(true, false, true);
- when(iterator.next()).thenReturn(new GHUser[]{user1}, new GHUser[]{user2});
+ when(iterator.next()).thenReturn(new GHUser[] {user1}, new GHUser[] {user2});
Requester requester = Mockito.mock(Requester.class);
when(mockGitHub.retrieve()).thenReturn(requester);
when(requester.asIterator("/repos/*/*/collaborators",
- GHUser[].class, 0)).thenReturn(iterator, iterator);
+ GHUser[].class, 0)).thenReturn(iterator, iterator);
PagedIterable pagedIterable = Mockito.mock(PagedIterable.class);
diff --git a/src/test/java/org/kohsuke/github/RepositoryTest.java b/src/test/java/org/kohsuke/github/RepositoryTest.java
deleted file mode 100644
index 66fe68950..000000000
--- a/src/test/java/org/kohsuke/github/RepositoryTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-package org.kohsuke.github;
-
-import org.junit.Test;
-import org.kohsuke.github.GHRepository.Contributor;
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-
-/**
- * @author Kohsuke Kawaguchi
- */
-public class RepositoryTest extends AbstractGitHubApiTestBase {
- @Test
- public void subscription() throws Exception {
- GHRepository r = getRepository();
- assertNull(r.getSubscription());
-
- GHSubscription s = r.subscribe(true, false);
- assertEquals(s.getRepository(), r);
-
- s.delete();
-
- assertNull(r.getSubscription());
- }
-
- @Test
- public void listContributors() throws IOException {
- GHRepository r = gitHub.getOrganization("stapler").getRepository("stapler");
- int i=0;
- boolean kohsuke = false;
-
- for (Contributor c : r.listContributors()) {
- System.out.println(c.getName());
- assertTrue(c.getContributions()>0);
- if (c.getLogin().equals("kohsuke"))
- kohsuke = true;
- if (i++ > 5)
- break;
- }
-
- assertTrue(kohsuke);
- }
-
- @Test
- public void getPermission() throws Exception {
- kohsuke();
- GHRepository r = gitHub.getRepository("github-api-test-org/test-permission");
- assertEquals(GHPermissionType.ADMIN, r.getPermission("kohsuke"));
- assertEquals(GHPermissionType.READ, r.getPermission("dude"));
- r = gitHub.getOrganization("apache").getRepository("groovy");
- try {
- r.getPermission("jglick");
- fail();
- } catch (HttpException x) {
- x.printStackTrace(); // good
- assertEquals(403, x.getResponseCode());
- }
-
- if (false) {
- // can't easily test this; there's no private repository visible to the test user
- r = gitHub.getOrganization("cloudbees").getRepository("private-repo-not-writable-by-me");
- try {
- r.getPermission("jglick");
- fail();
- } catch (FileNotFoundException x) {
- x.printStackTrace(); // good
- }
- }
- }
-
-
-
- @Test
- public void LatestRepositoryExist() {
- try {
- // add the repository that have latest release
- GHRelease release = gitHub.getRepository("kamontat/CheckIDNumber").getLatestRelease();
- assertEquals("v3.0", release.getTagName());
- } catch (IOException e) {
- e.printStackTrace();
- fail();
- }
- }
-
- @Test
- public void LatestRepositoryNotExist() {
- try {
- // add the repository that `NOT` have latest release
- GHRelease release = gitHub.getRepository("kamontat/Java8Example").getLatestRelease();
- assertNull(release);
- } catch (IOException e) {
- e.printStackTrace();
- fail();
- }
- }
-
- @Test public void listReleases() throws IOException {
- PagedIterable releases = gitHub.getOrganization("github").getRepository("hub").listReleases();
- assertTrue(releases.iterator().hasNext());
- }
-
- @Test
- public void getReleaseExists() throws IOException {
- GHRelease release = gitHub.getOrganization("github").getRepository("hub").getRelease(6839710);
- assertEquals("v2.3.0-pre10", release.getTagName());
- }
-
- @Test
- public void getReleaseDoesNotExist() throws IOException {
- GHRelease release = gitHub.getOrganization("github").getRepository("hub").getRelease(Long.MAX_VALUE);
- assertNull(release);
- }
-
- @Test
- public void getReleaseByTagNameExists() throws IOException {
- GHRelease release = gitHub.getOrganization("github").getRepository("hub").getReleaseByTagName("v2.3.0-pre10");
- assertNotNull(release);
- assertEquals("v2.3.0-pre10", release.getTagName());
- }
-
- @Test
- public void getReleaseByTagNameDoesNotExist() throws IOException {
- GHRelease release = getRepository().getReleaseByTagName("foo-bar-baz");
- assertNull(release);
- }
-
- private GHRepository getRepository() throws IOException {
- return gitHub.getOrganization("github-api-test-org").getRepository("jenkins");
- }
-
- @Test
- public void listLanguages() throws IOException {
- GHRepository r = gitHub.getRepository("kohsuke/github-api");
- String mainLanguage = r.getLanguage();
- assertTrue(r.listLanguages().containsKey(mainLanguage));
- }
-
- @Test // Issue #261
- public void listEmptyContributors() throws IOException {
- GitHub gh = GitHub.connect();
- for (Contributor c : gh.getRepository("github-api-test-org/empty").listContributors()) {
- System.out.println(c);
- }
- }
-}
diff --git a/src/test/java/org/kohsuke/github/RepositoryTrafficTest.java b/src/test/java/org/kohsuke/github/RepositoryTrafficTest.java
index 3ecc6d589..5c8f6d35e 100644
--- a/src/test/java/org/kohsuke/github/RepositoryTrafficTest.java
+++ b/src/test/java/org/kohsuke/github/RepositoryTrafficTest.java
@@ -27,7 +27,7 @@ public class RepositoryTrafficTest extends AbstractGitHubApiTestBase {
}
@SuppressWarnings("unchecked")
- private void checkResponse(T expected, T actual){
+ private void checkResponse(T expected, T actual) {
Assert.assertEquals(expected.getCount(), actual.getCount());
Assert.assertEquals(expected.getUniques(), actual.getUniques());
@@ -40,7 +40,7 @@ public class RepositoryTrafficTest extends AbstractGitHubApiTestBase {
expectedIt = expectedList.iterator();
actualIt = actualList.iterator();
- while(expectedIt.hasNext() && actualIt.hasNext()) {
+ while (expectedIt.hasNext() && actualIt.hasNext()) {
DailyInfo expectedDailyInfo = expectedIt.next();
DailyInfo actualDailyInfo = actualIt.next();
Assert.assertEquals(expectedDailyInfo.getCount(), actualDailyInfo.getCount());
@@ -49,8 +49,8 @@ public class RepositoryTrafficTest extends AbstractGitHubApiTestBase {
}
}
- private void testTraffic(T expectedResult) throws IOException{
- SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
+ private void testTraffic(T expectedResult) throws IOException {
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
ObjectMapper mapper = new ObjectMapper().setDateFormat(dateFormat);
String mockedResponse = mapper.writeValueAsString(expectedResult);
@@ -76,7 +76,7 @@ public class RepositoryTrafficTest extends AbstractGitHubApiTestBase {
// this covers calls on "uc" in Requester.setupConnection and Requester.buildRequest
URL trafficURL = gitHub.getApiURL(
- "/repos/"+login+"/"+repositoryName+"/traffic/" +
+ "/repos/" + login + "/" + repositoryName + "/traffic/" +
((expectedResult instanceof GHRepositoryViewTraffic) ? "views" : "clones")
);
Mockito.doReturn(mockHttpURLConnection).when(connectorSpy).connect(Mockito.eq(trafficURL));
@@ -88,64 +88,63 @@ public class RepositoryTrafficTest extends AbstractGitHubApiTestBase {
InputStream stubInputStream = IOUtils.toInputStream(mockedResponse, "UTF-8");
Mockito.doReturn(stubInputStream).when(mockHttpURLConnection).getInputStream();
- if(expectedResult instanceof GHRepositoryViewTraffic){
+ if (expectedResult instanceof GHRepositoryViewTraffic) {
GHRepositoryViewTraffic views = repo.getViewTraffic();
checkResponse(expectedResult, views);
- }
- else if(expectedResult instanceof GHRepositoryCloneTraffic) {
+ } else if (expectedResult instanceof GHRepositoryCloneTraffic) {
GHRepositoryCloneTraffic clones = repo.getCloneTraffic();
checkResponse(expectedResult, clones);
}
}
@Test
- public void testGetViews() throws IOException{
+ public void testGetViews() throws IOException {
GHRepositoryViewTraffic expectedResult = new GHRepositoryViewTraffic(
- 21523359,
- 65534,
- Arrays.asList(
- new GHRepositoryViewTraffic.DailyInfo("2016-10-10T00:00:00Z", 3, 2),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-11T00:00:00Z", 9, 4),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-12T00:00:00Z", 27, 8),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-13T00:00:00Z", 81, 16),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-14T00:00:00Z", 243, 32),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-15T00:00:00Z", 729, 64),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-16T00:00:00Z", 2187, 128),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-17T00:00:00Z", 6561, 256),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-18T00:00:00Z", 19683, 512),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-19T00:00:00Z", 59049, 1024),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-20T00:00:00Z", 177147, 2048),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-21T00:00:00Z", 531441, 4096),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-22T00:00:00Z", 1594323, 8192),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-23T00:00:00Z", 4782969, 16384),
- new GHRepositoryViewTraffic.DailyInfo("2016-10-24T00:00:00Z", 14348907, 32768)
- )
+ 21523359,
+ 65534,
+ Arrays.asList(
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-10T00:00:00Z", 3, 2),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-11T00:00:00Z", 9, 4),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-12T00:00:00Z", 27, 8),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-13T00:00:00Z", 81, 16),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-14T00:00:00Z", 243, 32),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-15T00:00:00Z", 729, 64),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-16T00:00:00Z", 2187, 128),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-17T00:00:00Z", 6561, 256),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-18T00:00:00Z", 19683, 512),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-19T00:00:00Z", 59049, 1024),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-20T00:00:00Z", 177147, 2048),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-21T00:00:00Z", 531441, 4096),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-22T00:00:00Z", 1594323, 8192),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-23T00:00:00Z", 4782969, 16384),
+ new GHRepositoryViewTraffic.DailyInfo("2016-10-24T00:00:00Z", 14348907, 32768)
+ )
);
testTraffic(expectedResult);
}
@Test
- public void testGetClones() throws IOException{
+ public void testGetClones() throws IOException {
GHRepositoryCloneTraffic expectedResult = new GHRepositoryCloneTraffic(
- 1500,
- 455,
- Arrays.asList(
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-10T00:00:00Z", 10,3),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-11T00:00:00Z", 20,6),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-12T00:00:00Z", 30,5),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-13T00:00:00Z", 40,7),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-14T00:00:00Z", 50,11),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-15T00:00:00Z", 60,12),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-16T00:00:00Z", 70,19),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-17T00:00:00Z", 170,111),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-18T00:00:00Z", 180,70),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-19T00:00:00Z", 190,10),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-20T00:00:00Z", 200,18),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-21T00:00:00Z", 210,8),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-22T00:00:00Z", 220,168),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-23T00:00:00Z", 5,2),
- new GHRepositoryCloneTraffic.DailyInfo("2016-10-24T00:00:00Z", 45,5)
- )
+ 1500,
+ 455,
+ Arrays.asList(
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-10T00:00:00Z", 10, 3),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-11T00:00:00Z", 20, 6),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-12T00:00:00Z", 30, 5),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-13T00:00:00Z", 40, 7),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-14T00:00:00Z", 50, 11),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-15T00:00:00Z", 60, 12),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-16T00:00:00Z", 70, 19),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-17T00:00:00Z", 170, 111),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-18T00:00:00Z", 180, 70),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-19T00:00:00Z", 190, 10),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-20T00:00:00Z", 200, 18),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-21T00:00:00Z", 210, 8),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-22T00:00:00Z", 220, 168),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-23T00:00:00Z", 5, 2),
+ new GHRepositoryCloneTraffic.DailyInfo("2016-10-24T00:00:00Z", 45, 5)
+ )
);
testTraffic(expectedResult);
}
@@ -158,14 +157,12 @@ public class RepositoryTrafficTest extends AbstractGitHubApiTestBase {
try {
repo.getViewTraffic();
Assert.fail(errorMsg);
- }
- catch (HttpException ex){
+ } catch (HttpException ex) {
}
try {
repo.getCloneTraffic();
Assert.fail(errorMsg);
- }
- catch (HttpException ex){
+ } catch (HttpException ex) {
}
}
}
diff --git a/src/test/java/org/kohsuke/github/UserTest.java b/src/test/java/org/kohsuke/github/UserTest.java
index 5a3c30395..d37923c1e 100644
--- a/src/test/java/org/kohsuke/github/UserTest.java
+++ b/src/test/java/org/kohsuke/github/UserTest.java
@@ -3,8 +3,7 @@ package org.kohsuke.github;
import org.junit.Test;
import java.io.IOException;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.*;
/**
* @author Kohsuke Kawaguchi
@@ -21,10 +20,33 @@ public class UserTest extends AbstractGitHubApiWireMockTest {
private Set count30(PagedIterable l) {
Set users = new HashSet();
PagedIterator itr = l.iterator();
- for (int i=0; i<30 && itr.hasNext(); i++) {
+ for (int i = 0; i < 30 && itr.hasNext(); i++) {
users.add(itr.next());
}
assertEquals(30, users.size());
return users;
}
+
+ @Test
+ public void getKeys() throws IOException {
+ GHUser u = gitHub.getUser("rtyler");
+ List ghKeys = new ArrayList<>(u.getKeys());
+
+ assertEquals(3, ghKeys.size());
+ Collections.sort(ghKeys, new Comparator() {
+ @Override
+ public int compare(GHKey ghKey, GHKey t1) {
+ return ghKey.getId() - t1.getId();
+ }
+ });
+ assertEquals(1066173, ghKeys.get(0).getId());
+ assertEquals("ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAueiy12T5bvFhsc9YjfLc3aVIxgySd3gDxQWy/bletIoZL8omKmzocBYJ7F58U1asoyfWsy2ToTOY8jJp1eToXmbD6L5+xvHba0A7djYh9aQRrFam7doKQ0zp0ZSUF6+R1v0OM4nnWqK4n2ECIYd+Bdzrp+xA5+XlW3ZSNzlnW2BeWznzmgRMcp6wI+zQ9GMHWviR1cxpml5Z6wrxTZ0aX91btvnNPqoOGva976B6e6403FOEkkIFTk6CC1TFKwc/VjbqxYBg4kU0JhiTP+iEZibcQrYjWdYUgAotYbFVe5/DneHMLNsMPdeihba4PUwt62rXyNegenuCRmCntLcaFQ==",
+ ghKeys.get(0).getKey());
+ assertEquals(28136459, ghKeys.get(1).getId());
+ assertEquals("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTU0s5OKCC6VpKZGL9NJD4mNLY0AtujkVB1JkkuQ4OkMi2YGUHJtGhTbTwEVhNxpm0x2dM5KSzse6MLDYuGBW0qkE/VVuD9+9I73hbq461KqP0+WlupNh+Qc86kbiLBDv64+vWc+50mp1dbINpoM5xvaPYxgjnemydPv7vu5bhCHBugW7aN8VcLgfFgcp8vZCEanMtd3hIRjRU8v8Skk233ZGu1bXkG8iIOBQPabvEtZ0VDMg9pT3Q1R6lnnKqfCwHXd6zP6uAtejFSxvKRGKpu3OLGQMHwk7NlImVuhkVdaEFBq7pQtpOaGuP2eLKcN1wy5jsTYE+ZB6pvHCi2ecb",
+ ghKeys.get(1).getKey());
+ assertEquals(31452581, ghKeys.get(2).getId());
+ assertEquals("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC3JhH2FZBDmHLjXTcBoV6tdcYKmsQ7sgu8k1RsUhwxGsXm65+Cuas6GcMVoA1DncKfJGQkulHDFiTxIROIBmedh9/otHWBlZ4HqYZ4MQ1A8W5quULkXwX/kF+UdRBUxFvjigibEbuHB+LARVxRRzFlPnTSE9rAfAv8OOEsb3lNUGT/IGhN8w1vwe8GclB90tgqN1RBDgrVqwLFwn5AfrW9kUIa2f2oT4RjYu1OrhKhVIIzfHADo85aD+s8wEhqwI96BCJG3qTWrypoHwBUoj1O6Ak5CGc1iKz9o8XyTMjudRt2ddCjfOtxsuwSlTbVtQXJGIpgKviX1sgh4pPvGh7BVAFP+mdAK4F+mEugDnuj47GO/K5KGGDRCL56kh9+h28l4q/+fZvp7DhtmSN2EzrVAdQFskF8yY/6Xit/aAvjeKm03DcjbylSXbG26EJefaLHlwYFq2mUFRMak25wuuCZS71GF3RC3Sl/bMoxBKRYkyfYtGafeaYTFNGn8Dbd+hfVUCz31ebI8cvmlQR5b5AbCre3T7HTVgw8FKbAxWRf1Fio56PnqHsj+sT1KVj255Zo1F8iD9GrgERSVAlkh5bY/CKszQ8ZSd01c9Qp2a47/gR7XAAbxhzGHP+cSOlrqDlJ24fbPtcpVsM0llqKUcxpmoOBFNboRmE1QqnSmAf9ww==",
+ ghKeys.get(2).getKey());
+ }
}
diff --git a/src/test/java/org/kohsuke/github/WireMockStatusReporterTest.java b/src/test/java/org/kohsuke/github/WireMockStatusReporterTest.java
index 29dbfb12e..f7270158c 100644
--- a/src/test/java/org/kohsuke/github/WireMockStatusReporterTest.java
+++ b/src/test/java/org/kohsuke/github/WireMockStatusReporterTest.java
@@ -4,6 +4,7 @@ import org.kohsuke.github.junit.WireMockRule;
import org.hamcrest.Matchers;
import org.junit.Ignore;
import org.junit.Test;
+
import static org.hamcrest.Matchers.*;
import static org.junit.Assume.assumeFalse;
import static org.junit.Assume.assumeTrue;
@@ -11,7 +12,7 @@ import static org.junit.Assume.assumeTrue;
/**
* Tests in this class are meant to show the behavior of {@link AbstractGitHubApiWireMockTest} with proxying on or off.
- *
+ *
* The wiremock data for these tests should only be modified by hand - thus most are skipped when snapshotting.
*
* @author Liam Newman
@@ -21,11 +22,11 @@ public class WireMockStatusReporterTest extends AbstractGitHubApiWireMockTest {
@Test
public void user_whenProxying_AuthCorrectlyConfigured() throws Exception {
snapshotNotAllowed();
- assumeTrue("Test only valid when proxying (-Dtest.github.useProxy to enable)", githubApi.isUseProxy());
+ requireProxy("Tests proper configuration when proxying.");
assertThat(
"GitHub connection believes it is anonymous. Make sure you set GITHUB_OAUTH or both GITHUB_USER and GITHUB_PASSWORD environment variables",
- gitHub.isAnonymous(), is(false));
+ gitHub.isAnonymous(), is(false));
assertThat(gitHub.login, not(equalTo(STUBBED_USER_LOGIN)));
@@ -43,6 +44,7 @@ public class WireMockStatusReporterTest extends AbstractGitHubApiWireMockTest {
@Test
public void user_whenNotProxying_Stubbed() throws Exception {
snapshotNotAllowed();
+
assumeFalse("Test only valid when not proxying", githubApi.isUseProxy());
assertThat(gitHub.isAnonymous(), is(false));
@@ -77,7 +79,7 @@ public class WireMockStatusReporterTest extends AbstractGitHubApiWireMockTest {
e = ex;
}
assertThat(e, Matchers.instanceOf(HttpException.class));
- assertThat("Status should be 500 for missing stubs", ((HttpException)e).getResponseCode(), equalTo(500));
+ assertThat("Status should be 500 for missing stubs", ((HttpException) e).getResponseCode(), equalTo(500));
assertThat(e.getMessage(), equalTo("Stubbed data not found. Set test.github.use-proxy to have WireMock proxy to github"));
// Invalid repository, without stub - fails 500 when not proxying
@@ -90,14 +92,15 @@ public class WireMockStatusReporterTest extends AbstractGitHubApiWireMockTest {
}
assertThat(e, Matchers.instanceOf(HttpException.class));
- assertThat("Status should be 500 for missing stubs", ((HttpException)e).getResponseCode(), equalTo(500));
+ assertThat("Status should be 500 for missing stubs", ((HttpException) e).getResponseCode(), equalTo(500));
assertThat(e.getMessage(), equalTo("Stubbed data not found. Set test.github.use-proxy to have WireMock proxy to github"));
}
@Test
public void BasicBehaviors_whenProxying() throws Exception {
snapshotNotAllowed();
- assumeTrue("Test only valid when proxying (-Dtest.github.useProxy to enable)", githubApi.isUseProxy());
+ requireProxy("Tests basic behaviors when proxying.");
+
Exception e = null;
GHRepository repo = null;
diff --git a/src/test/java/org/kohsuke/github/extras/OkHttpConnectorTest.java b/src/test/java/org/kohsuke/github/extras/OkHttpConnectorTest.java
new file mode 100644
index 000000000..a8733301a
--- /dev/null
+++ b/src/test/java/org/kohsuke/github/extras/OkHttpConnectorTest.java
@@ -0,0 +1,306 @@
+package org.kohsuke.github.extras;
+
+import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
+import com.github.tomakehurst.wiremock.extension.responsetemplating.ResponseTemplateTransformer;
+import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder;
+import com.squareup.okhttp.OkUrlFactory;
+import com.squareup.okhttp.Cache;
+import com.squareup.okhttp.OkHttpClient;
+import org.apache.commons.io.FileUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.kohsuke.github.*;
+
+import javax.xml.datatype.Duration;
+import java.io.File;
+import java.io.IOException;
+import java.util.Objects;
+
+import static org.hamcrest.Matchers.*;
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assume.assumeFalse;
+import static org.junit.Assume.assumeTrue;
+
+/**
+ * Test showing the behavior of OkHttpConnector with and without cache.
+ *
+ * Key take aways:
+ *
+ *
+ * - These tests are artificial and intended to highlight the differences
+ * in behavior between scenarios. However, the differences they indicate are stark.
+ * - Caching reduces rate limit consumption by at least a factor of two in even the simplest case.
+ * - The OkHttp cache is pretty smart and will often connect read and write requests made
+ * on the same client and invalidate caches.
+ * - Changes made outside the current client cause the OkHttp cache to return stale data.
+ * This is expected and correct behavior.
+ * - "max-age=0" addresses the problem of external changes by revalidating caches for each request.
+ * This produces the same number of requests as OkHttp without caching, but those requests only
+ * count towards the GitHub rate limit if data has changes.
+ *
+ *
+ * @author Liam Newman
+ */
+public class OkHttpConnectorTest extends AbstractGitHubApiWireMockTest {
+
+ public OkHttpConnectorTest() {
+ useDefaultGitHub = false;
+ }
+
+ private static int defaultRateLimitUsed = 17;
+ private static int okhttpRateLimitUsed = 17;
+ private static int maxAgeZeroRateLimitUsed = 7;
+ private static int maxAgeThreeRateLimitUsed = 7;
+ private static int maxAgeNoneRateLimitUsed = 4;
+
+ private static int userRequestCount = 0;
+
+ private static int defaultNetworkRequestCount = 16;
+ private static int okhttpNetworkRequestCount = 16;
+ private static int maxAgeZeroNetworkRequestCount = 16;
+ private static int maxAgeThreeNetworkRequestCount = 9;
+ private static int maxAgeNoneNetworkRequestCount = 5;
+
+ private static int maxAgeZeroHitCount = 10;
+ private static int maxAgeThreeHitCount = 10;
+ private static int maxAgeNoneHitCount = 11;
+
+ private GHRateLimit rateLimitBefore;
+
+ @Override
+ protected WireMockConfiguration getWireMockOptions() {
+ return super.getWireMockOptions()
+ .extensions(ResponseTemplateTransformer.builder()
+ .global(true)
+ .maxCacheEntries(0L)
+ .build()
+ );
+ }
+
+ @Before
+ public void setupRepo() throws Exception {
+ if (githubApi.isUseProxy()) {
+ GHRepository repo = getRepository(gitHubBeforeAfter);
+ repo.setDescription("Resetting");
+
+ // Let things settle a bit between tests when working against the live site
+ Thread.sleep(5000);
+ userRequestCount = 1;
+ }
+ }
+
+ @Test
+ public void DefaultConnector() throws Exception {
+
+ this.gitHub = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl())
+ .build();
+
+ doTestActions();
+
+ // Testing behavior after change
+ // Uncached connection gets updated correctly but at cost of rate limit
+ assertThat(getRepository(gitHub).getDescription(), is("Tricky"));
+
+ checkRequestAndLimit(defaultNetworkRequestCount, defaultRateLimitUsed);
+ }
+
+ @Test
+ public void OkHttpConnector_NoCache() throws Exception {
+
+ OkHttpClient client = createClient(false);
+ OkHttpConnector connector = new OkHttpConnector(new OkUrlFactory(client));
+
+ this.gitHub = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl())
+ .withConnector(connector)
+ .build();
+
+ doTestActions();
+
+ // Testing behavior after change
+ // Uncached okhttp connection gets updated correctly but at cost of rate limit
+ assertThat(getRepository(gitHub).getDescription(), is("Tricky"));
+
+ checkRequestAndLimit(okhttpNetworkRequestCount, okhttpRateLimitUsed);
+
+ Cache cache = client.getCache();
+ assertThat("Cache", cache, is(nullValue()));
+ }
+
+ @Test
+ public void OkHttpConnector_Cache_MaxAgeNone() throws Exception {
+ // The responses were recorded from github, but the Date headers
+ // have been templated to make caching behavior work as expected.
+ // This is reasonable as long as the number of network requests matches up.
+ snapshotNotAllowed();
+
+ OkHttpClient client = createClient(true);
+ OkHttpConnector connector = new OkHttpConnector(new OkUrlFactory(client), -1);
+
+ this.gitHub = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl())
+ .withConnector(connector)
+ .build();
+
+ doTestActions();
+
+ // Testing behavior after change
+ // NOTE: this is wrong! The live data changed!
+ // Due to max-age (default 60 from response) the cache returns the old data.
+ assertThat(getRepository(gitHub).getDescription(), is(githubApi.getMethodName()));
+
+ checkRequestAndLimit(maxAgeNoneNetworkRequestCount, maxAgeNoneRateLimitUsed);
+
+ Cache cache = client.getCache();
+
+ // NOTE: this is actually bad.
+ // This elevated hit count is the stale requests returning bad data took longer to detect a change.
+ assertThat("getHitCount", cache.getHitCount(), is(maxAgeNoneHitCount));
+ }
+
+ @Test
+ public void OkHttpConnector_Cache_MaxAge_Three() throws Exception {
+
+ // NOTE: This test is very timing sensitive.
+ // It can be run locally to verify behavior but snapshot data is to touchy
+ assumeFalse("Test only valid when not taking a snapshot", githubApi.isTakeSnapshot());
+ assumeTrue("Test only valid when proxying (-Dtest.github.useProxy to enable)", githubApi.isUseProxy());
+
+
+ OkHttpClient client = createClient(true);
+ OkHttpConnector connector = new OkHttpConnector(new OkUrlFactory(client), 3);
+
+ this.gitHub = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl())
+ .withConnector(connector)
+ .build();
+
+ doTestActions();
+
+ // Due to max-age=3 this eventually checks the site and gets updated information. Yay?
+ assertThat(getRepository(gitHub).getDescription(), is("Tricky"));
+
+ checkRequestAndLimit(maxAgeThreeNetworkRequestCount, maxAgeThreeRateLimitUsed);
+
+ Cache cache = client.getCache();
+ assertThat("getHitCount", cache.getHitCount(), is(maxAgeThreeHitCount));
+ }
+
+ @Test
+ public void OkHttpConnector_Cache_MaxAgeDefault_Zero() throws Exception {
+ // The responses were recorded from github, but the Date headers
+ // have been templated to make caching behavior work as expected.
+ // This is reasonable as long as the number of network requests matches up.
+ snapshotNotAllowed();
+
+ OkHttpClient client = createClient(true);
+ OkHttpConnector connector = new OkHttpConnector(new OkUrlFactory(client));
+
+ this.gitHub = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl())
+ .withConnector(connector)
+ .build();
+
+ doTestActions();
+
+ // Testing behavior after change
+ // NOTE: max-age=0 produces the same result at uncached without added rate-limit use.
+ assertThat(getRepository(gitHub).getDescription(), is("Tricky"));
+
+ checkRequestAndLimit(maxAgeZeroNetworkRequestCount, maxAgeZeroRateLimitUsed);
+
+ Cache cache = client.getCache();
+ assertThat("getHitCount", cache.getHitCount(), is(maxAgeZeroHitCount));
+ }
+
+ private void checkRequestAndLimit(int networkRequestCount, int rateLimitUsed) throws IOException {
+ GHRateLimit rateLimitAfter = gitHub.rateLimit();
+ assertThat("Request Count",
+ getRequestCount(),
+ is(networkRequestCount + userRequestCount));
+
+ // Rate limit must be under this value, but if it wiggles we don't care
+ assertThat("Rate Limit Change",
+ rateLimitBefore.remaining - rateLimitAfter.remaining,
+ is(lessThanOrEqualTo(rateLimitUsed + userRequestCount)));
+
+ }
+
+ private int getRequestCount() {
+ return githubApi.countRequestsMatching(RequestPatternBuilder.allRequests().build()).getCount();
+ }
+
+ private OkHttpClient createClient(boolean useCache) throws IOException {
+ OkHttpClient client = new OkHttpClient();
+
+ if (useCache) {
+ File cacheDir = new File("target/cache/" + baseFilesClassPath + "/" + githubApi.getMethodName());
+ cacheDir.mkdirs();
+ FileUtils.cleanDirectory(cacheDir);
+ Cache cache = new Cache(cacheDir, 100 * 1024L * 1024L);
+
+ client.setCache(cache);
+ }
+
+ return client;
+ }
+
+
+ /**
+ * This is a standard set of actions to be performed with each connector
+ *
+ * @throws Exception
+ */
+ private void doTestActions() throws Exception {
+ rateLimitBefore = gitHub.getRateLimit();
+
+ String name = githubApi.getMethodName();
+
+
+ GHRepository repo = getRepository(gitHub);
+
+ // Testing behavior when nothing has changed.
+ pollForChange("Resetting");
+ assertThat(getRepository(gitHub).getDescription(), is("Resetting"));
+
+ repo.setDescription(name);
+
+ pollForChange(name);
+
+ // Test behavior after change
+ assertThat(getRepository(gitHub).getDescription(), is(name));
+
+
+ // Get Tricky - make a change via a different client
+ if (githubApi.isUseProxy()) {
+ GHRepository altRepo = getRepository(gitHubBeforeAfter);
+ altRepo.setDescription("Tricky");
+ }
+
+ // Testing behavior after change
+ pollForChange("Tricky");
+ }
+
+ private void pollForChange(String name) throws IOException, InterruptedException {
+ getRepository(gitHub).getDescription();
+ Thread.sleep(500);
+ getRepository(gitHub).getDescription();
+ //This is only interesting when running the max-age=3 test which currently only runs with proxy
+ //Disabled to speed up the tests
+ if (githubApi.isUseProxy()) {
+ Thread.sleep(1000);
+ }
+ getRepository(gitHub).getDescription();
+ //This is only interesting when running the max-age=3 test which currently only runs with proxy
+ //Disabled to speed up the tests
+ if (githubApi.isUseProxy()) {
+ Thread.sleep(4000);
+ }
+ }
+
+ private static GHRepository getRepository(GitHub gitHub) throws IOException {
+ return gitHub.getOrganization("github-api-test-org").getRepository("github-api");
+ }
+
+}
diff --git a/src/test/java/org/kohsuke/github/extras/okhttp3/OkHttpConnectorTest.java b/src/test/java/org/kohsuke/github/extras/okhttp3/OkHttpConnectorTest.java
new file mode 100644
index 000000000..801fe3e20
--- /dev/null
+++ b/src/test/java/org/kohsuke/github/extras/okhttp3/OkHttpConnectorTest.java
@@ -0,0 +1,309 @@
+package org.kohsuke.github.extras.okhttp3;
+
+import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
+import com.github.tomakehurst.wiremock.extension.responsetemplating.ResponseTemplateTransformer;
+import com.github.tomakehurst.wiremock.matching.RequestPatternBuilder;
+import okhttp3.Cache;
+import okhttp3.OkHttpClient;
+import org.apache.commons.io.FileUtils;
+import org.junit.Before;
+import org.junit.Test;
+import org.kohsuke.github.AbstractGitHubApiWireMockTest;
+import org.kohsuke.github.GHRateLimit;
+import org.kohsuke.github.GHRepository;
+import org.kohsuke.github.GitHub;
+
+import java.io.File;
+import java.io.IOException;
+
+import static org.hamcrest.Matchers.lessThanOrEqualTo;
+import static org.hamcrest.Matchers.nullValue;
+import static org.hamcrest.core.Is.is;
+import static org.junit.Assume.assumeFalse;
+import static org.junit.Assume.assumeTrue;
+
+/**
+ * Test showing the behavior of OkHttpConnector with and without cache.
+ *
+ * Key take aways:
+ *
+ *
+ * - These tests are artificial and intended to highlight the differences
+ * in behavior between scenarios. However, the differences they indicate are stark.
+ * - Caching reduces rate limit consumption by at least a factor of two in even the simplest case.
+ * - The OkHttp cache is pretty smart and will often connect read and write requests made
+ * on the same client and invalidate caches.
+ * - Changes made outside the current client cause the OkHttp cache to return stale data.
+ * This is expected and correct behavior.
+ * - "max-age=0" addresses the problem of external changes by revalidating caches for each request.
+ * This produces the same number of requests as OkHttp without caching, but those requests only
+ * count towards the GitHub rate limit if data has changes.
+ *
+ *
+ * @author Liam Newman
+ */
+public class OkHttpConnectorTest extends AbstractGitHubApiWireMockTest {
+
+ public OkHttpConnectorTest() {
+ useDefaultGitHub = false;
+ }
+
+ private static int defaultRateLimitUsed = 17;
+ private static int okhttpRateLimitUsed = 17;
+ private static int maxAgeZeroRateLimitUsed = 7;
+ private static int maxAgeThreeRateLimitUsed = 7;
+ private static int maxAgeNoneRateLimitUsed = 4;
+
+ private static int userRequestCount = 0;
+
+ private static int defaultNetworkRequestCount = 16;
+ private static int okhttpNetworkRequestCount = 16;
+ private static int maxAgeZeroNetworkRequestCount = 16;
+ private static int maxAgeThreeNetworkRequestCount = 9;
+ private static int maxAgeNoneNetworkRequestCount = 5;
+
+ private static int maxAgeZeroHitCount = 10;
+ private static int maxAgeThreeHitCount = 10;
+ private static int maxAgeNoneHitCount = 11;
+
+ private GHRateLimit rateLimitBefore;
+
+ @Override
+ protected WireMockConfiguration getWireMockOptions() {
+ return super.getWireMockOptions()
+ // Use the same data files as the 2.x test
+ .usingFilesUnderDirectory(baseRecordPath.replace("/okhttp3/", "/"))
+ .extensions(ResponseTemplateTransformer.builder()
+ .global(true)
+ .maxCacheEntries(0L)
+ .build()
+ );
+ }
+
+ @Before
+ public void setupRepo() throws Exception {
+ if (githubApi.isUseProxy()) {
+ GHRepository repo = getRepository(gitHubBeforeAfter);
+ repo.setDescription("Resetting");
+
+ // Let things settle a bit between tests when working against the live site
+ Thread.sleep(5000);
+ userRequestCount = 1;
+ }
+ }
+
+ @Test
+ public void DefaultConnector() throws Exception {
+
+ this.gitHub = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl())
+ .build();
+
+ doTestActions();
+
+ // Testing behavior after change
+ // Uncached connection gets updated correctly but at cost of rate limit
+ assertThat(getRepository(gitHub).getDescription(), is("Tricky"));
+
+ checkRequestAndLimit(defaultNetworkRequestCount, defaultRateLimitUsed);
+ }
+
+ @Test
+ public void OkHttpConnector_NoCache() throws Exception {
+
+ OkHttpClient client = createClient(false);
+ OkHttpConnector connector = new OkHttpConnector(client);
+
+ this.gitHub = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl())
+ .withConnector(connector)
+ .build();
+
+ doTestActions();
+
+ // Testing behavior after change
+ // Uncached okhttp connection gets updated correctly but at cost of rate limit
+ assertThat(getRepository(gitHub).getDescription(), is("Tricky"));
+
+ checkRequestAndLimit(okhttpNetworkRequestCount, okhttpRateLimitUsed);
+
+ Cache cache = client.cache();
+ assertThat("Cache", cache, is(nullValue()));
+ }
+
+ @Test
+ public void OkHttpConnector_Cache_MaxAgeNone() throws Exception {
+ // The responses were recorded from github, but the Date headers
+ // have been templated to make caching behavior work as expected.
+ // This is reasonable as long as the number of network requests matches up.
+ snapshotNotAllowed();
+
+ OkHttpClient client = createClient(true);
+ OkHttpConnector connector = new OkHttpConnector(client, -1);
+
+ this.gitHub = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl())
+ .withConnector(connector)
+ .build();
+
+ doTestActions();
+
+ // Testing behavior after change
+ // NOTE: this is wrong! The live data changed!
+ // Due to max-age (default 60 from response) the cache returns the old data.
+ assertThat(getRepository(gitHub).getDescription(), is(githubApi.getMethodName()));
+
+ checkRequestAndLimit(maxAgeNoneNetworkRequestCount, maxAgeNoneRateLimitUsed);
+
+ Cache cache = client.cache();
+
+ // NOTE: this is actually bad.
+ // This elevated hit count is the stale requests returning bad data took longer to detect a change.
+ assertThat("getHitCount", cache.hitCount(), is(maxAgeNoneHitCount));
+ }
+
+ @Test
+ public void OkHttpConnector_Cache_MaxAge_Three() throws Exception {
+
+ // NOTE: This test is very timing sensitive.
+ // It can be run locally to verify behavior but snapshot data is to touchy
+ assumeFalse("Test only valid when not taking a snapshot", githubApi.isTakeSnapshot());
+ assumeTrue("Test only valid when proxying (-Dtest.github.useProxy to enable)", githubApi.isUseProxy());
+
+
+ OkHttpClient client = createClient(true);
+ OkHttpConnector connector = new OkHttpConnector(client, 3);
+
+ this.gitHub = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl())
+ .withConnector(connector)
+ .build();
+
+ doTestActions();
+
+ // Due to max-age=3 this eventually checks the site and gets updated information. Yay?
+ assertThat(getRepository(gitHub).getDescription(), is("Tricky"));
+
+ checkRequestAndLimit(maxAgeThreeNetworkRequestCount, maxAgeThreeRateLimitUsed);
+
+ Cache cache = client.cache();
+ assertThat("getHitCount", cache.hitCount(), is(maxAgeThreeHitCount));
+ }
+
+ @Test
+ public void OkHttpConnector_Cache_MaxAgeDefault_Zero() throws Exception {
+ // The responses were recorded from github, but the Date headers
+ // have been templated to make caching behavior work as expected.
+ // This is reasonable as long as the number of network requests matches up.
+ snapshotNotAllowed();
+
+ OkHttpClient client = createClient(true);
+ OkHttpConnector connector = new OkHttpConnector(client);
+
+ this.gitHub = getGitHubBuilder()
+ .withEndpoint(githubApi.baseUrl())
+ .withConnector(connector)
+ .build();
+
+ doTestActions();
+
+ // Testing behavior after change
+ // NOTE: max-age=0 produces the same result at uncached without added rate-limit use.
+ assertThat(getRepository(gitHub).getDescription(), is("Tricky"));
+
+ checkRequestAndLimit(maxAgeZeroNetworkRequestCount, maxAgeZeroRateLimitUsed);
+
+ Cache cache = client.cache();
+ assertThat("getHitCount", cache.hitCount(), is(maxAgeZeroHitCount));
+ }
+
+ private void checkRequestAndLimit(int networkRequestCount, int rateLimitUsed) throws IOException {
+ GHRateLimit rateLimitAfter = gitHub.rateLimit();
+ assertThat("Request Count",
+ getRequestCount(),
+ is(networkRequestCount + userRequestCount));
+
+ // Rate limit must be under this value, but if it wiggles we don't care
+ assertThat("Rate Limit Change",
+ rateLimitBefore.remaining - rateLimitAfter.remaining,
+ is(lessThanOrEqualTo(rateLimitUsed + userRequestCount)));
+
+ }
+
+ private int getRequestCount() {
+ return githubApi.countRequestsMatching(RequestPatternBuilder.allRequests().build()).getCount();
+ }
+
+ private OkHttpClient createClient(boolean useCache) throws IOException {
+ OkHttpClient.Builder builder = new OkHttpClient().newBuilder();
+
+ if (useCache) {
+ File cacheDir = new File("target/cache/" + baseFilesClassPath + "/" + githubApi.getMethodName());
+ cacheDir.mkdirs();
+ FileUtils.cleanDirectory(cacheDir);
+ Cache cache = new Cache(cacheDir, 100 * 1024L * 1024L);
+
+ builder.cache(cache);
+ }
+
+ return builder.build();
+ }
+
+
+ /**
+ * This is a standard set of actions to be performed with each connector
+ *
+ * @throws Exception
+ */
+ private void doTestActions() throws Exception {
+ rateLimitBefore = gitHub.getRateLimit();
+
+ String name = githubApi.getMethodName();
+
+
+ GHRepository repo = getRepository(gitHub);
+
+ // Testing behavior when nothing has changed.
+ pollForChange("Resetting");
+ assertThat(getRepository(gitHub).getDescription(), is("Resetting"));
+
+ repo.setDescription(name);
+
+ pollForChange(name);
+
+ // Test behavior after change
+ assertThat(getRepository(gitHub).getDescription(), is(name));
+
+
+ // Get Tricky - make a change via a different client
+ if (githubApi.isUseProxy()) {
+ GHRepository altRepo = getRepository(gitHubBeforeAfter);
+ altRepo.setDescription("Tricky");
+ }
+
+ // Testing behavior after change
+ pollForChange("Tricky");
+ }
+
+ private void pollForChange(String name) throws IOException, InterruptedException {
+ getRepository(gitHub).getDescription();
+ Thread.sleep(500);
+ getRepository(gitHub).getDescription();
+ //This is only interesting when running the max-age=3 test which currently only runs with proxy
+ //Disabled to speed up the tests
+ if (githubApi.isUseProxy()) {
+ Thread.sleep(1000);
+ }
+ getRepository(gitHub).getDescription();
+ //This is only interesting when running the max-age=3 test which currently only runs with proxy
+ //Disabled to speed up the tests
+ if (githubApi.isUseProxy()) {
+ Thread.sleep(4000);
+ }
+ }
+
+ private static GHRepository getRepository(GitHub gitHub) throws IOException {
+ return gitHub.getOrganization("github-api-test-org").getRepository("github-api");
+ }
+
+}
diff --git a/src/test/java/org/kohsuke/github/junit/GitHubApiWireMockRule.java b/src/test/java/org/kohsuke/github/junit/GitHubApiWireMockRule.java
index eac1654c1..2f300f0e2 100644
--- a/src/test/java/org/kohsuke/github/junit/GitHubApiWireMockRule.java
+++ b/src/test/java/org/kohsuke/github/junit/GitHubApiWireMockRule.java
@@ -1,15 +1,31 @@
package org.kohsuke.github.junit;
import com.github.tomakehurst.wiremock.common.FileSource;
-import com.github.tomakehurst.wiremock.core.Options;
+import com.github.tomakehurst.wiremock.common.InputStreamSource;
import com.github.tomakehurst.wiremock.core.WireMockConfiguration;
import com.github.tomakehurst.wiremock.extension.Parameters;
import com.github.tomakehurst.wiremock.extension.ResponseTransformer;
+import com.github.tomakehurst.wiremock.http.HttpHeader;
+import com.github.tomakehurst.wiremock.http.HttpHeaders;
import com.github.tomakehurst.wiremock.http.Request;
import com.github.tomakehurst.wiremock.http.Response;
+import com.google.gson.*;
+import com.jcraft.jsch.IO;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Type;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Collection;
+import java.util.Map;
import static com.github.tomakehurst.wiremock.client.WireMock.*;
import static com.github.tomakehurst.wiremock.client.WireMock.status;
+import static com.github.tomakehurst.wiremock.common.Gzip.gzip;
+import static com.github.tomakehurst.wiremock.common.Gzip.unGzipToString;
/**
* @author Liam Newman
@@ -24,50 +40,67 @@ public class GitHubApiWireMockRule extends WireMockRule {
private final static boolean useProxy = takeSnapshot || System.getProperty("test.github.useProxy", "false") != "false";
public GitHubApiWireMockRule(WireMockConfiguration options) {
- this(options, true);
+ this(options, true);
}
public GitHubApiWireMockRule(WireMockConfiguration options, boolean failOnUnmatchedRequests) {
- super(options
- .extensions(
- new ResponseTransformer() {
- @Override
- public Response transform(Request request, Response response, FileSource files,
- Parameters parameters) {
- if ("application/json"
- .equals(response.getHeaders().getContentTypeHeader().mimeTypePart())
- && !response.getHeaders().getHeader("Content-Encoding").containsValue("gzip")) {
- return Response.Builder.like(response)
- .but()
- .body(response.getBodyAsString()
- .replace("https://api.github.com/",
- "http://localhost:" + request.getPort() + "/")
- )
- .build();
- }
- return response;
- }
+ super(options
+ .extensions(
+ new ResponseTransformer() {
+ @Override
+ public Response transform(Request request, Response response, FileSource files,
+ Parameters parameters) {
+ Response.Builder builder = Response.Builder.like(response);
+ Collection headers = response.getHeaders().all();
+ HttpHeader linkHeader = response.getHeaders().getHeader("Link");
+ if (linkHeader.isPresent()) {
+ headers.removeIf(item -> item.keyEquals("Link"));
+ headers.add(HttpHeader.httpHeader("Link", linkHeader.firstValue()
+ .replace("https://api.github.com/",
+ "http://localhost:" + request.getPort() + "/")));
+ }
- @Override
- public String getName() {
- return "github-api-url-rewrite";
- }
- }),
- failOnUnmatchedRequests);
+ if ("application/json"
+ .equals(response.getHeaders().getContentTypeHeader().mimeTypePart())) {
+
+ String body;
+ if (response.getHeaders().getHeader("Content-Encoding").containsValue("gzip")) {
+ headers.removeIf(item -> item.keyEquals("Content-Encoding"));
+ body = unGzipToString(response.getBody());
+ } else {
+ body = response.getBodyAsString();
+ }
+
+ builder.body(body
+ .replace("https://api.github.com/",
+ "http://localhost:" + request.getPort() + "/"));
+
+ }
+ builder.headers(new HttpHeaders(headers));
+
+ return builder.build();
+ }
+
+ @Override
+ public String getName() {
+ return "github-api-url-rewrite";
+ }
+ }),
+ failOnUnmatchedRequests);
}
public boolean isUseProxy() {
- return GitHubApiWireMockRule.useProxy;
+ return GitHubApiWireMockRule.useProxy;
}
public boolean isTakeSnapshot() {
- return GitHubApiWireMockRule.takeSnapshot;
+ return GitHubApiWireMockRule.takeSnapshot;
}
@Override
protected void before() {
super.before();
- if(isUseProxy()) {
+ if (isUseProxy()) {
this.stubFor(
proxyAllTo("https://api.github.com/")
.atPriority(100)
@@ -84,11 +117,73 @@ public class GitHubApiWireMockRule extends WireMockRule {
@Override
protected void after() {
super.after();
+ // To reformat everything
+ //formatJsonFiles(new File("src/test/resources").toPath());
+
if (isTakeSnapshot()) {
this.snapshotRecord(recordSpec()
.forTarget("https://api.github.com")
.captureHeader("If-None-Match")
.extractTextBodiesOver(255));
+
+ // After taking the snapshot, format the output
+ formatJsonFiles(new File(this.getOptions().filesRoot().getPath()).toPath());
}
}
+
+ private void formatJsonFiles(Path path) {
+ // The more consistent we can make the json output the more meaningful it will be.
+ // TODO: For understandability, rename the files to include the response order
+ Gson g = new Gson().newBuilder().serializeNulls().disableHtmlEscaping().setPrettyPrinting()
+ .registerTypeAdapter(Double.class, new JsonSerializer() {
+ @Override
+ public JsonElement serialize(Double src, Type typeOfSrc, JsonSerializationContext context) {
+ if(src == src.longValue())
+ return new JsonPrimitive(src.longValue());
+ return new JsonPrimitive(src);
+ }
+ })
+ .create();
+
+ try {
+ Files.walk(path)
+ .forEach(filePath -> {
+ try {
+ if (filePath.toString().endsWith(".json")) {
+ String fileText = new String(Files.readAllBytes(filePath));
+ // while recording responses we replaced all github calls localhost
+ // now we reverse that for storage.
+ fileText = fileText.replace(this.baseUrl(),
+ "https://api.github.com");
+ // Can be Array or Map
+ Object parsedObject = g.fromJson(fileText, Object.class);
+ if (parsedObject instanceof Map && filePath.toString().contains("mappings")) {
+ filePath = renameMappingFile(filePath, (Map) parsedObject);
+ }
+ fileText = g.toJson(parsedObject);
+ Files.write(filePath, fileText.getBytes());
+ }
+ } catch (Exception e) {
+ throw new RuntimeException("Files could not be written", e);
+ }
+ });
+ } catch (IOException e) {
+ throw new RuntimeException("Files could not be written");
+ }
+ }
+
+ private Path renameMappingFile(Path filePath, Map parsedObject) throws IOException {
+ Path targetPath = filePath;
+ String id = (String)parsedObject.getOrDefault("id", null);
+ Long insertionIndex = ((Double)parsedObject.getOrDefault("insertionIndex", 0.0)).longValue();
+ if (id != null && insertionIndex > 0) {
+ String filePathString = filePath.toString();
+ if (filePathString.contains(id)) {
+ targetPath = new File(filePathString.replace(id, insertionIndex.toString() + "-" + id.substring(0, 6))).toPath();
+ Files.move(filePath, targetPath);
+ }
+ }
+
+ return targetPath;
+ }
}
diff --git a/src/test/java/org/kohsuke/github/junit/WireMockRule.java b/src/test/java/org/kohsuke/github/junit/WireMockRule.java
index dd16fa112..55cb83693 100644
--- a/src/test/java/org/kohsuke/github/junit/WireMockRule.java
+++ b/src/test/java/org/kohsuke/github/junit/WireMockRule.java
@@ -443,6 +443,18 @@ public class WireMockRule implements MethodRule, TestRule, Container, Stubbing,
return wireMockServer.findUnmatchedRequests();
}
+ public void removeServeEvent(UUID uuid) {
+ wireMockServer.removeServeEvent(uuid);
+ }
+
+ public FindServeEventsResult removeServeEventsMatching(RequestPattern requestPattern) {
+ return wireMockServer.removeServeEventsMatching(requestPattern);
+ }
+
+ public FindServeEventsResult removeServeEventsForStubsMatchingMetadata(StringValuePattern stringValuePattern) {
+ return wireMockServer.removeServeEventsForStubsMatchingMetadata(stringValuePattern);
+ }
+
public void updateGlobalSettings(GlobalSettings newSettings) {
wireMockServer.updateGlobalSettings(newSettings);
}
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/repos_github-api-test-org_github-api-test-31a86a0d-5120-47b8-a9bc-ec4b34a08080.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/repos_github-api-test-org_github-api-test-31a86a0d-5120-47b8-a9bc-ec4b34a08080.json
new file mode 100644
index 000000000..4e1f05cc8
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/repos_github-api-test-org_github-api-test-31a86a0d-5120-47b8-a9bc-ec4b34a08080.json
@@ -0,0 +1,124 @@
+{
+ "id": 212656166,
+ "node_id": "MDEwOlJlcG9zaXRvcnkyMTI2NTYxNjY=",
+ "name": "github-api-test",
+ "full_name": "github-api-test-org/github-api-test",
+ "private": false,
+ "owner": {
+ "login": "github-api-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/7544739?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-api-test-org",
+ "html_url": "https://github.com/github-api-test-org",
+ "followers_url": "https://api.github.com/users/github-api-test-org/followers",
+ "following_url": "https://api.github.com/users/github-api-test-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-api-test-org/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-api-test-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-api-test-org/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-api-test-org/orgs",
+ "repos_url": "https://api.github.com/users/github-api-test-org/repos",
+ "events_url": "https://api.github.com/users/github-api-test-org/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-api-test-org/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/github-api-test-org/github-api-test",
+ "description": "A test repository for testing the github-api project",
+ "fork": false,
+ "url": "https://api.github.com/repos/github-api-test-org/github-api-test",
+ "forks_url": "https://api.github.com/repos/github-api-test-org/github-api-test/forks",
+ "keys_url": "https://api.github.com/repos/github-api-test-org/github-api-test/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/github-api-test-org/github-api-test/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/github-api-test-org/github-api-test/teams",
+ "hooks_url": "https://api.github.com/repos/github-api-test-org/github-api-test/hooks",
+ "issue_events_url": "https://api.github.com/repos/github-api-test-org/github-api-test/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/github-api-test-org/github-api-test/events",
+ "assignees_url": "https://api.github.com/repos/github-api-test-org/github-api-test/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/github-api-test-org/github-api-test/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/github-api-test-org/github-api-test/tags",
+ "blobs_url": "https://api.github.com/repos/github-api-test-org/github-api-test/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/github-api-test-org/github-api-test/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/github-api-test-org/github-api-test/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/github-api-test-org/github-api-test/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/github-api-test-org/github-api-test/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/github-api-test-org/github-api-test/languages",
+ "stargazers_url": "https://api.github.com/repos/github-api-test-org/github-api-test/stargazers",
+ "contributors_url": "https://api.github.com/repos/github-api-test-org/github-api-test/contributors",
+ "subscribers_url": "https://api.github.com/repos/github-api-test-org/github-api-test/subscribers",
+ "subscription_url": "https://api.github.com/repos/github-api-test-org/github-api-test/subscription",
+ "commits_url": "https://api.github.com/repos/github-api-test-org/github-api-test/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/github-api-test-org/github-api-test/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/github-api-test-org/github-api-test/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/github-api-test-org/github-api-test/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/github-api-test-org/github-api-test/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/github-api-test-org/github-api-test/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/github-api-test-org/github-api-test/merges",
+ "archive_url": "https://api.github.com/repos/github-api-test-org/github-api-test/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/github-api-test-org/github-api-test/downloads",
+ "issues_url": "https://api.github.com/repos/github-api-test-org/github-api-test/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/github-api-test-org/github-api-test/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/github-api-test-org/github-api-test/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/github-api-test-org/github-api-test/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/github-api-test-org/github-api-test/labels{/name}",
+ "releases_url": "https://api.github.com/repos/github-api-test-org/github-api-test/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/github-api-test-org/github-api-test/deployments",
+ "created_at": "2019-10-03T18:57:53Z",
+ "updated_at": "2019-10-03T18:57:57Z",
+ "pushed_at": "2019-10-03T18:57:54Z",
+ "git_url": "git://github.com/github-api-test-org/github-api-test.git",
+ "ssh_url": "git@github.com:github-api-test-org/github-api-test.git",
+ "clone_url": "https://github.com/github-api-test-org/github-api-test.git",
+ "svn_url": "https://github.com/github-api-test-org/github-api-test",
+ "homepage": "http://github-api.kohsuke.org/",
+ "size": 0,
+ "stargazers_count": 0,
+ "watchers_count": 0,
+ "language": null,
+ "has_issues": true,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 0,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 0,
+ "license": null,
+ "forks": 0,
+ "open_issues": 0,
+ "watchers": 0,
+ "default_branch": "master",
+ "permissions": {
+ "admin": true,
+ "push": true,
+ "pull": true
+ },
+ "allow_squash_merge": true,
+ "allow_merge_commit": true,
+ "allow_rebase_merge": true,
+ "organization": {
+ "login": "github-api-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/7544739?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-api-test-org",
+ "html_url": "https://github.com/github-api-test-org",
+ "followers_url": "https://api.github.com/users/github-api-test-org/followers",
+ "following_url": "https://api.github.com/users/github-api-test-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-api-test-org/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-api-test-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-api-test-org/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-api-test-org/orgs",
+ "repos_url": "https://api.github.com/users/github-api-test-org/repos",
+ "events_url": "https://api.github.com/users/github-api-test-org/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-api-test-org/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "network_count": 0,
+ "subscribers_count": 2
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/repos_github-api-test-org_github-api-test_deployments-702b7123-86c1-41e0-bee7-f3cb89a3236d.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/repos_github-api-test-org_github-api-test_deployments-702b7123-86c1-41e0-bee7-f3cb89a3236d.json
new file mode 100644
index 000000000..8a0ccba06
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/repos_github-api-test-org_github-api-test_deployments-702b7123-86c1-41e0-bee7-f3cb89a3236d.json
@@ -0,0 +1,36 @@
+{
+ "url": "http://localhost:62379/repos/github-api-test-org/github-api-test/deployments/173089055",
+ "id": 173089055,
+ "node_id": "MDEwOkRlcGxveW1lbnQxNzMwODkwNTU=",
+ "sha": "a446d9fa5c6f43d5f9333b625606909cd4635071",
+ "ref": "master",
+ "task": "deploy",
+ "payload": "{\"user\":\"atmos\",\"room_id\":123456}",
+ "original_environment": "unittest",
+ "environment": "unittest",
+ "description": "question",
+ "creator": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "http://localhost:62379/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "http://localhost:62379/users/bitwiseman/followers",
+ "following_url": "http://localhost:62379/users/bitwiseman/following{/other_user}",
+ "gists_url": "http://localhost:62379/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "http://localhost:62379/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "http://localhost:62379/users/bitwiseman/subscriptions",
+ "organizations_url": "http://localhost:62379/users/bitwiseman/orgs",
+ "repos_url": "http://localhost:62379/users/bitwiseman/repos",
+ "events_url": "http://localhost:62379/users/bitwiseman/events{/privacy}",
+ "received_events_url": "http://localhost:62379/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "created_at": "2019-10-03T18:57:57Z",
+ "updated_at": "2019-10-03T18:57:57Z",
+ "statuses_url": "http://localhost:62379/repos/github-api-test-org/github-api-test/deployments/173089055/statuses",
+ "repository_url": "http://localhost:62379/repos/github-api-test-org/github-api-test"
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/repos_github-api-test-org_github-api-test_deployments-b4bcdadb-a708-4509-9382-479f300eb172.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/repos_github-api-test-org_github-api-test_deployments-b4bcdadb-a708-4509-9382-479f300eb172.json
new file mode 100644
index 000000000..ffacc12cf
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/repos_github-api-test-org_github-api-test_deployments-b4bcdadb-a708-4509-9382-479f300eb172.json
@@ -0,0 +1,38 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api-test-org/github-api-test/deployments/173089055",
+ "id": 173089055,
+ "node_id": "MDEwOkRlcGxveW1lbnQxNzMwODkwNTU=",
+ "sha": "a446d9fa5c6f43d5f9333b625606909cd4635071",
+ "ref": "master",
+ "task": "deploy",
+ "payload": "{\"user\":\"atmos\",\"room_id\":123456}",
+ "original_environment": "unittest",
+ "environment": "unittest",
+ "description": "question",
+ "creator": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "created_at": "2019-10-03T18:57:57Z",
+ "updated_at": "2019-10-03T18:57:57Z",
+ "statuses_url": "https://api.github.com/repos/github-api-test-org/github-api-test/deployments/173089055/statuses",
+ "repository_url": "https://api.github.com/repos/github-api-test-org/github-api-test"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/user-6d2dcbf4-4abf-4180-9b55-ca2931ca31c5.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/user-6d2dcbf4-4abf-4180-9b55-ca2931ca31c5.json
new file mode 100644
index 000000000..39d6c8353
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/__files/user-6d2dcbf4-4abf-4180-9b55-ca2931ca31c5.json
@@ -0,0 +1,45 @@
+{
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false,
+ "name": "Liam Newman",
+ "company": "Cloudbees, Inc.",
+ "blog": "",
+ "location": "Seattle, WA, USA",
+ "email": "bitwiseman@gmail.com",
+ "hireable": null,
+ "bio": "https://twitter.com/bitwiseman",
+ "public_repos": 167,
+ "public_gists": 4,
+ "followers": 136,
+ "following": 9,
+ "created_at": "2012-07-11T20:38:33Z",
+ "updated_at": "2019-09-24T19:32:29Z",
+ "private_gists": 7,
+ "total_private_repos": 9,
+ "owned_private_repos": 0,
+ "disk_usage": 33697,
+ "collaborators": 0,
+ "two_factor_authentication": true,
+ "plan": {
+ "name": "free",
+ "space": 976562499,
+ "collaborators": 0,
+ "private_repos": 10000
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/repos_github-api-test-org_github-api-test-2-31a86a.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/repos_github-api-test-org_github-api-test-2-31a86a.json
new file mode 100644
index 000000000..b1374a479
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/repos_github-api-test-org_github-api-test-2-31a86a.json
@@ -0,0 +1,43 @@
+{
+ "id": "31a86a0d-5120-47b8-a9bc-ec4b34a08080",
+ "name": "repos_github-api-test-org_github-api-test",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_github-api-test-org_github-api-test-31a86a0d-5120-47b8-a9bc-ec4b34a08080.json",
+ "headers": {
+ "Date": "Thu, 03 Oct 2019 18:57:57 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4750",
+ "X-RateLimit-Reset": "1570132527",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"65ee4cf55cf4d084267c80a5d39244c6\"",
+ "Last-Modified": "Thu, 03 Oct 2019 18:57:57 GMT",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "F3AD:3618:10E8DB:149FB6:5D9644B0"
+ }
+ },
+ "uuid": "31a86a0d-5120-47b8-a9bc-ec4b34a08080",
+ "persistent": true,
+ "insertionIndex": 2
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/repos_github-api-test-org_github-api-test_deployments-3-702b71.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/repos_github-api-test-org_github-api-test_deployments-3-702b71.json
new file mode 100644
index 000000000..689b260dc
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/repos_github-api-test-org_github-api-test_deployments-3-702b71.json
@@ -0,0 +1,51 @@
+{
+ "id": "702b7123-86c1-41e0-bee7-f3cb89a3236d",
+ "name": "repos_github-api-test-org_github-api-test_deployments",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/deployments",
+ "method": "POST",
+ "bodyPatterns": [
+ {
+ "equalToJson": "{\"ref\":\"master\",\"environment\":\"unittest\",\"payload\":\"{\\\"user\\\":\\\"atmos\\\",\\\"room_id\\\":123456}\",\"description\":\"question\"}",
+ "ignoreArrayOrder": true,
+ "ignoreExtraElements": true
+ }
+ ]
+ },
+ "response": {
+ "status": 201,
+ "bodyFileName": "repos_github-api-test-org_github-api-test_deployments-702b7123-86c1-41e0-bee7-f3cb89a3236d.json",
+ "headers": {
+ "Date": "Thu, 03 Oct 2019 18:57:57 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "201 Created",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4749",
+ "X-RateLimit-Reset": "1570132527",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "\"c76b22eae3a1d091db2c789a39fecda9\"",
+ "Last-Modified": "Thu, 03 Oct 2019 18:57:57 GMT",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "",
+ "Location": "https://api.github.com/repos/github-api-test-org/github-api-test/deployments/173089055",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "F3AD:3618:10E8DF:149FEF:5D9644B5"
+ }
+ },
+ "uuid": "702b7123-86c1-41e0-bee7-f3cb89a3236d",
+ "persistent": true,
+ "insertionIndex": 3
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/repos_github-api-test-org_github-api-test_deployments-4-b4bcda.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/repos_github-api-test-org_github-api-test_deployments-4-b4bcda.json
new file mode 100644
index 000000000..b5fe8f595
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/repos_github-api-test-org_github-api-test_deployments-4-b4bcda.json
@@ -0,0 +1,42 @@
+{
+ "id": "b4bcdadb-a708-4509-9382-479f300eb172",
+ "name": "repos_github-api-test-org_github-api-test_deployments",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/deployments?ref=master&environment=unittest&",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_github-api-test-org_github-api-test_deployments-b4bcdadb-a708-4509-9382-479f300eb172.json",
+ "headers": {
+ "Date": "Thu, 03 Oct 2019 18:57:58 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4748",
+ "X-RateLimit-Reset": "1570132527",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"b47f03577f96c1081341944009009f7f\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo, repo_deployment",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "F3AD:3618:10E8E2:149FF2:5D9644B5"
+ }
+ },
+ "uuid": "b4bcdadb-a708-4509-9382-479f300eb172",
+ "persistent": true,
+ "insertionIndex": 4
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/user-1-6d2dcb.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/user-1-6d2dcb.json
new file mode 100644
index 000000000..91644f457
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateAndListDeployments/mappings/user-1-6d2dcb.json
@@ -0,0 +1,43 @@
+{
+ "id": "6d2dcbf4-4abf-4180-9b55-ca2931ca31c5",
+ "name": "user",
+ "request": {
+ "url": "/user",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "user-6d2dcbf4-4abf-4180-9b55-ca2931ca31c5.json",
+ "headers": {
+ "Date": "Thu, 03 Oct 2019 18:57:52 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4759",
+ "X-RateLimit-Reset": "1570132527",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"cf6199fecf47b59c42190e1e11147ee2\"",
+ "Last-Modified": "Tue, 24 Sep 2019 19:32:29 GMT",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "F3AD:3618:10E8AA:149FB4:5D9644B0"
+ }
+ },
+ "uuid": "6d2dcbf4-4abf-4180-9b55-ca2931ca31c5",
+ "persistent": true,
+ "insertionIndex": 1
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/orgs_github-api-test-org-6ab1a03d-267b-4675-a8e4-91bbef27f6ec.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/orgs_github-api-test-org-6ab1a03d-267b-4675-a8e4-91bbef27f6ec.json
new file mode 100644
index 000000000..5605b36c3
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/orgs_github-api-test-org-6ab1a03d-267b-4675-a8e4-91bbef27f6ec.json
@@ -0,0 +1,41 @@
+{
+ "login": "github-api-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "url": "https://api.github.com/orgs/github-api-test-org",
+ "repos_url": "https://api.github.com/orgs/github-api-test-org/repos",
+ "events_url": "https://api.github.com/orgs/github-api-test-org/events",
+ "hooks_url": "https://api.github.com/orgs/github-api-test-org/hooks",
+ "issues_url": "https://api.github.com/orgs/github-api-test-org/issues",
+ "members_url": "https://api.github.com/orgs/github-api-test-org/members{/member}",
+ "public_members_url": "https://api.github.com/orgs/github-api-test-org/public_members{/member}",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/7544739?v=4",
+ "description": null,
+ "is_verified": false,
+ "has_organization_projects": true,
+ "has_repository_projects": true,
+ "public_repos": 10,
+ "public_gists": 0,
+ "followers": 0,
+ "following": 0,
+ "html_url": "https://github.com/github-api-test-org",
+ "created_at": "2014-05-10T19:39:11Z",
+ "updated_at": "2015-04-20T00:42:30Z",
+ "type": "Organization",
+ "total_private_repos": 0,
+ "owned_private_repos": 0,
+ "private_gists": 0,
+ "disk_usage": 132,
+ "collaborators": 0,
+ "billing_email": "kk@kohsuke.org",
+ "default_repository_permission": "none",
+ "members_can_create_repositories": false,
+ "two_factor_requirement_enabled": false,
+ "plan": {
+ "name": "free",
+ "space": 976562499,
+ "private_repos": 0,
+ "filled_seats": 3,
+ "seats": 0
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test-2d35cecf-0212-47d5-8dd3-15b4838d56c6.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test-2d35cecf-0212-47d5-8dd3-15b4838d56c6.json
new file mode 100644
index 000000000..f7ffcfba0
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test-2d35cecf-0212-47d5-8dd3-15b4838d56c6.json
@@ -0,0 +1,124 @@
+{
+ "id": 212423833,
+ "node_id": "MDEwOlJlcG9zaXRvcnkyMTI0MjM4MzM=",
+ "name": "github-api-test",
+ "full_name": "github-api-test-org/github-api-test",
+ "private": false,
+ "owner": {
+ "login": "github-api-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/7544739?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-api-test-org",
+ "html_url": "https://github.com/github-api-test-org",
+ "followers_url": "https://api.github.com/users/github-api-test-org/followers",
+ "following_url": "https://api.github.com/users/github-api-test-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-api-test-org/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-api-test-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-api-test-org/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-api-test-org/orgs",
+ "repos_url": "https://api.github.com/users/github-api-test-org/repos",
+ "events_url": "https://api.github.com/users/github-api-test-org/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-api-test-org/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/github-api-test-org/github-api-test",
+ "description": "A test repository for testing the github-api project",
+ "fork": false,
+ "url": "https://api.github.com/repos/github-api-test-org/github-api-test",
+ "forks_url": "https://api.github.com/repos/github-api-test-org/github-api-test/forks",
+ "keys_url": "https://api.github.com/repos/github-api-test-org/github-api-test/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/github-api-test-org/github-api-test/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/github-api-test-org/github-api-test/teams",
+ "hooks_url": "https://api.github.com/repos/github-api-test-org/github-api-test/hooks",
+ "issue_events_url": "https://api.github.com/repos/github-api-test-org/github-api-test/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/github-api-test-org/github-api-test/events",
+ "assignees_url": "https://api.github.com/repos/github-api-test-org/github-api-test/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/github-api-test-org/github-api-test/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/github-api-test-org/github-api-test/tags",
+ "blobs_url": "https://api.github.com/repos/github-api-test-org/github-api-test/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/github-api-test-org/github-api-test/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/github-api-test-org/github-api-test/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/github-api-test-org/github-api-test/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/github-api-test-org/github-api-test/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/github-api-test-org/github-api-test/languages",
+ "stargazers_url": "https://api.github.com/repos/github-api-test-org/github-api-test/stargazers",
+ "contributors_url": "https://api.github.com/repos/github-api-test-org/github-api-test/contributors",
+ "subscribers_url": "https://api.github.com/repos/github-api-test-org/github-api-test/subscribers",
+ "subscription_url": "https://api.github.com/repos/github-api-test-org/github-api-test/subscription",
+ "commits_url": "https://api.github.com/repos/github-api-test-org/github-api-test/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/github-api-test-org/github-api-test/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/github-api-test-org/github-api-test/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/github-api-test-org/github-api-test/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/github-api-test-org/github-api-test/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/github-api-test-org/github-api-test/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/github-api-test-org/github-api-test/merges",
+ "archive_url": "https://api.github.com/repos/github-api-test-org/github-api-test/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/github-api-test-org/github-api-test/downloads",
+ "issues_url": "https://api.github.com/repos/github-api-test-org/github-api-test/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/github-api-test-org/github-api-test/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/github-api-test-org/github-api-test/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/github-api-test-org/github-api-test/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/github-api-test-org/github-api-test/labels{/name}",
+ "releases_url": "https://api.github.com/repos/github-api-test-org/github-api-test/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/github-api-test-org/github-api-test/deployments",
+ "created_at": "2019-10-02T19:25:19Z",
+ "updated_at": "2019-10-02T19:25:34Z",
+ "pushed_at": "2019-10-02T19:25:20Z",
+ "git_url": "git://github.com/github-api-test-org/github-api-test.git",
+ "ssh_url": "git@github.com:github-api-test-org/github-api-test.git",
+ "clone_url": "https://github.com/github-api-test-org/github-api-test.git",
+ "svn_url": "https://github.com/github-api-test-org/github-api-test",
+ "homepage": "http://github-api.kohsuke.org/",
+ "size": 0,
+ "stargazers_count": 0,
+ "watchers_count": 0,
+ "language": null,
+ "has_issues": true,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": false,
+ "forks_count": 0,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 0,
+ "license": null,
+ "forks": 0,
+ "open_issues": 0,
+ "watchers": 0,
+ "default_branch": "master",
+ "permissions": {
+ "admin": true,
+ "push": true,
+ "pull": true
+ },
+ "allow_squash_merge": true,
+ "allow_merge_commit": true,
+ "allow_rebase_merge": true,
+ "organization": {
+ "login": "github-api-test-org",
+ "id": 7544739,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjc1NDQ3Mzk=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/7544739?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-api-test-org",
+ "html_url": "https://github.com/github-api-test-org",
+ "followers_url": "https://api.github.com/users/github-api-test-org/followers",
+ "following_url": "https://api.github.com/users/github-api-test-org/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-api-test-org/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-api-test-org/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-api-test-org/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-api-test-org/orgs",
+ "repos_url": "https://api.github.com/users/github-api-test-org/repos",
+ "events_url": "https://api.github.com/users/github-api-test-org/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-api-test-org/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "network_count": 0,
+ "subscribers_count": 2
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_issues-4c0eec6b-2118-4a14-8a95-3e55fd260384.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_issues-4c0eec6b-2118-4a14-8a95-3e55fd260384.json
new file mode 100644
index 000000000..c718f2762
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_issues-4c0eec6b-2118-4a14-8a95-3e55fd260384.json
@@ -0,0 +1,138 @@
+{
+ "url": "http://localhost:51126/repos/github-api-test-org/github-api-test/issues/1",
+ "repository_url": "http://localhost:51126/repos/github-api-test-org/github-api-test",
+ "labels_url": "http://localhost:51126/repos/github-api-test-org/github-api-test/issues/1/labels{/name}",
+ "comments_url": "http://localhost:51126/repos/github-api-test-org/github-api-test/issues/1/comments",
+ "events_url": "http://localhost:51126/repos/github-api-test-org/github-api-test/issues/1/events",
+ "html_url": "https://github.com/github-api-test-org/github-api-test/issues/1",
+ "id": 501750408,
+ "node_id": "MDU6SXNzdWU1MDE3NTA0MDg=",
+ "number": 1,
+ "title": "testing",
+ "user": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "http://localhost:51126/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "http://localhost:51126/users/bitwiseman/followers",
+ "following_url": "http://localhost:51126/users/bitwiseman/following{/other_user}",
+ "gists_url": "http://localhost:51126/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "http://localhost:51126/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "http://localhost:51126/users/bitwiseman/subscriptions",
+ "organizations_url": "http://localhost:51126/users/bitwiseman/orgs",
+ "repos_url": "http://localhost:51126/users/bitwiseman/repos",
+ "events_url": "http://localhost:51126/users/bitwiseman/events{/privacy}",
+ "received_events_url": "http://localhost:51126/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1592005563,
+ "node_id": "MDU6TGFiZWwxNTkyMDA1NTYz",
+ "url": "http://localhost:51126/repos/github-api-test-org/github-api-test/labels/bug",
+ "name": "bug",
+ "color": "d73a4a",
+ "default": true
+ },
+ {
+ "id": 1592005574,
+ "node_id": "MDU6TGFiZWwxNTkyMDA1NTc0",
+ "url": "http://localhost:51126/repos/github-api-test-org/github-api-test/labels/question",
+ "name": "question",
+ "color": "d876e3",
+ "default": true
+ }
+ ],
+ "state": "open",
+ "locked": false,
+ "assignee": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "http://localhost:51126/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "http://localhost:51126/users/bitwiseman/followers",
+ "following_url": "http://localhost:51126/users/bitwiseman/following{/other_user}",
+ "gists_url": "http://localhost:51126/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "http://localhost:51126/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "http://localhost:51126/users/bitwiseman/subscriptions",
+ "organizations_url": "http://localhost:51126/users/bitwiseman/orgs",
+ "repos_url": "http://localhost:51126/users/bitwiseman/repos",
+ "events_url": "http://localhost:51126/users/bitwiseman/events{/privacy}",
+ "received_events_url": "http://localhost:51126/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "http://localhost:51126/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "http://localhost:51126/users/bitwiseman/followers",
+ "following_url": "http://localhost:51126/users/bitwiseman/following{/other_user}",
+ "gists_url": "http://localhost:51126/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "http://localhost:51126/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "http://localhost:51126/users/bitwiseman/subscriptions",
+ "organizations_url": "http://localhost:51126/users/bitwiseman/orgs",
+ "repos_url": "http://localhost:51126/users/bitwiseman/repos",
+ "events_url": "http://localhost:51126/users/bitwiseman/events{/privacy}",
+ "received_events_url": "http://localhost:51126/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "http://localhost:51126/repos/github-api-test-org/github-api-test/milestones/1",
+ "html_url": "https://github.com/github-api-test-org/github-api-test/milestone/1",
+ "labels_url": "http://localhost:51126/repos/github-api-test-org/github-api-test/milestones/1/labels",
+ "id": 4715278,
+ "node_id": "MDk6TWlsZXN0b25lNDcxNTI3OA==",
+ "number": 1,
+ "title": "Test Milestone Title2",
+ "description": "Test Milestone",
+ "creator": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "http://localhost:51126/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "http://localhost:51126/users/bitwiseman/followers",
+ "following_url": "http://localhost:51126/users/bitwiseman/following{/other_user}",
+ "gists_url": "http://localhost:51126/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "http://localhost:51126/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "http://localhost:51126/users/bitwiseman/subscriptions",
+ "organizations_url": "http://localhost:51126/users/bitwiseman/orgs",
+ "repos_url": "http://localhost:51126/users/bitwiseman/repos",
+ "events_url": "http://localhost:51126/users/bitwiseman/events{/privacy}",
+ "received_events_url": "http://localhost:51126/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "open_issues": 1,
+ "closed_issues": 0,
+ "state": "open",
+ "created_at": "2019-10-02T22:04:13Z",
+ "updated_at": "2019-10-02T22:04:13Z",
+ "due_on": null,
+ "closed_at": null
+ },
+ "comments": 0,
+ "created_at": "2019-10-02T22:04:13Z",
+ "updated_at": "2019-10-02T22:04:14Z",
+ "closed_at": null,
+ "author_association": "MEMBER",
+ "body": "this is body",
+ "closed_by": null
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_issues_1-b2b352de-1dfc-4bbf-8b29-6699c09adcba.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_issues_1-b2b352de-1dfc-4bbf-8b29-6699c09adcba.json
new file mode 100644
index 000000000..001e4cbd7
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_issues_1-b2b352de-1dfc-4bbf-8b29-6699c09adcba.json
@@ -0,0 +1,157 @@
+{
+ "url": "https://api.github.com/repos/github-api-test-org/github-api-test/issues/1",
+ "repository_url": "https://api.github.com/repos/github-api-test-org/github-api-test",
+ "labels_url": "https://api.github.com/repos/github-api-test-org/github-api-test/issues/1/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api-test-org/github-api-test/issues/1/comments",
+ "events_url": "https://api.github.com/repos/github-api-test-org/github-api-test/issues/1/events",
+ "html_url": "https://github.com/github-api-test-org/github-api-test/issues/1",
+ "id": 501750408,
+ "node_id": "MDU6SXNzdWU1MDE3NTA0MDg=",
+ "number": 1,
+ "title": "testing",
+ "user": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1592005563,
+ "node_id": "MDU6TGFiZWwxNTkyMDA1NTYz",
+ "url": "https://api.github.com/repos/github-api-test-org/github-api-test/labels/bug",
+ "name": "bug",
+ "color": "d73a4a",
+ "default": true
+ },
+ {
+ "id": 1592005574,
+ "node_id": "MDU6TGFiZWwxNTkyMDA1NTc0",
+ "url": "https://api.github.com/repos/github-api-test-org/github-api-test/labels/question",
+ "name": "question",
+ "color": "d876e3",
+ "default": true
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "assignees": [
+ {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+ ],
+ "milestone": {
+ "url": "https://api.github.com/repos/github-api-test-org/github-api-test/milestones/1",
+ "html_url": "https://github.com/github-api-test-org/github-api-test/milestone/1",
+ "labels_url": "https://api.github.com/repos/github-api-test-org/github-api-test/milestones/1/labels",
+ "id": 4715278,
+ "node_id": "MDk6TWlsZXN0b25lNDcxNTI3OA==",
+ "number": 1,
+ "title": "Test Milestone Title2",
+ "description": "Test Milestone",
+ "creator": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 1,
+ "state": "open",
+ "created_at": "2019-10-02T22:04:13Z",
+ "updated_at": "2019-10-02T22:04:14Z",
+ "due_on": null,
+ "closed_at": null
+ },
+ "comments": 0,
+ "created_at": "2019-10-02T22:04:13Z",
+ "updated_at": "2019-10-02T22:04:14Z",
+ "closed_at": "2019-10-02T22:04:14Z",
+ "author_association": "MEMBER",
+ "body": "this is body",
+ "closed_by": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_milestones-9f6e9872-cdec-405b-a820-838d4a40ab00.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_milestones-9f6e9872-cdec-405b-a820-838d4a40ab00.json
new file mode 100644
index 000000000..bd6ce8be6
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_milestones-9f6e9872-cdec-405b-a820-838d4a40ab00.json
@@ -0,0 +1,37 @@
+{
+ "url": "http://localhost:51162/repos/github-api-test-org/github-api-test/milestones/1",
+ "html_url": "https://github.com/github-api-test-org/github-api-test/milestone/1",
+ "labels_url": "http://localhost:51162/repos/github-api-test-org/github-api-test/milestones/1/labels",
+ "id": 4715281,
+ "node_id": "MDk6TWlsZXN0b25lNDcxNTI4MQ==",
+ "number": 1,
+ "title": "Test Milestone Title3",
+ "description": "Test Milestone",
+ "creator": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "http://localhost:51162/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "http://localhost:51162/users/bitwiseman/followers",
+ "following_url": "http://localhost:51162/users/bitwiseman/following{/other_user}",
+ "gists_url": "http://localhost:51162/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "http://localhost:51162/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "http://localhost:51162/users/bitwiseman/subscriptions",
+ "organizations_url": "http://localhost:51162/users/bitwiseman/orgs",
+ "repos_url": "http://localhost:51162/users/bitwiseman/repos",
+ "events_url": "http://localhost:51162/users/bitwiseman/events{/privacy}",
+ "received_events_url": "http://localhost:51162/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 0,
+ "state": "open",
+ "created_at": "2019-10-02T22:04:51Z",
+ "updated_at": "2019-10-02T22:04:51Z",
+ "due_on": null,
+ "closed_at": null
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_milestones-c528f3b4-7651-4943-8247-fc4eb960f7c7.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_milestones-c528f3b4-7651-4943-8247-fc4eb960f7c7.json
new file mode 100644
index 000000000..24eb55112
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/repos_github-api-test-org_github-api-test_milestones-c528f3b4-7651-4943-8247-fc4eb960f7c7.json
@@ -0,0 +1,37 @@
+{
+ "url": "http://localhost:51126/repos/github-api-test-org/github-api-test/milestones/1",
+ "html_url": "https://github.com/github-api-test-org/github-api-test/milestone/1",
+ "labels_url": "http://localhost:51126/repos/github-api-test-org/github-api-test/milestones/1/labels",
+ "id": 4715278,
+ "node_id": "MDk6TWlsZXN0b25lNDcxNTI3OA==",
+ "number": 1,
+ "title": "Test Milestone Title2",
+ "description": "Test Milestone",
+ "creator": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "http://localhost:51126/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "http://localhost:51126/users/bitwiseman/followers",
+ "following_url": "http://localhost:51126/users/bitwiseman/following{/other_user}",
+ "gists_url": "http://localhost:51126/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "http://localhost:51126/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "http://localhost:51126/users/bitwiseman/subscriptions",
+ "organizations_url": "http://localhost:51126/users/bitwiseman/orgs",
+ "repos_url": "http://localhost:51126/users/bitwiseman/repos",
+ "events_url": "http://localhost:51126/users/bitwiseman/events{/privacy}",
+ "received_events_url": "http://localhost:51126/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "open_issues": 0,
+ "closed_issues": 0,
+ "state": "open",
+ "created_at": "2019-10-02T22:04:13Z",
+ "updated_at": "2019-10-02T22:04:13Z",
+ "due_on": null,
+ "closed_at": null
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/user-8104cc51-7147-4bc3-9004-2cec25e972f8.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/user-8104cc51-7147-4bc3-9004-2cec25e972f8.json
new file mode 100644
index 000000000..39d6c8353
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/__files/user-8104cc51-7147-4bc3-9004-2cec25e972f8.json
@@ -0,0 +1,45 @@
+{
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false,
+ "name": "Liam Newman",
+ "company": "Cloudbees, Inc.",
+ "blog": "",
+ "location": "Seattle, WA, USA",
+ "email": "bitwiseman@gmail.com",
+ "hireable": null,
+ "bio": "https://twitter.com/bitwiseman",
+ "public_repos": 167,
+ "public_gists": 4,
+ "followers": 136,
+ "following": 9,
+ "created_at": "2012-07-11T20:38:33Z",
+ "updated_at": "2019-09-24T19:32:29Z",
+ "private_gists": 7,
+ "total_private_repos": 9,
+ "owned_private_repos": 0,
+ "disk_usage": 33697,
+ "collaborators": 0,
+ "two_factor_authentication": true,
+ "plan": {
+ "name": "free",
+ "space": 976562499,
+ "collaborators": 0,
+ "private_repos": 10000
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test-2-2d35ce.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test-2-2d35ce.json
new file mode 100644
index 000000000..63d7f0059
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test-2-2d35ce.json
@@ -0,0 +1,43 @@
+{
+ "id": "2d35cecf-0212-47d5-8dd3-15b4838d56c6",
+ "name": "repos_github-api-test-org_github-api-test",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_github-api-test-org_github-api-test-2d35cecf-0212-47d5-8dd3-15b4838d56c6.json",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 21:39:59 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4956",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"5808cf093e2e56c1894809cd197b2abc\"",
+ "Last-Modified": "Wed, 02 Oct 2019 19:25:34 GMT",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C2C1:361D:9BDE30:B8EDBE:5D95192F"
+ }
+ },
+ "uuid": "2d35cecf-0212-47d5-8dd3-15b4838d56c6",
+ "persistent": true,
+ "insertionIndex": 2
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-4-0765fd.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-4-0765fd.json
new file mode 100644
index 000000000..fddb52050
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-4-0765fd.json
@@ -0,0 +1,45 @@
+{
+ "id": "0765fda8-b2f8-4474-8936-f02c33023e52",
+ "name": "repos_github-api-test-org_github-api-test_hooks",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/hooks",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "body": "[]",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 21:55:20 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4877",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "\"ad5808b0a5d75d70a16a73b8e9763e19\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "admin:repo_hook, public_repo, read:repo_hook, repo, write:repo_hook",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C568:957A:C9FE0F:F131B4:5D951CC8"
+ }
+ },
+ "uuid": "0765fda8-b2f8-4474-8936-f02c33023e52",
+ "persistent": true,
+ "scenarioName": "scenario-1-repos-github-api-test-org-github-api-test-hooks",
+ "requiredScenarioState": "Started",
+ "newScenarioState": "scenario-1-repos-github-api-test-org-github-api-test-hooks-2",
+ "insertionIndex": 4
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-5-9f3310.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-5-9f3310.json
new file mode 100644
index 000000000..09a1040fe
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-5-9f3310.json
@@ -0,0 +1,45 @@
+{
+ "id": "9f3310d4-dd87-4af5-8a0d-1b4dfa8eb868",
+ "name": "repos_github-api-test-org_github-api-test_hooks",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/hooks",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "body": "[]",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 21:55:21 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4876",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "\"ad5808b0a5d75d70a16a73b8e9763e19\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "admin:repo_hook, public_repo, read:repo_hook, repo, write:repo_hook",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C568:957A:C9FECD:F131CD:5D951CC8"
+ }
+ },
+ "uuid": "9f3310d4-dd87-4af5-8a0d-1b4dfa8eb868",
+ "persistent": true,
+ "scenarioName": "scenario-1-repos-github-api-test-org-github-api-test-hooks",
+ "requiredScenarioState": "scenario-1-repos-github-api-test-org-github-api-test-hooks-2",
+ "newScenarioState": "scenario-1-repos-github-api-test-org-github-api-test-hooks-3",
+ "insertionIndex": 5
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-7-3dddac.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-7-3dddac.json
new file mode 100644
index 000000000..f3adfb497
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-7-3dddac.json
@@ -0,0 +1,45 @@
+{
+ "id": "3dddac88-e8cb-4c36-ab50-157ef996f9b3",
+ "name": "repos_github-api-test-org_github-api-test_hooks",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/hooks",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "body": "[]",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 21:58:13 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4874",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "\"ad5808b0a5d75d70a16a73b8e9763e19\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "admin:repo_hook, public_repo, read:repo_hook, repo, write:repo_hook",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C641:67D6:CC4C32:F283ED:5D951D75"
+ }
+ },
+ "uuid": "3dddac88-e8cb-4c36-ab50-157ef996f9b3",
+ "persistent": true,
+ "scenarioName": "scenario-1-repos-github-api-test-org-github-api-test-hooks",
+ "requiredScenarioState": "scenario-1-repos-github-api-test-org-github-api-test-hooks-3",
+ "newScenarioState": "scenario-1-repos-github-api-test-org-github-api-test-hooks-4",
+ "insertionIndex": 7
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-8-8cfab8.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-8-8cfab8.json
new file mode 100644
index 000000000..9f2cef8f5
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_hooks-8-8cfab8.json
@@ -0,0 +1,44 @@
+{
+ "id": "8cfab8d4-7115-4dc1-ac02-7a99a1428d2c",
+ "name": "repos_github-api-test-org_github-api-test_hooks",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/hooks",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "body": "[]",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 21:58:15 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4873",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "\"ad5808b0a5d75d70a16a73b8e9763e19\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "admin:repo_hook, public_repo, read:repo_hook, repo, write:repo_hook",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C641:67D6:CC4CE8:F28405:5D951D75"
+ }
+ },
+ "uuid": "8cfab8d4-7115-4dc1-ac02-7a99a1428d2c",
+ "persistent": true,
+ "scenarioName": "scenario-1-repos-github-api-test-org-github-api-test-hooks",
+ "requiredScenarioState": "scenario-1-repos-github-api-test-org-github-api-test-hooks-4",
+ "insertionIndex": 8
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_issues-10-4c0eec.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_issues-10-4c0eec.json
new file mode 100644
index 000000000..92bc23789
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_issues-10-4c0eec.json
@@ -0,0 +1,50 @@
+{
+ "id": "4c0eec6b-2118-4a14-8a95-3e55fd260384",
+ "name": "repos_github-api-test-org_github-api-test_issues",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/issues",
+ "method": "POST",
+ "bodyPatterns": [
+ {
+ "equalToJson": "{\"milestone\":1,\"assignees\":[\"bitwiseman\"],\"title\":\"testing\",\"body\":\"this is body\",\"labels\":[\"bug\",\"question\"]}",
+ "ignoreArrayOrder": true,
+ "ignoreExtraElements": true
+ }
+ ]
+ },
+ "response": {
+ "status": 201,
+ "bodyFileName": "repos_github-api-test-org_github-api-test_issues-4c0eec6b-2118-4a14-8a95-3e55fd260384.json",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 22:04:14 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "201 Created",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4856",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "\"da80c0ddf30a92e2f67e99710e305521\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "",
+ "Location": "https://api.github.com/repos/github-api-test-org/github-api-test/issues/1",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C7C8:67D5:8932C5:A52738:5D951EDD"
+ }
+ },
+ "uuid": "4c0eec6b-2118-4a14-8a95-3e55fd260384",
+ "persistent": true,
+ "insertionIndex": 10
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_issues_1-11-b2b352.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_issues_1-11-b2b352.json
new file mode 100644
index 000000000..d4680339c
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_issues_1-11-b2b352.json
@@ -0,0 +1,49 @@
+{
+ "id": "b2b352de-1dfc-4bbf-8b29-6699c09adcba",
+ "name": "repos_github-api-test-org_github-api-test_issues_1",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/issues/1",
+ "method": "PATCH",
+ "bodyPatterns": [
+ {
+ "equalToJson": "{\"state\":\"closed\"}",
+ "ignoreArrayOrder": true,
+ "ignoreExtraElements": true
+ }
+ ]
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_github-api-test-org_github-api-test_issues_1-b2b352de-1dfc-4bbf-8b29-6699c09adcba.json",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 22:04:14 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4855",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"c747dbe6b23b7df1b44abcdf422594da\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C7C8:67D5:893322:A527A2:5D951EDE"
+ }
+ },
+ "uuid": "b2b352de-1dfc-4bbf-8b29-6699c09adcba",
+ "persistent": true,
+ "insertionIndex": 11
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-12-9f6e98.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-12-9f6e98.json
new file mode 100644
index 000000000..52258c7f4
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-12-9f6e98.json
@@ -0,0 +1,50 @@
+{
+ "id": "9f6e9872-cdec-405b-a820-838d4a40ab00",
+ "name": "repos_github-api-test-org_github-api-test_milestones",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/milestones",
+ "method": "POST",
+ "bodyPatterns": [
+ {
+ "equalToJson": "{\"description\":\"Test Milestone\",\"title\":\"Test Milestone Title3\"}",
+ "ignoreArrayOrder": true,
+ "ignoreExtraElements": true
+ }
+ ]
+ },
+ "response": {
+ "status": 201,
+ "bodyFileName": "repos_github-api-test-org_github-api-test_milestones-9f6e9872-cdec-405b-a820-838d4a40ab00.json",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 22:04:51 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "201 Created",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4847",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "\"c7e702bb14033f392f15666e3c20f786\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "",
+ "Location": "https://api.github.com/repos/github-api-test-org/github-api-test/milestones/1",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C7E2:2CE7:A1D690:BEC182:5D951F03"
+ }
+ },
+ "uuid": "9f6e9872-cdec-405b-a820-838d4a40ab00",
+ "persistent": true,
+ "insertionIndex": 12
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-3-7cb4f1.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-3-7cb4f1.json
new file mode 100644
index 000000000..5097fa633
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-3-7cb4f1.json
@@ -0,0 +1,43 @@
+{
+ "id": "7cb4f11b-01c1-4f10-b53f-a8be6ed9f5fe",
+ "name": "repos_github-api-test-org_github-api-test_milestones",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/milestones",
+ "method": "POST",
+ "bodyPatterns": [
+ {
+ "equalToJson": "{\"description\":\"Test Milestone\",\"title\":\"Test Milestone Title\"}",
+ "ignoreArrayOrder": true,
+ "ignoreExtraElements": true
+ }
+ ]
+ },
+ "response": {
+ "status": 422,
+ "body": "{\"message\":\"Validation Failed\",\"errors\":[{\"resource\":\"Milestone\",\"code\":\"already_exists\",\"field\":\"title\"}],\"documentation_url\":\"https://developer.github.com/v3/issues/milestones/#create-a-milestone\"}",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 21:40:00 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "422 Unprocessable Entity",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4955",
+ "X-RateLimit-Reset": "1570055937",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C2C1:361D:9BDE40:B8EE01:5D95192F"
+ }
+ },
+ "uuid": "7cb4f11b-01c1-4f10-b53f-a8be6ed9f5fe",
+ "persistent": true,
+ "insertionIndex": 3
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-6-9a91aa.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-6-9a91aa.json
new file mode 100644
index 000000000..f6315b52b
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-6-9a91aa.json
@@ -0,0 +1,42 @@
+{
+ "id": "9a91aa37-0169-4a92-bedb-2676773ccdb3",
+ "name": "repos_github-api-test-org_github-api-test_milestones",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/milestones?state=open",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "body": "[]",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 21:56:05 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4875",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "\"ad5808b0a5d75d70a16a73b8e9763e19\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C568:957A:CA16C3:F13297:5D951CC9"
+ }
+ },
+ "uuid": "9a91aa37-0169-4a92-bedb-2676773ccdb3",
+ "persistent": true,
+ "insertionIndex": 6
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-9-c528f3.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-9-c528f3.json
new file mode 100644
index 000000000..f1885f938
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/repos_github-api-test-org_github-api-test_milestones-9-c528f3.json
@@ -0,0 +1,50 @@
+{
+ "id": "c528f3b4-7651-4943-8247-fc4eb960f7c7",
+ "name": "repos_github-api-test-org_github-api-test_milestones",
+ "request": {
+ "url": "/repos/github-api-test-org/github-api-test/milestones",
+ "method": "POST",
+ "bodyPatterns": [
+ {
+ "equalToJson": "{\"description\":\"Test Milestone\",\"title\":\"Test Milestone Title2\"}",
+ "ignoreArrayOrder": true,
+ "ignoreExtraElements": true
+ }
+ ]
+ },
+ "response": {
+ "status": 201,
+ "bodyFileName": "repos_github-api-test-org_github-api-test_milestones-c528f3b4-7651-4943-8247-fc4eb960f7c7.json",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 22:04:13 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "201 Created",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4857",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "\"b35242ca101f84f1be21e1508b9851a3\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "",
+ "Location": "https://api.github.com/repos/github-api-test-org/github-api-test/milestones/1",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C7C8:67D5:8932AC:A5271D:5D951EDC"
+ }
+ },
+ "uuid": "c528f3b4-7651-4943-8247-fc4eb960f7c7",
+ "persistent": true,
+ "insertionIndex": 9
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/user-1-8104cc.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/user-1-8104cc.json
new file mode 100644
index 000000000..43b384287
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCreateIssue/mappings/user-1-8104cc.json
@@ -0,0 +1,43 @@
+{
+ "id": "8104cc51-7147-4bc3-9004-2cec25e972f8",
+ "name": "user",
+ "request": {
+ "url": "/user",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "user-8104cc51-7147-4bc3-9004-2cec25e972f8.json",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 21:39:59 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4958",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"cf6199fecf47b59c42190e1e11147ee2\"",
+ "Last-Modified": "Tue, 24 Sep 2019 19:32:29 GMT",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C2C1:361D:9BDE00:B8EDB3:5D95192F"
+ }
+ },
+ "uuid": "8104cc51-7147-4bc3-9004-2cec25e972f8",
+ "persistent": true,
+ "insertionIndex": 1
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCredentialValid/__files/user-eba96b24-3354-4d21-bd2a-388a13ba9832.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCredentialValid/__files/user-eba96b24-3354-4d21-bd2a-388a13ba9832.json
new file mode 100644
index 000000000..39d6c8353
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCredentialValid/__files/user-eba96b24-3354-4d21-bd2a-388a13ba9832.json
@@ -0,0 +1,45 @@
+{
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false,
+ "name": "Liam Newman",
+ "company": "Cloudbees, Inc.",
+ "blog": "",
+ "location": "Seattle, WA, USA",
+ "email": "bitwiseman@gmail.com",
+ "hireable": null,
+ "bio": "https://twitter.com/bitwiseman",
+ "public_repos": 167,
+ "public_gists": 4,
+ "followers": 136,
+ "following": 9,
+ "created_at": "2012-07-11T20:38:33Z",
+ "updated_at": "2019-09-24T19:32:29Z",
+ "private_gists": 7,
+ "total_private_repos": 9,
+ "owned_private_repos": 0,
+ "disk_usage": 33697,
+ "collaborators": 0,
+ "two_factor_authentication": true,
+ "plan": {
+ "name": "free",
+ "space": 976562499,
+ "collaborators": 0,
+ "private_repos": 10000
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCredentialValid/mappings/user-1-eba96b.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCredentialValid/mappings/user-1-eba96b.json
new file mode 100644
index 000000000..40af3e7e8
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testCredentialValid/mappings/user-1-eba96b.json
@@ -0,0 +1,43 @@
+{
+ "id": "eba96b24-3354-4d21-bd2a-388a13ba9832",
+ "name": "user",
+ "request": {
+ "url": "/user",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "user-eba96b24-3354-4d21-bd2a-388a13ba9832.json",
+ "headers": {
+ "Date": "Wed, 02 Oct 2019 21:39:57 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4964",
+ "X-RateLimit-Reset": "1570055937",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"cf6199fecf47b59c42190e1e11147ee2\"",
+ "Last-Modified": "Tue, 24 Sep 2019 19:32:29 GMT",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "C2BA:67D6:CA2979:EFEEDC:5D95192D"
+ }
+ },
+ "uuid": "eba96b24-3354-4d21-bd2a-388a13ba9832",
+ "persistent": true,
+ "insertionIndex": 1
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/orgs_github-api-baecb5db-6e9c-441b-8414-c8070d9bc0c2.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/orgs_github-api-baecb5db-6e9c-441b-8414-c8070d9bc0c2.json
new file mode 100644
index 000000000..7dc968a99
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/orgs_github-api-baecb5db-6e9c-441b-8414-c8070d9bc0c2.json
@@ -0,0 +1,41 @@
+{
+ "login": "github-api",
+ "id": 54909825,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjU0OTA5ODI1",
+ "url": "https://api.github.com/orgs/github-api",
+ "repos_url": "https://api.github.com/orgs/github-api/repos",
+ "events_url": "https://api.github.com/orgs/github-api/events",
+ "hooks_url": "https://api.github.com/orgs/github-api/hooks",
+ "issues_url": "https://api.github.com/orgs/github-api/issues",
+ "members_url": "https://api.github.com/orgs/github-api/members{/member}",
+ "public_members_url": "https://api.github.com/orgs/github-api/public_members{/member}",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/54909825?v=4",
+ "description": null,
+ "is_verified": false,
+ "has_organization_projects": true,
+ "has_repository_projects": true,
+ "public_repos": 1,
+ "public_gists": 0,
+ "followers": 0,
+ "following": 0,
+ "html_url": "https://github.com/github-api",
+ "created_at": "2019-09-04T18:12:34Z",
+ "updated_at": "2019-09-04T18:12:34Z",
+ "type": "Organization",
+ "total_private_repos": 0,
+ "owned_private_repos": 0,
+ "private_gists": 0,
+ "disk_usage": 12072,
+ "collaborators": 0,
+ "billing_email": "bitwiseman@gmail.com",
+ "default_repository_permission": "read",
+ "members_can_create_repositories": true,
+ "two_factor_requirement_enabled": false,
+ "plan": {
+ "name": "free",
+ "space": 976562499,
+ "private_repos": 0,
+ "filled_seats": 2,
+ "seats": 0
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repos_github-api_github-api-891820f6-7cd7-437a-8ec1-16c3e76c53ec.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repos_github-api_github-api-891820f6-7cd7-437a-8ec1-16c3e76c53ec.json
new file mode 100644
index 000000000..d9a933acc
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repos_github-api_github-api-891820f6-7cd7-437a-8ec1-16c3e76c53ec.json
@@ -0,0 +1,130 @@
+{
+ "id": 617210,
+ "node_id": "MDEwOlJlcG9zaXRvcnk2MTcyMTA=",
+ "name": "github-api",
+ "full_name": "github-api/github-api",
+ "private": false,
+ "owner": {
+ "login": "github-api",
+ "id": 54909825,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjU0OTA5ODI1",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/54909825?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-api",
+ "html_url": "https://github.com/github-api",
+ "followers_url": "https://api.github.com/users/github-api/followers",
+ "following_url": "https://api.github.com/users/github-api/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-api/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-api/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-api/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-api/orgs",
+ "repos_url": "https://api.github.com/users/github-api/repos",
+ "events_url": "https://api.github.com/users/github-api/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-api/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "html_url": "https://github.com/github-api/github-api",
+ "description": "Java API for GitHub",
+ "fork": false,
+ "url": "https://api.github.com/repos/github-api/github-api",
+ "forks_url": "https://api.github.com/repos/github-api/github-api/forks",
+ "keys_url": "https://api.github.com/repos/github-api/github-api/keys{/key_id}",
+ "collaborators_url": "https://api.github.com/repos/github-api/github-api/collaborators{/collaborator}",
+ "teams_url": "https://api.github.com/repos/github-api/github-api/teams",
+ "hooks_url": "https://api.github.com/repos/github-api/github-api/hooks",
+ "issue_events_url": "https://api.github.com/repos/github-api/github-api/issues/events{/number}",
+ "events_url": "https://api.github.com/repos/github-api/github-api/events",
+ "assignees_url": "https://api.github.com/repos/github-api/github-api/assignees{/user}",
+ "branches_url": "https://api.github.com/repos/github-api/github-api/branches{/branch}",
+ "tags_url": "https://api.github.com/repos/github-api/github-api/tags",
+ "blobs_url": "https://api.github.com/repos/github-api/github-api/git/blobs{/sha}",
+ "git_tags_url": "https://api.github.com/repos/github-api/github-api/git/tags{/sha}",
+ "git_refs_url": "https://api.github.com/repos/github-api/github-api/git/refs{/sha}",
+ "trees_url": "https://api.github.com/repos/github-api/github-api/git/trees{/sha}",
+ "statuses_url": "https://api.github.com/repos/github-api/github-api/statuses/{sha}",
+ "languages_url": "https://api.github.com/repos/github-api/github-api/languages",
+ "stargazers_url": "https://api.github.com/repos/github-api/github-api/stargazers",
+ "contributors_url": "https://api.github.com/repos/github-api/github-api/contributors",
+ "subscribers_url": "https://api.github.com/repos/github-api/github-api/subscribers",
+ "subscription_url": "https://api.github.com/repos/github-api/github-api/subscription",
+ "commits_url": "https://api.github.com/repos/github-api/github-api/commits{/sha}",
+ "git_commits_url": "https://api.github.com/repos/github-api/github-api/git/commits{/sha}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/comments{/number}",
+ "issue_comment_url": "https://api.github.com/repos/github-api/github-api/issues/comments{/number}",
+ "contents_url": "https://api.github.com/repos/github-api/github-api/contents/{+path}",
+ "compare_url": "https://api.github.com/repos/github-api/github-api/compare/{base}...{head}",
+ "merges_url": "https://api.github.com/repos/github-api/github-api/merges",
+ "archive_url": "https://api.github.com/repos/github-api/github-api/{archive_format}{/ref}",
+ "downloads_url": "https://api.github.com/repos/github-api/github-api/downloads",
+ "issues_url": "https://api.github.com/repos/github-api/github-api/issues{/number}",
+ "pulls_url": "https://api.github.com/repos/github-api/github-api/pulls{/number}",
+ "milestones_url": "https://api.github.com/repos/github-api/github-api/milestones{/number}",
+ "notifications_url": "https://api.github.com/repos/github-api/github-api/notifications{?since,all,participating}",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/labels{/name}",
+ "releases_url": "https://api.github.com/repos/github-api/github-api/releases{/id}",
+ "deployments_url": "https://api.github.com/repos/github-api/github-api/deployments",
+ "created_at": "2010-04-19T04:13:03Z",
+ "updated_at": "2019-10-03T21:38:52Z",
+ "pushed_at": "2019-10-03T23:00:11Z",
+ "git_url": "git://github.com/github-api/github-api.git",
+ "ssh_url": "git@github.com:github-api/github-api.git",
+ "clone_url": "https://github.com/github-api/github-api.git",
+ "svn_url": "https://github.com/github-api/github-api",
+ "homepage": "http://github-api.kohsuke.org/",
+ "size": 12072,
+ "stargazers_count": 557,
+ "watchers_count": 557,
+ "language": "Java",
+ "has_issues": true,
+ "has_projects": true,
+ "has_downloads": true,
+ "has_wiki": true,
+ "has_pages": true,
+ "forks_count": 428,
+ "mirror_url": null,
+ "archived": false,
+ "disabled": false,
+ "open_issues_count": 89,
+ "license": {
+ "key": "mit",
+ "name": "MIT License",
+ "spdx_id": "MIT",
+ "url": "https://api.github.com/licenses/mit",
+ "node_id": "MDc6TGljZW5zZTEz"
+ },
+ "forks": 428,
+ "open_issues": 89,
+ "watchers": 557,
+ "default_branch": "master",
+ "permissions": {
+ "admin": true,
+ "push": true,
+ "pull": true
+ },
+ "allow_squash_merge": true,
+ "allow_merge_commit": true,
+ "allow_rebase_merge": true,
+ "organization": {
+ "login": "github-api",
+ "id": 54909825,
+ "node_id": "MDEyOk9yZ2FuaXphdGlvbjU0OTA5ODI1",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/54909825?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/github-api",
+ "html_url": "https://github.com/github-api",
+ "followers_url": "https://api.github.com/users/github-api/followers",
+ "following_url": "https://api.github.com/users/github-api/following{/other_user}",
+ "gists_url": "https://api.github.com/users/github-api/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/github-api/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/github-api/subscriptions",
+ "organizations_url": "https://api.github.com/users/github-api/orgs",
+ "repos_url": "https://api.github.com/users/github-api/repos",
+ "events_url": "https://api.github.com/users/github-api/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/github-api/received_events",
+ "type": "Organization",
+ "site_admin": false
+ },
+ "network_count": 428,
+ "subscribers_count": 50
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repos_github-api_github-api_issues-a70d05ac-5820-4749-8318-e422f0f6eaf5.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repos_github-api_github-api_issues-a70d05ac-5820-4749-8318-e422f0f6eaf5.json
new file mode 100644
index 000000000..993ec36e9
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repos_github-api_github-api_issues-a70d05ac-5820-4749-8318-e422f0f6eaf5.json
@@ -0,0 +1,1595 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/560",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/560/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/560/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/560/events",
+ "html_url": "https://github.com/github-api/github-api/issues/560",
+ "id": 501993460,
+ "node_id": "MDU6SXNzdWU1MDE5OTM0NjA=",
+ "number": 560,
+ "title": "Login details",
+ "user": {
+ "login": "Aleonor1",
+ "id": 39700857,
+ "node_id": "MDQ6VXNlcjM5NzAwODU3",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/39700857?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Aleonor1",
+ "html_url": "https://github.com/Aleonor1",
+ "followers_url": "https://api.github.com/users/Aleonor1/followers",
+ "following_url": "https://api.github.com/users/Aleonor1/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Aleonor1/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Aleonor1/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Aleonor1/subscriptions",
+ "organizations_url": "https://api.github.com/users/Aleonor1/orgs",
+ "repos_url": "https://api.github.com/users/Aleonor1/repos",
+ "events_url": "https://api.github.com/users/Aleonor1/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Aleonor1/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2019-10-03T10:54:51Z",
+ "updated_at": "2019-10-03T16:59:16Z",
+ "closed_at": "2019-10-03T16:59:15Z",
+ "author_association": "NONE",
+ "body": "When you are using connectUsingPassword how do you know if your credentials are ok or not? \r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/559",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/559/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/559/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/559/events",
+ "html_url": "https://github.com/github-api/github-api/pull/559",
+ "id": 501580466,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIzODI1NzMw",
+ "number": 559,
+ "title": "Bump okhttp3.version from 3.12.3 to 4.2.1",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2019-10-02T15:58:08Z",
+ "updated_at": "2019-10-02T16:10:47Z",
+ "closed_at": "2019-10-02T16:10:36Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/559",
+ "html_url": "https://github.com/github-api/github-api/pull/559",
+ "diff_url": "https://github.com/github-api/github-api/pull/559.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/559.patch"
+ },
+ "body": "Bumps `okhttp3.version` from 3.12.3 to 4.2.1.\n\nUpdates `okhttp` from 3.12.3 to 4.2.1\n\nChangelog
\n\n*Sourced from [okhttp's changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md).*\n\n> ## Version 4.2.1\n> \n> _2019-10-02_\n> \n> * Fix: In 4.1.0 we introduced a performance regression that prevented connections from being\n> pooled in certain situations. We have good test coverage for connection pooling but we missed\n> this because it only occurs if you have proxy configured and you share a connection pool among\n> multiple `OkHttpClient` instances.\n> \n> This particularly-subtle bug was caused by us assigning each `OkHttpClient` instance its own\n> `NullProxySelector` when an explicit proxy is configured. But we don't share connections when\n> the proxy selectors are different. Ugh!\n> \n> \n> ## Version 4.2.0\n> \n> _2019-09-10_\n> \n> * New: API to decode a certificate and private key to create a `HeldCertificate`. This accepts a\n> string containing both a certificate and PKCS #8-encoded private key.\n> \n> ```kotlin\n> val heldCertificate = HeldCertificate.decode(\"\"\"\n> |-----BEGIN CERTIFICATE-----\n> |MIIBYTCCAQegAwIBAgIBKjAKBggqhkjOPQQDAjApMRQwEgYDVQQLEwtlbmdpbmVl\n> |cmluZzERMA8GA1UEAxMIY2FzaC5hcHAwHhcNNzAwMTAxMDAwMDA1WhcNNzAwMTAx\n> |MDAwMDEwWjApMRQwEgYDVQQLEwtlbmdpbmVlcmluZzERMA8GA1UEAxMIY2FzaC5h\n> |cHAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASda8ChkQXxGELnrV/oBnIAx3dD\n> |ocUOJfdz4pOJTP6dVQB9U3UBiW5uSX/MoOD0LL5zG3bVyL3Y6pDwKuYvfLNhoyAw\n> |HjAcBgNVHREBAf8EEjAQhwQBAQEBgghjYXNoLmFwcDAKBggqhkjOPQQDAgNIADBF\n> |AiAyHHg1N6YDDQiY920+cnI5XSZwEGhAtb9PYWO8bLmkcQIhAI2CfEZf3V/obmdT\n> |yyaoEufLKVXhrTQhRfodTeigi4RX\n> |-----END CERTIFICATE-----\n> |-----BEGIN PRIVATE KEY-----\n> |MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCA7ODT0xhGSNn4ESj6J\n> |lu/GJQZoU9lDrCPeUcQ28tzOWw==\n> |-----END PRIVATE KEY-----\n> \"\"\".trimMargin())\n> val handshakeCertificates = HandshakeCertificates.Builder()\n> .heldCertificate(heldCertificate)\n> .build()\n> val server = MockWebServer()\n> server.useHttps(handshakeCertificates.sslSocketFactory(), false)\n> ```\n> \n> Get these strings with `HeldCertificate.certificatePem()` and `privateKeyPkcs8Pem()`.\n> \n> * Fix: Handshake now returns peer certificates in canonical order: each certificate is signed by\n> the certificate that follows and the last certificate is signed by a trusted root.\n> \n> ... (truncated)\n \n\nCommits
\n\n- [`57a165b`](https://github.com/square/okhttp/commit/57a165b69c6551c1caec8a557e0e9c9abf54b536) Prepare for release 4.2.1.\n- [`4c640ad`](https://github.com/square/okhttp/commit/4c640ad6c3016f49e753b5c86ab5c4d8b072bb66) Merge pull request [#5524](https://github-redirect.dependabot.com/square/okhttp/issues/5524) from square/jwilson.1002.cherrypick_poolfix\n- [`1b4b6bb`](https://github.com/square/okhttp/commit/1b4b6bbc82206816ced207bb0132611f770c56cd) Fix connection pooling for different clients with the same pool.\n- [`582f8ef`](https://github.com/square/okhttp/commit/582f8ef2f78cf001d479cb65831674289fd83af0) Prepare for release 4.2.0.\n- [`9b60ca8`](https://github.com/square/okhttp/commit/9b60ca8e88445de48997d3391ae15417a6ef5d90) Merge pull request [#5434](https://github-redirect.dependabot.com/square/okhttp/issues/5434) from square/jwilson.0909.race\n- [`510475a`](https://github.com/square/okhttp/commit/510475a21586fdf6010312a1950dca6e87cb6d2e) Don't leak incoming bytes when we race incoming data and close\n- [`2cdbbda`](https://github.com/square/okhttp/commit/2cdbbda64a8f01c48658a2101aca206389b50878) Hows My Ssl test for Android ([#5428](https://github-redirect.dependabot.com/square/okhttp/issues/5428))\n- [`3464ef3`](https://github.com/square/okhttp/commit/3464ef37e4fceb997df9c95cadce6fcc38102450) Merge pull request [#5431](https://github-redirect.dependabot.com/square/okhttp/issues/5431) from square/jwilson.0907.ack_apply_atomically\n- [`bd6a97a`](https://github.com/square/okhttp/commit/bd6a97a7200dda2127a0a6b7167fef0d09febf27) Acknowledge and apply inbound settings atomically\n- [`3490c7e`](https://github.com/square/okhttp/commit/3490c7ef9598e99bc298208f68022b36fecb21ce) Merge pull request [#5427](https://github-redirect.dependabot.com/square/okhttp/issues/5427) from square/jwilson.0905.decode_pems\n- Additional commits viewable in [compare view](https://github.com/square/okhttp/compare/parent-3.12.3...parent-4.2.1)\n \n
\n\nUpdates `okhttp-urlconnection` from 3.12.3 to 4.2.1\n\nChangelog
\n\n*Sourced from [okhttp-urlconnection's changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md).*\n\n> ## Version 4.2.1\n> \n> _2019-10-02_\n> \n> * Fix: In 4.1.0 we introduced a performance regression that prevented connections from being\n> pooled in certain situations. We have good test coverage for connection pooling but we missed\n> this because it only occurs if you have proxy configured and you share a connection pool among\n> multiple `OkHttpClient` instances.\n> \n> This particularly-subtle bug was caused by us assigning each `OkHttpClient` instance its own\n> `NullProxySelector` when an explicit proxy is configured. But we don't share connections when\n> the proxy selectors are different. Ugh!\n> \n> \n> ## Version 4.2.0\n> \n> _2019-09-10_\n> \n> * New: API to decode a certificate and private key to create a `HeldCertificate`. This accepts a\n> string containing both a certificate and PKCS #8-encoded private key.\n> \n> ```kotlin\n> val heldCertificate = HeldCertificate.decode(\"\"\"\n> |-----BEGIN CERTIFICATE-----\n> |MIIBYTCCAQegAwIBAgIBKjAKBggqhkjOPQQDAjApMRQwEgYDVQQLEwtlbmdpbmVl\n> |cmluZzERMA8GA1UEAxMIY2FzaC5hcHAwHhcNNzAwMTAxMDAwMDA1WhcNNzAwMTAx\n> |MDAwMDEwWjApMRQwEgYDVQQLEwtlbmdpbmVlcmluZzERMA8GA1UEAxMIY2FzaC5h\n> |cHAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASda8ChkQXxGELnrV/oBnIAx3dD\n> |ocUOJfdz4pOJTP6dVQB9U3UBiW5uSX/MoOD0LL5zG3bVyL3Y6pDwKuYvfLNhoyAw\n> |HjAcBgNVHREBAf8EEjAQhwQBAQEBgghjYXNoLmFwcDAKBggqhkjOPQQDAgNIADBF\n> |AiAyHHg1N6YDDQiY920+cnI5XSZwEGhAtb9PYWO8bLmkcQIhAI2CfEZf3V/obmdT\n> |yyaoEufLKVXhrTQhRfodTeigi4RX\n> |-----END CERTIFICATE-----\n> |-----BEGIN PRIVATE KEY-----\n> |MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCA7ODT0xhGSNn4ESj6J\n> |lu/GJQZoU9lDrCPeUcQ28tzOWw==\n> |-----END PRIVATE KEY-----\n> \"\"\".trimMargin())\n> val handshakeCertificates = HandshakeCertificates.Builder()\n> .heldCertificate(heldCertificate)\n> .build()\n> val server = MockWebServer()\n> server.useHttps(handshakeCertificates.sslSocketFactory(), false)\n> ```\n> \n> Get these strings with `HeldCertificate.certificatePem()` and `privateKeyPkcs8Pem()`.\n> \n> * Fix: Handshake now returns peer certificates in canonical order: each certificate is signed by\n> the certificate that follows and the last certificate is signed by a trusted root.\n> \n> ... (truncated)\n \n\nCommits
\n\n- [`57a165b`](https://github.com/square/okhttp/commit/57a165b69c6551c1caec8a557e0e9c9abf54b536) Prepare for release 4.2.1.\n- [`4c640ad`](https://github.com/square/okhttp/commit/4c640ad6c3016f49e753b5c86ab5c4d8b072bb66) Merge pull request [#5524](https://github-redirect.dependabot.com/square/okhttp/issues/5524) from square/jwilson.1002.cherrypick_poolfix\n- [`1b4b6bb`](https://github.com/square/okhttp/commit/1b4b6bbc82206816ced207bb0132611f770c56cd) Fix connection pooling for different clients with the same pool.\n- [`582f8ef`](https://github.com/square/okhttp/commit/582f8ef2f78cf001d479cb65831674289fd83af0) Prepare for release 4.2.0.\n- [`9b60ca8`](https://github.com/square/okhttp/commit/9b60ca8e88445de48997d3391ae15417a6ef5d90) Merge pull request [#5434](https://github-redirect.dependabot.com/square/okhttp/issues/5434) from square/jwilson.0909.race\n- [`510475a`](https://github.com/square/okhttp/commit/510475a21586fdf6010312a1950dca6e87cb6d2e) Don't leak incoming bytes when we race incoming data and close\n- [`2cdbbda`](https://github.com/square/okhttp/commit/2cdbbda64a8f01c48658a2101aca206389b50878) Hows My Ssl test for Android ([#5428](https://github-redirect.dependabot.com/square/okhttp/issues/5428))\n- [`3464ef3`](https://github.com/square/okhttp/commit/3464ef37e4fceb997df9c95cadce6fcc38102450) Merge pull request [#5431](https://github-redirect.dependabot.com/square/okhttp/issues/5431) from square/jwilson.0907.ack_apply_atomically\n- [`bd6a97a`](https://github.com/square/okhttp/commit/bd6a97a7200dda2127a0a6b7167fef0d09febf27) Acknowledge and apply inbound settings atomically\n- [`3490c7e`](https://github.com/square/okhttp/commit/3490c7ef9598e99bc298208f68022b36fecb21ce) Merge pull request [#5427](https://github-redirect.dependabot.com/square/okhttp/issues/5427) from square/jwilson.0905.decode_pems\n- Additional commits viewable in [compare view](https://github.com/square/okhttp/compare/parent-3.12.3...parent-4.2.1)\n \n
\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/558",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/558/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/558/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/558/events",
+ "html_url": "https://github.com/github-api/github-api/pull/558",
+ "id": 501580160,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIzODI1NDg0",
+ "number": 558,
+ "title": "Bump okio from 2.2.2 to 2.4.0",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-10-02T15:57:36Z",
+ "updated_at": "2019-10-02T16:13:05Z",
+ "closed_at": "2019-10-02T16:12:46Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/558",
+ "html_url": "https://github.com/github-api/github-api/pull/558",
+ "diff_url": "https://github.com/github-api/github-api/pull/558.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/558.patch"
+ },
+ "body": "Bumps [okio](https://github.com/square/okio) from 2.2.2 to 2.4.0.\n\nChangelog
\n\n*Sourced from [okio's changelog](https://github.com/square/okio/blob/master/CHANGELOG.md).*\n\n> ### Version 2.4.0\n> \n> _2019-08-26_\n> \n> * New: Upgrade to Kotlin 1.3.50.\n> \n> \n> ### Version 2.3.0\n> \n> _2019-07-29_\n> \n> **This release changes our build from Kotlin-JVM to Kotlin-multiplatform (which includes JVM).**\n> Both native and JavaScript platforms are unstable preview releases and subject to\n> backwards-incompatible changes in forthcoming releases.\n> \n> To try Okio in a multiplatform project use this Maven coordinate:\n> \n> ```kotlin\n> api('com.squareup.okio:okio-multiplatform:2.3.0')\n> ```\n> \n> You’ll also need to [enable Gradle metadata][gradle_metadata] in your project's settings. The\n> artifact name for JVM projects has not changed.\n> \n> * New: Upgrade to Kotlin 1.3.40.\n> * Fix: Use Gradle `api` instead of `implementation` for the kotlin-stdlib dependency.\n> * Fix: Don't block unless strictly necessary in `BufferedSource.peek()`.\n> \n> ## Version 1.17.4\n> \n> _2019-04-29_\n> \n> * Fix: Don't block unless strictly necessary in `BufferedSource.peek()`.\n \n\nCommits
\n\n- [`35a6919`](https://github.com/square/okio/commit/35a69198bb17c7d8dc2b59aa2d4ffae3c201c599) Prepare for release 2.4.0.\n- [`1ab5136`](https://github.com/square/okio/commit/1ab5136fc3a7c3a713d1d82053643612b44aa092) Merge pull request [#650](https://github-redirect.dependabot.com/square/okio/issues/650) from square/jakew/repeat/2019-08-23\n- [`533b7da`](https://github.com/square/okio/commit/533b7dae1aafd007de3bfe58cf619aeec101e36b) Remove TestUtils.repeat in favor of Kotlin repeat\n- [`589c56c`](https://github.com/square/okio/commit/589c56c98b08dc690024fa0268885b08e3c61497) Kotlin 1.3.50 ([#649](https://github-redirect.dependabot.com/square/okio/issues/649))\n- [`29c16f9`](https://github.com/square/okio/commit/29c16f91a148db2df233bf734d229019db664824) Merge pull request [#648](https://github-redirect.dependabot.com/square/okio/issues/648) from square/egorand/190815/kotlin-1.3.50-eap\n- [`efaae11`](https://github.com/square/okio/commit/efaae11bd92d48ac303238b3f6b27c192c70541e) Kotlin 1.3.50-eap\n- [`a93f96c`](https://github.com/square/okio/commit/a93f96c0dc2b1256f209ec719dc96b6c121bba45) Update ktlint gradle to 8.2.0 version. ([#642](https://github-redirect.dependabot.com/square/okio/issues/642))\n- [`16cde1a`](https://github.com/square/okio/commit/16cde1a986fe921e6bad94a3f26841726c39797d) Merge pull request [#644](https://github-redirect.dependabot.com/square/okio/issues/644) from square/egorand/190805/kill-node\n- [`9376cb3`](https://github.com/square/okio/commit/9376cb360531f1f9af11af6063f3f171feecd19c) Merge pull request [#643](https://github-redirect.dependabot.com/square/okio/issues/643) from square/egorand/190804/gradle-5.5.1\n- [`5de9874`](https://github.com/square/okio/commit/5de9874d35a26c8ae0da8c302990cca1a11ea725) Node plugin is not needed anymore\n- Additional commits viewable in [compare view](https://github.com/square/okio/compare/2.2.2...parent-2.4.0)\n \n
\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=com.squareup.okio:okio&package-manager=maven&previous-version=2.2.2&new-version=2.4.0)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/557",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/557/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/557/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/557/events",
+ "html_url": "https://github.com/github-api/github-api/pull/557",
+ "id": 500876257,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIzMjU2MjA0",
+ "number": 557,
+ "title": "Bump mockito-core from 3.0.0 to 3.1.0",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-10-01T12:54:03Z",
+ "updated_at": "2019-10-01T15:26:08Z",
+ "closed_at": "2019-10-01T15:26:00Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/557",
+ "html_url": "https://github.com/github-api/github-api/pull/557",
+ "diff_url": "https://github.com/github-api/github-api/pull/557.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/557.patch"
+ },
+ "body": "Bumps [mockito-core](https://github.com/mockito/mockito) from 3.0.0 to 3.1.0.\n\nRelease notes
\n\n*Sourced from [mockito-core's releases](https://github.com/mockito/mockito/releases).*\n\n> ## v3.1.0\n> *Release notes were automatically generated by [Shipkit](http://shipkit.org/)*\n> \n> #### 3.1.0\n> - 2019-10-01 - [1 commit](https://github.com/mockito/mockito/compare/v3.0.12...v3.1.0) by [Tim van der Lippe](https://github.com/TimvdLippe) - published to [](https://bintray.com/mockito/maven/mockito/3.1.0)\n> - No pull requests referenced in commit messages.\n> \n> ## v3.0.12\n> *Release notes were automatically generated by [Shipkit](http://shipkit.org/)*\n> \n> #### 3.0.12\n> - 2019-09-30 - [3 commits](https://github.com/mockito/mockito/compare/v3.0.11...v3.0.12) by [Szczepan Faber](https://github.com/mockitoguy) (2), [Tim van der Lippe](https://github.com/TimvdLippe) (1) - published to [](https://bintray.com/mockito/maven/mockito-development/3.0.12)\n> - Fixed JUnit Jupiter parallel issue [([#1789](https://github-redirect.dependabot.com/mockito/mockito/issues/1789))](https://github-redirect.dependabot.com/mockito/mockito/pull/1789)\n> - Mockito JUnit Jupiter extension does not correctly support parallel test execution [([#1630](https://github-redirect.dependabot.com/mockito/mockito/issues/1630))](https://github-redirect.dependabot.com/mockito/mockito/issues/1630)\n> \n> ## v3.0.11\n> *Release notes were automatically generated by [Shipkit](http://shipkit.org/)*\n> \n> #### 3.0.11\n> - 2019-09-28 - [2 commits](https://github.com/mockito/mockito/compare/v3.0.10...v3.0.11) by [Szczepan Faber](https://github.com/mockitoguy) - published to [](https://bintray.com/mockito/maven/mockito-development/3.0.11)\n> - Upgraded JUnit Jupiter 5.1.1 -> 5.4.2 [([#1788](https://github-redirect.dependabot.com/mockito/mockito/issues/1788))](https://github-redirect.dependabot.com/mockito/mockito/pull/1788)\n> - Mockito JUnit Jupiter extension does not correctly support parallel test execution [([#1630](https://github-redirect.dependabot.com/mockito/mockito/issues/1630))](https://github-redirect.dependabot.com/mockito/mockito/issues/1630)\n> \n> ## v3.0.9\n> *Release notes were automatically generated by [Shipkit](http://shipkit.org/)*\n> \n> #### 3.0.9\n> - 2019-09-25 - [2 commits](https://github.com/mockito/mockito/compare/v3.0.8...v3.0.9) by [Szczepan Faber](https://github.com/mockitoguy) - published to [](https://bintray.com/mockito/maven/mockito-development/3.0.9)\n> - Cleaned up state after stubbing misuse exception [([#1783](https://github-redirect.dependabot.com/mockito/mockito/issues/1783))](https://github-redirect.dependabot.com/mockito/mockito/pull/1783)\n> - Stubbing not stopped properly when running suite of tests [([#1655](https://github-redirect.dependabot.com/mockito/mockito/issues/1655))](https://github-redirect.dependabot.com/mockito/mockito/issues/1655)\n> \n> ## v3.0.8\n> *Release notes were automatically generated by [Shipkit](http://shipkit.org/)*\n> \n> #### 3.0.8\n> - 2019-09-17 - [2 commits](https://github.com/mockito/mockito/compare/v3.0.7...v3.0.8) by [Dominik Stadler](https://github.com/centic9) (1), [Erhard Pointl](https://github.com/epeee) (1) - published to [](https://bintray.com/mockito/maven/mockito-development/3.0.8)\n> - Fixes [#1780](https://github-redirect.dependabot.com/mockito/mockito/issues/1780): Close file handle to avoid a file-handle-leak [([#1781](https://github-redirect.dependabot.com/mockito/mockito/issues/1781))](https://github-redirect.dependabot.com/mockito/mockito/pull/1781)\n> - File-handle leak in InlineByteBuddyMockMaker [([#1780](https://github-redirect.dependabot.com/mockito/mockito/issues/1780))](https://github-redirect.dependabot.com/mockito/mockito/issues/1780)\n> - Get rid of no longer used Assertor [([#1777](https://github-redirect.dependabot.com/mockito/mockito/issues/1777))](https://github-redirect.dependabot.com/mockito/mockito/pull/1777)\n> \n> ## v3.0.7\n> *Release notes were automatically generated by [Shipkit](http://shipkit.org/)*\n> \n> #### 3.0.7\n> - 2019-09-04 - [2 commits](https://github.com/mockito/mockito/compare/v3.0.6...v3.0.7) by [Erhard Pointl](https://github.com/epeee) (1), [Guillermo Pascual](https://github.com/pasku) (1) - published to [](https://bintray.com/mockito/maven/mockito-development/3.0.7)\n> - Fixes [#1769](https://github-redirect.dependabot.com/mockito/mockito/issues/1769): Clarify default strict stubbing behaviour in 3.0.0 [([#1773](https://github-redirect.dependabot.com/mockito/mockito/issues/1773))](https://github-redirect.dependabot.com/mockito/mockito/pull/1773)\n> - Are strict stubs really the default in v3? [([#1769](https://github-redirect.dependabot.com/mockito/mockito/issues/1769))](https://github-redirect.dependabot.com/mockito/mockito/issues/1769)\n> - Update assertj (v3.13.2) [([#1765](https://github-redirect.dependabot.com/mockito/mockito/issues/1765))](https://github-redirect.dependabot.com/mockito/mockito/pull/1765)\n> \n> ## v3.0.6\n> ... (truncated)\n \n\nCommits
\n\n- [`8922326`](https://github.com/mockito/mockito/commit/892232611ef06a4c5861f50416819c9ca3d85ff4) 3.1.0 release (previous 3.0.12) + release notes updated by CI build 4214\n- [`e349807`](https://github.com/mockito/mockito/commit/e34980785cdbdce243aa33475767f4384ee2fd8f) Publish Mockito 3.1.0 to Maven Central\n- [`6dfd529`](https://github.com/mockito/mockito/commit/6dfd5294b2032dea7f77bfae16c8735bf1192ea2) 3.0.12 release (previous 3.0.11) + release notes updated by CI build 4211\n- [`30c50fa`](https://github.com/mockito/mockito/commit/30c50fa3442004996dc9c7b2bcfdae7aaaae3ce6) Merge pull request [#1789](https://github-redirect.dependabot.com/mockito/mockito/issues/1789) from mockito/sf\n- [`5ed8a07`](https://github.com/mockito/mockito/commit/5ed8a07f6ff4d9b5d3011e1891cf12119eb61684) Cleanup traversal of parent contexts\n- [`acce719`](https://github.com/mockito/mockito/commit/acce719fd0b0ab67ff0bea8125dd2056afef7cd5) Fixed JUnit Jupiter parallel issue\n- [`214d465`](https://github.com/mockito/mockito/commit/214d4652aa1971cb554c434b0ac13b376aea33a7) 3.0.11 release (previous 3.0.10) + release notes updated by CI build 4203\n- [`1129199`](https://github.com/mockito/mockito/commit/112919971c0a985b0918a2e0c29b145c14e0d7d8) Merge pull request [#1788](https://github-redirect.dependabot.com/mockito/mockito/issues/1788) from mockito/parallel\n- [`bcf41fd`](https://github.com/mockito/mockito/commit/bcf41fdf9c977eca75b96f49a1567052851434a7) 3.0.10 release (previous 3.0.9) + release notes updated by CI build 4201\n- [`f8581c6`](https://github.com/mockito/mockito/commit/f8581c6e875dc3fb587fe31e85d025ef4d110a3f) Fixes [#1786](https://github-redirect.dependabot.com/mockito/mockito/issues/1786) : Make differences between 'timeout' and 'after' more clear in Ja...\n- Additional commits viewable in [compare view](https://github.com/mockito/mockito/compare/v3.0.0...v3.1.0)\n \n
\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=org.mockito:mockito-core&package-manager=maven&previous-version=3.0.0&new-version=3.1.0)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/556",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/556/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/556/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/556/events",
+ "html_url": "https://github.com/github-api/github-api/pull/556",
+ "id": 500133370,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIyNjYzOTc2",
+ "number": 556,
+ "title": "Bump wiremock-jre8-standalone from 2.24.1 to 2.25.0",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-30T08:40:18Z",
+ "updated_at": "2019-09-30T16:13:10Z",
+ "closed_at": "2019-09-30T16:13:07Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/556",
+ "html_url": "https://github.com/github-api/github-api/pull/556",
+ "diff_url": "https://github.com/github-api/github-api/pull/556.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/556.patch"
+ },
+ "body": "Bumps [wiremock-jre8-standalone](https://github.com/tomakehurst/wiremock) from 2.24.1 to 2.25.0.\n\nCommits
\n\n- [`f7fbb84`](https://github.com/tomakehurst/wiremock/commit/f7fbb846cd7b259fddc16ae136056b6582ec47bf) Tweaked test logging in CI\n- [`a125dd9`](https://github.com/tomakehurst/wiremock/commit/a125dd914d2f5db79966bc5db9ebc8a040a700b1) Made junit a compileOnly (provided) dependency to avoid hamcrest class clashe...\n- [`89b9839`](https://github.com/tomakehurst/wiremock/commit/89b98398a29a68f3ac8fd14869f33bfdb10592ae) Jackson version bump (fixing multiple CVEs) ([#1191](https://github-redirect.dependabot.com/tomakehurst/wiremock/issues/1191))\n- [`b4013ff`](https://github.com/tomakehurst/wiremock/commit/b4013ffafc9d86ba0d3785dc05829fed054e2d48) Fixed java7 test broken by littleproxy version switching\n- [`a2014e3`](https://github.com/tomakehurst/wiremock/commit/a2014e3daa573a6eca59017f5e46f6c3215b592a) Added HTTP/2 support in the jre8 version\n- [`f5e3484`](https://github.com/tomakehurst/wiremock/commit/f5e34843cc78720bc9745ec4e7ca1832eb42a6ae) Fixed [#1175](https://github-redirect.dependabot.com/tomakehurst/wiremock/issues/1175) - unable to use absent() with matchesJsonPath due to serialisatio...\n- [`f0cd8f2`](https://github.com/tomakehurst/wiremock/commit/f0cd8f2d1614fbd332b07654e303707b77736fda) Added docs for request journal event removal\n- [`e0c18ef`](https://github.com/tomakehurst/wiremock/commit/e0c18ef70c9f6e8c2c7b48a0b20fe56c024a1099) Added ability to remove serve events by stub metadata\n- [`5b6a366`](https://github.com/tomakehurst/wiremock/commit/5b6a3666f3c04b8d6e99799a9d8ace09ab05cd64) Added ability to remove serve events (logged requests) via a request pattern\n- [`25b057a`](https://github.com/tomakehurst/wiremock/commit/25b057aac4083cf24cd75e87c76de16309cdaf98) Added ability to remove serve events (logged requests) by ID\n- Additional commits viewable in [compare view](https://github.com/tomakehurst/wiremock/compare/2.24.1...2.25.0)\n \n
\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=com.github.tomakehurst:wiremock-jre8-standalone&package-manager=maven&previous-version=2.24.1&new-version=2.25.0)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/555",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/555/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/555/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/555/events",
+ "html_url": "https://github.com/github-api/github-api/pull/555",
+ "id": 498103643,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIxMTAyNDE2",
+ "number": 555,
+ "title": "Bump commons-io from 1.4 to 2.6",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-25T07:33:23Z",
+ "updated_at": "2019-09-25T17:08:00Z",
+ "closed_at": "2019-09-25T17:07:45Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/555",
+ "html_url": "https://github.com/github-api/github-api/pull/555",
+ "diff_url": "https://github.com/github-api/github-api/pull/555.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/555.patch"
+ },
+ "body": "Bumps commons-io from 1.4 to 2.6.\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=commons-io:commons-io&package-manager=maven&previous-version=1.4&new-version=2.6)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.\n\nYou can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/554",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/554/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/554/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/554/events",
+ "html_url": "https://github.com/github-api/github-api/pull/554",
+ "id": 498103478,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIxMTAyMjkw",
+ "number": 554,
+ "title": "Bump maven-surefire-plugin from 2.22.1 to 2.22.2",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-25T07:33:00Z",
+ "updated_at": "2019-09-25T17:10:47Z",
+ "closed_at": "2019-09-25T17:10:03Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/554",
+ "html_url": "https://github.com/github-api/github-api/pull/554",
+ "diff_url": "https://github.com/github-api/github-api/pull/554.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/554.patch"
+ },
+ "body": "Bumps [maven-surefire-plugin](https://github.com/apache/maven-surefire) from 2.22.1 to 2.22.2.\n\nCommits
\n\n- [`d96b95c`](https://github.com/apache/maven-surefire/commit/d96b95c4bda73c4a93506db38b9ca76b4d7b5743) [maven-release-plugin] prepare release surefire-2.22.2\n- [`4a2aafc`](https://github.com/apache/maven-surefire/commit/4a2aafc516dd6e1db54548cedd0645ddeccc1dc2) Remove Travis file\n- [`7b9ec3f`](https://github.com/apache/maven-surefire/commit/7b9ec3fe7805ee6718b8efa41984127e0ceb17b1) Remove JUnit SNAPSHOT argument from IT\n- [`18b4078`](https://github.com/apache/maven-surefire/commit/18b4078de24a0cd69eb51cad4e793d4e51b26743) [SUREFIRE-1614] JUnit Runner that writes to System.out corrupts Surefire's ST...\n- [`af417b8`](https://github.com/apache/maven-surefire/commit/af417b88d59624165be6273a641c4848b8d5c09a) prepare for next development iteration\n- See full diff in [compare view](https://github.com/apache/maven-surefire/compare/surefire-2.22.1...surefire-2.22.2)\n \n
\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=org.apache.maven.plugins:maven-surefire-plugin&package-manager=maven&previous-version=2.22.1&new-version=2.22.2)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.\n\nYou can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/553",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/553/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/553/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/553/events",
+ "html_url": "https://github.com/github-api/github-api/pull/553",
+ "id": 498103214,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIxMTAyMDkx",
+ "number": 553,
+ "title": "Bump okhttp-urlconnection from 3.9.0 to 4.2.0",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2019-09-25T07:32:25Z",
+ "updated_at": "2019-09-25T22:50:55Z",
+ "closed_at": "2019-09-25T22:50:51Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/553",
+ "html_url": "https://github.com/github-api/github-api/pull/553",
+ "diff_url": "https://github.com/github-api/github-api/pull/553.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/553.patch"
+ },
+ "body": "Bumps [okhttp-urlconnection](https://github.com/square/okhttp) from 3.9.0 to 4.2.0.\n\nChangelog
\n\n*Sourced from [okhttp-urlconnection's changelog](https://github.com/square/okhttp/blob/master/CHANGELOG.md).*\n\n> ## Version 4.2.0\n> \n> _2019-09-10_\n> \n> * New: API to decode a certificate and private key to create a `HeldCertificate`. This accepts a\n> string containing both a certificate and PKCS #8-encoded private key.\n> \n> ```kotlin\n> val heldCertificate = HeldCertificate.decode(\"\"\"\n> |-----BEGIN CERTIFICATE-----\n> |MIIBYTCCAQegAwIBAgIBKjAKBggqhkjOPQQDAjApMRQwEgYDVQQLEwtlbmdpbmVl\n> |cmluZzERMA8GA1UEAxMIY2FzaC5hcHAwHhcNNzAwMTAxMDAwMDA1WhcNNzAwMTAx\n> |MDAwMDEwWjApMRQwEgYDVQQLEwtlbmdpbmVlcmluZzERMA8GA1UEAxMIY2FzaC5h\n> |cHAwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAASda8ChkQXxGELnrV/oBnIAx3dD\n> |ocUOJfdz4pOJTP6dVQB9U3UBiW5uSX/MoOD0LL5zG3bVyL3Y6pDwKuYvfLNhoyAw\n> |HjAcBgNVHREBAf8EEjAQhwQBAQEBgghjYXNoLmFwcDAKBggqhkjOPQQDAgNIADBF\n> |AiAyHHg1N6YDDQiY920+cnI5XSZwEGhAtb9PYWO8bLmkcQIhAI2CfEZf3V/obmdT\n> |yyaoEufLKVXhrTQhRfodTeigi4RX\n> |-----END CERTIFICATE-----\n> |-----BEGIN PRIVATE KEY-----\n> |MEECAQAwEwYHKoZIzj0CAQYIKoZIzj0DAQcEJzAlAgEBBCA7ODT0xhGSNn4ESj6J\n> |lu/GJQZoU9lDrCPeUcQ28tzOWw==\n> |-----END PRIVATE KEY-----\n> \"\"\".trimMargin())\n> val handshakeCertificates = HandshakeCertificates.Builder()\n> .heldCertificate(heldCertificate)\n> .build()\n> val server = MockWebServer()\n> server.useHttps(handshakeCertificates.sslSocketFactory(), false)\n> ```\n> \n> Get these strings with `HeldCertificate.certificatePem()` and `privateKeyPkcs8Pem()`.\n> \n> * Fix: Handshake now returns peer certificates in canonical order: each certificate is signed by\n> the certificate that follows and the last certificate is signed by a trusted root.\n> \n> * Fix: Don't lose HTTP/2 flow control bytes when incoming data races with a stream close. If this\n> happened enough then eventually the connection would stall.\n> \n> * Fix: Acknowledge and apply inbound HTTP/2 settings atomically. Previously we had a race where we\n> could use new flow control capacity before acknowledging it, causing strict HTTP/2 servers to\n> fail the call.\n> \n> \n> ## Version 4.1.1\n> \n> _2019-09-05_\n> \n> * Fix: Don't drop repeated headers when validating cached responses. In our Kotlin upgrade we\n> introduced a regression where we iterated the number of unique header names rather than then\n> ... (truncated)\n \n\nCommits
\n\n- [`582f8ef`](https://github.com/square/okhttp/commit/582f8ef2f78cf001d479cb65831674289fd83af0) Prepare for release 4.2.0.\n- [`9b60ca8`](https://github.com/square/okhttp/commit/9b60ca8e88445de48997d3391ae15417a6ef5d90) Merge pull request [#5434](https://github-redirect.dependabot.com/square/okhttp/issues/5434) from square/jwilson.0909.race\n- [`510475a`](https://github.com/square/okhttp/commit/510475a21586fdf6010312a1950dca6e87cb6d2e) Don't leak incoming bytes when we race incoming data and close\n- [`2cdbbda`](https://github.com/square/okhttp/commit/2cdbbda64a8f01c48658a2101aca206389b50878) Hows My Ssl test for Android ([#5428](https://github-redirect.dependabot.com/square/okhttp/issues/5428))\n- [`3464ef3`](https://github.com/square/okhttp/commit/3464ef37e4fceb997df9c95cadce6fcc38102450) Merge pull request [#5431](https://github-redirect.dependabot.com/square/okhttp/issues/5431) from square/jwilson.0907.ack_apply_atomically\n- [`bd6a97a`](https://github.com/square/okhttp/commit/bd6a97a7200dda2127a0a6b7167fef0d09febf27) Acknowledge and apply inbound settings atomically\n- [`3490c7e`](https://github.com/square/okhttp/commit/3490c7ef9598e99bc298208f68022b36fecb21ce) Merge pull request [#5427](https://github-redirect.dependabot.com/square/okhttp/issues/5427) from square/jwilson.0905.decode_pems\n- [`ba2c676`](https://github.com/square/okhttp/commit/ba2c676aaf2b825528955f61dd43004a5bd9ca98) Handshake returns cleaned peer certificates ([#5311](https://github-redirect.dependabot.com/square/okhttp/issues/5311))\n- [`93c5bcc`](https://github.com/square/okhttp/commit/93c5bcc6cb46aef19b2f55e61c01f6b1bbccee70) Make it easier to decode PEM files\n- [`6f17886`](https://github.com/square/okhttp/commit/6f178869acc2a2a9a6882c49dfb5bcf7a43b3ddd) Merge pull request [#5423](https://github-redirect.dependabot.com/square/okhttp/issues/5423) from square/jwilson.0905.windows\n- Additional commits viewable in [compare view](https://github.com/square/okhttp/compare/parent-3.9.0...parent-4.2.0)\n \n
\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=com.squareup.okhttp3:okhttp-urlconnection&package-manager=maven&previous-version=3.9.0&new-version=4.2.0)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.\n\nYou can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/552",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/552/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/552/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/552/events",
+ "html_url": "https://github.com/github-api/github-api/pull/552",
+ "id": 498103027,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIxMTAxOTUx",
+ "number": 552,
+ "title": "Bump commons-lang3 from 3.7 to 3.9",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-25T07:32:02Z",
+ "updated_at": "2019-09-25T17:09:55Z",
+ "closed_at": "2019-09-25T17:09:34Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/552",
+ "html_url": "https://github.com/github-api/github-api/pull/552",
+ "diff_url": "https://github.com/github-api/github-api/pull/552.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/552.patch"
+ },
+ "body": "Bumps commons-lang3 from 3.7 to 3.9.\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=org.apache.commons:commons-lang3&package-manager=maven&previous-version=3.7&new-version=3.9)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.\n\nYou can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/551",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/551/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/551/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/551/events",
+ "html_url": "https://github.com/github-api/github-api/pull/551",
+ "id": 497889106,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIwOTM0MTU3",
+ "number": 551,
+ "title": "Bump commons-codec from 1.7 to 1.13",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-24T19:47:35Z",
+ "updated_at": "2019-09-24T21:25:05Z",
+ "closed_at": "2019-09-24T21:24:58Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/551",
+ "html_url": "https://github.com/github-api/github-api/pull/551",
+ "diff_url": "https://github.com/github-api/github-api/pull/551.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/551.patch"
+ },
+ "body": "Bumps [commons-codec](https://github.com/apache/commons-codec) from 1.7 to 1.13.\n\nChangelog
\n\n*Sourced from [commons-codec's changelog](https://github.com/apache/commons-codec/blob/master/RELEASE-NOTES.txt).*\n\n> Apache Apache Commons Codec 1.13 RELEASE NOTES\n> \n> The Apache Commons Codec package contains simple encoder and decoders for\n> various formats such as Base64 and Hexadecimal. In addition to these\n> widely used encoders and decoders, the codec package also maintains a\n> collection of phonetic encoding utilities.\n> \n> Feature and fix release.\n> \n> Changes in this version include:\n> \n> New features:\n> o CODEC-236: MurmurHash2 for 32-bit or 64-bit value. Thanks to Viliam Holub.\n> o CODEC-236: MurmurHash3 for 32-bit or 128-bit value. Thanks to Austin Appleby.\n> \n> Fixed Bugs:\n> o CODEC-255: ColognePhonetic handles x incorrectly Thanks to Holger Grote.\n> o CODEC-254: ColognePhonetic does not treat the letter H correctly Thanks to Holger Grote.\n> o CODEC-134: Reject any decode request for a value that is impossible to encode to for Base32/Base64 rather than blindly decoding.\n> \n> Changes:\n> o CODEC-236: Broken direct java.nio.ByteBuffer support in org.apache.commons.codec.binary.Hex. Thanks to Tomas Shestakov, Gary Gregory.\n> \n> \n> For complete information on Apache Commons Codec, including instructions on how to submit bug reports,\n> patches, or suggestions for improvement, see the Apache Apache Commons Codec website:\n> \n> Visit https://commons.apache.org/proper/commons-codec/\n> Download from https://commons.apache.org/proper/commons-codec/download_codec.cgi\n> \n> \n> -------------------------------------------------------------------------------\n> \n> Apache Commons Codec 1.12 RELEASE NOTES\n> \n> The Apache Commons Codec team is pleased to announce the commons-codec-1.12 release!\n> \n> The Apache Commons Codec package contains simple encoder and decoders for\n> various formats such as Base64 and Hexadecimal. In addition to these\n> widely used encoders and decoders, the codec package also maintains a\n> collection of phonetic encoding utilities.\n> \n> Changes in this version include:\n> \n> New features:\n> o Add Percent-Encoding Codec (described in RFC3986 and RFC7578) Issue: CODEC-240. Thanks to Ioannis Sermetziadis.\n> o Add SHA-3 methods in DigestUtils Issue: CODEC-251. Thanks to Gary Gregory.\n> \n> Fixed Bugs:\n> o B64 salt generator: Random -> ThreadLocalRandom Issue: CODEC-252.\n> ... (truncated)\n \n\nCommits
\n\n- [`beafa49`](https://github.com/apache/commons-codec/commit/beafa49f88be397f89b78d125d2c7c52b0114006) Fix the site's source repository link.\n- [`4200d4d`](https://github.com/apache/commons-codec/commit/4200d4d9cbfb2cbfc7f6e783cceb06bb52963887) Fix the site's source repository link.\n- [`20dc3ec`](https://github.com/apache/commons-codec/commit/20dc3ec2c6b41f9412ecf4a1cbe9bba10e1498ed) Prepare for the next release.\n- [`7d309fc`](https://github.com/apache/commons-codec/commit/7d309fc952fa201c53ba277eee33b751f56cf50e) Update POM version numbers for Apache Commons Codec release 1.13\n- [`47a55d2`](https://github.com/apache/commons-codec/commit/47a55d21515bf2ec49d2c1b4f2f83bf66a09a7c5) Prepare for the next release.\n- [`3730126`](https://github.com/apache/commons-codec/commit/3730126d8a3fbf98533710e1c9f2ba18b91d53f2) Prepare for the next release.\n- [`9969e7b`](https://github.com/apache/commons-codec/commit/9969e7b317777e151646923d302e856b163ba224) Prepare for the next release.\n- [`fe39ffc`](https://github.com/apache/commons-codec/commit/fe39ffc076712fc8cd55c96fc5cb0eee2efe4847) Remove unnecessary type casts.\n- [`3e6fb93`](https://github.com/apache/commons-codec/commit/3e6fb93250fb951ccd3b9597cd19b1c2243a77b1) Use final.\n- [`9253700`](https://github.com/apache/commons-codec/commit/9253700b7308dc43f063c87014dce5ee80ee33e0) Remove trailing white spaces.\n- Additional commits viewable in [compare view](https://github.com/apache/commons-codec/compare/1.7...commons-codec-1.13)\n \n
\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=commons-codec:commons-codec&package-manager=maven&previous-version=1.7&new-version=1.13)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.\n\nYou can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/550",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/550/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/550/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/550/events",
+ "html_url": "https://github.com/github-api/github-api/pull/550",
+ "id": 497888949,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIwOTM0MDI5",
+ "number": 550,
+ "title": "Bump spotbugs-maven-plugin from 3.1.11 to 3.1.12.2",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-24T19:47:13Z",
+ "updated_at": "2019-09-24T21:21:54Z",
+ "closed_at": "2019-09-24T21:21:44Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/550",
+ "html_url": "https://github.com/github-api/github-api/pull/550",
+ "diff_url": "https://github.com/github-api/github-api/pull/550.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/550.patch"
+ },
+ "body": "Bumps [spotbugs-maven-plugin](https://github.com/spotbugs/spotbugs-maven-plugin) from 3.1.11 to 3.1.12.2.\n\nRelease notes
\n\n*Sourced from [spotbugs-maven-plugin's releases](https://github.com/spotbugs/spotbugs-maven-plugin/releases).*\n\n> ## 3.1.12.2 Release\n> - Configurable output filename added\r\n> - Added support for jdk 12 through 14\n> \n> ## Groovy Patch Release against 3.1.12 spotbugs\n> This release is against spotbugs 3.1.12 and includes a patch to groovy 3.0.0 beta 2. This ensures that java warnings on newer jdks are no longer presented to the user of spotbugs maven plugin.\r\n> \r\n> This release additionally contains updated third party software and fixes to ensure our site pages are properly released.\r\n> \r\n> Note: While support for spotbugs with source paths has been included here, that feature aligns with spotbugs 4.0.0. In order to utilize the feature, you will need to override spotbugs with the most recent spotbugs beta release '4.0.0-beta3'. See [here](https://github-redirect.dependabot.com/spotbugs/spotbugs/issues/694) for details on support.\n \n\nCommits
\n\n- [`dd665f5`](https://github.com/spotbugs/spotbugs-maven-plugin/commit/dd665f585b26dc79bd55504911b4ebbbe2a1dc8f) [maven-release-plugin] prepare release spotbugs-maven-plugin-3.1.12.2\n- [`05de8a5`](https://github.com/spotbugs/spotbugs-maven-plugin/commit/05de8a5030309c5a21a438859470cf43b45c71a5) Merge pull request [#135](https://github-redirect.dependabot.com/spotbugs/spotbugs-maven-plugin/issues/135) from hazendaz/spotbugs\n- [`f162ac8`](https://github.com/spotbugs/spotbugs-maven-plugin/commit/f162ac8067553df9aa279f461b8d3c600e0b9520) [pom] Bump asm to 7.2-beta for jdk 14 support\n- [`9fcf700`](https://github.com/spotbugs/spotbugs-maven-plugin/commit/9fcf7009e921e84c7f815c6372f4067e58b82d80) [pom] Override asm to 7.1 for jdk 13 support\n- [`d4f8a77`](https://github.com/spotbugs/spotbugs-maven-plugin/commit/d4f8a7792aa0bb82ab7d3e4a06254aa58ec0ac0c) [travis] Try jdks 12 through 14\n- [`d7ab21f`](https://github.com/spotbugs/spotbugs-maven-plugin/commit/d7ab21f6d616e29daad875aec489891dfbd65b10) [ci] Change since '3.1.13' to 3.1.12.2'\n- [`ba47ced`](https://github.com/spotbugs/spotbugs-maven-plugin/commit/ba47ced7b8fcddaafde4c195ad8bab42fa83d4f4) [pom] Update base-parent to 23\n- [`c4c670d`](https://github.com/spotbugs/spotbugs-maven-plugin/commit/c4c670d45878fed45fbcd8231147c63145913713) Merge pull request [#133](https://github-redirect.dependabot.com/spotbugs/spotbugs-maven-plugin/issues/133) from spotbugs/dependabot/maven/commons-codec-commons-...\n- [`e3cea3c`](https://github.com/spotbugs/spotbugs-maven-plugin/commit/e3cea3c570ef1190d4747293313b9002bdbb67b8) Bump commons-codec from 1.12 to 1.13\n- [`932b294`](https://github.com/spotbugs/spotbugs-maven-plugin/commit/932b294abdca8294c1112edd6f0f59360e1bc709) Merge pull request [#131](https://github-redirect.dependabot.com/spotbugs/spotbugs-maven-plugin/issues/131) from hazendaz/spotbugs\n- Additional commits viewable in [compare view](https://github.com/spotbugs/spotbugs-maven-plugin/compare/spotbugs-maven-plugin-3.1.11...spotbugs-maven-plugin-3.1.12.2)\n \n
\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=com.github.spotbugs:spotbugs-maven-plugin&package-manager=maven&previous-version=3.1.11&new-version=3.1.12.2)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.\n\nYou can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/549",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/549/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/549/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/549/events",
+ "html_url": "https://github.com/github-api/github-api/pull/549",
+ "id": 497888811,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIwOTMzOTE1",
+ "number": 549,
+ "title": "Bump bridge-method-annotation from 1.17 to 1.18",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-24T19:46:54Z",
+ "updated_at": "2019-09-24T21:29:12Z",
+ "closed_at": "2019-09-24T21:29:04Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/549",
+ "html_url": "https://github.com/github-api/github-api/pull/549",
+ "diff_url": "https://github.com/github-api/github-api/pull/549.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/549.patch"
+ },
+ "body": "Bumps [bridge-method-annotation](https://github.com/infradna/bridge-method-injector) from 1.17 to 1.18.\n\nCommits
\n\n- [`7639b42`](https://github.com/infradna/bridge-method-injector/commit/7639b42d29a9700d9a1b355510ab772d5fe41b2f) [maven-release-plugin] prepare release bridge-method-injector-parent-1.18\n- [`e2ddd0b`](https://github.com/infradna/bridge-method-injector/commit/e2ddd0b6462c3efff234000ed70e90441e23fa03) Fixed the adapting from int to long\n- [`2031ef8`](https://github.com/infradna/bridge-method-injector/commit/2031ef8bb8cd05bd9b36c04707e5bfff14c3239e) Test case to show a failure to bridge int to long\n- [`8fb551d`](https://github.com/infradna/bridge-method-injector/commit/8fb551d5c54de723dd11235a48600e49abbda174) [maven-release-plugin] prepare for next development iteration\n- See full diff in [compare view](https://github.com/infradna/bridge-method-injector/compare/bridge-method-injector-parent-1.17...bridge-method-injector-parent-1.18)\n \n
\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=com.infradna.tool:bridge-method-annotation&package-manager=maven&previous-version=1.17&new-version=1.18)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.\n\nYou can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/548",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/548/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/548/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/548/events",
+ "html_url": "https://github.com/github-api/github-api/pull/548",
+ "id": 497888644,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIwOTMzNzc4",
+ "number": 548,
+ "title": "Bump jackson-databind from 2.9.10 to 2.10.0.pr3",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2019-09-24T19:46:30Z",
+ "updated_at": "2019-09-24T21:18:41Z",
+ "closed_at": "2019-09-24T21:18:34Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/548",
+ "html_url": "https://github.com/github-api/github-api/pull/548",
+ "diff_url": "https://github.com/github-api/github-api/pull/548.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/548.patch"
+ },
+ "body": "[//]: # (dependabot-start)\n⚠️ **Dependabot is rebasing this PR** ⚠️ \n\nIf you make any changes to it yourself then they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps [jackson-databind](https://github.com/FasterXML/jackson) from 2.9.10 to 2.10.0.pr3.\n\nCommits
\n\n- See full diff in [compare view](https://github.com/FasterXML/jackson/commits)\n \n
\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=com.fasterxml.jackson.core:jackson-databind&package-manager=maven&previous-version=2.9.10&new-version=2.10.0.pr3)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.\n\nYou can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/547",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/547/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/547/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/547/events",
+ "html_url": "https://github.com/github-api/github-api/pull/547",
+ "id": 497888492,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzIwOTMzNjUy",
+ "number": 547,
+ "title": "Bump org.eclipse.jgit from 4.9.0.201710071750-r to 5.5.0.201909110433-r",
+ "user": {
+ "login": "dependabot-preview[bot]",
+ "id": 27856297,
+ "node_id": "MDM6Qm90Mjc4NTYyOTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/in/2141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dependabot-preview%5Bbot%5D",
+ "html_url": "https://github.com/apps/dependabot-preview",
+ "followers_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/followers",
+ "following_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/subscriptions",
+ "organizations_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/orgs",
+ "repos_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/repos",
+ "events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dependabot-preview%5Bbot%5D/received_events",
+ "type": "Bot",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 1576019209,
+ "node_id": "MDU6TGFiZWwxNTc2MDE5MjA5",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/dependencies",
+ "name": "dependencies",
+ "color": "0366d6",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-24T19:46:08Z",
+ "updated_at": "2019-09-24T21:17:40Z",
+ "closed_at": "2019-09-24T21:17:32Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/547",
+ "html_url": "https://github.com/github-api/github-api/pull/547",
+ "diff_url": "https://github.com/github-api/github-api/pull/547.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/547.patch"
+ },
+ "body": "Bumps org.eclipse.jgit from 4.9.0.201710071750-r to 5.5.0.201909110433-r.\n\n[](https://dependabot.com/compatibility-score.html?dependency-name=org.eclipse.jgit:org.eclipse.jgit&package-manager=maven&previous-version=4.9.0.201710071750-r&new-version=5.5.0.201909110433-r)\n\nDependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n**Note:** This repo was added to Dependabot recently, so you'll receive a maximum of 5 PRs for your first few update runs. Once an update run creates fewer than 5 PRs we'll remove that limit.\n\nYou can always request more updates by clicking `Bump now` in your [Dependabot dashboard](https://app.dependabot.com).\n\n\nDependabot commands and options
\n
\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot merge` will merge this PR after your CI passes on it\n- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it\n- `@dependabot cancel merge` will cancel a previously requested merge and block automerging\n- `@dependabot reopen` will reopen this PR if it is closed\n- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually\n- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)\n- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language\n- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language\n- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language\n- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language\n- `@dependabot badge me` will comment on this PR with code to add a \"Dependabot enabled\" badge to your readme\n\nAdditionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com):\n- Update frequency (including time of day and day of week)\n- Pull request limits (per update run and/or open at any time)\n- Out-of-range updates (receive only lockfile updates, if desired)\n- Security updates (receive only security updates, if desired)\n\nFinally, you can contact us by mentioning @dependabot.\n\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/544",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/544/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/544/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/544/events",
+ "html_url": "https://github.com/github-api/github-api/pull/544",
+ "id": 494601895,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzE4MzIxNjQx",
+ "number": 544,
+ "title": "Adding possiblity to get ssh keys",
+ "user": {
+ "login": "arngrimur-seal",
+ "id": 36759268,
+ "node_id": "MDQ6VXNlcjM2NzU5MjY4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/36759268?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/arngrimur-seal",
+ "html_url": "https://github.com/arngrimur-seal",
+ "followers_url": "https://api.github.com/users/arngrimur-seal/followers",
+ "following_url": "https://api.github.com/users/arngrimur-seal/following{/other_user}",
+ "gists_url": "https://api.github.com/users/arngrimur-seal/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/arngrimur-seal/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/arngrimur-seal/subscriptions",
+ "organizations_url": "https://api.github.com/users/arngrimur-seal/orgs",
+ "repos_url": "https://api.github.com/users/arngrimur-seal/repos",
+ "events_url": "https://api.github.com/users/arngrimur-seal/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/arngrimur-seal/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-17T12:46:50Z",
+ "updated_at": "2019-09-30T01:33:46Z",
+ "closed_at": "2019-09-30T01:33:46Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/544",
+ "html_url": "https://github.com/github-api/github-api/pull/544",
+ "diff_url": "https://github.com/github-api/github-api/pull/544.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/544.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/543",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/543/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/543/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/543/events",
+ "html_url": "https://github.com/github-api/github-api/pull/543",
+ "id": 492513466,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzE2NjczMDk0",
+ "number": 543,
+ "title": "Grammar",
+ "user": {
+ "login": "jsoref",
+ "id": 2119212,
+ "node_id": "MDQ6VXNlcjIxMTkyMTI=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/2119212?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jsoref",
+ "html_url": "https://github.com/jsoref",
+ "followers_url": "https://api.github.com/users/jsoref/followers",
+ "following_url": "https://api.github.com/users/jsoref/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jsoref/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jsoref/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jsoref/subscriptions",
+ "organizations_url": "https://api.github.com/users/jsoref/orgs",
+ "repos_url": "https://api.github.com/users/jsoref/repos",
+ "events_url": "https://api.github.com/users/jsoref/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jsoref/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-11T23:30:25Z",
+ "updated_at": "2019-09-12T11:34:18Z",
+ "closed_at": "2019-09-12T03:48:29Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/543",
+ "html_url": "https://github.com/github-api/github-api/pull/543",
+ "diff_url": "https://github.com/github-api/github-api/pull/543.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/543.patch"
+ },
+ "body": "(I wrote this a few weeks ago while trying to debug some github-branch-source-plugin stuff, I'm not done, but i might as well flush them)"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/542",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/542/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/542/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/542/events",
+ "html_url": "https://github.com/github-api/github-api/pull/542",
+ "id": 492329940,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzE2NTIzODE2",
+ "number": 542,
+ "title": "Improved OkHttpConnector caching behavior",
+ "user": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2019-09-11T16:03:33Z",
+ "updated_at": "2019-10-01T20:11:32Z",
+ "closed_at": "2019-10-01T20:11:27Z",
+ "author_association": "MEMBER",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/542",
+ "html_url": "https://github.com/github-api/github-api/pull/542",
+ "diff_url": "https://github.com/github-api/github-api/pull/542.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/542.patch"
+ },
+ "body": "In the Jenkins project we've seen a number of less than ideal behaviors by the OKHttp cache. \r\nSome instances it seems bad data gets in and then gets stuck in the cache. In other cases it appears the cache obey the `max-age=60` returned by GitHub and thus doesn't even look for new data from some requests. \r\n\r\nThe cache behavior is fine for client-side uses such as Android where optimizing for network usage is important. Users of this library are are generally less concerned with network usage - they turn on caching to avoid using up their itHub rate-limit budget.\r\n\r\nThis change modifies the default OkHttpConnect behavior to make OkHttp always check the cache against the GitHub site. OkHttp still sends the response `ETag` in the request which lets GitHub return a [`304 Not Modified`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/304) if nothing has changed and does not count that request against the users rate-limit. OkHttp handles this response automatically and returns the cached data. \r\n\r\nThis means that by using a bit more network bandwidth, this change guarantees up-to-date data while keeping the same rate-limit savings. \r\n\r\nThis change has no effect outside the scenario where OkHttpConnector is used with caching.\r\n\r\nThis is basically the same behavior added to Jenkins [here](https://github.com/jenkinsci/github-branch-source-plugin/blob/e7ac121084bcdf1b5959668cea3fb3a22f380686/src/main/java/org/jenkinsci/plugins/github_branch_source/Connector.java#L726-L748)."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/541",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/541/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/541/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/541/events",
+ "html_url": "https://github.com/github-api/github-api/pull/541",
+ "id": 492027372,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzE2MjgwMDM2",
+ "number": 541,
+ "title": "Add GitHubApiWireMockRule",
+ "user": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-11T05:39:26Z",
+ "updated_at": "2019-09-11T05:54:34Z",
+ "closed_at": "2019-09-11T05:54:29Z",
+ "author_association": "MEMBER",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/541",
+ "html_url": "https://github.com/github-api/github-api/pull/541",
+ "diff_url": "https://github.com/github-api/github-api/pull/541.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/541.patch"
+ },
+ "body": "Separates the WireMock and GitHub API info from project specific code."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/540",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/540/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/540/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/540/events",
+ "html_url": "https://github.com/github-api/github-api/pull/540",
+ "id": 491417856,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzE1Nzg5MjI3",
+ "number": 540,
+ "title": "Working CI Build",
+ "user": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-09-10T02:37:28Z",
+ "updated_at": "2019-09-10T05:01:42Z",
+ "closed_at": "2019-09-10T05:01:34Z",
+ "author_association": "MEMBER",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/540",
+ "html_url": "https://github.com/github-api/github-api/pull/540",
+ "diff_url": "https://github.com/github-api/github-api/pull/540.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/540.patch"
+ },
+ "body": "This change automatically turns off tests where we haven't had a chance to implement wiremocking.\r\nThey can still be run locally by setting test.github.useProxy (even though most of them do actually use the proxy).\r\n\r\nSimplifies added tests going forward - they will turn on automatically when they move from the old test base to wiremock."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/538",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/538/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/538/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/538/events",
+ "html_url": "https://github.com/github-api/github-api/pull/538",
+ "id": 488722511,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzEzNjg2MDgy",
+ "number": 538,
+ "title": "Namespace PR head queries with repo's owner by default",
+ "user": {
+ "login": "ewiegs4",
+ "id": 24780711,
+ "node_id": "MDQ6VXNlcjI0NzgwNzEx",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/24780711?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ewiegs4",
+ "html_url": "https://github.com/ewiegs4",
+ "followers_url": "https://api.github.com/users/ewiegs4/followers",
+ "following_url": "https://api.github.com/users/ewiegs4/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ewiegs4/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ewiegs4/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ewiegs4/subscriptions",
+ "organizations_url": "https://api.github.com/users/ewiegs4/orgs",
+ "repos_url": "https://api.github.com/users/ewiegs4/repos",
+ "events_url": "https://api.github.com/users/ewiegs4/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ewiegs4/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2019-09-03T17:07:35Z",
+ "updated_at": "2019-09-09T23:31:22Z",
+ "closed_at": "2019-09-09T23:31:22Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/538",
+ "html_url": "https://github.com/github-api/github-api/pull/538",
+ "diff_url": "https://github.com/github-api/github-api/pull/538.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/538.patch"
+ },
+ "body": "The [create a pull request API](https://developer.github.com/v3/pulls/#create-a-pull-request) does not require a namespace on the head branch when creating a pull request between two branches in the same repository.\r\n\r\nHowever, the [list pull requests API](https://developer.github.com/v3/pulls/#list-pull-requests) **does** require a namespace on the `head` value in order to work properly. If the namespace is omitted, the call _ignores_ the `head` parameter entirely, returning all pull requests that match on the other criteria.\r\n\r\nIn my opinion, this seems like an oversight in the API and creates quite a pitfall.\r\n\r\nFor example, creating a pull request between two branches in the same repository looks like:\r\n`repository.createPullRequest(\"title\", \"my-branch\", \"master\", null);`\r\nBut the query to pull back the newly created pull request must look like:\r\n`repository.queryPullRequests().state(GHIssueState.OPEN).head(\"my-org:my-branch\").base(\"master\").list();`\r\nForgetting the `my-org:` results in all open pull-requests into the master branch being returned, which is clearly not what was intended in the query.\r\n\r\nThis change causes the `head` value to be namespaced by default if a non-namespaced value is provided, given that providing a non-namespaced value is effectively the same as `null` and will never behave as the developer intended."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/537",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/537/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/537/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/537/events",
+ "html_url": "https://github.com/github-api/github-api/pull/537",
+ "id": 487746664,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzEyOTQwNTA1",
+ "number": 537,
+ "title": "Add WireMock testing facility",
+ "user": {
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2019-08-31T08:36:33Z",
+ "updated_at": "2019-09-06T23:17:42Z",
+ "closed_at": "2019-09-06T23:17:37Z",
+ "author_association": "MEMBER",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/537",
+ "html_url": "https://github.com/github-api/github-api/pull/537",
+ "diff_url": "https://github.com/github-api/github-api/pull/537.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/537.patch"
+ },
+ "body": "@kohsuke \r\nDoes this look reasonable to you? \r\n\r\nRelated to #316 and #382 "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/535",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/535/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/535/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/535/events",
+ "html_url": "https://github.com/github-api/github-api/issues/535",
+ "id": 487214458,
+ "node_id": "MDU6SXNzdWU0ODcyMTQ0NTg=",
+ "number": 535,
+ "title": "GHRepository.listReleases() return empty always",
+ "user": {
+ "login": "zacker330",
+ "id": 3665451,
+ "node_id": "MDQ6VXNlcjM2NjU0NTE=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/3665451?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/zacker330",
+ "html_url": "https://github.com/zacker330",
+ "followers_url": "https://api.github.com/users/zacker330/followers",
+ "following_url": "https://api.github.com/users/zacker330/following{/other_user}",
+ "gists_url": "https://api.github.com/users/zacker330/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/zacker330/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/zacker330/subscriptions",
+ "organizations_url": "https://api.github.com/users/zacker330/orgs",
+ "repos_url": "https://api.github.com/users/zacker330/repos",
+ "events_url": "https://api.github.com/users/zacker330/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/zacker330/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2019-08-29T23:12:20Z",
+ "updated_at": "2019-08-30T02:59:22Z",
+ "closed_at": "2019-08-30T00:50:16Z",
+ "author_association": "NONE",
+ "body": "I tried pull releases of redis(https://github.com/antirez/redis) and nginx, but GHRepository.listReleases() return empty always"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/534",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/534/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/534/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/534/events",
+ "html_url": "https://github.com/github-api/github-api/pull/534",
+ "id": 485551662,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzExMTc1MDY2",
+ "number": 534,
+ "title": "Swap to HTTPs",
+ "user": {
+ "login": "res0nance",
+ "id": 31362124,
+ "node_id": "MDQ6VXNlcjMxMzYyMTI0",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/31362124?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/res0nance",
+ "html_url": "https://github.com/res0nance",
+ "followers_url": "https://api.github.com/users/res0nance/followers",
+ "following_url": "https://api.github.com/users/res0nance/following{/other_user}",
+ "gists_url": "https://api.github.com/users/res0nance/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/res0nance/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/res0nance/subscriptions",
+ "organizations_url": "https://api.github.com/users/res0nance/orgs",
+ "repos_url": "https://api.github.com/users/res0nance/repos",
+ "events_url": "https://api.github.com/users/res0nance/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/res0nance/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2019-08-27T02:46:15Z",
+ "updated_at": "2019-09-04T09:13:41Z",
+ "closed_at": "2019-08-28T20:24:53Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/534",
+ "html_url": "https://github.com/github-api/github-api/pull/534",
+ "diff_url": "https://github.com/github-api/github-api/pull/534.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/534.patch"
+ },
+ "body": "Swap to https where it makes sense.\r\n\r\nThe description should be updated as well."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/533",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/533/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/533/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/533/events",
+ "html_url": "https://github.com/github-api/github-api/pull/533",
+ "id": 481300020,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzA3ODI2MjQ2",
+ "number": 533,
+ "title": "jackson-databind 2.9.9.3",
+ "user": {
+ "login": "sullis",
+ "id": 30938,
+ "node_id": "MDQ6VXNlcjMwOTM4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/30938?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sullis",
+ "html_url": "https://github.com/sullis",
+ "followers_url": "https://api.github.com/users/sullis/followers",
+ "following_url": "https://api.github.com/users/sullis/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sullis/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sullis/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sullis/subscriptions",
+ "organizations_url": "https://api.github.com/users/sullis/orgs",
+ "repos_url": "https://api.github.com/users/sullis/repos",
+ "events_url": "https://api.github.com/users/sullis/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sullis/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-08-15T19:24:09Z",
+ "updated_at": "2019-08-24T02:06:25Z",
+ "closed_at": "2019-08-24T02:06:25Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/533",
+ "html_url": "https://github.com/github-api/github-api/pull/533",
+ "diff_url": "https://github.com/github-api/github-api/pull/533.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/533.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/527",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/527/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/527/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/527/events",
+ "html_url": "https://github.com/github-api/github-api/pull/527",
+ "id": 467483053,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Mjk3MTI3MDQz",
+ "number": 527,
+ "title": "Remove unnessesairy \"throws\"",
+ "user": {
+ "login": "WouterG",
+ "id": 1137039,
+ "node_id": "MDQ6VXNlcjExMzcwMzk=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1137039?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/WouterG",
+ "html_url": "https://github.com/WouterG",
+ "followers_url": "https://api.github.com/users/WouterG/followers",
+ "following_url": "https://api.github.com/users/WouterG/following{/other_user}",
+ "gists_url": "https://api.github.com/users/WouterG/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/WouterG/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/WouterG/subscriptions",
+ "organizations_url": "https://api.github.com/users/WouterG/orgs",
+ "repos_url": "https://api.github.com/users/WouterG/repos",
+ "events_url": "https://api.github.com/users/WouterG/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/WouterG/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-07-12T15:46:43Z",
+ "updated_at": "2019-09-10T02:38:10Z",
+ "closed_at": "2019-09-10T02:38:09Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/527",
+ "html_url": "https://github.com/github-api/github-api/pull/527",
+ "diff_url": "https://github.com/github-api/github-api/pull/527.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/527.patch"
+ },
+ "body": "All IOExceptions are already caught within the method itself."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/526",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/526/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/526/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/526/events",
+ "html_url": "https://github.com/github-api/github-api/issues/526",
+ "id": 467332954,
+ "node_id": "MDU6SXNzdWU0NjczMzI5NTQ=",
+ "number": 526,
+ "title": "Malformed URL exception while accessing Enterprise Repository and fetching data",
+ "user": {
+ "login": "m00lecule",
+ "id": 33501567,
+ "node_id": "MDQ6VXNlcjMzNTAxNTY3",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/33501567?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/m00lecule",
+ "html_url": "https://github.com/m00lecule",
+ "followers_url": "https://api.github.com/users/m00lecule/followers",
+ "following_url": "https://api.github.com/users/m00lecule/following{/other_user}",
+ "gists_url": "https://api.github.com/users/m00lecule/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/m00lecule/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/m00lecule/subscriptions",
+ "organizations_url": "https://api.github.com/users/m00lecule/orgs",
+ "repos_url": "https://api.github.com/users/m00lecule/repos",
+ "events_url": "https://api.github.com/users/m00lecule/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/m00lecule/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-07-12T10:08:31Z",
+ "updated_at": "2019-07-12T10:53:47Z",
+ "closed_at": "2019-07-12T10:53:47Z",
+ "author_association": "NONE",
+ "body": "I am getting this exception, while trying to connect to remote repository. \r\n\r\n``Exception in thread \"main\" java.net.MalformedURLException: no protocol: github.XXXX.com/repos/ilmt/apar2github\r\n\tat java.net.URL.(URL.java:593)\r\n\tat java.net.URL.(URL.java:490)\r\n\tat java.net.URL.(URL.java:439)\r\n\tat org.kohsuke.github.GitHub.getApiURL(GitHub.java:302)\r\n\tat org.kohsuke.github.Requester._to(Requester.java:280)\r\n\tat org.kohsuke.github.Requester.to(Requester.java:247)\r\n\tat org.kohsuke.github.GitHub.getRepository(GitHub.java:475)\r\n``\r\n\r\nand here is url where it is available:\r\n\r\nhttps://github.XXXX.com/ilmt/apar2github\r\n\r\nand code:\r\n\r\n``\r\n\tGitHub gh = GitHub.connectToEnterpriseWithOAuth(apiUrl, login, oAuth);\r\n\tGHRepository repository = gh.getRepository(\"ilmt/apar2github\");\t\r\n\tSystem.out.println(repository.getName());\r\n``\r\n\r\nand im using 1.95 version"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/517",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/517/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/517/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/517/events",
+ "html_url": "https://github.com/github-api/github-api/pull/517",
+ "id": 437538406,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjczNzkxNjMw",
+ "number": 517,
+ "title": "Adds the ability to get a repository by ID",
+ "user": {
+ "login": "jamesatha",
+ "id": 3318082,
+ "node_id": "MDQ6VXNlcjMzMTgwODI=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/3318082?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jamesatha",
+ "html_url": "https://github.com/jamesatha",
+ "followers_url": "https://api.github.com/users/jamesatha/followers",
+ "following_url": "https://api.github.com/users/jamesatha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jamesatha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jamesatha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jamesatha/subscriptions",
+ "organizations_url": "https://api.github.com/users/jamesatha/orgs",
+ "repos_url": "https://api.github.com/users/jamesatha/repos",
+ "events_url": "https://api.github.com/users/jamesatha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jamesatha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-04-26T07:33:34Z",
+ "updated_at": "2019-06-20T00:11:05Z",
+ "closed_at": "2019-06-20T00:11:05Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/517",
+ "html_url": "https://github.com/github-api/github-api/pull/517",
+ "diff_url": "https://github.com/github-api/github-api/pull/517.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/517.patch"
+ },
+ "body": "Fixes: https://github.com/kohsuke/github-api/issues/515"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/516",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/516/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/516/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/516/events",
+ "html_url": "https://github.com/github-api/github-api/pull/516",
+ "id": 437535600,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjczNzg5NjIx",
+ "number": 516,
+ "title": "Broken PR",
+ "user": {
+ "login": "jamesatha",
+ "id": 3318082,
+ "node_id": "MDQ6VXNlcjMzMTgwODI=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/3318082?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jamesatha",
+ "html_url": "https://github.com/jamesatha",
+ "followers_url": "https://api.github.com/users/jamesatha/followers",
+ "following_url": "https://api.github.com/users/jamesatha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jamesatha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jamesatha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jamesatha/subscriptions",
+ "organizations_url": "https://api.github.com/users/jamesatha/orgs",
+ "repos_url": "https://api.github.com/users/jamesatha/repos",
+ "events_url": "https://api.github.com/users/jamesatha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jamesatha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-04-26T07:25:48Z",
+ "updated_at": "2019-04-26T07:35:40Z",
+ "closed_at": "2019-04-26T07:32:00Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/516",
+ "html_url": "https://github.com/github-api/github-api/pull/516",
+ "diff_url": "https://github.com/github-api/github-api/pull/516.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/516.patch"
+ },
+ "body": "My force push seems to have messed up the PR. Sorry, remaking"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/515",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/515/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/515/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/515/events",
+ "html_url": "https://github.com/github-api/github-api/issues/515",
+ "id": 437530259,
+ "node_id": "MDU6SXNzdWU0Mzc1MzAyNTk=",
+ "number": 515,
+ "title": "Allow getting a repository by ID",
+ "user": {
+ "login": "jamesatha",
+ "id": 3318082,
+ "node_id": "MDQ6VXNlcjMzMTgwODI=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/3318082?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jamesatha",
+ "html_url": "https://github.com/jamesatha",
+ "followers_url": "https://api.github.com/users/jamesatha/followers",
+ "following_url": "https://api.github.com/users/jamesatha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jamesatha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jamesatha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jamesatha/subscriptions",
+ "organizations_url": "https://api.github.com/users/jamesatha/orgs",
+ "repos_url": "https://api.github.com/users/jamesatha/repos",
+ "events_url": "https://api.github.com/users/jamesatha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jamesatha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-04-26T07:09:34Z",
+ "updated_at": "2019-06-20T00:11:04Z",
+ "closed_at": "2019-06-20T00:11:04Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "Other clients use the undocumented api to get a repository by ID. Can we add that to this client as well?\r\n\r\nExamples:\r\nPHP: https://github.com/KnpLabs/php-github-api/pull/579\r\nPython: https://github.com/PyGithub/PyGithub/blob/b64b0d6942bb27095bd035b8c0db10ca35448be3/github/MainClass.py#L191\r\nOctoKit supports it: https://github.com/octokit/rest.js/issues/163#issuecomment-450007728\r\n\r\nAnd it seems to be sticking around indefinitely: https://github.com/piotrmurach/github/issues/283#issuecomment-249092851"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/509",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/509/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/509/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/509/events",
+ "html_url": "https://github.com/github-api/github-api/pull/509",
+ "id": 425311622,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjY0NDM4NDc0",
+ "number": 509,
+ "title": "Fixed typo of ADMIN_HOOK variable",
+ "user": {
+ "login": "baymac",
+ "id": 23079344,
+ "node_id": "MDQ6VXNlcjIzMDc5MzQ0",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/23079344?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/baymac",
+ "html_url": "https://github.com/baymac",
+ "followers_url": "https://api.github.com/users/baymac/followers",
+ "following_url": "https://api.github.com/users/baymac/following{/other_user}",
+ "gists_url": "https://api.github.com/users/baymac/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/baymac/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/baymac/subscriptions",
+ "organizations_url": "https://api.github.com/users/baymac/orgs",
+ "repos_url": "https://api.github.com/users/baymac/repos",
+ "events_url": "https://api.github.com/users/baymac/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/baymac/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2019-03-26T09:36:49Z",
+ "updated_at": "2019-03-26T10:24:20Z",
+ "closed_at": "2019-03-26T10:22:57Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/509",
+ "html_url": "https://github.com/github-api/github-api/pull/509",
+ "diff_url": "https://github.com/github-api/github-api/pull/509.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/509.patch"
+ },
+ "body": "Fixed the variable typo and also sending a PR to Github Plugin which uses this variable."
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-46f0ca81-080b-419a-b494-df00573bd9aa.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-46f0ca81-080b-419a-b494-df00573bd9aa.json
new file mode 100644
index 000000000..d0991d051
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-46f0ca81-080b-419a-b494-df00573bd9aa.json
@@ -0,0 +1,1418 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/112",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/112/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/112/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/112/events",
+ "html_url": "https://github.com/github-api/github-api/pull/112",
+ "id": 38606529,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTg4MjMxODU=",
+ "number": 112,
+ "title": "Get all orgs/teams/permissions in a single GitHub API call",
+ "user": {
+ "login": "lucamilanesio",
+ "id": 182893,
+ "node_id": "MDQ6VXNlcjE4Mjg5Mw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/182893?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lucamilanesio",
+ "html_url": "https://github.com/lucamilanesio",
+ "followers_url": "https://api.github.com/users/lucamilanesio/followers",
+ "following_url": "https://api.github.com/users/lucamilanesio/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lucamilanesio/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lucamilanesio/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lucamilanesio/subscriptions",
+ "organizations_url": "https://api.github.com/users/lucamilanesio/orgs",
+ "repos_url": "https://api.github.com/users/lucamilanesio/repos",
+ "events_url": "https://api.github.com/users/lucamilanesio/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lucamilanesio/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 13,
+ "created_at": "2014-07-24T08:16:46Z",
+ "updated_at": "2014-08-20T09:59:14Z",
+ "closed_at": "2014-08-19T17:57:39Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/112",
+ "html_url": "https://github.com/github-api/github-api/pull/112",
+ "diff_url": "https://github.com/github-api/github-api/pull/112.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/112.patch"
+ },
+ "body": "Exposes a new API call at GitHub root level to build the complete\nset of organisations and teams that current user belongs to.\n\nThis change allows to massively reduce the number of calls to GitHub \nespecially for people that belongs to multiple organisations with \nlots of teams and members.\n\nSigned-off-by: Luca Milanesio luca.milanesio@gmail.com\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/111",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/111/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/111/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/111/events",
+ "html_url": "https://github.com/github-api/github-api/issues/111",
+ "id": 38177752,
+ "node_id": "MDU6SXNzdWUzODE3Nzc1Mg==",
+ "number": 111,
+ "title": "NullPointerException in GHPerson",
+ "user": {
+ "login": "kuc",
+ "id": 1827393,
+ "node_id": "MDQ6VXNlcjE4MjczOTM=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1827393?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kuc",
+ "html_url": "https://github.com/kuc",
+ "followers_url": "https://api.github.com/users/kuc/followers",
+ "following_url": "https://api.github.com/users/kuc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kuc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kuc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kuc/subscriptions",
+ "organizations_url": "https://api.github.com/users/kuc/orgs",
+ "repos_url": "https://api.github.com/users/kuc/repos",
+ "events_url": "https://api.github.com/users/kuc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kuc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 8,
+ "created_at": "2014-07-18T13:51:13Z",
+ "updated_at": "2015-04-07T07:48:21Z",
+ "closed_at": "2015-02-15T15:14:08Z",
+ "author_association": "NONE",
+ "body": "I'm not sure if I should report this here or to https://github.com/janinko/ghprb, but exception is thrown in `at org.kohsuke.github.GHPerson.populate(GHPerson.java:42)`.\n\nI use `GitHub API Plugin 1.55` and `GitHub Pull Request Builder 1.12`.\n\n```\nJul 14, 2014 6:54:53 PM WARNING org.jenkinsci.plugins.ghprb.GhprbPullRequest obtainAuthorEmail\nCouldn't obtain author email.\njava.lang.NullPointerException\n at org.kohsuke.github.GHPerson.populate(GHPerson.java:42)\n at org.kohsuke.github.GHPerson.getEmail(GHPerson.java:220)\n at org.jenkinsci.plugins.ghprb.GhprbPullRequest.obtainAuthorEmail(GhprbPullRequest.java:266)\n at org.jenkinsci.plugins.ghprb.GhprbPullRequest.tryBuild(GhprbPullRequest.java:161)\n at org.jenkinsci.plugins.ghprb.GhprbPullRequest.check(GhprbPullRequest.java:106)\n at org.jenkinsci.plugins.ghprb.GhprbRepository.onPullRequestHook(GhprbRepository.java:233)\n at org.jenkinsci.plugins.ghprb.GhprbRootAction.doIndex(GhprbRootAction.java:62)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:483)\n at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)\n at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)\n at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)\n at org.kohsuke.stapler.MetaClass$2.dispatch(MetaClass.java:164)\n at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)\n at org.kohsuke.stapler.MetaClass$12.dispatch(MetaClass.java:390)\n at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)\n(...)\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/110",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/110/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/110/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/110/events",
+ "html_url": "https://github.com/github-api/github-api/issues/110",
+ "id": 38099071,
+ "node_id": "MDU6SXNzdWUzODA5OTA3MQ==",
+ "number": 110,
+ "title": "Suggested enhancement: GHPerson#getAllRepositories()",
+ "user": {
+ "login": "alexrothenberg",
+ "id": 12577,
+ "node_id": "MDQ6VXNlcjEyNTc3",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/12577?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alexrothenberg",
+ "html_url": "https://github.com/alexrothenberg",
+ "followers_url": "https://api.github.com/users/alexrothenberg/followers",
+ "following_url": "https://api.github.com/users/alexrothenberg/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexrothenberg/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexrothenberg/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexrothenberg/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexrothenberg/orgs",
+ "repos_url": "https://api.github.com/users/alexrothenberg/repos",
+ "events_url": "https://api.github.com/users/alexrothenberg/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexrothenberg/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2014-07-17T16:18:32Z",
+ "updated_at": "2015-02-15T15:06:35Z",
+ "closed_at": "2015-02-15T15:06:35Z",
+ "author_association": "NONE",
+ "body": "Currently `GHPerson#getRepositories()` will only get the first 30 repositories. It would be useful (to me) to have a `getAllRepositories` that returns a map of all my repositories, if there are a lot it would follow pagination links making several github api requests.\n\nWould you be open to this enhancement? If so I'll work on a pull request.\n\nThanks\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/109",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/109/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/109/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/109/events",
+ "html_url": "https://github.com/github-api/github-api/issues/109",
+ "id": 37772481,
+ "node_id": "MDU6SXNzdWUzNzc3MjQ4MQ==",
+ "number": 109,
+ "title": "add support for proxy",
+ "user": {
+ "login": "layerssss",
+ "id": 1559832,
+ "node_id": "MDQ6VXNlcjE1NTk4MzI=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1559832?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/layerssss",
+ "html_url": "https://github.com/layerssss",
+ "followers_url": "https://api.github.com/users/layerssss/followers",
+ "following_url": "https://api.github.com/users/layerssss/following{/other_user}",
+ "gists_url": "https://api.github.com/users/layerssss/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/layerssss/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/layerssss/subscriptions",
+ "organizations_url": "https://api.github.com/users/layerssss/orgs",
+ "repos_url": "https://api.github.com/users/layerssss/repos",
+ "events_url": "https://api.github.com/users/layerssss/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/layerssss/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2014-07-14T09:50:13Z",
+ "updated_at": "2015-02-15T17:14:50Z",
+ "closed_at": "2015-02-15T15:03:41Z",
+ "author_association": "NONE",
+ "body": "Hi, I am using the github-oauth-plugin on my jenkins instances. And I need an https proxy to reach github.com access points. Recently the plugin [patched](https://github.com/jenkinsci/github-oauth-plugin/pull/15) its oauth part with support for setting an http proxy via `-Dhttps.proxyHost` & `-Dhttps.proxyPort` arguments.\n\nHowever, setting those is still not effective for retrieving user's github group list, which is backed by github-api. So is there a way can I set a proxy for github-api? or we need one\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/108",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/108/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/108/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/108/events",
+ "html_url": "https://github.com/github-api/github-api/issues/108",
+ "id": 37562777,
+ "node_id": "MDU6SXNzdWUzNzU2Mjc3Nw==",
+ "number": 108,
+ "title": "Error while accessing rate limit API - No subject alternative DNS name matching api.github.com found.",
+ "user": {
+ "login": "kuc",
+ "id": 1827393,
+ "node_id": "MDQ6VXNlcjE4MjczOTM=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1827393?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kuc",
+ "html_url": "https://github.com/kuc",
+ "followers_url": "https://api.github.com/users/kuc/followers",
+ "following_url": "https://api.github.com/users/kuc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kuc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kuc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kuc/subscriptions",
+ "organizations_url": "https://api.github.com/users/kuc/orgs",
+ "repos_url": "https://api.github.com/users/kuc/repos",
+ "events_url": "https://api.github.com/users/kuc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kuc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-07-10T13:36:53Z",
+ "updated_at": "2015-02-15T14:58:08Z",
+ "closed_at": "2015-02-15T14:58:08Z",
+ "author_association": "NONE",
+ "body": "```\njavax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative DNS name matching api.github.com found.\n at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)\n at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1917)\n at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:301)\n at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:295)\n at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1369)\n at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:156)\n at sun.security.ssl.Handshaker.processLoop(Handshaker.java:925)\n at sun.security.ssl.Handshaker.process_record(Handshaker.java:860)\n at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1043)\n at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1343)\n at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1371)\n at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1355)\n at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)\n at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)\n at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1511)\n at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439)\n at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)\n at org.kohsuke.github.Requester.parse(Requester.java:359)\n at org.kohsuke.github.Requester._to(Requester.java:180)\n at org.kohsuke.github.Requester.to(Requester.java:155)\n at org.kohsuke.github.GitHub.getRateLimit(GitHub.java:244)\n at org.jenkinsci.plugins.ghprb.GhprbRepository.initGhRepository(GhprbRepository.java:51)\n at org.jenkinsci.plugins.ghprb.GhprbRepository.check(GhprbRepository.java:73)\n at org.jenkinsci.plugins.ghprb.Ghprb.run(Ghprb.java:95)\n at org.jenkinsci.plugins.ghprb.GhprbTrigger.run(GhprbTrigger.java:124)\n at hudson.triggers.Trigger.checkTriggers(Trigger.java:266)\n at hudson.triggers.Trigger$Cron.doRun(Trigger.java:214)\n at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:54)\n at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)\n at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)\n at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n at java.lang.Thread.run(Thread.java:745)\nCaused by: java.security.cert.CertificateException: No subject alternative DNS name matching api.github.com found.\n at sun.security.util.HostnameChecker.matchDNS(HostnameChecker.java:191)\n at sun.security.util.HostnameChecker.match(HostnameChecker.java:93)\n at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:455)\n at sun.security.ssl.X509TrustManagerImpl.checkIdentity(X509TrustManagerImpl.java:436)\n at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:200)\n at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)\n at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1351)\n ... 30 more\n```\n\nI use Jenkins via HTTPS with self-signed certificate - maybe it's related to\nhttp://stackoverflow.com/questions/10258101/sslhandshakeexception-no-subject-alternative-names-present\nor\nhttp://stackoverflow.com/questions/8443081/how-are-ssl-certificate-server-names-resolved-can-i-add-alternative-names-using\n?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/107",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/107/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/107/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/107/events",
+ "html_url": "https://github.com/github-api/github-api/pull/107",
+ "id": 37440591,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTgxNDU2MjA=",
+ "number": 107,
+ "title": "General pagination",
+ "user": {
+ "login": "msperisen",
+ "id": 2448228,
+ "node_id": "MDQ6VXNlcjI0NDgyMjg=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/2448228?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/msperisen",
+ "html_url": "https://github.com/msperisen",
+ "followers_url": "https://api.github.com/users/msperisen/followers",
+ "following_url": "https://api.github.com/users/msperisen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/msperisen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/msperisen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/msperisen/subscriptions",
+ "organizations_url": "https://api.github.com/users/msperisen/orgs",
+ "repos_url": "https://api.github.com/users/msperisen/repos",
+ "events_url": "https://api.github.com/users/msperisen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/msperisen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-07-09T07:38:48Z",
+ "updated_at": "2014-08-30T20:52:36Z",
+ "closed_at": "2014-08-30T20:52:35Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/107",
+ "html_url": "https://github.com/github-api/github-api/pull/107",
+ "diff_url": "https://github.com/github-api/github-api/pull/107.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/107.patch"
+ },
+ "body": "implementation of general pagination by evaluating link header field. as suggested by api the link for pagination is not constructed in code but taken out of the link field (rel=next).\nrefresh of cache to be able to reflect update operations on github without creating new GitHub instance.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/106",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/106/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/106/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/106/events",
+ "html_url": "https://github.com/github-api/github-api/pull/106",
+ "id": 37058872,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTc5MzMwMjg=",
+ "number": 106,
+ "title": "Implement pagination on list of private+public repos of a user.",
+ "user": {
+ "login": "lucamilanesio",
+ "id": 182893,
+ "node_id": "MDQ6VXNlcjE4Mjg5Mw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/182893?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lucamilanesio",
+ "html_url": "https://github.com/lucamilanesio",
+ "followers_url": "https://api.github.com/users/lucamilanesio/followers",
+ "following_url": "https://api.github.com/users/lucamilanesio/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lucamilanesio/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lucamilanesio/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lucamilanesio/subscriptions",
+ "organizations_url": "https://api.github.com/users/lucamilanesio/orgs",
+ "repos_url": "https://api.github.com/users/lucamilanesio/repos",
+ "events_url": "https://api.github.com/users/lucamilanesio/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lucamilanesio/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-07-03T09:08:01Z",
+ "updated_at": "2014-07-05T02:13:04Z",
+ "closed_at": "2014-07-05T02:13:04Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/106",
+ "html_url": "https://github.com/github-api/github-api/pull/106",
+ "diff_url": "https://github.com/github-api/github-api/pull/106.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/106.patch"
+ },
+ "body": "The paginated version of listRepositories() was \nmissing at GHMyself: as side-effect of this bug\nwhen requesting a paginated list of repositories\nthe ones privately owned by a user were not shown.\n\nThis was caused by the missing override of the \nlistRepositories(final int pageSize) at GHMyself\nthat caused the GHPerson implementation to invoked.\n\nThe GHPerson version uses the /users/:org/repos?per_page=x\nURL which _works fine_ for organisations but unfortunately\n_does not return_ private repositories for users.\n\nIMHO GitHub API are quite inconsistent form this \npoint of view, but they are documented in this way\nso that work (inconsistently) as designed.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/105",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/105/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/105/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/105/events",
+ "html_url": "https://github.com/github-api/github-api/issues/105",
+ "id": 36875199,
+ "node_id": "MDU6SXNzdWUzNjg3NTE5OQ==",
+ "number": 105,
+ "title": "Add support for retrieving repository available labels",
+ "user": {
+ "login": "idoganzer",
+ "id": 7049039,
+ "node_id": "MDQ6VXNlcjcwNDkwMzk=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/7049039?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/idoganzer",
+ "html_url": "https://github.com/idoganzer",
+ "followers_url": "https://api.github.com/users/idoganzer/followers",
+ "following_url": "https://api.github.com/users/idoganzer/following{/other_user}",
+ "gists_url": "https://api.github.com/users/idoganzer/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/idoganzer/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/idoganzer/subscriptions",
+ "organizations_url": "https://api.github.com/users/idoganzer/orgs",
+ "repos_url": "https://api.github.com/users/idoganzer/repos",
+ "events_url": "https://api.github.com/users/idoganzer/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/idoganzer/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2014-07-01T09:18:49Z",
+ "updated_at": "2015-02-15T14:55:45Z",
+ "closed_at": "2015-02-15T14:55:45Z",
+ "author_association": "NONE",
+ "body": "Hi, this library is great!\ncan you add a support to retrieve all available labels for a repository?\nhttps://developer.github.com/v3/issues/labels/#list-all-labels-for-this-repository\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/104",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/104/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/104/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/104/events",
+ "html_url": "https://github.com/github-api/github-api/issues/104",
+ "id": 36722784,
+ "node_id": "MDU6SXNzdWUzNjcyMjc4NA==",
+ "number": 104,
+ "title": "Consider committing to using OkHttp in preference to HttpURLConnection",
+ "user": {
+ "login": "rtyley",
+ "id": 52038,
+ "node_id": "MDQ6VXNlcjUyMDM4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/52038?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rtyley",
+ "html_url": "https://github.com/rtyley",
+ "followers_url": "https://api.github.com/users/rtyley/followers",
+ "following_url": "https://api.github.com/users/rtyley/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rtyley/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rtyley/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rtyley/subscriptions",
+ "organizations_url": "https://api.github.com/users/rtyley/orgs",
+ "repos_url": "https://api.github.com/users/rtyley/repos",
+ "events_url": "https://api.github.com/users/rtyley/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rtyley/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2014-06-28T10:37:56Z",
+ "updated_at": "2015-03-22T18:18:39Z",
+ "closed_at": "2015-03-22T18:18:39Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "This blogpost explains the advantages of OkHttp's interface over `HttpURLConnection` - it neatly supports separation of [Request](https://github.com/square/okhttp/blob/parent-2.0.0/okhttp/src/main/java/com/squareup/okhttp/Request.java) and [Response](https://github.com/square/okhttp/blob/parent-2.0.0/okhttp/src/main/java/com/squareup/okhttp/Response.java), and offers an asynchronous [Call](https://github.com/square/okhttp/blob/parent-2.0.0/okhttp/src/main/java/com/squareup/okhttp/Call.java) interface:\n\nhttp://corner.squareup.com/2014/06/okhttp-2.html\n\nIn order for `github-api` to take full advantage of the superior OkHttp API - and to expose it to external users so that **users can do async calls to the GitHub API** - would probably require commiting to using OkHttp everywhere within the `github-api` library, removing all usage of HttpURLConnection. This might feel like a big change, but it's mostly an _internal_ one, so hopefully would not substantially impact consumers of the library, other than offering them additional functionality.\n\nAmongst it's many consumers, OkHttp is also the engine that powers [HttpUrlConnection as of Android 4.4](https://twitter.com/JakeWharton/status/482563299511250944), so it's a library that has a lot of traction and support.\n\nSee the OkHttp ['Recipes'](https://github.com/square/okhttp/wiki/Recipes) documentation for code usage examples.\n\nWould there be any interest in a pull-request that made this happen?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/103",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/103/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/103/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/103/events",
+ "html_url": "https://github.com/github-api/github-api/pull/103",
+ "id": 36722392,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTc3MzY2ODg=",
+ "number": 103,
+ "title": "Update to OkHttp 2.0.0, which has a new OkUrlFactory",
+ "user": {
+ "login": "rtyley",
+ "id": 52038,
+ "node_id": "MDQ6VXNlcjUyMDM4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/52038?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rtyley",
+ "html_url": "https://github.com/rtyley",
+ "followers_url": "https://api.github.com/users/rtyley/followers",
+ "following_url": "https://api.github.com/users/rtyley/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rtyley/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rtyley/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rtyley/subscriptions",
+ "organizations_url": "https://api.github.com/users/rtyley/orgs",
+ "repos_url": "https://api.github.com/users/rtyley/repos",
+ "events_url": "https://api.github.com/users/rtyley/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rtyley/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-06-28T10:13:09Z",
+ "updated_at": "2014-07-03T04:13:37Z",
+ "closed_at": "2014-07-03T04:13:37Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/103",
+ "html_url": "https://github.com/github-api/github-api/pull/103",
+ "diff_url": "https://github.com/github-api/github-api/pull/103.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/103.patch"
+ },
+ "body": "OkHttp changed API with v2.0.0, and the `client.open(url)` method no longer exists:\n\n\"URLConnection support has moved to the okhttp-urlconnection module. If you're upgrading from 1.x, this change will impact you. You will need to add the okhttp-urlconnection module to your project and use\nthe OkUrlFactory to create new instances of HttpURLConnection\"\n\nhttps://github.com/square/okhttp/blob/master/CHANGELOG.md#version-200-rc1\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/102",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/102/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/102/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/102/events",
+ "html_url": "https://github.com/github-api/github-api/pull/102",
+ "id": 36390209,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTc1MzU0MTQ=",
+ "number": 102,
+ "title": "Better FNFE from delete()",
+ "user": {
+ "login": "jglick",
+ "id": 154109,
+ "node_id": "MDQ6VXNlcjE1NDEwOQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/154109?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jglick",
+ "html_url": "https://github.com/jglick",
+ "followers_url": "https://api.github.com/users/jglick/followers",
+ "following_url": "https://api.github.com/users/jglick/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jglick/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jglick/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jglick/subscriptions",
+ "organizations_url": "https://api.github.com/users/jglick/orgs",
+ "repos_url": "https://api.github.com/users/jglick/repos",
+ "events_url": "https://api.github.com/users/jglick/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jglick/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-06-24T14:39:49Z",
+ "updated_at": "2014-08-27T20:11:12Z",
+ "closed_at": "2014-07-03T04:13:16Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/102",
+ "html_url": "https://github.com/github-api/github-api/pull/102",
+ "diff_url": "https://github.com/github-api/github-api/pull/102.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/102.patch"
+ },
+ "body": "[Explanation](http://stackoverflow.com/a/19327004/12916)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/101",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/101/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/101/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/101/events",
+ "html_url": "https://github.com/github-api/github-api/pull/101",
+ "id": 35738965,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTcxNDgxNTk=",
+ "number": 101,
+ "title": "Un-finalize a handful of classes.",
+ "user": {
+ "login": "farmdawgnation",
+ "id": 620189,
+ "node_id": "MDQ6VXNlcjYyMDE4OQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/620189?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/farmdawgnation",
+ "html_url": "https://github.com/farmdawgnation",
+ "followers_url": "https://api.github.com/users/farmdawgnation/followers",
+ "following_url": "https://api.github.com/users/farmdawgnation/following{/other_user}",
+ "gists_url": "https://api.github.com/users/farmdawgnation/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/farmdawgnation/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/farmdawgnation/subscriptions",
+ "organizations_url": "https://api.github.com/users/farmdawgnation/orgs",
+ "repos_url": "https://api.github.com/users/farmdawgnation/repos",
+ "events_url": "https://api.github.com/users/farmdawgnation/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/farmdawgnation/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-06-14T23:35:45Z",
+ "updated_at": "2014-07-03T04:12:59Z",
+ "closed_at": "2014-07-03T04:12:59Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/101",
+ "html_url": "https://github.com/github-api/github-api/pull/101",
+ "diff_url": "https://github.com/github-api/github-api/pull/101.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/101.patch"
+ },
+ "body": "Having final classes prevents consumers of the API from mocking those classes in testing. I've un-finalized a handful of classes in this PR such that they will mock correctly for those people who are doing mocking work for unit tests.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/100",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/100/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/100/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/100/events",
+ "html_url": "https://github.com/github-api/github-api/issues/100",
+ "id": 35499313,
+ "node_id": "MDU6SXNzdWUzNTQ5OTMxMw==",
+ "number": 100,
+ "title": "Unable to access commit date through api.",
+ "user": {
+ "login": "shalecraig",
+ "id": 679197,
+ "node_id": "MDQ6VXNlcjY3OTE5Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/679197?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/shalecraig",
+ "html_url": "https://github.com/shalecraig",
+ "followers_url": "https://api.github.com/users/shalecraig/followers",
+ "following_url": "https://api.github.com/users/shalecraig/following{/other_user}",
+ "gists_url": "https://api.github.com/users/shalecraig/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/shalecraig/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/shalecraig/subscriptions",
+ "organizations_url": "https://api.github.com/users/shalecraig/orgs",
+ "repos_url": "https://api.github.com/users/shalecraig/repos",
+ "events_url": "https://api.github.com/users/shalecraig/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/shalecraig/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-06-11T16:07:44Z",
+ "updated_at": "2014-06-11T16:22:18Z",
+ "closed_at": "2014-06-11T16:22:18Z",
+ "author_association": "NONE",
+ "body": "API Documentation is [here](https://developer.github.com/v3/git/commits/#get-a-commit)\n\nI expected a method of the form of [1], but it looks like `getCommitter` and `getAuthor` return a User. Similarly, I expected [2] when looking for the user.\n\nIf there's a way to do this that I'm not aware of, please let me know.\n\n[1] `myGHCommit.getCommitter().getDate()` and `myGHCommit.getAuthor().getDate()`\n[2] `myGHCommit.getCommitter().getUser()` and `myGHCommit.getAuthor().getUser()`\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/99",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/99/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/99/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/99/events",
+ "html_url": "https://github.com/github-api/github-api/issues/99",
+ "id": 35443082,
+ "node_id": "MDU6SXNzdWUzNTQ0MzA4Mg==",
+ "number": 99,
+ "title": "getReadme its outdated",
+ "user": {
+ "login": "patriq",
+ "id": 3120671,
+ "node_id": "MDQ6VXNlcjMxMjA2NzE=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/3120671?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/patriq",
+ "html_url": "https://github.com/patriq",
+ "followers_url": "https://api.github.com/users/patriq/followers",
+ "following_url": "https://api.github.com/users/patriq/following{/other_user}",
+ "gists_url": "https://api.github.com/users/patriq/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/patriq/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/patriq/subscriptions",
+ "organizations_url": "https://api.github.com/users/patriq/orgs",
+ "repos_url": "https://api.github.com/users/patriq/repos",
+ "events_url": "https://api.github.com/users/patriq/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/patriq/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-06-11T01:43:57Z",
+ "updated_at": "2015-02-15T14:31:41Z",
+ "closed_at": "2015-02-15T14:31:41Z",
+ "author_association": "NONE",
+ "body": "You either use this:\n/repos/:owner/:repo/readme\n\nOr you just change it to this:\n\nGHContent getReadme(){\n return getFileContent(\"README.md\");\n}\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/98",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/98/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/98/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/98/events",
+ "html_url": "https://github.com/github-api/github-api/pull/98",
+ "id": 35416453,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTY5NjAyMDE=",
+ "number": 98,
+ "title": "Implemented New Method to Retrieve all Collaborators from a Repository",
+ "user": {
+ "login": "luciano-sabenca-movile",
+ "id": 1260136,
+ "node_id": "MDQ6VXNlcjEyNjAxMzY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1260136?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/luciano-sabenca-movile",
+ "html_url": "https://github.com/luciano-sabenca-movile",
+ "followers_url": "https://api.github.com/users/luciano-sabenca-movile/followers",
+ "following_url": "https://api.github.com/users/luciano-sabenca-movile/following{/other_user}",
+ "gists_url": "https://api.github.com/users/luciano-sabenca-movile/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/luciano-sabenca-movile/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/luciano-sabenca-movile/subscriptions",
+ "organizations_url": "https://api.github.com/users/luciano-sabenca-movile/orgs",
+ "repos_url": "https://api.github.com/users/luciano-sabenca-movile/repos",
+ "events_url": "https://api.github.com/users/luciano-sabenca-movile/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/luciano-sabenca-movile/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2014-06-10T19:31:08Z",
+ "updated_at": "2014-07-03T13:02:42Z",
+ "closed_at": "2014-07-03T04:26:01Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/98",
+ "html_url": "https://github.com/github-api/github-api/pull/98",
+ "diff_url": "https://github.com/github-api/github-api/pull/98.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/98.patch"
+ },
+ "body": "Hi. \n\nI have a very ordinary use-case: I need to check if a Github user has access to a repository. Unfortunately, the Github's API doesn't provide a way to do it directly. To do it, I need to get all repos and check in which repositories the user is in repository's collaborators list. I tried to implement it, but a found a little problem: the method getCollaborators just return the first 30th collaborators. So, I've implemented a new method to retrieve all collaborators from a repository doing pagination just like several other methods from this library. \n\nThere is also, in this pull-request, fixes to some formatting issues and a unitary test-case to the new method.\n\nAny question/suggestion, please, feel free to contact me.\n\nThanks in advance\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/97",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/97/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/97/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/97/events",
+ "html_url": "https://github.com/github-api/github-api/pull/97",
+ "id": 35216270,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTY4NTY5MzM=",
+ "number": 97,
+ "title": "Add support for adding context to commit status.",
+ "user": {
+ "login": "suryagaddipati",
+ "id": 64078,
+ "node_id": "MDQ6VXNlcjY0MDc4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/64078?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/suryagaddipati",
+ "html_url": "https://github.com/suryagaddipati",
+ "followers_url": "https://api.github.com/users/suryagaddipati/followers",
+ "following_url": "https://api.github.com/users/suryagaddipati/following{/other_user}",
+ "gists_url": "https://api.github.com/users/suryagaddipati/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/suryagaddipati/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/suryagaddipati/subscriptions",
+ "organizations_url": "https://api.github.com/users/suryagaddipati/orgs",
+ "repos_url": "https://api.github.com/users/suryagaddipati/repos",
+ "events_url": "https://api.github.com/users/suryagaddipati/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/suryagaddipati/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 8,
+ "created_at": "2014-06-07T19:34:59Z",
+ "updated_at": "2014-06-13T17:30:26Z",
+ "closed_at": "2014-06-08T17:21:43Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/97",
+ "html_url": "https://github.com/github-api/github-api/pull/97",
+ "diff_url": "https://github.com/github-api/github-api/pull/97.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/97.patch"
+ },
+ "body": "This groups statuses from multiple contexts to return single combined\nstatus. More information here:\nhttps://developer.github.com/changes/2014-03-27-combined-status-api/\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/96",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/96/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/96/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/96/events",
+ "html_url": "https://github.com/github-api/github-api/issues/96",
+ "id": 35063591,
+ "node_id": "MDU6SXNzdWUzNTA2MzU5MQ==",
+ "number": 96,
+ "title": "Add support for commit status contexts.",
+ "user": {
+ "login": "farmdawgnation",
+ "id": 620189,
+ "node_id": "MDQ6VXNlcjYyMDE4OQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/620189?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/farmdawgnation",
+ "html_url": "https://github.com/farmdawgnation",
+ "followers_url": "https://api.github.com/users/farmdawgnation/followers",
+ "following_url": "https://api.github.com/users/farmdawgnation/following{/other_user}",
+ "gists_url": "https://api.github.com/users/farmdawgnation/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/farmdawgnation/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/farmdawgnation/subscriptions",
+ "organizations_url": "https://api.github.com/users/farmdawgnation/orgs",
+ "repos_url": "https://api.github.com/users/farmdawgnation/repos",
+ "events_url": "https://api.github.com/users/farmdawgnation/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/farmdawgnation/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2014-06-05T14:43:42Z",
+ "updated_at": "2014-06-14T23:40:29Z",
+ "closed_at": "2014-06-14T23:40:29Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "The GitHub status API now supports the concept of optional contexts for commit statuses. It would be useful to be able to add those from the Java API for the benefit of things like the GitHub Pull Request builder.\n\nI'm going to try and find some time in the next week to actually work on this. If someone else starts tackling it before I get around to it, please comment here so we're not duplicating work! :)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/95",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/95/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/95/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/95/events",
+ "html_url": "https://github.com/github-api/github-api/pull/95",
+ "id": 34998334,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTY3MzEyNzc=",
+ "number": 95,
+ "title": "Add support for retriving a single ref",
+ "user": {
+ "login": "suryagaddipati",
+ "id": 64078,
+ "node_id": "MDQ6VXNlcjY0MDc4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/64078?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/suryagaddipati",
+ "html_url": "https://github.com/suryagaddipati",
+ "followers_url": "https://api.github.com/users/suryagaddipati/followers",
+ "following_url": "https://api.github.com/users/suryagaddipati/following{/other_user}",
+ "gists_url": "https://api.github.com/users/suryagaddipati/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/suryagaddipati/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/suryagaddipati/subscriptions",
+ "organizations_url": "https://api.github.com/users/suryagaddipati/orgs",
+ "repos_url": "https://api.github.com/users/suryagaddipati/repos",
+ "events_url": "https://api.github.com/users/suryagaddipati/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/suryagaddipati/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-06-04T20:12:42Z",
+ "updated_at": "2014-07-01T17:26:03Z",
+ "closed_at": "2014-06-05T17:27:42Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/95",
+ "html_url": "https://github.com/github-api/github-api/pull/95",
+ "diff_url": "https://github.com/github-api/github-api/pull/95.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/95.patch"
+ },
+ "body": "Implements the following api method\nhttps://developer.github.com/v3/git/refs/#get-a-reference\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/94",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/94/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/94/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/94/events",
+ "html_url": "https://github.com/github-api/github-api/pull/94",
+ "id": 34901058,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTY2NzU5NzY=",
+ "number": 94,
+ "title": "Add support for adding deploykeys to repo",
+ "user": {
+ "login": "suryagaddipati",
+ "id": 64078,
+ "node_id": "MDQ6VXNlcjY0MDc4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/64078?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/suryagaddipati",
+ "html_url": "https://github.com/suryagaddipati",
+ "followers_url": "https://api.github.com/users/suryagaddipati/followers",
+ "following_url": "https://api.github.com/users/suryagaddipati/following{/other_user}",
+ "gists_url": "https://api.github.com/users/suryagaddipati/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/suryagaddipati/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/suryagaddipati/subscriptions",
+ "organizations_url": "https://api.github.com/users/suryagaddipati/orgs",
+ "repos_url": "https://api.github.com/users/suryagaddipati/repos",
+ "events_url": "https://api.github.com/users/suryagaddipati/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/suryagaddipati/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-06-03T20:27:52Z",
+ "updated_at": "2014-06-19T13:30:25Z",
+ "closed_at": "2014-06-05T17:28:19Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/94",
+ "html_url": "https://github.com/github-api/github-api/pull/94",
+ "diff_url": "https://github.com/github-api/github-api/pull/94.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/94.patch"
+ },
+ "body": "Implements https://developer.github.com/v3/repos/keys/\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/93",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/93/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/93/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/93/events",
+ "html_url": "https://github.com/github-api/github-api/pull/93",
+ "id": 34441274,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTY0MTIyMzg=",
+ "number": 93,
+ "title": "Upgrading to 1.12 version for bridge-method-annotation and bridge-method-injector - fix for #91",
+ "user": {
+ "login": "vr100",
+ "id": 6443683,
+ "node_id": "MDQ6VXNlcjY0NDM2ODM=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/6443683?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vr100",
+ "html_url": "https://github.com/vr100",
+ "followers_url": "https://api.github.com/users/vr100/followers",
+ "following_url": "https://api.github.com/users/vr100/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vr100/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vr100/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vr100/subscriptions",
+ "organizations_url": "https://api.github.com/users/vr100/orgs",
+ "repos_url": "https://api.github.com/users/vr100/repos",
+ "events_url": "https://api.github.com/users/vr100/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vr100/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-05-28T07:13:32Z",
+ "updated_at": "2014-06-22T05:20:14Z",
+ "closed_at": "2014-05-29T03:52:07Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/93",
+ "html_url": "https://github.com/github-api/github-api/pull/93",
+ "diff_url": "https://github.com/github-api/github-api/pull/93.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/93.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/92",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/92/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/92/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/92/events",
+ "html_url": "https://github.com/github-api/github-api/issues/92",
+ "id": 34125291,
+ "node_id": "MDU6SXNzdWUzNDEyNTI5MQ==",
+ "number": 92,
+ "title": "getEvents fails periodically with odd exception",
+ "user": {
+ "login": "mebigfatguy",
+ "id": 170161,
+ "node_id": "MDQ6VXNlcjE3MDE2MQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/170161?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mebigfatguy",
+ "html_url": "https://github.com/mebigfatguy",
+ "followers_url": "https://api.github.com/users/mebigfatguy/followers",
+ "following_url": "https://api.github.com/users/mebigfatguy/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mebigfatguy/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mebigfatguy/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mebigfatguy/subscriptions",
+ "organizations_url": "https://api.github.com/users/mebigfatguy/orgs",
+ "repos_url": "https://api.github.com/users/mebigfatguy/repos",
+ "events_url": "https://api.github.com/users/mebigfatguy/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mebigfatguy/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-05-22T21:48:49Z",
+ "updated_at": "2015-02-16T15:21:23Z",
+ "closed_at": "2015-02-16T15:21:23Z",
+ "author_association": "NONE",
+ "body": "Occasionally a call to getEvents will throw with the following exception. I'm assuming this is just the github rest layer being flaky or somethimg, but just posting it, in case there's something else going on\n\nERROR 21:37:25 Failed fetching events from github\njava.net.UnknownHostException: api.github.com\n at java.net.InetAddress.getAllByName0(InetAddress.java:1250) ~[na:1.7.0_55]\n at java.net.InetAddress.getAllByName(InetAddress.java:1162) ~[na:1.7.0_55]\n at java.net.InetAddress.getAllByName(InetAddress.java:1098) ~[na:1.7.0_55]\n at com.squareup.okhttp.internal.Dns$1.getAllByName(Dns.java:29) ~[okhttp-1.5.3.jar:na]\n at com.squareup.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:232) ~[okhttp-1.5.3.jar:na]\n at com.squareup.okhttp.internal.http.RouteSelector.next(RouteSelector.java:124) ~[okhttp-1.5.3.jar:na]\n at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:233) ~[okhttp-1.5.3.jar:na]\n at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:180) ~[okhttp-1.5.3.jar:na]\n at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:366) ~[okhttp-1.5.3.jar:na]\n at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:319) ~[okhttp-1.5.3.jar:na]\n at com.squareup.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:187) ~[okhttp-1.5.3.jar:na]\n at com.squareup.okhttp.internal.http.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210) ~[okhttp-1.5.3.jar:na]\n at com.squareup.okhttp.internal.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25) ~[okhttp-1.5.3.jar:na]\n at org.kohsuke.github.Requester.parse(Requester.java:359) ~[github-api-1.53.jar:na]\n at org.kohsuke.github.Requester._to(Requester.java:180) ~[github-api-1.53.jar:na]\n at org.kohsuke.github.Requester.to(Requester.java:155) ~[github-api-1.53.jar:na]\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/91",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/91/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/91/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/91/events",
+ "html_url": "https://github.com/github-api/github-api/issues/91",
+ "id": 33315322,
+ "node_id": "MDU6SXNzdWUzMzMxNTMyMg==",
+ "number": 91,
+ "title": "Version 1.8 of bridge-method-annotation not available in maven central",
+ "user": {
+ "login": "vr100",
+ "id": 6443683,
+ "node_id": "MDQ6VXNlcjY0NDM2ODM=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/6443683?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vr100",
+ "html_url": "https://github.com/vr100",
+ "followers_url": "https://api.github.com/users/vr100/followers",
+ "following_url": "https://api.github.com/users/vr100/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vr100/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vr100/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vr100/subscriptions",
+ "organizations_url": "https://api.github.com/users/vr100/orgs",
+ "repos_url": "https://api.github.com/users/vr100/repos",
+ "events_url": "https://api.github.com/users/vr100/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vr100/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-05-12T14:59:28Z",
+ "updated_at": "2014-05-29T06:00:00Z",
+ "closed_at": "2014-05-29T06:00:00Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "For your reference,\nhttp://search.maven.org/#search|gav|1|g%3A%22com.infradna.tool%22%20AND%20a%3A%22bridge-method-annotation%22\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/90",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/90/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/90/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/90/events",
+ "html_url": "https://github.com/github-api/github-api/issues/90",
+ "id": 33306759,
+ "node_id": "MDU6SXNzdWUzMzMwNjc1OQ==",
+ "number": 90,
+ "title": "Ability to specify both branch and sha parameters at same time in GHCommitQueryBuilder",
+ "user": {
+ "login": "vr100",
+ "id": 6443683,
+ "node_id": "MDQ6VXNlcjY0NDM2ODM=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/6443683?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vr100",
+ "html_url": "https://github.com/vr100",
+ "followers_url": "https://api.github.com/users/vr100/followers",
+ "following_url": "https://api.github.com/users/vr100/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vr100/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vr100/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vr100/subscriptions",
+ "organizations_url": "https://api.github.com/users/vr100/orgs",
+ "repos_url": "https://api.github.com/users/vr100/repos",
+ "events_url": "https://api.github.com/users/vr100/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vr100/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-05-12T13:21:13Z",
+ "updated_at": "2014-05-28T08:10:38Z",
+ "closed_at": "2014-05-28T08:10:38Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "Github allows you to specify \"sha\" parameter multiple times while querying for commits. For eg., the case where we need commits from branch x from commit sha y, we could specify sha query parameter twice in the github api url. The current code has no way to achieve this scenario.\n\n(This is related to Merge of pull request #86 . Commit : https://github.com/kohsuke/github-api/commit/a409b4f49c47e5c28c613e8bf9e9dd6831c78494)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/89",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/89/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/89/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/89/events",
+ "html_url": "https://github.com/github-api/github-api/pull/89",
+ "id": 32707428,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTU0NDAwMTY=",
+ "number": 89,
+ "title": "add listTeams method on GHOrganization",
+ "user": {
+ "login": "echav",
+ "id": 6654524,
+ "node_id": "MDQ6VXNlcjY2NTQ1MjQ=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/6654524?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/echav",
+ "html_url": "https://github.com/echav",
+ "followers_url": "https://api.github.com/users/echav/followers",
+ "following_url": "https://api.github.com/users/echav/following{/other_user}",
+ "gists_url": "https://api.github.com/users/echav/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/echav/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/echav/subscriptions",
+ "organizations_url": "https://api.github.com/users/echav/orgs",
+ "repos_url": "https://api.github.com/users/echav/repos",
+ "events_url": "https://api.github.com/users/echav/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/echav/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-05-02T16:57:01Z",
+ "updated_at": "2014-06-16T16:43:18Z",
+ "closed_at": "2014-05-10T00:56:53Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/89",
+ "html_url": "https://github.com/github-api/github-api/pull/89",
+ "diff_url": "https://github.com/github-api/github-api/pull/89.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/89.patch"
+ },
+ "body": "The existing method getTeams does not retrieve all teams due to the paging of the REST API.\n\nSo I added a listTeams method in the GHOrganization API, using the same pattern as the existing listMembers (use of PagedIterable).\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/88",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/88/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/88/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/88/events",
+ "html_url": "https://github.com/github-api/github-api/issues/88",
+ "id": 32290166,
+ "node_id": "MDU6SXNzdWUzMjI5MDE2Ng==",
+ "number": 88,
+ "title": "GHUser.getRepositories() does not pull private repositories",
+ "user": {
+ "login": "anandcv",
+ "id": 6533835,
+ "node_id": "MDQ6VXNlcjY1MzM4MzU=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6533835?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/anandcv",
+ "html_url": "https://github.com/anandcv",
+ "followers_url": "https://api.github.com/users/anandcv/followers",
+ "following_url": "https://api.github.com/users/anandcv/following{/other_user}",
+ "gists_url": "https://api.github.com/users/anandcv/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/anandcv/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/anandcv/subscriptions",
+ "organizations_url": "https://api.github.com/users/anandcv/orgs",
+ "repos_url": "https://api.github.com/users/anandcv/repos",
+ "events_url": "https://api.github.com/users/anandcv/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/anandcv/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-04-26T14:28:02Z",
+ "updated_at": "2014-05-11T15:33:33Z",
+ "closed_at": "2014-05-10T22:17:19Z",
+ "author_association": "NONE",
+ "body": "When I tries to pull repositories of a user, I get all public repositories.\nBut the list does not show private repository at all.\n\n``` java\ngithub = GitHub.connectUsingOAuth(oAuthToken);\nuser = github.getMyself();\nMap repos = new HashMap();\nthis.repos = user.getRepositories();\nSystem.out.println(Repos.toString());\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/87",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/87/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/87/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/87/events",
+ "html_url": "https://github.com/github-api/github-api/pull/87",
+ "id": 32280066,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTUxOTg2NjQ=",
+ "number": 87,
+ "title": "Fix bug in GHMyself.getEmails due to API change",
+ "user": {
+ "login": "kellycampbell",
+ "id": 625998,
+ "node_id": "MDQ6VXNlcjYyNTk5OA==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/625998?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kellycampbell",
+ "html_url": "https://github.com/kellycampbell",
+ "followers_url": "https://api.github.com/users/kellycampbell/followers",
+ "following_url": "https://api.github.com/users/kellycampbell/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kellycampbell/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kellycampbell/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kellycampbell/subscriptions",
+ "organizations_url": "https://api.github.com/users/kellycampbell/orgs",
+ "repos_url": "https://api.github.com/users/kellycampbell/repos",
+ "events_url": "https://api.github.com/users/kellycampbell/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kellycampbell/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-04-26T02:57:55Z",
+ "updated_at": "2014-07-01T17:26:05Z",
+ "closed_at": "2014-05-10T00:59:54Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/87",
+ "html_url": "https://github.com/github-api/github-api/pull/87",
+ "diff_url": "https://github.com/github-api/github-api/pull/87.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/87.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/86",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/86/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/86/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/86/events",
+ "html_url": "https://github.com/github-api/github-api/pull/86",
+ "id": 32031706,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTUwNDg1MDM=",
+ "number": 86,
+ "title": "Using builder pattern to list commits in a repo by author, branch, etc",
+ "user": {
+ "login": "vr100",
+ "id": 6443683,
+ "node_id": "MDQ6VXNlcjY0NDM2ODM=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/6443683?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vr100",
+ "html_url": "https://github.com/vr100",
+ "followers_url": "https://api.github.com/users/vr100/followers",
+ "following_url": "https://api.github.com/users/vr100/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vr100/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vr100/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vr100/subscriptions",
+ "organizations_url": "https://api.github.com/users/vr100/orgs",
+ "repos_url": "https://api.github.com/users/vr100/repos",
+ "events_url": "https://api.github.com/users/vr100/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vr100/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2014-04-23T04:16:51Z",
+ "updated_at": "2014-07-01T17:26:05Z",
+ "closed_at": "2014-05-10T01:31:27Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/86",
+ "html_url": "https://github.com/github-api/github-api/pull/86",
+ "diff_url": "https://github.com/github-api/github-api/pull/86.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/86.patch"
+ },
+ "body": "Reworked on my earlier request #77 \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/85",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/85/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/85/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/85/events",
+ "html_url": "https://github.com/github-api/github-api/issues/85",
+ "id": 32020194,
+ "node_id": "MDU6SXNzdWUzMjAyMDE5NA==",
+ "number": 85,
+ "title": "File size limited to 1MB",
+ "user": {
+ "login": "ghost",
+ "id": 10137,
+ "node_id": "MDQ6VXNlcjEwMTM3",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/10137?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ghost",
+ "html_url": "https://github.com/ghost",
+ "followers_url": "https://api.github.com/users/ghost/followers",
+ "following_url": "https://api.github.com/users/ghost/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ghost/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ghost/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ghost/subscriptions",
+ "organizations_url": "https://api.github.com/users/ghost/orgs",
+ "repos_url": "https://api.github.com/users/ghost/repos",
+ "events_url": "https://api.github.com/users/ghost/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ghost/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-04-22T23:29:23Z",
+ "updated_at": "2014-04-23T17:19:15Z",
+ "closed_at": "2014-04-23T17:19:15Z",
+ "author_association": "NONE",
+ "body": "I tried to delete a file with 3MB from my repository. But to do that I need to call `GHRepository.getFileContent` first and that leads to the following error:\n\n```\nException: {\"message\":\"This API returns blobs up to 1 MB in size. The requested blob is too large to fetch via the API, but you can use the Git Data API to request blobs up to 100 MB in size.\",\"documentation_url\":\"https://developer.github.com/v3/repos/contents/#get-contents\",\"errors\":[{\"resource\":\"Blob\",\"field\":\"data\",\"code\":\"too_large\"}]}\n```\n\nThe same happens with `GHRepository.createContent`. \n\nIs there a way to use the git blobs api: https://developer.github.com/v3/git/blobs/?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/84",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/84/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/84/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/84/events",
+ "html_url": "https://github.com/github-api/github-api/pull/84",
+ "id": 31886962,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQ5NjIwMzM=",
+ "number": 84,
+ "title": "create a Release & Branch",
+ "user": {
+ "login": "fanfansama",
+ "id": 5654868,
+ "node_id": "MDQ6VXNlcjU2NTQ4Njg=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/5654868?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/fanfansama",
+ "html_url": "https://github.com/fanfansama",
+ "followers_url": "https://api.github.com/users/fanfansama/followers",
+ "following_url": "https://api.github.com/users/fanfansama/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fanfansama/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fanfansama/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fanfansama/subscriptions",
+ "organizations_url": "https://api.github.com/users/fanfansama/orgs",
+ "repos_url": "https://api.github.com/users/fanfansama/repos",
+ "events_url": "https://api.github.com/users/fanfansama/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fanfansama/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-04-21T08:54:07Z",
+ "updated_at": "2014-07-01T17:26:05Z",
+ "closed_at": "2014-05-10T19:50:49Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/84",
+ "html_url": "https://github.com/github-api/github-api/pull/84",
+ "diff_url": "https://github.com/github-api/github-api/pull/84.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/84.patch"
+ },
+ "body": "bonjour,\nJ'ai utilisé ta librairie pour automatiser la creation de release et de branche.\nJ'ai du adapter ton code en ajoutant quelques lignes.\n\nDu coup, je te pull mes ajouts.\n\nCoté Test Unitaires, je n'ai pas pris trop de temps pour comprendre pourquoi il ne passe pas tous.\nj'ai ajouté : testCreateRelease mais tu devras le retoucher.\n\nMerci pour ta librairie\n\nFrançois\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/83",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/83/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/83/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/83/events",
+ "html_url": "https://github.com/github-api/github-api/pull/83",
+ "id": 31801640,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQ5MjAyMDg=",
+ "number": 83,
+ "title": "add tarball_url and zipball_url to GHRelease",
+ "user": {
+ "login": "antonkrasov",
+ "id": 3696113,
+ "node_id": "MDQ6VXNlcjM2OTYxMTM=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/3696113?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/antonkrasov",
+ "html_url": "https://github.com/antonkrasov",
+ "followers_url": "https://api.github.com/users/antonkrasov/followers",
+ "following_url": "https://api.github.com/users/antonkrasov/following{/other_user}",
+ "gists_url": "https://api.github.com/users/antonkrasov/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/antonkrasov/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/antonkrasov/subscriptions",
+ "organizations_url": "https://api.github.com/users/antonkrasov/orgs",
+ "repos_url": "https://api.github.com/users/antonkrasov/repos",
+ "events_url": "https://api.github.com/users/antonkrasov/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/antonkrasov/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-04-18T14:29:51Z",
+ "updated_at": "2014-07-01T17:26:06Z",
+ "closed_at": "2014-04-19T18:50:39Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/83",
+ "html_url": "https://github.com/github-api/github-api/pull/83",
+ "diff_url": "https://github.com/github-api/github-api/pull/83.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/83.patch"
+ },
+ "body": "tarball_url and zipball_url were misses in GHRelease\n"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-5a770b70-ca92-478e-8bb5-c713553ddefb.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-5a770b70-ca92-478e-8bb5-c713553ddefb.json
new file mode 100644
index 000000000..eec142f02
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-5a770b70-ca92-478e-8bb5-c713553ddefb.json
@@ -0,0 +1,1394 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/299",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/299/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/299/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/299/events",
+ "html_url": "https://github.com/github-api/github-api/pull/299",
+ "id": 184520196,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTA0MDg2MDc=",
+ "number": 299,
+ "title": "url encode hashes in ref names",
+ "user": {
+ "login": "bsheats",
+ "id": 515385,
+ "node_id": "MDQ6VXNlcjUxNTM4NQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/515385?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bsheats",
+ "html_url": "https://github.com/bsheats",
+ "followers_url": "https://api.github.com/users/bsheats/followers",
+ "following_url": "https://api.github.com/users/bsheats/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bsheats/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bsheats/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bsheats/subscriptions",
+ "organizations_url": "https://api.github.com/users/bsheats/orgs",
+ "repos_url": "https://api.github.com/users/bsheats/repos",
+ "events_url": "https://api.github.com/users/bsheats/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bsheats/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2016-10-21T15:52:39Z",
+ "updated_at": "2016-10-25T02:15:54Z",
+ "closed_at": "2016-10-25T02:15:54Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/299",
+ "html_url": "https://github.com/github-api/github-api/pull/299",
+ "diff_url": "https://github.com/github-api/github-api/pull/299.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/299.patch"
+ },
+ "body": "Without this fix, the following code:\n\n```\nGHRepository repo = gh.getRepository(\"iown/test\");\nString branch = \"heads/bsheats/#107-test-branch\";\nref = repo.getRef(branch);\n```\n\nwill fail with this exception:\n\n```\nException in thread \"main\" org.kohsuke.github.HttpException: Server returned HTTP response code: 200, message: 'OK' for URL: https://api.github.com/repos/iown/test/git/refs/heads/bsheats/#107-test-branch\n at org.kohsuke.github.Requester.parse(Requester.java:540)\n at org.kohsuke.github.Requester._to(Requester.java:251)\n at org.kohsuke.github.Requester.to(Requester.java:213)\n at org.kohsuke.github.GHRepository.getRef(GHRepository.java:770)\n at Foo.main(Foo.java:22)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:498)\n at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)\nCaused by: java.io.IOException: Failed to deserialize [{\"ref\":\"refs/heads/bsheats/test\",\"url\":\"https://api.github.com/repos/iown/test/git/refs/heads/bsheats/test\",\"object\":{\"sha\":\"7c4a0777bdbd76442ee98e54daee808a5ca0e211\",\"type\":\"commit\",\"url\":\"https://api.github.com/repos/iown/test/git/commits/7c4a0777bdbd76442ee98e54daee808a5ca0e211\"}},{\"ref\":\"refs/heads/bsheats/#107-test-branch\",\"url\":\"https://api.github.com/repos/iown/test/git/refs/heads/bsheats/%23107-test-branch\",\"object\":{\"sha\":\"fca609f46dbbee95170e8a1dc283329ea1c768f6\",\"type\":\"commit\",\"url\":\"https://api.github.com/repos/iown/test/git/commits/fca609f46dbbee95170e8a1dc283329ea1c768f6\"}}]\n at org.kohsuke.github.Requester.parse(Requester.java:530)\n ... 9 more\nCaused by: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of org.kohsuke.github.GHRef out of START_ARRAY token\n at [Source: java.io.StringReader@e50a6f6; line: 1, column: 1]\n at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)\n at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:575)\n at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:569)\n at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeFromArray(BeanDeserializerBase.java:1121)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer._deserializeOther(BeanDeserializer.java:148)\n at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:123)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2888)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)\n at org.kohsuke.github.Requester.parse(Requester.java:528)\n ... 9 more\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/298",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/298/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/298/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/298/events",
+ "html_url": "https://github.com/github-api/github-api/issues/298",
+ "id": 183381257,
+ "node_id": "MDU6SXNzdWUxODMzODEyNTc=",
+ "number": 298,
+ "title": "How to find a pull request using the Search API and get its details?",
+ "user": {
+ "login": "adamsiemion",
+ "id": 898997,
+ "node_id": "MDQ6VXNlcjg5ODk5Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/898997?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/adamsiemion",
+ "html_url": "https://github.com/adamsiemion",
+ "followers_url": "https://api.github.com/users/adamsiemion/followers",
+ "following_url": "https://api.github.com/users/adamsiemion/following{/other_user}",
+ "gists_url": "https://api.github.com/users/adamsiemion/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/adamsiemion/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/adamsiemion/subscriptions",
+ "organizations_url": "https://api.github.com/users/adamsiemion/orgs",
+ "repos_url": "https://api.github.com/users/adamsiemion/repos",
+ "events_url": "https://api.github.com/users/adamsiemion/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/adamsiemion/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-10-17T10:35:35Z",
+ "updated_at": "2016-11-17T03:11:31Z",
+ "closed_at": "2016-11-17T03:11:31Z",
+ "author_association": "NONE",
+ "body": "Is there a quicker/better way to get a `GHPullRequest` instance from `searchIssues()` results?\n\nI have got`String sha1` and `GHRepository repository` instances and the following code:\n\n```\nfinal PagedSearchIterable list = githubClient.searchIssues().q(sha1).list();\nfinal GHIssue issue = list.iterator().next();\nfinal String pullRequestUrl = issue.getPullRequest().getUrl().toString();\nfinal int pullRequestNumber = Integer.valueOf(pullRequestUrl.substring(pullRequestUrl.lastIndexOf('/')+1));\nfinal GHPullRequest pullRequest = repository.getPullRequest(pullRequestNumber);\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/297",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/297/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/297/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/297/events",
+ "html_url": "https://github.com/github-api/github-api/issues/297",
+ "id": 180104399,
+ "node_id": "MDU6SXNzdWUxODAxMDQzOTk=",
+ "number": 297,
+ "title": "Allow edit for maintainer support",
+ "user": {
+ "login": "qinfchen",
+ "id": 8294715,
+ "node_id": "MDQ6VXNlcjgyOTQ3MTU=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/8294715?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/qinfchen",
+ "html_url": "https://github.com/qinfchen",
+ "followers_url": "https://api.github.com/users/qinfchen/followers",
+ "following_url": "https://api.github.com/users/qinfchen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/qinfchen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/qinfchen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/qinfchen/subscriptions",
+ "organizations_url": "https://api.github.com/users/qinfchen/orgs",
+ "repos_url": "https://api.github.com/users/qinfchen/repos",
+ "events_url": "https://api.github.com/users/qinfchen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/qinfchen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2016-09-29T16:52:19Z",
+ "updated_at": "2016-10-03T15:01:31Z",
+ "closed_at": "2016-10-03T15:01:31Z",
+ "author_association": "NONE",
+ "body": "Is this supported? see details [here](https://github.com/blog/2247-improving-collaboration-with-forks)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/296",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/296/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/296/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/296/events",
+ "html_url": "https://github.com/github-api/github-api/issues/296",
+ "id": 179131708,
+ "node_id": "MDU6SXNzdWUxNzkxMzE3MDg=",
+ "number": 296,
+ "title": "run mvn install fail! Failure to find org.jenkins-ci:jenkins:pom:1.26 ??",
+ "user": {
+ "login": "nj-mqzhang",
+ "id": 10613380,
+ "node_id": "MDQ6VXNlcjEwNjEzMzgw",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/10613380?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/nj-mqzhang",
+ "html_url": "https://github.com/nj-mqzhang",
+ "followers_url": "https://api.github.com/users/nj-mqzhang/followers",
+ "following_url": "https://api.github.com/users/nj-mqzhang/following{/other_user}",
+ "gists_url": "https://api.github.com/users/nj-mqzhang/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/nj-mqzhang/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/nj-mqzhang/subscriptions",
+ "organizations_url": "https://api.github.com/users/nj-mqzhang/orgs",
+ "repos_url": "https://api.github.com/users/nj-mqzhang/repos",
+ "events_url": "https://api.github.com/users/nj-mqzhang/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/nj-mqzhang/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-09-26T03:22:25Z",
+ "updated_at": "2016-09-26T06:31:52Z",
+ "closed_at": "2016-09-26T06:30:14Z",
+ "author_association": "NONE",
+ "body": "Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Failure to find org.jenkins-ci:jenkins:pom:1.26 in http://192.168.1.117:8081/nexus/content/groups/public was cached in the local repository, resolution will not be reattempted until the update interval of nexus has elapsed or updates are forced\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/295",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/295/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/295/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/295/events",
+ "html_url": "https://github.com/github-api/github-api/pull/295",
+ "id": 177837024,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0ODU4Mjk0NTY=",
+ "number": 295,
+ "title": "Use maximum permitted page size",
+ "user": {
+ "login": "jglick",
+ "id": 154109,
+ "node_id": "MDQ6VXNlcjE1NDEwOQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/154109?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jglick",
+ "html_url": "https://github.com/jglick",
+ "followers_url": "https://api.github.com/users/jglick/followers",
+ "following_url": "https://api.github.com/users/jglick/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jglick/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jglick/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jglick/subscriptions",
+ "organizations_url": "https://api.github.com/users/jglick/orgs",
+ "repos_url": "https://api.github.com/users/jglick/repos",
+ "events_url": "https://api.github.com/users/jglick/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jglick/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 7,
+ "created_at": "2016-09-19T16:49:56Z",
+ "updated_at": "2016-10-24T21:04:05Z",
+ "closed_at": "2016-10-24T21:04:05Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/295",
+ "html_url": "https://github.com/github-api/github-api/pull/295",
+ "diff_url": "https://github.com/github-api/github-api/pull/295.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/295.patch"
+ },
+ "body": "Pending GraphQL, performance is going to be bad, but do what we can.\n\n@reviewbybees\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/294",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/294/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/294/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/294/events",
+ "html_url": "https://github.com/github-api/github-api/issues/294",
+ "id": 175312885,
+ "node_id": "MDU6SXNzdWUxNzUzMTI4ODU=",
+ "number": 294,
+ "title": "Multiple assignee support",
+ "user": {
+ "login": "wsorenson",
+ "id": 281687,
+ "node_id": "MDQ6VXNlcjI4MTY4Nw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/281687?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/wsorenson",
+ "html_url": "https://github.com/wsorenson",
+ "followers_url": "https://api.github.com/users/wsorenson/followers",
+ "following_url": "https://api.github.com/users/wsorenson/following{/other_user}",
+ "gists_url": "https://api.github.com/users/wsorenson/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/wsorenson/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/wsorenson/subscriptions",
+ "organizations_url": "https://api.github.com/users/wsorenson/orgs",
+ "repos_url": "https://api.github.com/users/wsorenson/repos",
+ "events_url": "https://api.github.com/users/wsorenson/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/wsorenson/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-09-06T18:08:20Z",
+ "updated_at": "2016-11-19T22:51:23Z",
+ "closed_at": "2016-11-19T22:51:23Z",
+ "author_association": "NONE",
+ "body": "Issue should return a list of assignees;\n\nhttps://developer.github.com/changes/2016-5-27-multiple-assignees/\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/293",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/293/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/293/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/293/events",
+ "html_url": "https://github.com/github-api/github-api/issues/293",
+ "id": 175306527,
+ "node_id": "MDU6SXNzdWUxNzUzMDY1Mjc=",
+ "number": 293,
+ "title": "Missing support for determining if authenticated user is organization owner",
+ "user": {
+ "login": "WesleyTrescott",
+ "id": 10776580,
+ "node_id": "MDQ6VXNlcjEwNzc2NTgw",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/10776580?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/WesleyTrescott",
+ "html_url": "https://github.com/WesleyTrescott",
+ "followers_url": "https://api.github.com/users/WesleyTrescott/followers",
+ "following_url": "https://api.github.com/users/WesleyTrescott/following{/other_user}",
+ "gists_url": "https://api.github.com/users/WesleyTrescott/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/WesleyTrescott/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/WesleyTrescott/subscriptions",
+ "organizations_url": "https://api.github.com/users/WesleyTrescott/orgs",
+ "repos_url": "https://api.github.com/users/WesleyTrescott/repos",
+ "events_url": "https://api.github.com/users/WesleyTrescott/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/WesleyTrescott/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2016-09-06T17:38:38Z",
+ "updated_at": "2016-11-19T23:26:14Z",
+ "closed_at": "2016-11-19T23:26:14Z",
+ "author_association": "NONE",
+ "body": "Some operations involving teams within organizations require the authenticated user to be an organization owner. As far as I can tell, there is no way to get this information in the current implementation. The following stackoverflow answer illustrates the the information I am trying to retrieve: [http://stackoverflow.com/a/28190753](http://stackoverflow.com/a/28190753)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/291",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/291/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/291/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/291/events",
+ "html_url": "https://github.com/github-api/github-api/issues/291",
+ "id": 169602557,
+ "node_id": "MDU6SXNzdWUxNjk2MDI1NTc=",
+ "number": 291,
+ "title": "weird format for get list of organizations",
+ "user": {
+ "login": "marti1125",
+ "id": 223240,
+ "node_id": "MDQ6VXNlcjIyMzI0MA==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/223240?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/marti1125",
+ "html_url": "https://github.com/marti1125",
+ "followers_url": "https://api.github.com/users/marti1125/followers",
+ "following_url": "https://api.github.com/users/marti1125/following{/other_user}",
+ "gists_url": "https://api.github.com/users/marti1125/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/marti1125/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/marti1125/subscriptions",
+ "organizations_url": "https://api.github.com/users/marti1125/orgs",
+ "repos_url": "https://api.github.com/users/marti1125/repos",
+ "events_url": "https://api.github.com/users/marti1125/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/marti1125/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2016-08-05T13:03:54Z",
+ "updated_at": "2016-08-06T15:20:23Z",
+ "closed_at": "2016-08-06T03:58:07Z",
+ "author_association": "NONE",
+ "body": "GitHub gh = GitHub.connect(\"login\", \"token\");\nSystem.out.println(gh.getMyOrganizations());\n\nHow to I can parse this? =/\n\n{mozillaperu=GHOrganization@29ba4338[login=mozillaperu,location=,blog=,email=,name=,company=,followers=0,following=0,url=https://api.github.com/orgs/mozillaperu,id=1221419], qillu=GHOrganization@57d5872c[login=qillu,location=,blog=,email=,name=,company=,followers=0,following=0,url=https://api.github.com/orgs/qillu,id=16871604], eknowit=GHOrganization@667a738[login=eknowit,location=,blog=,email=,name=,company=,followers=0,following=0,url=https://api.github.com/orgs/eknowit,id=1102009], VulpesTools=GHOrganization@36f0f1be[login=VulpesTools,location=,blog=,email=,name=,company=,followers=0,following=0,url=https://api.github.com/orgs/VulpesTools,id=8617634], GenerationOpen=GHOrganization@157632c9[login=GenerationOpen,location=,blog=,email=,name=,company=,followers=0,following=0,url=https://api.github.com/orgs/GenerationOpen,id=4251591], mozillahispano=GHOrganization@6ee12bac[login=mozillahispano,location=,blog=,email=,name=,company=,followers=0,following=0,url=https://api.github.com/orgs/mozillahispano,id=1511160], mozilla-appmaker=GHOrganization@55040f2f[login=mozilla-appmaker,location=,blog=,email=,name=,company=,followers=0,following=0,url=https://api.github.com/orgs/mozilla-appmaker,id=5852021]}\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/290",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/290/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/290/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/290/events",
+ "html_url": "https://github.com/github-api/github-api/issues/290",
+ "id": 166946455,
+ "node_id": "MDU6SXNzdWUxNjY5NDY0NTU=",
+ "number": 290,
+ "title": "OkHttp is out of date",
+ "user": {
+ "login": "mh-park",
+ "id": 10649298,
+ "node_id": "MDQ6VXNlcjEwNjQ5Mjk4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/10649298?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mh-park",
+ "html_url": "https://github.com/mh-park",
+ "followers_url": "https://api.github.com/users/mh-park/followers",
+ "following_url": "https://api.github.com/users/mh-park/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mh-park/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mh-park/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mh-park/subscriptions",
+ "organizations_url": "https://api.github.com/users/mh-park/orgs",
+ "repos_url": "https://api.github.com/users/mh-park/repos",
+ "events_url": "https://api.github.com/users/mh-park/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mh-park/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2016-07-22T00:24:00Z",
+ "updated_at": "2016-08-06T04:04:37Z",
+ "closed_at": "2016-08-06T04:04:37Z",
+ "author_association": "NONE",
+ "body": "OkUrlFactory is deprecated, so using the Cache is not the same as described on homepage. \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/289",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/289/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/289/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/289/events",
+ "html_url": "https://github.com/github-api/github-api/pull/289",
+ "id": 166917048,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NzgzODY4NjM=",
+ "number": 289,
+ "title": "Implement an abuse handler",
+ "user": {
+ "login": "mmitche",
+ "id": 8725170,
+ "node_id": "MDQ6VXNlcjg3MjUxNzA=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/8725170?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mmitche",
+ "html_url": "https://github.com/mmitche",
+ "followers_url": "https://api.github.com/users/mmitche/followers",
+ "following_url": "https://api.github.com/users/mmitche/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mmitche/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mmitche/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mmitche/subscriptions",
+ "organizations_url": "https://api.github.com/users/mmitche/orgs",
+ "repos_url": "https://api.github.com/users/mmitche/repos",
+ "events_url": "https://api.github.com/users/mmitche/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mmitche/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-07-21T21:02:19Z",
+ "updated_at": "2016-08-06T02:59:02Z",
+ "closed_at": "2016-08-06T02:59:02Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/289",
+ "html_url": "https://github.com/github-api/github-api/pull/289",
+ "diff_url": "https://github.com/github-api/github-api/pull/289.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/289.patch"
+ },
+ "body": "If too many requests are made within X amount of time (not the traditional hourly rate limit), github may begin returning 403. Then we should wait for a bit to attempt to access the API again. In this case, we parse out the Retry-After field returned and sleep until that (it's usually 60 seconds)\n\nFixes #285 \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/288",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/288/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/288/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/288/events",
+ "html_url": "https://github.com/github-api/github-api/issues/288",
+ "id": 165158992,
+ "node_id": "MDU6SXNzdWUxNjUxNTg5OTI=",
+ "number": 288,
+ "title": "400 from OKHttp getInputStream",
+ "user": {
+ "login": "sbhaktha",
+ "id": 5631150,
+ "node_id": "MDQ6VXNlcjU2MzExNTA=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5631150?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sbhaktha",
+ "html_url": "https://github.com/sbhaktha",
+ "followers_url": "https://api.github.com/users/sbhaktha/followers",
+ "following_url": "https://api.github.com/users/sbhaktha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sbhaktha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sbhaktha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sbhaktha/subscriptions",
+ "organizations_url": "https://api.github.com/users/sbhaktha/orgs",
+ "repos_url": "https://api.github.com/users/sbhaktha/repos",
+ "events_url": "https://api.github.com/users/sbhaktha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sbhaktha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 10,
+ "created_at": "2016-07-12T19:23:10Z",
+ "updated_at": "2016-07-19T21:44:19Z",
+ "closed_at": "2016-07-19T15:00:30Z",
+ "author_association": "NONE",
+ "body": "Hello,\n\nI have built a tool using your API, which has been working for many months now, but suddenly fails due to a `FileNotFoundException` thrown by `getInputStrem` in OKHttp. When I paste the url it is trying to download, into my browser, it works perfectly fine. I can see the file contents. This is very strange. Do you have any clue about this?\n\nStack trace:\n\n```\ntables [ERROR] [07/12/2016 12:15:41.086] [TableService-akka.actor.default-dispatcher-8] [akka://TableService/user/simple-service-actor] Error during processing of request HttpRequest(POST,http://localhost:8084/api/metadata/list,List(Host: localhost:8084, Connection: keep-alive, Content-Length: 59, Origin: http://localhost:8084, X-Requested-With: XMLHttpRequest, User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41, Content-Type: application/json, Referer: http://localhost:8084/, Accept-Encoding: gzip, deflate, lzma, Accept-Language: en-US, en;q=0.8, Cookie: tablestore-data-git=eyJhY2Nlc3NUb2tlbiI6ImYyZDI1OTViNGQ4OTMwMjIwMGI2YjE2MjNhNzQ3ZjQ3MzI1ZWJkOWMifQ==; tablestore-data-git2=eyJhY2Nlc3NUb2tlbiI6ImZlYmMxYTRlYjA1MmI4OWJlNDQwOWFmODk3OGNkYWFhYWY1OWZlNWEifQ==),HttpEntity(application/json,{\"repo\":\"aristo-tables\",\"fork\":\"allenai\",\"branch\":\"master\"}),HTTP/1.1)\ntables java.io.FileNotFoundException: 400: Invalid request\ntables \ntables at org.kohsuke.github.Requester.handleApiError(Requester.java:527)\ntables at org.kohsuke.github.Requester.asStream(Requester.java:293)\ntables at org.kohsuke.github.GHContent.read(GHContent.java:118)\ntables at org.allenai.ari.tables.GitHubUtil$$anonfun$getCsvFileLocal$1.apply(GitHubUtil.scala:420)\ntables at org.allenai.ari.tables.GitHubUtil$$anonfun$getCsvFileLocal$1.apply(GitHubUtil.scala:417)\ntables at scala.Option.foreach(Option.scala:257)\ntables at org.allenai.ari.tables.GitHubUtil.getCsvFileLocal(GitHubUtil.scala:417)\ntables at org.allenai.ari.tables.GitHubUtil$$anonfun$7.apply(GitHubUtil.scala:239)\ntables at org.allenai.ari.tables.GitHubUtil$$anonfun$7.apply(GitHubUtil.scala:236)\ntables at scala.collection.parallel.mutable.ParArray$ParArrayIterator.flatmap2combiner(ParArray.scala:417)\ntables at scala.collection.parallel.ParIterableLike$FlatMap.leaf(ParIterableLike.scala:1072)\ntables at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply$mcV$sp(Tasks.scala:49)\ntables at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:48)\ntables at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:48)\ntables at scala.collection.parallel.Task$class.tryLeaf(Tasks.scala:51)\ntables at scala.collection.parallel.ParIterableLike$FlatMap.tryLeaf(ParIterableLike.scala:1068)\ntables at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask$class.internal(Tasks.scala:159)\ntables at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.internal(Tasks.scala:443)\ntables at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask$class.compute(Tasks.scala:149)\ntables at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:443)\ntables at scala.concurrent.forkjoin.RecursiveAction.exec(RecursiveAction.java:160)\ntables at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)\ntables at scala.concurrent.forkjoin.ForkJoinTask.doJoin(ForkJoinTask.java:341)\ntables at scala.concurrent.forkjoin.ForkJoinTask.join(ForkJoinTask.java:673)\ntables at scala.collection.parallel.ForkJoinTasks$WrappedTask$class.sync(Tasks.scala:378)\ntables at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.sync(Tasks.scala:443)\ntables at scala.collection.parallel.ForkJoinTasks$class.executeAndWaitResult(Tasks.scala:426)\ntables at scala.collection.parallel.ForkJoinTaskSupport.executeAndWaitResult(TaskSupport.scala:56)\ntables at scala.collection.parallel.ExecutionContextTasks$class.executeAndWaitResult(Tasks.scala:558)\ntables at scala.collection.parallel.ExecutionContextTaskSupport.executeAndWaitResult(TaskSupport.scala:80)\ntables at scala.collection.parallel.ParIterableLike$ResultMapping.leaf(ParIterableLike.scala:958)\ntables at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply$mcV$sp(Tasks.scala:49)\ntables at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:48)\ntables at scala.collection.parallel.Task$$anonfun$tryLeaf$1.apply(Tasks.scala:48)\ntables at scala.collection.parallel.Task$class.tryLeaf(Tasks.scala:51)\ntables at scala.collection.parallel.ParIterableLike$ResultMapping.tryLeaf(ParIterableLike.scala:953)\ntables at scala.collection.parallel.AdaptiveWorkStealingTasks$WrappedTask$class.compute(Tasks.scala:152)\ntables at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.compute(Tasks.scala:443)\ntables at scala.concurrent.forkjoin.RecursiveAction.exec(RecursiveAction.java:160)\ntables at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)\ntables at scala.concurrent.forkjoin.ForkJoinTask.doJoin(ForkJoinTask.java:341)\ntables at scala.concurrent.forkjoin.ForkJoinTask.join(ForkJoinTask.java:673)\ntables at scala.collection.parallel.ForkJoinTasks$WrappedTask$class.sync(Tasks.scala:378)\ntables at scala.collection.parallel.AdaptiveWorkStealingForkJoinTasks$WrappedTask.sync(Tasks.scala:443)\ntables at scala.collection.parallel.ForkJoinTasks$class.executeAndWaitResult(Tasks.scala:426)\ntables at scala.collection.parallel.ForkJoinTaskSupport.executeAndWaitResult(TaskSupport.scala:56)\ntables at scala.collection.parallel.ExecutionContextTasks$class.executeAndWaitResult(Tasks.scala:558)\ntables at scala.collection.parallel.ExecutionContextTaskSupport.executeAndWaitResult(TaskSupport.scala:80)\ntables at scala.collection.parallel.ParIterableLike$class.flatMap(ParIterableLike.scala:513)\ntables at scala.collection.parallel.mutable.ParArray.flatMap(ParArray.scala:56)\ntables at org.allenai.ari.tables.GitHubUtil.org$allenai$ari$tables$GitHubUtil$$getTableMetadata(GitHubUtil.scala:236)\ntables at org.allenai.ari.tables.GitHubUtil$$anonfun$getTableMetadata$2.apply(GitHubUtil.scala:229)\ntables at org.allenai.ari.tables.GitHubUtil$$anonfun$getTableMetadata$2.apply(GitHubUtil.scala:229)\ntables at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:251)\ntables at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:249)\ntables at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32)\ntables at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55)\ntables at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor.scala:91)\ntables at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91)\ntables at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91)\ntables at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72)\ntables at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:90)\ntables at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39)\ntables at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:399)\ntables at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)\ntables at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)\ntables at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)\ntables at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)\ntables Caused by: java.io.FileNotFoundException: https://raw.githubusercontent.com/allenai/aristo-tables/master/tables/abstract_concrete/abstract_concrete.csv?token=AFXsrivOTIoDru9Htw9aNTJbprmE5m0Gks5XhUHfwA%3D%3D\ntables at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:228)\ntables at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getInputStream(DelegatingHttpsURLConnection.java:210)\ntables at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:25)\ntables at org.kohsuke.github.Requester.asStream(Requester.java:291)\ntables ... 66 more\n```\n\nYour help is greatly appreciated,\nSumithra\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/287",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/287/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/287/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/287/events",
+ "html_url": "https://github.com/github-api/github-api/issues/287",
+ "id": 163039212,
+ "node_id": "MDU6SXNzdWUxNjMwMzkyMTI=",
+ "number": 287,
+ "title": "pagination support search APIs",
+ "user": {
+ "login": "qinfchen",
+ "id": 8294715,
+ "node_id": "MDQ6VXNlcjgyOTQ3MTU=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/8294715?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/qinfchen",
+ "html_url": "https://github.com/qinfchen",
+ "followers_url": "https://api.github.com/users/qinfchen/followers",
+ "following_url": "https://api.github.com/users/qinfchen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/qinfchen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/qinfchen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/qinfchen/subscriptions",
+ "organizations_url": "https://api.github.com/users/qinfchen/orgs",
+ "repos_url": "https://api.github.com/users/qinfchen/repos",
+ "events_url": "https://api.github.com/users/qinfchen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/qinfchen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-06-29T22:14:18Z",
+ "updated_at": "2016-06-30T14:25:20Z",
+ "closed_at": "2016-06-30T14:25:20Z",
+ "author_association": "NONE",
+ "body": "It doesn't seem like there is a support pagination for search APIs. \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/286",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/286/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/286/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/286/events",
+ "html_url": "https://github.com/github-api/github-api/issues/286",
+ "id": 162839227,
+ "node_id": "MDU6SXNzdWUxNjI4MzkyMjc=",
+ "number": 286,
+ "title": "significant more API calls for same code",
+ "user": {
+ "login": "aspyker",
+ "id": 260750,
+ "node_id": "MDQ6VXNlcjI2MDc1MA==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/260750?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/aspyker",
+ "html_url": "https://github.com/aspyker",
+ "followers_url": "https://api.github.com/users/aspyker/followers",
+ "following_url": "https://api.github.com/users/aspyker/following{/other_user}",
+ "gists_url": "https://api.github.com/users/aspyker/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/aspyker/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/aspyker/subscriptions",
+ "organizations_url": "https://api.github.com/users/aspyker/orgs",
+ "repos_url": "https://api.github.com/users/aspyker/repos",
+ "events_url": "https://api.github.com/users/aspyker/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/aspyker/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2016-06-29T04:36:45Z",
+ "updated_at": "2016-08-09T01:25:00Z",
+ "closed_at": "2016-08-06T04:10:32Z",
+ "author_association": "NONE",
+ "body": "I'm researching deeper, but with 1.72 I get:\n\nremaining calls 4364\nabout to look up repo EVCache\n2016-06-28 21:28:20 INFO GithubAccess:53 - repo = EVCache, forks = 82, stars = 314\n2016-06-28 21:28:20 DEBUG GithubAccess:56 - openIssues = 0, openPullRequests = 0\n2016-06-28 21:28:22 DEBUG GithubAccess:107 - daysSinceLastCommit = 0\n2016-06-28 21:28:23 DEBUG GithubAccess:111 - numContribitors = 16, contributorEmails = ArrayBuffer(smadappa, senugula, jkschneider, vuzilla, ScottMansfield, rspieldenner, elandau, gitter-badger, rdegnan, nadavc, aspyker, trigan-d, pauloricardomg, kedargsm, quidryan, Randgalt)\n2016-06-28 21:28:24 DEBUG GithubAccess:146 - avg days to close 14 issues = 357 days\n2016-06-28 21:28:24 DEBUG GithubAccess:128 - avg days to close 13 pull requests = 185 days\n2016-06-28 21:28:24 DEBUG GithubAccess:96 - repo json = {\"asOfISO\":\"2016-06-29T04:27:43Z\",\"asOfYYYYMMDD\":\"2016-06-29\",\"repo_name\":\"EVCache\",\"public\":true,\"osslifecycle\":\"UNKNOWN\",\"forks\":82,\"stars\":314,\"numContributors\":16,\"issues\":{\"openCount\":0,\"closedCount\":14,\"avgTimeToCloseInDays\":357},\"pullRequests\":{\"openCount\":0,\"closedCount\":13,\"avgTimeToCloseInDays\":185},\"commits\":{\"daysSinceLastCommit\":0},\"contributors\":[\"smadappa\",\"senugula\",\"jkschneider\",\"vuzilla\",\"ScottMansfield\",\"rspieldenner\",\"elandau\",\"gitter-badger\",\"rdegnan\",\"nadavc\",\"aspyker\",\"trigan-d\",\"pauloricardomg\",\"kedargsm\",\"quidryan\",\"Randgalt\"]}\nremaining calls 4341\n\nresulting in 23 API calls\n\nwith 1.76, I get:\n\nremaining calls 4640\nabout to look up repo EVCache\n2016-06-28 21:22:22 INFO GithubAccess:53 - repo = EVCache, forks = 82, stars = 314\n2016-06-28 21:22:22 DEBUG GithubAccess:56 - openIssues = 0, openPullRequests = 0\n2016-06-28 21:23:01 DEBUG GithubAccess:107 - daysSinceLastCommit = 0\n2016-06-28 21:23:03 DEBUG GithubAccess:111 - numContribitors = 16, contributorEmails = ArrayBuffer(smadappa, senugula, jkschneider, vuzilla, ScottMansfield, rspieldenner, elandau, gitter-badger, rdegnan, nadavc, aspyker, trigan-d, pauloricardomg, kedargsm, quidryan, Randgalt)\n2016-06-28 21:23:04 DEBUG GithubAccess:146 - avg days to close 14 issues = 357 days\n2016-06-28 21:23:04 DEBUG GithubAccess:128 - avg days to close 13 pull requests = 185 days\n2016-06-28 21:23:04 DEBUG GithubAccess:96 - repo json = {\"asOfISO\":\"2016-06-29T04:20:26Z\",\"asOfYYYYMMDD\":\"2016-06-29\",\"repo_name\":\"EVCache\",\"public\":true,\"osslifecycle\":\"UNKNOWN\",\"forks\":82,\"stars\":314,\"numContributors\":16,\"issues\":{\"openCount\":0,\"closedCount\":14,\"avgTimeToCloseInDays\":357},\"pullRequests\":{\"openCount\":0,\"closedCount\":13,\"avgTimeToCloseInDays\":185},\"commits\":{\"daysSinceLastCommit\":0},\"contributors\":[\"smadappa\",\"senugula\",\"jkschneider\",\"vuzilla\",\"ScottMansfield\",\"rspieldenner\",\"elandau\",\"gitter-badger\",\"rdegnan\",\"nadavc\",\"aspyker\",\"trigan-d\",\"pauloricardomg\",\"kedargsm\",\"quidryan\",\"Randgalt\"]}\nremaining calls 4409\n\nresulting in 231 API calls\n\nThis is running this code:\n\nhttps://github.com/Netflix/osstracker/blob/master/osstracker-scraper/src/main/scala/com/netflix/oss/tools/osstrackerscraper/GithubAccess.scala#L52\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/285",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/285/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/285/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/285/events",
+ "html_url": "https://github.com/github-api/github-api/issues/285",
+ "id": 161777707,
+ "node_id": "MDU6SXNzdWUxNjE3Nzc3MDc=",
+ "number": 285,
+ "title": "Excessive concurrent request rate limit not handled",
+ "user": {
+ "login": "mmitche",
+ "id": 8725170,
+ "node_id": "MDQ6VXNlcjg3MjUxNzA=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/8725170?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mmitche",
+ "html_url": "https://github.com/mmitche",
+ "followers_url": "https://api.github.com/users/mmitche/followers",
+ "following_url": "https://api.github.com/users/mmitche/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mmitche/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mmitche/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mmitche/subscriptions",
+ "organizations_url": "https://api.github.com/users/mmitche/orgs",
+ "repos_url": "https://api.github.com/users/mmitche/repos",
+ "events_url": "https://api.github.com/users/mmitche/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mmitche/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-06-22T20:27:32Z",
+ "updated_at": "2016-08-06T02:59:02Z",
+ "closed_at": "2016-08-06T02:59:02Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "If the hourly rate limit is not hit, but the API abuse mechanism is triggered, the API won't handle this gracefully. Instead, it bails. I think the ideal case here would be to wait for a small random amount of time (< 5 seconds perhaps, with some backoff) and retry\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/284",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/284/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/284/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/284/events",
+ "html_url": "https://github.com/github-api/github-api/pull/284",
+ "id": 161052879,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NzQzNTI2NjA=",
+ "number": 284,
+ "title": "Addition of License API elements",
+ "user": {
+ "login": "dedickinson",
+ "id": 702835,
+ "node_id": "MDQ6VXNlcjcwMjgzNQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/702835?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dedickinson",
+ "html_url": "https://github.com/dedickinson",
+ "followers_url": "https://api.github.com/users/dedickinson/followers",
+ "following_url": "https://api.github.com/users/dedickinson/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dedickinson/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dedickinson/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dedickinson/subscriptions",
+ "organizations_url": "https://api.github.com/users/dedickinson/orgs",
+ "repos_url": "https://api.github.com/users/dedickinson/repos",
+ "events_url": "https://api.github.com/users/dedickinson/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dedickinson/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-06-19T02:18:23Z",
+ "updated_at": "2016-08-06T03:56:00Z",
+ "closed_at": "2016-08-06T03:56:00Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/284",
+ "html_url": "https://github.com/github-api/github-api/pull/284",
+ "diff_url": "https://github.com/github-api/github-api/pull/284.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/284.patch"
+ },
+ "body": "I've added in functionality to provide license information from https://developer.github.com/v3/licenses/:\n- Get list of GitHub licenses using `GitHub#listLicenses()`\n- Get the details for a specific license using `GitHub#getLicense(String key)`\n- For a `GHRepository`:\n - The basic license details are loaded with the repo information (`GHRepository#getLicense`)\n - `GHRepository#getFullLicense` will get the full license information (ala `GitHub#getLicense(String key)`)\n - `GHRepository#getLicenseContent()` will get the license content information for the repository\n\nAs this uses a preview API, access to the information requires the use of `application/vnd.github.drax-preview+json` in the HTTP connection's ACCEPT header. This is provided in `PreviewHttpConnector.java`.\n\nAll existing functionality appears to continue working with the normal connector - `PreviewHttpConnector` just opens up the extra data from the Licenses API.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/283",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/283/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/283/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/283/events",
+ "html_url": "https://github.com/github-api/github-api/pull/283",
+ "id": 155117490,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NzAyNTgwNjA=",
+ "number": 283,
+ "title": "Add some level of synchronization to the root of the API",
+ "user": {
+ "login": "mmitche",
+ "id": 8725170,
+ "node_id": "MDQ6VXNlcjg3MjUxNzA=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/8725170?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mmitche",
+ "html_url": "https://github.com/mmitche",
+ "followers_url": "https://api.github.com/users/mmitche/followers",
+ "following_url": "https://api.github.com/users/mmitche/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mmitche/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mmitche/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mmitche/subscriptions",
+ "organizations_url": "https://api.github.com/users/mmitche/orgs",
+ "repos_url": "https://api.github.com/users/mmitche/repos",
+ "events_url": "https://api.github.com/users/mmitche/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mmitche/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2016-05-16T20:43:48Z",
+ "updated_at": "2017-09-09T19:48:16Z",
+ "closed_at": "2017-09-09T19:48:15Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/283",
+ "html_url": "https://github.com/github-api/github-api/pull/283",
+ "diff_url": "https://github.com/github-api/github-api/pull/283.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/283.patch"
+ },
+ "body": "This adds some synchronization to the maps at the root of the API to avoid duplicated calls to the actual GH REST API. Specifically this is targeted around the two maps, orgs and users. This fix makes the GHPRB jenkins plugin behave much better when there are lots of projects that could build for a specific repo (even if only a few are actually triggered)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/282",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/282/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/282/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/282/events",
+ "html_url": "https://github.com/github-api/github-api/pull/282",
+ "id": 154882236,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NzAxMDc3NTg=",
+ "number": 282,
+ "title": "related to JENKINS-34834. updating test for similar condition",
+ "user": {
+ "login": "apemberton",
+ "id": 86439,
+ "node_id": "MDQ6VXNlcjg2NDM5",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/86439?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/apemberton",
+ "html_url": "https://github.com/apemberton",
+ "followers_url": "https://api.github.com/users/apemberton/followers",
+ "following_url": "https://api.github.com/users/apemberton/following{/other_user}",
+ "gists_url": "https://api.github.com/users/apemberton/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/apemberton/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/apemberton/subscriptions",
+ "organizations_url": "https://api.github.com/users/apemberton/orgs",
+ "repos_url": "https://api.github.com/users/apemberton/repos",
+ "events_url": "https://api.github.com/users/apemberton/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/apemberton/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-05-15T00:08:46Z",
+ "updated_at": "2016-06-03T04:52:26Z",
+ "closed_at": "2016-06-03T04:52:26Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/282",
+ "html_url": "https://github.com/github-api/github-api/pull/282",
+ "diff_url": "https://github.com/github-api/github-api/pull/282.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/282.patch"
+ },
+ "body": "Since GitHub no longer creates a default team per organization (ie: no more default 'Owners' team), this test needs to be updated. \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/281",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/281/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/281/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/281/events",
+ "html_url": "https://github.com/github-api/github-api/pull/281",
+ "id": 154852610,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NzAwOTE1MDg=",
+ "number": 281,
+ "title": "Add Slug to GHTeam per v3 API: https://developer.github.com/v3/orgs/t…",
+ "user": {
+ "login": "apemberton",
+ "id": 86439,
+ "node_id": "MDQ6VXNlcjg2NDM5",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/86439?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/apemberton",
+ "html_url": "https://github.com/apemberton",
+ "followers_url": "https://api.github.com/users/apemberton/followers",
+ "following_url": "https://api.github.com/users/apemberton/following{/other_user}",
+ "gists_url": "https://api.github.com/users/apemberton/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/apemberton/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/apemberton/subscriptions",
+ "organizations_url": "https://api.github.com/users/apemberton/orgs",
+ "repos_url": "https://api.github.com/users/apemberton/repos",
+ "events_url": "https://api.github.com/users/apemberton/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/apemberton/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 7,
+ "created_at": "2016-05-14T13:00:55Z",
+ "updated_at": "2016-06-15T14:35:12Z",
+ "closed_at": "2016-06-03T04:51:47Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/281",
+ "html_url": "https://github.com/github-api/github-api/pull/281",
+ "diff_url": "https://github.com/github-api/github-api/pull/281.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/281.patch"
+ },
+ "body": "https://developer.github.com/v3/orgs/teams/ has a slug property for teams. This property is similar to the login property for users and organizations - a URL path friendly tokenized string (as opposed to free text in the name field). \n\nSlug is better suited for use in automated / scripting cases when dealing with the Team API.\n\nAdmittedly, I wrote a test but could not test as the project's test harness requires super powers which I do not possess.\n\n@reviewbybees\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/279",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/279/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/279/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/279/events",
+ "html_url": "https://github.com/github-api/github-api/issues/279",
+ "id": 153510442,
+ "node_id": "MDU6SXNzdWUxNTM1MTA0NDI=",
+ "number": 279,
+ "title": "team.add(repo) should accept permission flag",
+ "user": {
+ "login": "tomerd",
+ "id": 147247,
+ "node_id": "MDQ6VXNlcjE0NzI0Nw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/147247?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/tomerd",
+ "html_url": "https://github.com/tomerd",
+ "followers_url": "https://api.github.com/users/tomerd/followers",
+ "following_url": "https://api.github.com/users/tomerd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tomerd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tomerd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tomerd/subscriptions",
+ "organizations_url": "https://api.github.com/users/tomerd/orgs",
+ "repos_url": "https://api.github.com/users/tomerd/repos",
+ "events_url": "https://api.github.com/users/tomerd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tomerd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-05-06T18:26:15Z",
+ "updated_at": "2016-06-04T03:56:12Z",
+ "closed_at": "2016-06-04T03:56:12Z",
+ "author_association": "NONE",
+ "body": "https://developer.github.com/v3/orgs/teams/#add-or-update-team-repository\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/278",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/278/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/278/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/278/events",
+ "html_url": "https://github.com/github-api/github-api/pull/278",
+ "id": 152887705,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Njg3ODQ3ODc=",
+ "number": 278,
+ "title": "Fixed broken link",
+ "user": {
+ "login": "jglick",
+ "id": 154109,
+ "node_id": "MDQ6VXNlcjE1NDEwOQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/154109?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jglick",
+ "html_url": "https://github.com/jglick",
+ "followers_url": "https://api.github.com/users/jglick/followers",
+ "following_url": "https://api.github.com/users/jglick/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jglick/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jglick/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jglick/subscriptions",
+ "organizations_url": "https://api.github.com/users/jglick/orgs",
+ "repos_url": "https://api.github.com/users/jglick/repos",
+ "events_url": "https://api.github.com/users/jglick/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jglick/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2016-05-03T22:20:31Z",
+ "updated_at": "2016-06-03T04:50:38Z",
+ "closed_at": "2016-06-03T04:50:37Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/278",
+ "html_url": "https://github.com/github-api/github-api/pull/278",
+ "diff_url": "https://github.com/github-api/github-api/pull/278.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/278.patch"
+ },
+ "body": "@reviewbybees\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/277",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/277/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/277/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/277/events",
+ "html_url": "https://github.com/github-api/github-api/pull/277",
+ "id": 152044790,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Njg0NzUwMDM=",
+ "number": 277,
+ "title": "Updated Date was wrong",
+ "user": {
+ "login": "KondaReddyR",
+ "id": 841750,
+ "node_id": "MDQ6VXNlcjg0MTc1MA==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/841750?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KondaReddyR",
+ "html_url": "https://github.com/KondaReddyR",
+ "followers_url": "https://api.github.com/users/KondaReddyR/followers",
+ "following_url": "https://api.github.com/users/KondaReddyR/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KondaReddyR/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KondaReddyR/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KondaReddyR/subscriptions",
+ "organizations_url": "https://api.github.com/users/KondaReddyR/orgs",
+ "repos_url": "https://api.github.com/users/KondaReddyR/repos",
+ "events_url": "https://api.github.com/users/KondaReddyR/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KondaReddyR/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-04-30T18:20:58Z",
+ "updated_at": "2016-06-03T04:50:22Z",
+ "closed_at": "2016-06-03T04:50:22Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/277",
+ "html_url": "https://github.com/github-api/github-api/pull/277",
+ "diff_url": "https://github.com/github-api/github-api/pull/277.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/277.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/276",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/276/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/276/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/276/events",
+ "html_url": "https://github.com/github-api/github-api/pull/276",
+ "id": 151828897,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjgzNDY2MTQ=",
+ "number": 276,
+ "title": "Add support to delete a team",
+ "user": {
+ "login": "thug-gamer",
+ "id": 15268260,
+ "node_id": "MDQ6VXNlcjE1MjY4MjYw",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/15268260?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/thug-gamer",
+ "html_url": "https://github.com/thug-gamer",
+ "followers_url": "https://api.github.com/users/thug-gamer/followers",
+ "following_url": "https://api.github.com/users/thug-gamer/following{/other_user}",
+ "gists_url": "https://api.github.com/users/thug-gamer/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/thug-gamer/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/thug-gamer/subscriptions",
+ "organizations_url": "https://api.github.com/users/thug-gamer/orgs",
+ "repos_url": "https://api.github.com/users/thug-gamer/repos",
+ "events_url": "https://api.github.com/users/thug-gamer/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/thug-gamer/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-04-29T09:42:45Z",
+ "updated_at": "2016-06-03T04:50:11Z",
+ "closed_at": "2016-06-03T04:50:11Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/276",
+ "html_url": "https://github.com/github-api/github-api/pull/276",
+ "diff_url": "https://github.com/github-api/github-api/pull/276.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/276.patch"
+ },
+ "body": "Add a method to delete a team.\n\n@kohsuke @oleg-nenashev Could you please review this pull request?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/275",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/275/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/275/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/275/events",
+ "html_url": "https://github.com/github-api/github-api/issues/275",
+ "id": 151167688,
+ "node_id": "MDU6SXNzdWUxNTExNjc2ODg=",
+ "number": 275,
+ "title": "Pull request mergeability is boolean but should be trinary",
+ "user": {
+ "login": "PerilousApricot",
+ "id": 93354,
+ "node_id": "MDQ6VXNlcjkzMzU0",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/93354?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/PerilousApricot",
+ "html_url": "https://github.com/PerilousApricot",
+ "followers_url": "https://api.github.com/users/PerilousApricot/followers",
+ "following_url": "https://api.github.com/users/PerilousApricot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/PerilousApricot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/PerilousApricot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/PerilousApricot/subscriptions",
+ "organizations_url": "https://api.github.com/users/PerilousApricot/orgs",
+ "repos_url": "https://api.github.com/users/PerilousApricot/repos",
+ "events_url": "https://api.github.com/users/PerilousApricot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/PerilousApricot/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2016-04-26T15:36:39Z",
+ "updated_at": "2016-06-04T04:48:43Z",
+ "closed_at": "2016-06-04T03:52:27Z",
+ "author_association": "NONE",
+ "body": "According to the API docs: \n\n\"The value of the mergeable attribute can be true, false, or null. If the value is null, this means that the mergeability hasn't been computed yet, and a background job was started to compute it. Give the job a few moments to complete, and then submit the request again. When the job is complete, the response will include a non-null value for the mergeable attribute.\"\n\nThis casting currently treats \"null\" as \"can not merge\", which cascades down to other plugins. Should the returned type be expanded?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/274",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/274/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/274/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/274/events",
+ "html_url": "https://github.com/github-api/github-api/issues/274",
+ "id": 150572526,
+ "node_id": "MDU6SXNzdWUxNTA1NzI1MjY=",
+ "number": 274,
+ "title": "Webhook with content type \"application/json\"",
+ "user": {
+ "login": "mlabouardy",
+ "id": 10320205,
+ "node_id": "MDQ6VXNlcjEwMzIwMjA1",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/10320205?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mlabouardy",
+ "html_url": "https://github.com/mlabouardy",
+ "followers_url": "https://api.github.com/users/mlabouardy/followers",
+ "following_url": "https://api.github.com/users/mlabouardy/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mlabouardy/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mlabouardy/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mlabouardy/subscriptions",
+ "organizations_url": "https://api.github.com/users/mlabouardy/orgs",
+ "repos_url": "https://api.github.com/users/mlabouardy/repos",
+ "events_url": "https://api.github.com/users/mlabouardy/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mlabouardy/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-04-23T16:36:02Z",
+ "updated_at": "2016-06-04T03:34:32Z",
+ "closed_at": "2016-06-04T03:34:32Z",
+ "author_association": "NONE",
+ "body": "How can I create a webhook with content type \"application/json\" ?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/273",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/273/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/273/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/273/events",
+ "html_url": "https://github.com/github-api/github-api/issues/273",
+ "id": 149306560,
+ "node_id": "MDU6SXNzdWUxNDkzMDY1NjA=",
+ "number": 273,
+ "title": "Disable rate_limit check on GitHub Enterprise completely",
+ "user": {
+ "login": "djdefi",
+ "id": 3662109,
+ "node_id": "MDQ6VXNlcjM2NjIxMDk=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/3662109?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/djdefi",
+ "html_url": "https://github.com/djdefi",
+ "followers_url": "https://api.github.com/users/djdefi/followers",
+ "following_url": "https://api.github.com/users/djdefi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/djdefi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/djdefi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/djdefi/subscriptions",
+ "organizations_url": "https://api.github.com/users/djdefi/orgs",
+ "repos_url": "https://api.github.com/users/djdefi/repos",
+ "events_url": "https://api.github.com/users/djdefi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/djdefi/received_events",
+ "type": "User",
+ "site_admin": true
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 8,
+ "created_at": "2016-04-19T00:06:06Z",
+ "updated_at": "2017-07-18T19:35:31Z",
+ "closed_at": "2016-08-06T04:12:56Z",
+ "author_association": "NONE",
+ "body": " GitHub Enterprise prior to 2.10 does not have rate limiting, requests to `https://hostname/api/v3/rate_limit` will return a 404 Not Found status code. in 2.10+ rate limiting can be enabled, but is disabled by default.\r\n\r\n~~Based on the change in #78 there is a check for `rate_limit`, and then the rate limit is set to an arbitrary high number. On very busy systems this results in tens of thousands of requests per hour to the GitHub Enterprise appliance. Although returning a 404 is a relatively simple operation, there are other things such as logging that are impacted by the volume of requests.~~\r\n\r\n~~A better method would be to look for **/api/v3/** within the configured API URL, and then simply skip the rate limit check altogether. **/api/v3/** is unique to GitHub Enterprise, so this will not have any impact on the GitHub.com rate_limit endpoint of https://api.github.com/rate_limit~~\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/272",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/272/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/272/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/272/events",
+ "html_url": "https://github.com/github-api/github-api/pull/272",
+ "id": 148253949,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjY0Mjk4Mjg=",
+ "number": 272,
+ "title": "Added support for the extended stargazers API in Github V3 API",
+ "user": {
+ "login": "noctarius",
+ "id": 1142801,
+ "node_id": "MDQ6VXNlcjExNDI4MDE=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1142801?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/noctarius",
+ "html_url": "https://github.com/noctarius",
+ "followers_url": "https://api.github.com/users/noctarius/followers",
+ "following_url": "https://api.github.com/users/noctarius/following{/other_user}",
+ "gists_url": "https://api.github.com/users/noctarius/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/noctarius/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/noctarius/subscriptions",
+ "organizations_url": "https://api.github.com/users/noctarius/orgs",
+ "repos_url": "https://api.github.com/users/noctarius/repos",
+ "events_url": "https://api.github.com/users/noctarius/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/noctarius/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-04-14T05:10:20Z",
+ "updated_at": "2016-06-03T05:04:24Z",
+ "closed_at": "2016-06-03T05:04:24Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/272",
+ "html_url": "https://github.com/github-api/github-api/pull/272",
+ "diff_url": "https://github.com/github-api/github-api/pull/272.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/272.patch"
+ },
+ "body": "Github has added starred_at date to stargazers when stargazers are requested with a special (new) version on the REST API. Added support for the version and a type representing the additional information.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/271",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/271/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/271/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/271/events",
+ "html_url": "https://github.com/github-api/github-api/issues/271",
+ "id": 147374094,
+ "node_id": "MDU6SXNzdWUxNDczNzQwOTQ=",
+ "number": 271,
+ "title": "GitHub.getRateLimit hangs inside SocketInputStream.socketRead0",
+ "user": {
+ "login": "kiselev-dv",
+ "id": 674665,
+ "node_id": "MDQ6VXNlcjY3NDY2NQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/674665?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kiselev-dv",
+ "html_url": "https://github.com/kiselev-dv",
+ "followers_url": "https://api.github.com/users/kiselev-dv/followers",
+ "following_url": "https://api.github.com/users/kiselev-dv/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kiselev-dv/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kiselev-dv/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kiselev-dv/subscriptions",
+ "organizations_url": "https://api.github.com/users/kiselev-dv/orgs",
+ "repos_url": "https://api.github.com/users/kiselev-dv/repos",
+ "events_url": "https://api.github.com/users/kiselev-dv/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kiselev-dv/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-04-11T09:50:02Z",
+ "updated_at": "2016-06-03T05:08:19Z",
+ "closed_at": "2016-06-03T05:08:19Z",
+ "author_association": "NONE",
+ "body": "We've run into an issue when GitHub.getRateLimit hangs the thread.\nHere is the thread stack trace:\n\n```\n\"jenkins.util.Timer [#4]\" Id=48 Group=main RUNNABLE (in native)\n at java.net.SocketInputStream.socketRead0(Native Method)\n at java.net.SocketInputStream.read(SocketInputStream.java:152)\n at java.net.SocketInputStream.read(SocketInputStream.java:122)\n at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)\n at sun.security.ssl.InputRecord.read(InputRecord.java:480)\n at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:946)\n - locked java.lang.Object@4be77f76\n at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:903)\n at sun.security.ssl.AppInputStream.read(AppInputStream.java:102)\n - locked sun.security.ssl.AppInputStream@5e6fb401\n at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)\n at java.io.BufferedInputStream.read1(BufferedInputStream.java:275)\n at java.io.BufferedInputStream.read(BufferedInputStream.java:334)\n - locked java.io.BufferedInputStream@7792de16\n at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:690)\n at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:633)\n at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1325)\n - locked sun.net.www.protocol.https.DelegateHttpsURLConnection@6db28b13\n at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)\n at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)\n at org.kohsuke.github.Requester.parse(Requester.java:454)\n at org.kohsuke.github.Requester._to(Requester.java:227)\n at org.kohsuke.github.Requester.to(Requester.java:194)\n at org.kohsuke.github.GitHub.getRateLimit(GitHub.java:245)\n at org.jenkinsci.plugins.ghprb.GhprbRepository.initGhRepository(GhprbRepository.java:66)\n at org.jenkinsci.plugins.ghprb.GhprbRepository.check(GhprbRepository.java:88)\n at org.jenkinsci.plugins.ghprb.Ghprb.run(Ghprb.java:119)\n at org.jenkinsci.plugins.ghprb.GhprbTrigger.run(GhprbTrigger.java:219)\n at hudson.triggers.Trigger.checkTriggers(Trigger.java:272)\n at hudson.triggers.Trigger$Cron.doRun(Trigger.java:221)\n at hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:50)\n at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)\n at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)\n at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n at java.lang.Thread.run(Thread.java:745)\n\n Number of locked synchronizers = 1\n - java.util.concurrent.ThreadPoolExecutor$Worker@6b1824c6\n```\n\nThere is a possibility that https://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/Requester.java#L486 will never return an aswer.\n\nI think, `uc.setTimeout(60 * 1000);` here https://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/Requester.java#L453 should fix the problem.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/270",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/270/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/270/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/270/events",
+ "html_url": "https://github.com/github-api/github-api/pull/270",
+ "id": 145719545,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjUxNjQ4ODY=",
+ "number": 270,
+ "title": "[#269] Add reopen method on GHMilestone",
+ "user": {
+ "login": "szpak",
+ "id": 148013,
+ "node_id": "MDQ6VXNlcjE0ODAxMw==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/148013?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/szpak",
+ "html_url": "https://github.com/szpak",
+ "followers_url": "https://api.github.com/users/szpak/followers",
+ "following_url": "https://api.github.com/users/szpak/following{/other_user}",
+ "gists_url": "https://api.github.com/users/szpak/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/szpak/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/szpak/subscriptions",
+ "organizations_url": "https://api.github.com/users/szpak/orgs",
+ "repos_url": "https://api.github.com/users/szpak/repos",
+ "events_url": "https://api.github.com/users/szpak/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/szpak/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-04-04T15:31:55Z",
+ "updated_at": "2016-04-13T23:15:39Z",
+ "closed_at": "2016-04-13T23:15:39Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/270",
+ "html_url": "https://github.com/github-api/github-api/pull/270",
+ "diff_url": "https://github.com/github-api/github-api/pull/270.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/270.patch"
+ },
+ "body": "Fixes #269.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/269",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/269/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/269/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/269/events",
+ "html_url": "https://github.com/github-api/github-api/issues/269",
+ "id": 145718053,
+ "node_id": "MDU6SXNzdWUxNDU3MTgwNTM=",
+ "number": 269,
+ "title": "(re)open method on GHMilestone",
+ "user": {
+ "login": "szpak",
+ "id": 148013,
+ "node_id": "MDQ6VXNlcjE0ODAxMw==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/148013?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/szpak",
+ "html_url": "https://github.com/szpak",
+ "followers_url": "https://api.github.com/users/szpak/followers",
+ "following_url": "https://api.github.com/users/szpak/following{/other_user}",
+ "gists_url": "https://api.github.com/users/szpak/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/szpak/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/szpak/subscriptions",
+ "organizations_url": "https://api.github.com/users/szpak/orgs",
+ "repos_url": "https://api.github.com/users/szpak/repos",
+ "events_url": "https://api.github.com/users/szpak/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/szpak/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-04-04T15:27:13Z",
+ "updated_at": "2016-04-13T23:15:39Z",
+ "closed_at": "2016-04-13T23:15:39Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "In some cases (e.g. restoring state for functional tests with sanboxed GitHub project) it could be needed to reopen already closed milestone. Unfortunately currently there is only a `close()` method on `GHMilestone` and as a workaround a private method `edit()` has to be used.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/268",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/268/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/268/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/268/events",
+ "html_url": "https://github.com/github-api/github-api/issues/268",
+ "id": 145666091,
+ "node_id": "MDU6SXNzdWUxNDU2NjYwOTE=",
+ "number": 268,
+ "title": "More meaning toString implementations",
+ "user": {
+ "login": "szpak",
+ "id": 148013,
+ "node_id": "MDQ6VXNlcjE0ODAxMw==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/148013?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/szpak",
+ "html_url": "https://github.com/szpak",
+ "followers_url": "https://api.github.com/users/szpak/followers",
+ "following_url": "https://api.github.com/users/szpak/following{/other_user}",
+ "gists_url": "https://api.github.com/users/szpak/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/szpak/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/szpak/subscriptions",
+ "organizations_url": "https://api.github.com/users/szpak/orgs",
+ "repos_url": "https://api.github.com/users/szpak/repos",
+ "events_url": "https://api.github.com/users/szpak/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/szpak/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-04-04T12:11:11Z",
+ "updated_at": "2016-06-03T05:38:32Z",
+ "closed_at": "2016-06-03T05:38:32Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "Currently many of the GH\\* objects don't have meaninful `toString()` implementation. As details seem to be already initialized in most cases it would be useful to see something like:\n\n```\nGHMIlestone: title=0.1.3, state=CLOSED, number=34\n```\n\ninstead of\n\n```\norg.kohsuke.github.GHMilestone@72d6b3ba\n```\n"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-63d2db0d-08ce-498b-8c8d-903da44e2e94.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-63d2db0d-08ce-498b-8c8d-903da44e2e94.json
new file mode 100644
index 000000000..8c01ca27b
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-63d2db0d-08ce-498b-8c8d-903da44e2e94.json
@@ -0,0 +1,1451 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/439",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/439/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/439/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/439/events",
+ "html_url": "https://github.com/github-api/github-api/pull/439",
+ "id": 329948790,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTkzMDc1ODcy",
+ "number": 439,
+ "title": "Add support for repository searching by \"topic\"",
+ "user": {
+ "login": "l3ender",
+ "id": 2243641,
+ "node_id": "MDQ6VXNlcjIyNDM2NDE=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/2243641?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/l3ender",
+ "html_url": "https://github.com/l3ender",
+ "followers_url": "https://api.github.com/users/l3ender/followers",
+ "following_url": "https://api.github.com/users/l3ender/following{/other_user}",
+ "gists_url": "https://api.github.com/users/l3ender/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/l3ender/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/l3ender/subscriptions",
+ "organizations_url": "https://api.github.com/users/l3ender/orgs",
+ "repos_url": "https://api.github.com/users/l3ender/repos",
+ "events_url": "https://api.github.com/users/l3ender/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/l3ender/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2018-06-06T16:45:32Z",
+ "updated_at": "2018-08-30T03:20:04Z",
+ "closed_at": "2018-08-30T03:20:04Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/439",
+ "html_url": "https://github.com/github-api/github-api/pull/439",
+ "diff_url": "https://github.com/github-api/github-api/pull/439.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/439.patch"
+ },
+ "body": "See https://help.github.com/articles/searching-repositories/#search-by-topic"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/438",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/438/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/438/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/438/events",
+ "html_url": "https://github.com/github-api/github-api/pull/438",
+ "id": 327753768,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTkxNDcwNDkz",
+ "number": 438,
+ "title": "- added overloaded 'uploadAsset' method",
+ "user": {
+ "login": "jgangemi",
+ "id": 1831839,
+ "node_id": "MDQ6VXNlcjE4MzE4Mzk=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1831839?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jgangemi",
+ "html_url": "https://github.com/jgangemi",
+ "followers_url": "https://api.github.com/users/jgangemi/followers",
+ "following_url": "https://api.github.com/users/jgangemi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jgangemi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jgangemi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jgangemi/subscriptions",
+ "organizations_url": "https://api.github.com/users/jgangemi/orgs",
+ "repos_url": "https://api.github.com/users/jgangemi/repos",
+ "events_url": "https://api.github.com/users/jgangemi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jgangemi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-05-30T14:21:18Z",
+ "updated_at": "2018-08-30T03:18:52Z",
+ "closed_at": "2018-08-30T03:18:52Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/438",
+ "html_url": "https://github.com/github-api/github-api/pull/438",
+ "diff_url": "https://github.com/github-api/github-api/pull/438.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/438.patch"
+ },
+ "body": "resolves #434 "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/437",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/437/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/437/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/437/events",
+ "html_url": "https://github.com/github-api/github-api/pull/437",
+ "id": 327475726,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTkxMjYxMzM5",
+ "number": 437,
+ "title": "[feature] implement Repository Invitations API",
+ "user": {
+ "login": "Rechi",
+ "id": 5367567,
+ "node_id": "MDQ6VXNlcjUzNjc1Njc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/5367567?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Rechi",
+ "html_url": "https://github.com/Rechi",
+ "followers_url": "https://api.github.com/users/Rechi/followers",
+ "following_url": "https://api.github.com/users/Rechi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Rechi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Rechi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Rechi/subscriptions",
+ "organizations_url": "https://api.github.com/users/Rechi/orgs",
+ "repos_url": "https://api.github.com/users/Rechi/repos",
+ "events_url": "https://api.github.com/users/Rechi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Rechi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-05-29T20:30:17Z",
+ "updated_at": "2018-08-30T06:19:16Z",
+ "closed_at": "2018-08-30T03:19:28Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/437",
+ "html_url": "https://github.com/github-api/github-api/pull/437",
+ "diff_url": "https://github.com/github-api/github-api/pull/437.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/437.patch"
+ },
+ "body": "fixes #374"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/436",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/436/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/436/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/436/events",
+ "html_url": "https://github.com/github-api/github-api/pull/436",
+ "id": 327134134,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTkxMDA4Mzcy",
+ "number": 436,
+ "title": "- remove unthrown IOException",
+ "user": {
+ "login": "jgangemi",
+ "id": 1831839,
+ "node_id": "MDQ6VXNlcjE4MzE4Mzk=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1831839?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jgangemi",
+ "html_url": "https://github.com/jgangemi",
+ "followers_url": "https://api.github.com/users/jgangemi/followers",
+ "following_url": "https://api.github.com/users/jgangemi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jgangemi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jgangemi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jgangemi/subscriptions",
+ "organizations_url": "https://api.github.com/users/jgangemi/orgs",
+ "repos_url": "https://api.github.com/users/jgangemi/repos",
+ "events_url": "https://api.github.com/users/jgangemi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jgangemi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-05-28T23:50:48Z",
+ "updated_at": "2018-08-30T03:16:29Z",
+ "closed_at": "2018-08-30T03:16:29Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/436",
+ "html_url": "https://github.com/github-api/github-api/pull/436",
+ "diff_url": "https://github.com/github-api/github-api/pull/436.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/436.patch"
+ },
+ "body": "the corresponding method in the `GitHub` class does not throw this."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/435",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/435/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/435/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/435/events",
+ "html_url": "https://github.com/github-api/github-api/pull/435",
+ "id": 326853173,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTkwODA3OTky",
+ "number": 435,
+ "title": "- branch protection enhancements",
+ "user": {
+ "login": "jgangemi",
+ "id": 1831839,
+ "node_id": "MDQ6VXNlcjE4MzE4Mzk=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1831839?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jgangemi",
+ "html_url": "https://github.com/jgangemi",
+ "followers_url": "https://api.github.com/users/jgangemi/followers",
+ "following_url": "https://api.github.com/users/jgangemi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jgangemi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jgangemi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jgangemi/subscriptions",
+ "organizations_url": "https://api.github.com/users/jgangemi/orgs",
+ "repos_url": "https://api.github.com/users/jgangemi/repos",
+ "events_url": "https://api.github.com/users/jgangemi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jgangemi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2018-05-27T21:35:13Z",
+ "updated_at": "2018-08-30T03:16:03Z",
+ "closed_at": "2018-08-30T03:16:03Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/435",
+ "html_url": "https://github.com/github-api/github-api/pull/435",
+ "diff_url": "https://github.com/github-api/github-api/pull/435.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/435.patch"
+ },
+ "body": "- add support for signed commits\r\n- add support for required number of reviews"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/434",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/434/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/434/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/434/events",
+ "html_url": "https://github.com/github-api/github-api/issues/434",
+ "id": 326823160,
+ "node_id": "MDU6SXNzdWUzMjY4MjMxNjA=",
+ "number": 434,
+ "title": "GHRelease.uploadAsset() that takes InputStream instead of File",
+ "user": {
+ "login": "gabrielittner",
+ "id": 1358105,
+ "node_id": "MDQ6VXNlcjEzNTgxMDU=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1358105?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/gabrielittner",
+ "html_url": "https://github.com/gabrielittner",
+ "followers_url": "https://api.github.com/users/gabrielittner/followers",
+ "following_url": "https://api.github.com/users/gabrielittner/following{/other_user}",
+ "gists_url": "https://api.github.com/users/gabrielittner/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/gabrielittner/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/gabrielittner/subscriptions",
+ "organizations_url": "https://api.github.com/users/gabrielittner/orgs",
+ "repos_url": "https://api.github.com/users/gabrielittner/repos",
+ "events_url": "https://api.github.com/users/gabrielittner/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/gabrielittner/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2018-05-27T14:59:36Z",
+ "updated_at": "2018-08-30T03:18:52Z",
+ "closed_at": "2018-08-30T03:18:52Z",
+ "author_association": "NONE",
+ "body": "It would be great if you could offer a `GHRelease.uploadAsset(InputStream, String)` overload. I've got something that is already in memory and in my environment it's not easy to create files. That overload would allow me to simply pass in a `ByteArrayInputStream`."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/433",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/433/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/433/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/433/events",
+ "html_url": "https://github.com/github-api/github-api/issues/433",
+ "id": 323895407,
+ "node_id": "MDU6SXNzdWUzMjM4OTU0MDc=",
+ "number": 433,
+ "title": "GHRepository.listCommits() returns java.net.SocketTimeoutException: Read timed out",
+ "user": {
+ "login": "Zhang-Nick",
+ "id": 7865449,
+ "node_id": "MDQ6VXNlcjc4NjU0NDk=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/7865449?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Zhang-Nick",
+ "html_url": "https://github.com/Zhang-Nick",
+ "followers_url": "https://api.github.com/users/Zhang-Nick/followers",
+ "following_url": "https://api.github.com/users/Zhang-Nick/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Zhang-Nick/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Zhang-Nick/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Zhang-Nick/subscriptions",
+ "organizations_url": "https://api.github.com/users/Zhang-Nick/orgs",
+ "repos_url": "https://api.github.com/users/Zhang-Nick/repos",
+ "events_url": "https://api.github.com/users/Zhang-Nick/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Zhang-Nick/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2018-05-17T07:00:56Z",
+ "updated_at": "2018-08-30T14:59:04Z",
+ "closed_at": "2018-08-30T14:59:04Z",
+ "author_association": "NONE",
+ "body": "timed out accessing https://api.github.com/repositories/455600/commits?page=196; will try 2 more time(s)\r\n\r\nWhen I used the GHRepository.listCommits() to get all the commits from repo \" facebook/hhvm\",it returns me timed out"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/432",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/432/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/432/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/432/events",
+ "html_url": "https://github.com/github-api/github-api/pull/432",
+ "id": 319812606,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTg1NjM0NzE0",
+ "number": 432,
+ "title": "add minimal GitHub app support",
+ "user": {
+ "login": "sns-seb",
+ "id": 11717580,
+ "node_id": "MDQ6VXNlcjExNzE3NTgw",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/11717580?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sns-seb",
+ "html_url": "https://github.com/sns-seb",
+ "followers_url": "https://api.github.com/users/sns-seb/followers",
+ "following_url": "https://api.github.com/users/sns-seb/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sns-seb/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sns-seb/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sns-seb/subscriptions",
+ "organizations_url": "https://api.github.com/users/sns-seb/orgs",
+ "repos_url": "https://api.github.com/users/sns-seb/repos",
+ "events_url": "https://api.github.com/users/sns-seb/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sns-seb/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-05-03T07:26:36Z",
+ "updated_at": "2018-05-03T07:26:58Z",
+ "closed_at": "2018-05-03T07:26:58Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/432",
+ "html_url": "https://github.com/github-api/github-api/pull/432",
+ "diff_url": "https://github.com/github-api/github-api/pull/432.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/432.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/431",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/431/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/431/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/431/events",
+ "html_url": "https://github.com/github-api/github-api/pull/431",
+ "id": 311892810,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTc5ODg2MjIz",
+ "number": 431,
+ "title": "[fix] fetch labels with HTTP GET method",
+ "user": {
+ "login": "Rechi",
+ "id": 5367567,
+ "node_id": "MDQ6VXNlcjUzNjc1Njc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/5367567?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Rechi",
+ "html_url": "https://github.com/Rechi",
+ "followers_url": "https://api.github.com/users/Rechi/followers",
+ "following_url": "https://api.github.com/users/Rechi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Rechi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Rechi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Rechi/subscriptions",
+ "organizations_url": "https://api.github.com/users/Rechi/orgs",
+ "repos_url": "https://api.github.com/users/Rechi/repos",
+ "events_url": "https://api.github.com/users/Rechi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Rechi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-04-06T08:40:26Z",
+ "updated_at": "2018-05-01T14:22:05Z",
+ "closed_at": "2018-05-01T14:18:44Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/431",
+ "html_url": "https://github.com/github-api/github-api/pull/431",
+ "diff_url": "https://github.com/github-api/github-api/pull/431.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/431.patch"
+ },
+ "body": "Making this request (by calling `pr.getLabels()`) with POST method changed the updated date of a PR.\r\n\r\nBecause of that `sort:updated-desc` in the Pull request listing wasn't sorting in the expected order any more."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/430",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/430/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/430/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/430/events",
+ "html_url": "https://github.com/github-api/github-api/pull/430",
+ "id": 309635204,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTc4MjM4MTgy",
+ "number": 430,
+ "title": "Added request reviewers function within GHPullRequest.",
+ "user": {
+ "login": "twcurrie",
+ "id": 6046907,
+ "node_id": "MDQ6VXNlcjYwNDY5MDc=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/6046907?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/twcurrie",
+ "html_url": "https://github.com/twcurrie",
+ "followers_url": "https://api.github.com/users/twcurrie/followers",
+ "following_url": "https://api.github.com/users/twcurrie/following{/other_user}",
+ "gists_url": "https://api.github.com/users/twcurrie/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/twcurrie/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/twcurrie/subscriptions",
+ "organizations_url": "https://api.github.com/users/twcurrie/orgs",
+ "repos_url": "https://api.github.com/users/twcurrie/repos",
+ "events_url": "https://api.github.com/users/twcurrie/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/twcurrie/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 7,
+ "created_at": "2018-03-29T06:33:28Z",
+ "updated_at": "2018-05-01T21:35:35Z",
+ "closed_at": "2018-05-01T02:58:19Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/430",
+ "html_url": "https://github.com/github-api/github-api/pull/430",
+ "diff_url": "https://github.com/github-api/github-api/pull/430.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/430.patch"
+ },
+ "body": "Low hanging fruit: https://developer.github.com/v3/pulls/review_requests/#create-a-review-request"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/428",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/428/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/428/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/428/events",
+ "html_url": "https://github.com/github-api/github-api/pull/428",
+ "id": 308792893,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTc3NjExMTIx",
+ "number": 428,
+ "title": "Fix imports for commons-lang3.",
+ "user": {
+ "login": "markwoon",
+ "id": 215141,
+ "node_id": "MDQ6VXNlcjIxNTE0MQ==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/215141?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/markwoon",
+ "html_url": "https://github.com/markwoon",
+ "followers_url": "https://api.github.com/users/markwoon/followers",
+ "following_url": "https://api.github.com/users/markwoon/following{/other_user}",
+ "gists_url": "https://api.github.com/users/markwoon/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/markwoon/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/markwoon/subscriptions",
+ "organizations_url": "https://api.github.com/users/markwoon/orgs",
+ "repos_url": "https://api.github.com/users/markwoon/repos",
+ "events_url": "https://api.github.com/users/markwoon/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/markwoon/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2018-03-27T01:48:07Z",
+ "updated_at": "2018-05-01T14:05:09Z",
+ "closed_at": "2018-05-01T14:05:08Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/428",
+ "html_url": "https://github.com/github-api/github-api/pull/428",
+ "diff_url": "https://github.com/github-api/github-api/pull/428.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/428.patch"
+ },
+ "body": "The last commit updated the commons-lang dependency to v3 but neglected to update the imports."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/427",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/427/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/427/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/427/events",
+ "html_url": "https://github.com/github-api/github-api/pull/427",
+ "id": 307545165,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTc2NzAzOTQ5",
+ "number": 427,
+ "title": "Add support for previous_filename for file details in PR.",
+ "user": {
+ "login": "itepikin-smartling",
+ "id": 26928776,
+ "node_id": "MDQ6VXNlcjI2OTI4Nzc2",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/26928776?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/itepikin-smartling",
+ "html_url": "https://github.com/itepikin-smartling",
+ "followers_url": "https://api.github.com/users/itepikin-smartling/followers",
+ "following_url": "https://api.github.com/users/itepikin-smartling/following{/other_user}",
+ "gists_url": "https://api.github.com/users/itepikin-smartling/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/itepikin-smartling/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/itepikin-smartling/subscriptions",
+ "organizations_url": "https://api.github.com/users/itepikin-smartling/orgs",
+ "repos_url": "https://api.github.com/users/itepikin-smartling/repos",
+ "events_url": "https://api.github.com/users/itepikin-smartling/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/itepikin-smartling/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-03-22T08:22:46Z",
+ "updated_at": "2018-05-01T14:17:32Z",
+ "closed_at": "2018-05-01T14:17:32Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/427",
+ "html_url": "https://github.com/github-api/github-api/pull/427",
+ "diff_url": "https://github.com/github-api/github-api/pull/427.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/427.patch"
+ },
+ "body": "In case, when PR contains file that was renamed, file details will look like this:\r\n```\r\n[\r\n {\r\n \"sha\": \"0000000000000000000001\",\r\n \"filename\": \"fileName.new\",\r\n \"status\": \"renamed\",\r\n \"additions\": 1,\r\n \"deletions\": 0,\r\n \"changes\": 1,\r\n \"blob_url\": \"https://github.com/...\",\r\n \"raw_url\": \"https://github.com/...\",\r\n \"contents_url\": \"https://api.github.com/repos/...\",\r\n \"patch\": \"...\",\r\n \"previous_filename\": \"fileName.prev\"\r\n }\r\n]\r\n```\r\nSo, there is need to support `previous_filename` field to know the previous file name."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/424",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/424/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/424/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/424/events",
+ "html_url": "https://github.com/github-api/github-api/pull/424",
+ "id": 305655424,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTc1MzI5NTgz",
+ "number": 424,
+ "title": "Add sha1 to updateFiles ",
+ "user": {
+ "login": "onoguera-ob",
+ "id": 9931799,
+ "node_id": "MDQ6VXNlcjk5MzE3OTk=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/9931799?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/onoguera-ob",
+ "html_url": "https://github.com/onoguera-ob",
+ "followers_url": "https://api.github.com/users/onoguera-ob/followers",
+ "following_url": "https://api.github.com/users/onoguera-ob/following{/other_user}",
+ "gists_url": "https://api.github.com/users/onoguera-ob/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/onoguera-ob/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/onoguera-ob/subscriptions",
+ "organizations_url": "https://api.github.com/users/onoguera-ob/orgs",
+ "repos_url": "https://api.github.com/users/onoguera-ob/repos",
+ "events_url": "https://api.github.com/users/onoguera-ob/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/onoguera-ob/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2018-03-15T17:46:43Z",
+ "updated_at": "2018-08-30T02:07:03Z",
+ "closed_at": "2018-08-30T02:07:03Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/424",
+ "html_url": "https://github.com/github-api/github-api/pull/424",
+ "diff_url": "https://github.com/github-api/github-api/pull/424.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/424.patch"
+ },
+ "body": "see https://developer.github.com/v3/repos/contents/#update-a-file"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/422",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/422/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/422/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/422/events",
+ "html_url": "https://github.com/github-api/github-api/pull/422",
+ "id": 301800784,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTcyNTI4NjAx",
+ "number": 422,
+ "title": "Fixes #421 - Enum case doesn't match for Pull Request Reviews",
+ "user": {
+ "login": "ggrell",
+ "id": 107712,
+ "node_id": "MDQ6VXNlcjEwNzcxMg==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/107712?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ggrell",
+ "html_url": "https://github.com/ggrell",
+ "followers_url": "https://api.github.com/users/ggrell/followers",
+ "following_url": "https://api.github.com/users/ggrell/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ggrell/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ggrell/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ggrell/subscriptions",
+ "organizations_url": "https://api.github.com/users/ggrell/orgs",
+ "repos_url": "https://api.github.com/users/ggrell/repos",
+ "events_url": "https://api.github.com/users/ggrell/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ggrell/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-03-02T15:19:34Z",
+ "updated_at": "2018-05-01T14:19:43Z",
+ "closed_at": "2018-05-01T14:19:43Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/422",
+ "html_url": "https://github.com/github-api/github-api/pull/422",
+ "diff_url": "https://github.com/github-api/github-api/pull/422.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/422.patch"
+ },
+ "body": "Fixes issue #421 by setting Jackson to ignore case differences in enums."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/421",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/421/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/421/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/421/events",
+ "html_url": "https://github.com/github-api/github-api/issues/421",
+ "id": 301607044,
+ "node_id": "MDU6SXNzdWUzMDE2MDcwNDQ=",
+ "number": 421,
+ "title": "InvalidFormatException parsing GHEventPayload.PullRequestReview",
+ "user": {
+ "login": "ggrell",
+ "id": 107712,
+ "node_id": "MDQ6VXNlcjEwNzcxMg==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/107712?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ggrell",
+ "html_url": "https://github.com/ggrell",
+ "followers_url": "https://api.github.com/users/ggrell/followers",
+ "following_url": "https://api.github.com/users/ggrell/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ggrell/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ggrell/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ggrell/subscriptions",
+ "organizations_url": "https://api.github.com/users/ggrell/orgs",
+ "repos_url": "https://api.github.com/users/ggrell/repos",
+ "events_url": "https://api.github.com/users/ggrell/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ggrell/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-03-02T00:09:08Z",
+ "updated_at": "2018-05-01T14:19:45Z",
+ "closed_at": "2018-05-01T14:19:45Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "I'm getting the following exception parsing a \"pull_request_review\" event on our GitHub Enterprise instance:\r\n```\r\ncom.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `org.kohsuke.github.GHPullRequestReviewState` from String \"commented\": value not one of declared Enum instance names: [CHANGES_REQUESTED, REQUEST_CHANGES, PENDING, DISMISSED, COMMENTED, APPROVED]\r\n at [Source: (StringReader); line: 28, column: 14] (through reference chain: org.kohsuke.github.GHEventPayload$PullRequestReview[\"review\"]->org.kohsuke.github.GHPullRequestReview[\"state\"])\r\ncom.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `org.kohsuke.github.GHPullRequestReviewState` from String \"commented\": value not one of declared Enum instance names: [CHANGES_REQUESTED, REQUEST_CHANGES, PENDING, DISMISSED, COMMENTED, APPROVED]\r\n at [Source: (StringReader); line: 28, column: 14] (through reference chain: org.kohsuke.github.GHEventPayload$PullRequestReview[\"review\"]->org.kohsuke.github.GHPullRequestReview[\"state\"])\r\n\tat com.fasterxml.jackson.databind.exc.InvalidFormatException.from(InvalidFormatException.java:67) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.DeserializationContext.weirdStringException(DeserializationContext.java:1548) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.DeserializationContext.handleWeirdStringValue(DeserializationContext.java:910) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.deser.std.EnumDeserializer._deserializeAltString(EnumDeserializer.java:255) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.deser.std.EnumDeserializer.deserialize(EnumDeserializer.java:179) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:136) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:136) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4001) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3037) ~[jackson-databind-2.9.4.jar:2.9.4]\r\n\tat org.kohsuke.github.GitHub.parseEventPayload(GitHub.java:600) ~[github-api-1.92.jar:na]\r\n```\r\nwhere the beginning of the JSON payload looks like this:\r\n```\r\n{\r\n \"action\": \"submitted\",\r\n \"review\": {\r\n \"id\": 33666,\r\n \"user\": {\r\n \"login\": \"REMOVED\",\r\n \"id\": 193,\r\n \"avatar_url\": \"REMOVED\",\r\n \"gravatar_id\": \"\",\r\n \"url\": \"REMOVED\",\r\n \"html_url\": \"REMOVED\",\r\n \"followers_url\": \"REMOVED\",\r\n \"following_url\": \"REMOVED\",\r\n \"gists_url\": \"REMOVED\",\r\n \"starred_url\": \"REMOVED\",\r\n \"subscriptions_url\": \"REMOVED\",\r\n \"organizations_url\": \"REMOVED\",\r\n \"repos_url\": \"REMOVED\",\r\n \"events_url\": \"REMOVED\",\r\n \"received_events_url\": \"REMOVED\",\r\n \"type\": \"User\",\r\n \"site_admin\": false,\r\n \"ldap_dn\": \"REMOVED\"\r\n },\r\n \"body\": \"Review test\",\r\n \"commit_id\": \"1348693c5fefd5dc58568b75ef69c81705bfb269\",\r\n \"submitted_at\": \"2018-03-01T23:41:54Z\",\r\n \"state\": \"commented\",\r\n...\r\n```"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/420",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/420/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/420/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/420/events",
+ "html_url": "https://github.com/github-api/github-api/pull/420",
+ "id": 300852281,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTcxODI5MjM3",
+ "number": 420,
+ "title": "OkHttpConnector: Enforce use of TLSv1.2 to match current Github and Github Enterprise TLS support.",
+ "user": {
+ "login": "randomvariable",
+ "id": 1441070,
+ "node_id": "MDQ6VXNlcjE0NDEwNzA=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1441070?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/randomvariable",
+ "html_url": "https://github.com/randomvariable",
+ "followers_url": "https://api.github.com/users/randomvariable/followers",
+ "following_url": "https://api.github.com/users/randomvariable/following{/other_user}",
+ "gists_url": "https://api.github.com/users/randomvariable/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/randomvariable/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/randomvariable/subscriptions",
+ "organizations_url": "https://api.github.com/users/randomvariable/orgs",
+ "repos_url": "https://api.github.com/users/randomvariable/repos",
+ "events_url": "https://api.github.com/users/randomvariable/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/randomvariable/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2018-02-28T01:02:48Z",
+ "updated_at": "2018-03-06T17:21:51Z",
+ "closed_at": "2018-03-01T17:43:25Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/420",
+ "html_url": "https://github.com/github-api/github-api/pull/420",
+ "diff_url": "https://github.com/github-api/github-api/pull/420.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/420.patch"
+ },
+ "body": "On Feb 8, 2018, Github changed their TLS settings to be 1.2 only.\r\nMost recent Jenkins installs are OK as Java 1.8 defaults to TLS 1.2, however some people see intermittent\r\nor continuous failures with connecting to Github in a variety of configurations:\r\n\r\ne.g. https://issues.jenkins-ci.org/browse/JENKINS-49761?jql=project%20%3D%20JENKINS%20AND%20component%20%3D%20github-api-plugin \r\n\r\nThis PR creates a new TLS v1.2 only SSLContext and attaches its socket factory to the urlFactory passed to OkHttpConnector, which is used by most Github plugins in Jenkins."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/419",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/419/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/419/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/419/events",
+ "html_url": "https://github.com/github-api/github-api/issues/419",
+ "id": 299887267,
+ "node_id": "MDU6SXNzdWUyOTk4ODcyNjc=",
+ "number": 419,
+ "title": "java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.deser.SettableBeanProperty.",
+ "user": {
+ "login": "Karpinchyk",
+ "id": 36778898,
+ "node_id": "MDQ6VXNlcjM2Nzc4ODk4",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/36778898?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Karpinchyk",
+ "html_url": "https://github.com/Karpinchyk",
+ "followers_url": "https://api.github.com/users/Karpinchyk/followers",
+ "following_url": "https://api.github.com/users/Karpinchyk/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Karpinchyk/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Karpinchyk/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Karpinchyk/subscriptions",
+ "organizations_url": "https://api.github.com/users/Karpinchyk/orgs",
+ "repos_url": "https://api.github.com/users/Karpinchyk/repos",
+ "events_url": "https://api.github.com/users/Karpinchyk/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Karpinchyk/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2018-02-24T00:00:13Z",
+ "updated_at": "2018-08-30T15:00:32Z",
+ "closed_at": "2018-08-30T15:00:32Z",
+ "author_association": "NONE",
+ "body": "I am very sorry if this issue has been already addressed somewhere. I tried to google but didn't find any references.\r\n\r\nStarting at version 1.90 of github-api a dropwizard app gives an exception when started. Previous versions of the lib (1 - 1.89) work fine.\r\n\r\nException in thread \"main\" java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.deser.SettableBeanProperty.(Lcom/fasterxml/jackson/databind/deser/SettableBeanProperty;Lcom/fasterxml/jackson/databind/JsonDeserializer;)V\r\n\tat com.fasterxml.jackson.module.afterburner.deser.OptimizedSettableBeanProperty.(OptimizedSettableBeanProperty.java:50)\r\n\tat com.fasterxml.jackson.module.afterburner.deser.SettableObjectMethodProperty.(SettableObjectMethodProperty.java:21)\r\n\tat com.fasterxml.jackson.module.afterburner.deser.SettableObjectMethodProperty.withValueDeserializer(SettableObjectMethodProperty.java:38)\r\n\tat com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:462)\r\n\tat com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer.resolve(SuperSonicBeanDeserializer.java:79)\r\n\tat com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:293)\r\n\tat com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244)\r\n\tat com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142)\r\n\tat com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:477)\r\n\tat com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:4178)\r\n\tat com.fasterxml.jackson.databind.ObjectMapper._readValue(ObjectMapper.java:3967)\r\n\tat com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2264)\r\n\tat io.dropwizard.configuration.YamlConfigurationFactory.build(YamlConfigurationFactory.java:123)\r\n\tat io.dropwizard.configuration.YamlConfigurationFactory.build(YamlConfigurationFactory.java:87)\r\n\tat io.dropwizard.cli.ConfiguredCommand.parseConfiguration(ConfiguredCommand.java:124)\r\n\tat io.dropwizard.cli.ConfiguredCommand.run(ConfiguredCommand.java:72)\r\n\tat io.dropwizard.cli.Cli.run(Cli.java:75)\r\n..."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/418",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/418/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/418/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/418/events",
+ "html_url": "https://github.com/github-api/github-api/issues/418",
+ "id": 299853104,
+ "node_id": "MDU6SXNzdWUyOTk4NTMxMDQ=",
+ "number": 418,
+ "title": "https://api.github.com/user response code -1",
+ "user": {
+ "login": "attti",
+ "id": 4491248,
+ "node_id": "MDQ6VXNlcjQ0OTEyNDg=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/4491248?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/attti",
+ "html_url": "https://github.com/attti",
+ "followers_url": "https://api.github.com/users/attti/followers",
+ "following_url": "https://api.github.com/users/attti/following{/other_user}",
+ "gists_url": "https://api.github.com/users/attti/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/attti/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/attti/subscriptions",
+ "organizations_url": "https://api.github.com/users/attti/orgs",
+ "repos_url": "https://api.github.com/users/attti/repos",
+ "events_url": "https://api.github.com/users/attti/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/attti/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2018-02-23T21:17:39Z",
+ "updated_at": "2018-02-26T17:10:26Z",
+ "closed_at": "2018-02-26T17:04:52Z",
+ "author_association": "NONE",
+ "body": "got error when our pull request builder plugin trying to connect to github.\r\nFeb 23, 2018 4:08:00 PM SEVERE org.jenkinsci.plugins.ghprb.GhprbGitHubAuth buildConnection\r\nUnable to connect using credentials: ________________________________\r\norg.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/user\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:633)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:594)\r\n\tat org.kohsuke.github.Requester._to(Requester.java:272)\r\n\tat org.kohsuke.github.Requester.to(Requester.java:234)\r\n\tat org.kohsuke.github.GitHub.getMyself(GitHub.java:384)\r\n\tat org.kohsuke.github.GitHub.(GitHub.java:158)\r\n\tat org.kohsuke.github.GitHubBuilder.build(GitHubBuilder.java:207)\r\n\tat org.jenkinsci.plugins.ghprb.GhprbGitHubAuth.buildConnection(GhprbGitHubAuth.java:195)\r\n\tat org.jenkinsci.plugins.ghprb.GhprbGitHubAuth.getConnection(GhprbGitHubAuth.java:204)\r\n\tat org.jenkinsci.plugins.ghprb.GhprbTrigger.getGitHub(GhprbTrigger.java:431)\r\n\tat org.jenkinsci.plugins.ghprb.GhprbRepository.initGhRepository(GhprbRepository.java:86)\r\n\tat org.jenkinsci.plugins.ghprb.GhprbRepository.check(GhprbRepository.java:130)\r\n\tat org.jenkinsci.plugins.ghprb.GhprbTrigger.run(GhprbTrigger.java:300)\r\n\tat hudson.triggers.Trigger.checkTriggers(Trigger.java:272)\r\n\tat hudson.triggers.Trigger$Cron.doRun(Trigger.java:221)\r\n\tat hudson.triggers.SafeTimerTask.run(SafeTimerTask.java:50)\r\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\r\n\tat java.util.concurrent.FutureTask.runAndReset(FutureTask.java:304)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:178)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\r\n\tat java.lang.Thread.run(Thread.java:745)\r\nCaused by: javax.net.ssl.SSLException: Received fatal alert: protocol_version\r\n\tat sun.security.ssl.Alerts.getSSLException(Alerts.java:208)\r\n\tat sun.security.ssl.Alerts.getSSLException(Alerts.java:154)\r\n\tat sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1979)\r\n\tat sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1086)\r\n\tat sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)\r\n\tat sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359)\r\n\tat sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343)\r\n\tat sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563)\r\n\tat sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1301)\r\n\tat java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:468)\r\n\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:602)\r\n\t... 22 more\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/417",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/417/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/417/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/417/events",
+ "html_url": "https://github.com/github-api/github-api/pull/417",
+ "id": 299444497,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTcwODE4NTUy",
+ "number": 417,
+ "title": "Added release payload.",
+ "user": {
+ "login": "twcurrie",
+ "id": 6046907,
+ "node_id": "MDQ6VXNlcjYwNDY5MDc=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/6046907?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/twcurrie",
+ "html_url": "https://github.com/twcurrie",
+ "followers_url": "https://api.github.com/users/twcurrie/followers",
+ "following_url": "https://api.github.com/users/twcurrie/following{/other_user}",
+ "gists_url": "https://api.github.com/users/twcurrie/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/twcurrie/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/twcurrie/subscriptions",
+ "organizations_url": "https://api.github.com/users/twcurrie/orgs",
+ "repos_url": "https://api.github.com/users/twcurrie/repos",
+ "events_url": "https://api.github.com/users/twcurrie/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/twcurrie/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2018-02-22T17:39:26Z",
+ "updated_at": "2018-08-30T03:21:25Z",
+ "closed_at": "2018-08-30T03:21:25Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/417",
+ "html_url": "https://github.com/github-api/github-api/pull/417",
+ "diff_url": "https://github.com/github-api/github-api/pull/417.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/417.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/415",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/415/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/415/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/415/events",
+ "html_url": "https://github.com/github-api/github-api/issues/415",
+ "id": 298028849,
+ "node_id": "MDU6SXNzdWUyOTgwMjg4NDk=",
+ "number": 415,
+ "title": "mvn test fails to start on HEAD",
+ "user": {
+ "login": "gdgib",
+ "id": 801167,
+ "node_id": "MDQ6VXNlcjgwMTE2Nw==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/801167?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/gdgib",
+ "html_url": "https://github.com/gdgib",
+ "followers_url": "https://api.github.com/users/gdgib/followers",
+ "following_url": "https://api.github.com/users/gdgib/following{/other_user}",
+ "gists_url": "https://api.github.com/users/gdgib/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/gdgib/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/gdgib/subscriptions",
+ "organizations_url": "https://api.github.com/users/gdgib/orgs",
+ "repos_url": "https://api.github.com/users/gdgib/repos",
+ "events_url": "https://api.github.com/users/gdgib/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/gdgib/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 8,
+ "created_at": "2018-02-17T19:14:28Z",
+ "updated_at": "2018-08-30T15:37:51Z",
+ "closed_at": "2018-08-30T15:37:50Z",
+ "author_association": "NONE",
+ "body": "If I checkout `192e21a9fcacf4dffc975156bcf5e8ff7bf297b1` (HEAD right now), and run `mvn test` I see a `ClassNotFoundException`. It cannot even report success or failure of individual tests.\r\n\r\nI believe this is related to https://github.com/kohsuke/github-api/pull/388 which upgraded jgit, but maybe not all of the unit tests. Specifically [`LifecycleTest`](https://github.com/kohsuke/github-api/blob/master/src/test/java/org/kohsuke/github/LifecycleTest.java) references `UsernamePasswordCredentialsProvider` which is no longer in the newer versions of jgit.\r\n\r\nI'll be honest, as I tried to fix this I kept getting some unexpected classpath errors related to jgit (first this one, then one about `GitAPIException`, etc), and much as I know my way around a super complex build, I didn't feel like learning about the maven plugin for bridge method generation, and everything else it might take me to sort this out. Is there something basic I missed for setting up a working development environment for this project? I feel like I must have missed something simple for `mvn test` not to work.\r\n\r\nThe surefire log shows:\r\n\r\n```\r\n-------------------------------------------------------\r\n T E S T S\r\n-------------------------------------------------------\r\norg.apache.maven.surefire.util.SurefireReflectionException: java.lang.reflect.InvocationTargetException; nested exception is java.lang.reflect.InvocationTargetException: null\r\njava.lang.reflect.InvocationTargetException\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)\r\n at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)\r\n at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)\r\n at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)\r\n at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)\r\nCaused by: java.lang.NoClassDefFoundError: org/eclipse/jgit/transport/CredentialsProvider\r\n at java.lang.Class.getDeclaredMethods0(Native Method)\r\n at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)\r\n at java.lang.Class.privateGetMethodRecursive(Class.java:3048)\r\n at java.lang.Class.getMethod0(Class.java:3018)\r\n at java.lang.Class.getMethod(Class.java:1784)\r\n at org.apache.maven.surefire.util.ReflectionUtils.tryGetMethod(ReflectionUtils.java:57)\r\n at org.apache.maven.surefire.common.junit3.JUnit3TestChecker.isSuiteOnly(JUnit3TestChecker.java:64)\r\n at org.apache.maven.surefire.common.junit3.JUnit3TestChecker.isValidJUnit3Test(JUnit3TestChecker.java:59)\r\n at org.apache.maven.surefire.common.junit3.JUnit3TestChecker.accept(JUnit3TestChecker.java:54)\r\n at org.apache.maven.surefire.common.junit4.JUnit4TestChecker.accept(JUnit4TestChecker.java:51)\r\n at org.apache.maven.surefire.util.DefaultScanResult.applyFilter(DefaultScanResult.java:97)\r\n at org.apache.maven.surefire.junit4.JUnit4Provider.scanClassPath(JUnit4Provider.java:194)\r\n at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:92)\r\n ... 9 more\r\nCaused by: java.lang.ClassNotFoundException: org.eclipse.jgit.transport.CredentialsProvider\r\n at java.net.URLClassLoader.findClass(URLClassLoader.java:381)\r\n at java.lang.ClassLoader.loadClass(ClassLoader.java:424)\r\n at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)\r\n at java.lang.ClassLoader.loadClass(ClassLoader.java:357)\r\n ... 22 more\r\n\r\nResults :\r\n\r\nTests run: 0, Failures: 0, Errors: 0, Skipped: 0\r\n```\r\n\r\n\r\nMaven version:\r\n```\r\nApache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T08:41:47-08:00)\r\nMaven home: C:\\Program Files\\Maven\r\nJava version: 1.8.0_121, vendor: Oracle Corporation\r\nJava home: C:\\Program Files\\Java\\jdk1.8.0_121\\jre\r\nDefault locale: en_US, platform encoding: Cp1252\r\nOS name: \"windows nt (unknown)\", version: \"10.0\", arch: \"amd64\", family: \"dos\"\r\n```"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/414",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/414/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/414/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/414/events",
+ "html_url": "https://github.com/github-api/github-api/issues/414",
+ "id": 298019002,
+ "node_id": "MDU6SXNzdWUyOTgwMTkwMDI=",
+ "number": 414,
+ "title": "NullPointerException in org.kohsuke.github.GHContent.read",
+ "user": {
+ "login": "turbanoff",
+ "id": 741251,
+ "node_id": "MDQ6VXNlcjc0MTI1MQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/741251?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/turbanoff",
+ "html_url": "https://github.com/turbanoff",
+ "followers_url": "https://api.github.com/users/turbanoff/followers",
+ "following_url": "https://api.github.com/users/turbanoff/following{/other_user}",
+ "gists_url": "https://api.github.com/users/turbanoff/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/turbanoff/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/turbanoff/subscriptions",
+ "organizations_url": "https://api.github.com/users/turbanoff/orgs",
+ "repos_url": "https://api.github.com/users/turbanoff/repos",
+ "events_url": "https://api.github.com/users/turbanoff/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/turbanoff/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2018-02-17T16:57:54Z",
+ "updated_at": "2018-08-30T15:05:36Z",
+ "closed_at": "2018-08-30T15:05:36Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "Hello.\r\nI'm trying to use github search API and sometimes got NPE. (tailApiUrl is null)\r\n\r\n Exception in thread \"main\" java.lang.NullPointerException\r\n\tat org.kohsuke.github.GitHub.getApiURL(GitHub.java:297)\r\n\tat org.kohsuke.github.Requester.asStream(Requester.java:327)\r\n\tat org.kohsuke.github.GHContent.read(GHContent.java:117)\r\n\r\nUsed version: `org.kohsuke:github-api:1.92`\r\n\r\n\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/413",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/413/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/413/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/413/events",
+ "html_url": "https://github.com/github-api/github-api/pull/413",
+ "id": 297041651,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTY5MDY5OTIw",
+ "number": 413,
+ "title": "fix issues",
+ "user": {
+ "login": "eosmanov",
+ "id": 16746779,
+ "node_id": "MDQ6VXNlcjE2NzQ2Nzc5",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/16746779?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/eosmanov",
+ "html_url": "https://github.com/eosmanov",
+ "followers_url": "https://api.github.com/users/eosmanov/followers",
+ "following_url": "https://api.github.com/users/eosmanov/following{/other_user}",
+ "gists_url": "https://api.github.com/users/eosmanov/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/eosmanov/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/eosmanov/subscriptions",
+ "organizations_url": "https://api.github.com/users/eosmanov/orgs",
+ "repos_url": "https://api.github.com/users/eosmanov/repos",
+ "events_url": "https://api.github.com/users/eosmanov/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/eosmanov/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2018-02-14T10:20:36Z",
+ "updated_at": "2019-06-20T00:12:00Z",
+ "closed_at": "2019-06-20T00:12:00Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/413",
+ "html_url": "https://github.com/github-api/github-api/pull/413",
+ "diff_url": "https://github.com/github-api/github-api/pull/413.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/413.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/411",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/411/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/411/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/411/events",
+ "html_url": "https://github.com/github-api/github-api/pull/411",
+ "id": 294566335,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTY3MjcyODUy",
+ "number": 411,
+ "title": "Add GHRepository.getRelease and GHRepository.getReleaseByTagName",
+ "user": {
+ "login": "tadfisher",
+ "id": 129148,
+ "node_id": "MDQ6VXNlcjEyOTE0OA==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/129148?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/tadfisher",
+ "html_url": "https://github.com/tadfisher",
+ "followers_url": "https://api.github.com/users/tadfisher/followers",
+ "following_url": "https://api.github.com/users/tadfisher/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tadfisher/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tadfisher/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tadfisher/subscriptions",
+ "organizations_url": "https://api.github.com/users/tadfisher/orgs",
+ "repos_url": "https://api.github.com/users/tadfisher/repos",
+ "events_url": "https://api.github.com/users/tadfisher/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tadfisher/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-02-05T22:33:14Z",
+ "updated_at": "2018-08-30T03:22:27Z",
+ "closed_at": "2018-08-30T03:22:27Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/411",
+ "html_url": "https://github.com/github-api/github-api/pull/411",
+ "diff_url": "https://github.com/github-api/github-api/pull/411.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/411.patch"
+ },
+ "body": "These implement the API endpoints for:\r\n\r\n- `GET /repos/:owner/:repo/releases/:id`\r\n- `GET /repos/:owner/:repo/releases/tags/:tag`"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/410",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/410/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/410/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/410/events",
+ "html_url": "https://github.com/github-api/github-api/pull/410",
+ "id": 290794329,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTY0NTQ0MDc4",
+ "number": 410,
+ "title": "Update commons-lang to 3.7",
+ "user": {
+ "login": "Limess",
+ "id": 3199181,
+ "node_id": "MDQ6VXNlcjMxOTkxODE=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/3199181?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Limess",
+ "html_url": "https://github.com/Limess",
+ "followers_url": "https://api.github.com/users/Limess/followers",
+ "following_url": "https://api.github.com/users/Limess/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Limess/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Limess/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Limess/subscriptions",
+ "organizations_url": "https://api.github.com/users/Limess/orgs",
+ "repos_url": "https://api.github.com/users/Limess/repos",
+ "events_url": "https://api.github.com/users/Limess/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Limess/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2018-01-23T11:01:24Z",
+ "updated_at": "2018-03-01T17:45:16Z",
+ "closed_at": "2018-03-01T17:45:16Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/410",
+ "html_url": "https://github.com/github-api/github-api/pull/410",
+ "diff_url": "https://github.com/github-api/github-api/pull/410.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/410.patch"
+ },
+ "body": "This fixes the issue in the dependency\r\n* https://issues.apache.org/jira/browse/LANG-805.\r\n\r\nFixes #409."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/409",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/409/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/409/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/409/events",
+ "html_url": "https://github.com/github-api/github-api/issues/409",
+ "id": 290791927,
+ "node_id": "MDU6SXNzdWUyOTA3OTE5Mjc=",
+ "number": 409,
+ "title": "Update commons-lang version",
+ "user": {
+ "login": "Limess",
+ "id": 3199181,
+ "node_id": "MDQ6VXNlcjMxOTkxODE=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/3199181?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Limess",
+ "html_url": "https://github.com/Limess",
+ "followers_url": "https://api.github.com/users/Limess/followers",
+ "following_url": "https://api.github.com/users/Limess/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Limess/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Limess/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Limess/subscriptions",
+ "organizations_url": "https://api.github.com/users/Limess/orgs",
+ "repos_url": "https://api.github.com/users/Limess/repos",
+ "events_url": "https://api.github.com/users/Limess/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Limess/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-01-23T10:53:29Z",
+ "updated_at": "2018-03-01T17:45:16Z",
+ "closed_at": "2018-03-01T17:45:16Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "Apache commons-lang should be updated to mitigate the issue documented below:\r\n\r\nhttps://issues.apache.org/jira/browse/LANG-805\r\n\r\nThese are fixed in the latest version (note the new artifact name: https://mvnrepository.com/artifact/org.apache.commons/commons-lang3).\r\n\r\nThis is causing issues with our dependency scanning software (whitesource) as these issues are marked as blockers."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/408",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/408/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/408/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/408/events",
+ "html_url": "https://github.com/github-api/github-api/pull/408",
+ "id": 288920702,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTYzMTg4NDI2",
+ "number": 408,
+ "title": "[JENKINS-48954] - Add the Jenkins-ClassFilter-Whitelisted manifest entry",
+ "user": {
+ "login": "oleg-nenashev",
+ "id": 3000480,
+ "node_id": "MDQ6VXNlcjMwMDA0ODA=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/3000480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/oleg-nenashev",
+ "html_url": "https://github.com/oleg-nenashev",
+ "followers_url": "https://api.github.com/users/oleg-nenashev/followers",
+ "following_url": "https://api.github.com/users/oleg-nenashev/following{/other_user}",
+ "gists_url": "https://api.github.com/users/oleg-nenashev/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/oleg-nenashev/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/oleg-nenashev/subscriptions",
+ "organizations_url": "https://api.github.com/users/oleg-nenashev/orgs",
+ "repos_url": "https://api.github.com/users/oleg-nenashev/repos",
+ "events_url": "https://api.github.com/users/oleg-nenashev/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/oleg-nenashev/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 265903461,
+ "node_id": "MDU6TGFiZWwyNjU5MDM0NjE=",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/work-in-progress",
+ "name": "work-in-progress",
+ "color": "d4c5f9",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2018-01-16T14:12:32Z",
+ "updated_at": "2018-01-25T15:22:50Z",
+ "closed_at": "2018-01-25T15:22:50Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/408",
+ "html_url": "https://github.com/github-api/github-api/pull/408",
+ "diff_url": "https://github.com/github-api/github-api/pull/408.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/408.patch"
+ },
+ "body": "In Jenkins project [JEP-200](https://jenkins.io/blog/2018/01/13/jep-200/) introduces serious changes in class serialization since 2.102. Some Jenkins plugins (e.g. GitHub Pull Request Builder) are affected by the change due to serialization of GitHub API (see [JENKINS-48950](https://issues.jenkins-ci.org/browse/JENKINS-48950)). It is still TBD whether such serialization is desirable, but I am putting this PR here just in case.\r\n\r\nPlease do not merge for now\r\n\r\n@reviewbybees @jglick \r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/407",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/407/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/407/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/407/events",
+ "html_url": "https://github.com/github-api/github-api/pull/407",
+ "id": 287287644,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTYyMDE3NTkz",
+ "number": 407,
+ "title": "Adding merge settings to GHCreateRepositoryBuilder",
+ "user": {
+ "login": "notsudo",
+ "id": 1791046,
+ "node_id": "MDQ6VXNlcjE3OTEwNDY=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1791046?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/notsudo",
+ "html_url": "https://github.com/notsudo",
+ "followers_url": "https://api.github.com/users/notsudo/followers",
+ "following_url": "https://api.github.com/users/notsudo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/notsudo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/notsudo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/notsudo/subscriptions",
+ "organizations_url": "https://api.github.com/users/notsudo/orgs",
+ "repos_url": "https://api.github.com/users/notsudo/repos",
+ "events_url": "https://api.github.com/users/notsudo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/notsudo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-01-10T01:36:18Z",
+ "updated_at": "2018-03-28T18:18:40Z",
+ "closed_at": "2018-01-13T03:39:04Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/407",
+ "html_url": "https://github.com/github-api/github-api/pull/407",
+ "diff_url": "https://github.com/github-api/github-api/pull/407.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/407.patch"
+ },
+ "body": "I noticed that the settings for configuring the allowed merge strategies for pull requests were missing from the GHCreateRepositoryBuilder. This adds them."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/406",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/406/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/406/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/406/events",
+ "html_url": "https://github.com/github-api/github-api/pull/406",
+ "id": 286765266,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTYxNjQzMzcw",
+ "number": 406,
+ "title": "Improved Pull Request review and comments support",
+ "user": {
+ "login": "sns-seb",
+ "id": 11717580,
+ "node_id": "MDQ6VXNlcjExNzE3NTgw",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/11717580?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sns-seb",
+ "html_url": "https://github.com/sns-seb",
+ "followers_url": "https://api.github.com/users/sns-seb/followers",
+ "following_url": "https://api.github.com/users/sns-seb/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sns-seb/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sns-seb/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sns-seb/subscriptions",
+ "organizations_url": "https://api.github.com/users/sns-seb/orgs",
+ "repos_url": "https://api.github.com/users/sns-seb/repos",
+ "events_url": "https://api.github.com/users/sns-seb/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sns-seb/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2018-01-08T14:40:23Z",
+ "updated_at": "2018-01-13T18:03:19Z",
+ "closed_at": "2018-01-13T18:03:19Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/406",
+ "html_url": "https://github.com/github-api/github-api/pull/406",
+ "diff_url": "https://github.com/github-api/github-api/pull/406.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/406.patch"
+ },
+ "body": "At SonarSource, we have been using the Github API library for a while.\r\n\r\nUnfortunately to implement new features in SonarQube, we hit some limitations.\r\n\r\nSupport for Pull Request reviews is out of date. Only support for beta has been done, and things changed a bit when the feature got public:\r\n\r\n- review state and review event flag actually do not have the same values\r\n- the beta header are now useless\r\n- new review can now be posted in a single API call\r\n\r\nPull Request comment support has some limitations and bugs:\r\n\r\n- original_position field of review comments isn't parsed\r\n- a comment's position can actually be null, this indicates an out-of-date comment\r\n- the ability to create a reply hasn't been implemented yet\r\n\r\nSo we added it to an internal fork and are contributing it back to the community.\r\n\r\nUnit test coverage of the changes are far from SonarSource's standard, but we mostly failed at making existing unit tests run (mostly by a lack of the right Github credentials, it seems) so we barely added any new one.\r\n\r\nIf you have any direction to provide in order to successfully run the existing UTs, we will be happy to provide UT coverage on our new code.\r\n\r\nIn the mean time, rest assured that the new code has been field tested.\r\n\r\nPlease let us know if the contribution is acceptable in the shape below. We will be happy to drop our internal fork in favor of the original library when the changes are merged.\r\n\r\nCheers,\r\n \r\n "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/405",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/405/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/405/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/405/events",
+ "html_url": "https://github.com/github-api/github-api/issues/405",
+ "id": 286270804,
+ "node_id": "MDU6SXNzdWUyODYyNzA4MDQ=",
+ "number": 405,
+ "title": "How to authenticate using oauth in code?",
+ "user": {
+ "login": "lukas2005",
+ "id": 13919176,
+ "node_id": "MDQ6VXNlcjEzOTE5MTc2",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/13919176?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lukas2005",
+ "html_url": "https://github.com/lukas2005",
+ "followers_url": "https://api.github.com/users/lukas2005/followers",
+ "following_url": "https://api.github.com/users/lukas2005/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lukas2005/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lukas2005/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lukas2005/subscriptions",
+ "organizations_url": "https://api.github.com/users/lukas2005/orgs",
+ "repos_url": "https://api.github.com/users/lukas2005/repos",
+ "events_url": "https://api.github.com/users/lukas2005/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lukas2005/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2018-01-05T12:03:59Z",
+ "updated_at": "2018-01-13T05:27:45Z",
+ "closed_at": "2018-01-13T05:27:44Z",
+ "author_association": "NONE",
+ "body": "Hello I have 2fa auth enabled on my acc and because of that I need to auth using oauth (and I'd also like for the creds to be hard coded but I wont do that with my pass). This is what I have tried to do that:\r\n```java\r\n GitHub github = new GitHubBuilder().withOAuthToken(\"TOKEN\", \"EMAIL\").build();\r\n```\r\nbut it just thrown an error.\r\nPlease help\r\n\r\nEDIT:\r\nanother question:\r\nis it possible to auth using client secret and id? (https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications)\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/404",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/404/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/404/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/404/events",
+ "html_url": "https://github.com/github-api/github-api/issues/404",
+ "id": 280136951,
+ "node_id": "MDU6SXNzdWUyODAxMzY5NTE=",
+ "number": 404,
+ "title": "It is possible to read a github project wiki ?",
+ "user": {
+ "login": "albertotn",
+ "id": 12526457,
+ "node_id": "MDQ6VXNlcjEyNTI2NDU3",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/12526457?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/albertotn",
+ "html_url": "https://github.com/albertotn",
+ "followers_url": "https://api.github.com/users/albertotn/followers",
+ "following_url": "https://api.github.com/users/albertotn/following{/other_user}",
+ "gists_url": "https://api.github.com/users/albertotn/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/albertotn/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/albertotn/subscriptions",
+ "organizations_url": "https://api.github.com/users/albertotn/orgs",
+ "repos_url": "https://api.github.com/users/albertotn/repos",
+ "events_url": "https://api.github.com/users/albertotn/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/albertotn/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-12-07T13:51:25Z",
+ "updated_at": "2018-01-13T05:27:52Z",
+ "closed_at": "2018-01-13T05:27:52Z",
+ "author_association": "NONE",
+ "body": "I don't find any documentation or example on that, there is a way to do it ?"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-7d74dc71-0c93-4a0a-8f8e-c6a71027b219.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-7d74dc71-0c93-4a0a-8f8e-c6a71027b219.json
new file mode 100644
index 000000000..610d00d02
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-7d74dc71-0c93-4a0a-8f8e-c6a71027b219.json
@@ -0,0 +1,1448 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/52",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/52/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/52/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/52/events",
+ "html_url": "https://github.com/github-api/github-api/issues/52",
+ "id": 22112442,
+ "node_id": "MDU6SXNzdWUyMjExMjQ0Mg==",
+ "number": 52,
+ "title": "GHUser is missing a getHTMLURL() method",
+ "user": {
+ "login": "vmassol",
+ "id": 628267,
+ "node_id": "MDQ6VXNlcjYyODI2Nw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/628267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vmassol",
+ "html_url": "https://github.com/vmassol",
+ "followers_url": "https://api.github.com/users/vmassol/followers",
+ "following_url": "https://api.github.com/users/vmassol/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vmassol/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vmassol/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vmassol/subscriptions",
+ "organizations_url": "https://api.github.com/users/vmassol/orgs",
+ "repos_url": "https://api.github.com/users/vmassol/repos",
+ "events_url": "https://api.github.com/users/vmassol/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vmassol/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2013-11-05T10:57:48Z",
+ "updated_at": "2014-05-10T20:34:25Z",
+ "closed_at": "2014-05-10T20:26:51Z",
+ "author_association": "NONE",
+ "body": "I'm using version 1.44 and in the code there's\n\n```\nprotected String html_url;\n```\n\nBut it doesn't seem to get populated and there's no getter method..\n\nThe GitHub API does return it though. For example: api.github.com/users/vmassol\n\nThanks\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/51",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/51/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/51/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/51/events",
+ "html_url": "https://github.com/github-api/github-api/pull/51",
+ "id": 22092496,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTY2NDY4NQ==",
+ "number": 51,
+ "title": "add support (most of) the release-related endpoints",
+ "user": {
+ "login": "evanchooly",
+ "id": 195021,
+ "node_id": "MDQ6VXNlcjE5NTAyMQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/195021?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/evanchooly",
+ "html_url": "https://github.com/evanchooly",
+ "followers_url": "https://api.github.com/users/evanchooly/followers",
+ "following_url": "https://api.github.com/users/evanchooly/following{/other_user}",
+ "gists_url": "https://api.github.com/users/evanchooly/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/evanchooly/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/evanchooly/subscriptions",
+ "organizations_url": "https://api.github.com/users/evanchooly/orgs",
+ "repos_url": "https://api.github.com/users/evanchooly/repos",
+ "events_url": "https://api.github.com/users/evanchooly/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/evanchooly/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-11-05T01:09:15Z",
+ "updated_at": "2014-06-16T23:16:44Z",
+ "closed_at": "2013-11-09T23:17:30Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/51",
+ "html_url": "https://github.com/github-api/github-api/pull/51",
+ "diff_url": "https://github.com/github-api/github-api/pull/51.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/51.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/50",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/50/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/50/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/50/events",
+ "html_url": "https://github.com/github-api/github-api/pull/50",
+ "id": 20215869,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0ODY4NDYzMQ==",
+ "number": 50,
+ "title": "Updates Jackson to 2.2.3",
+ "user": {
+ "login": "pescuma",
+ "id": 207971,
+ "node_id": "MDQ6VXNlcjIwNzk3MQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/207971?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/pescuma",
+ "html_url": "https://github.com/pescuma",
+ "followers_url": "https://api.github.com/users/pescuma/followers",
+ "following_url": "https://api.github.com/users/pescuma/following{/other_user}",
+ "gists_url": "https://api.github.com/users/pescuma/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/pescuma/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/pescuma/subscriptions",
+ "organizations_url": "https://api.github.com/users/pescuma/orgs",
+ "repos_url": "https://api.github.com/users/pescuma/repos",
+ "events_url": "https://api.github.com/users/pescuma/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/pescuma/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-09-28T17:36:07Z",
+ "updated_at": "2014-07-01T17:26:16Z",
+ "closed_at": "2013-10-02T15:31:42Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/50",
+ "html_url": "https://github.com/github-api/github-api/pull/50",
+ "diff_url": "https://github.com/github-api/github-api/pull/50.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/50.patch"
+ },
+ "body": "This also depends on my other pull request that corrects the handling of labels.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/49",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/49/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/49/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/49/events",
+ "html_url": "https://github.com/github-api/github-api/pull/49",
+ "id": 20215816,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0ODY4NDYyMg==",
+ "number": 49,
+ "title": "Use a proper Label in GHIssues",
+ "user": {
+ "login": "pescuma",
+ "id": 207971,
+ "node_id": "MDQ6VXNlcjIwNzk3MQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/207971?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/pescuma",
+ "html_url": "https://github.com/pescuma",
+ "followers_url": "https://api.github.com/users/pescuma/followers",
+ "following_url": "https://api.github.com/users/pescuma/following{/other_user}",
+ "gists_url": "https://api.github.com/users/pescuma/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/pescuma/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/pescuma/subscriptions",
+ "organizations_url": "https://api.github.com/users/pescuma/orgs",
+ "repos_url": "https://api.github.com/users/pescuma/repos",
+ "events_url": "https://api.github.com/users/pescuma/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/pescuma/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-09-28T17:34:50Z",
+ "updated_at": "2014-06-12T14:05:52Z",
+ "closed_at": "2013-10-02T15:31:43Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/49",
+ "html_url": "https://github.com/github-api/github-api/pull/49",
+ "diff_url": "https://github.com/github-api/github-api/pull/49.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/49.patch"
+ },
+ "body": "The label isn't just a text, it's a json object with 3 fields:\n\n```\n \"labels\": [\n {\n \"url\": \"https://api.github.com/repos/octocat/Hello-World/labels/bug\",\n \"name\": \"bug\",\n \"color\": \"f29513\"\n }\n ],\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/48",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/48/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/48/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/48/events",
+ "html_url": "https://github.com/github-api/github-api/issues/48",
+ "id": 20204963,
+ "node_id": "MDU6SXNzdWUyMDIwNDk2Mw==",
+ "number": 48,
+ "title": "Issue labels have multiple fields now",
+ "user": {
+ "login": "pescuma",
+ "id": 207971,
+ "node_id": "MDQ6VXNlcjIwNzk3MQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/207971?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/pescuma",
+ "html_url": "https://github.com/pescuma",
+ "followers_url": "https://api.github.com/users/pescuma/followers",
+ "following_url": "https://api.github.com/users/pescuma/following{/other_user}",
+ "gists_url": "https://api.github.com/users/pescuma/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/pescuma/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/pescuma/subscriptions",
+ "organizations_url": "https://api.github.com/users/pescuma/orgs",
+ "repos_url": "https://api.github.com/users/pescuma/repos",
+ "events_url": "https://api.github.com/users/pescuma/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/pescuma/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2013-09-28T02:43:04Z",
+ "updated_at": "2013-10-02T22:12:56Z",
+ "closed_at": "2013-10-02T22:12:56Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "And calling `GHIssue.getLabels()` returns a list with a lot of pieces of the json text.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/46",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/46/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/46/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/46/events",
+ "html_url": "https://github.com/github-api/github-api/issues/46",
+ "id": 19738846,
+ "node_id": "MDU6SXNzdWUxOTczODg0Ng==",
+ "number": 46,
+ "title": "Implement Contents API",
+ "user": {
+ "login": "acollign",
+ "id": 206320,
+ "node_id": "MDQ6VXNlcjIwNjMyMA==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/206320?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/acollign",
+ "html_url": "https://github.com/acollign",
+ "followers_url": "https://api.github.com/users/acollign/followers",
+ "following_url": "https://api.github.com/users/acollign/following{/other_user}",
+ "gists_url": "https://api.github.com/users/acollign/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/acollign/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/acollign/subscriptions",
+ "organizations_url": "https://api.github.com/users/acollign/orgs",
+ "repos_url": "https://api.github.com/users/acollign/repos",
+ "events_url": "https://api.github.com/users/acollign/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/acollign/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2013-09-19T08:21:13Z",
+ "updated_at": "2014-01-02T18:32:44Z",
+ "closed_at": "2014-01-01T23:26:23Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "GitHub provides a Contents API [0]. I started to implement those methods and domain objects in the contents-api branch of my fork [1]. I'll create a pull-request once I consider my work mergeable.\n\nbtw, feel free to comment commits. Feedback are always welcome.\n\n[0] http://developer.github.com/v3/repos/contents/\n[1] https://github.com/acollign/github-api/tree/contents-api\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/45",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/45/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/45/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/45/events",
+ "html_url": "https://github.com/github-api/github-api/pull/45",
+ "id": 19529050,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0ODM0MDU5NA==",
+ "number": 45,
+ "title": "Allows to define page size for repository lists and other API enhancements",
+ "user": {
+ "login": "lucamilanesio",
+ "id": 182893,
+ "node_id": "MDQ6VXNlcjE4Mjg5Mw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/182893?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lucamilanesio",
+ "html_url": "https://github.com/lucamilanesio",
+ "followers_url": "https://api.github.com/users/lucamilanesio/followers",
+ "following_url": "https://api.github.com/users/lucamilanesio/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lucamilanesio/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lucamilanesio/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lucamilanesio/subscriptions",
+ "organizations_url": "https://api.github.com/users/lucamilanesio/orgs",
+ "repos_url": "https://api.github.com/users/lucamilanesio/repos",
+ "events_url": "https://api.github.com/users/lucamilanesio/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lucamilanesio/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2013-09-15T23:43:16Z",
+ "updated_at": "2014-07-01T17:26:16Z",
+ "closed_at": "2013-11-03T01:15:56Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/45",
+ "html_url": "https://github.com/github-api/github-api/pull/45",
+ "diff_url": "https://github.com/github-api/github-api/pull/45.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/45.patch"
+ },
+ "body": "Extension of the listRepositories() with the desired\npageSize. This allows to reduce the number of calls\nto GitHub API for fetching the entire set of repositories\nbrowsing all the pages.\n\nAdditionally allows to match the UX paging with the\nunderlying GitHub API paging, increasing performance\nand reducing hourly API allowance.\n\nLast addition was on the GitHub PullRequest object:\nallows to get the associated commits with their\ndetails (which is unfortunately NOT a GHCommit object)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/44",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/44/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/44/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/44/events",
+ "html_url": "https://github.com/github-api/github-api/pull/44",
+ "id": 18730896,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Nzk1MjgyOA==",
+ "number": 44,
+ "title": "Provide a way to determine if the connection is anonymous",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-08-29T13:33:45Z",
+ "updated_at": "2017-11-01T15:50:23Z",
+ "closed_at": "2013-09-07T12:18:30Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/44",
+ "html_url": "https://github.com/github-api/github-api/pull/44",
+ "diff_url": "https://github.com/github-api/github-api/pull/44.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/44.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/43",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/43/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/43/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/43/events",
+ "html_url": "https://github.com/github-api/github-api/pull/43",
+ "id": 18730738,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Nzk1Mjc0Ng==",
+ "number": 43,
+ "title": "GHMyself should allow accessing the private repos and orgs too",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-08-29T13:30:25Z",
+ "updated_at": "2014-07-01T17:26:17Z",
+ "closed_at": "2013-09-07T12:18:01Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/43",
+ "html_url": "https://github.com/github-api/github-api/pull/43",
+ "diff_url": "https://github.com/github-api/github-api/pull/43.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/43.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/42",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/42/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/42/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/42/events",
+ "html_url": "https://github.com/github-api/github-api/pull/42",
+ "id": 18180686,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NzY3MjA0NQ==",
+ "number": 42,
+ "title": "Commit's short info model",
+ "user": {
+ "login": "paulbutenko",
+ "id": 5246804,
+ "node_id": "MDQ6VXNlcjUyNDY4MDQ=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/5246804?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/paulbutenko",
+ "html_url": "https://github.com/paulbutenko",
+ "followers_url": "https://api.github.com/users/paulbutenko/followers",
+ "following_url": "https://api.github.com/users/paulbutenko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/paulbutenko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/paulbutenko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/paulbutenko/subscriptions",
+ "organizations_url": "https://api.github.com/users/paulbutenko/orgs",
+ "repos_url": "https://api.github.com/users/paulbutenko/repos",
+ "events_url": "https://api.github.com/users/paulbutenko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/paulbutenko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2013-08-16T21:51:57Z",
+ "updated_at": "2014-07-01T17:26:17Z",
+ "closed_at": "2013-09-07T12:25:59Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/42",
+ "html_url": "https://github.com/github-api/github-api/pull/42",
+ "diff_url": "https://github.com/github-api/github-api/pull/42.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/42.patch"
+ },
+ "body": "Github api returns commit info in this way:\n{\n \"sha\": \"c77360d6f2ff2c2e6dd11828ad5dccf72419fa1b\",\n \"commit\": {\n \"author\": {\n \"name\": \"Kohsuke Kawaguchi\",\n \"email\": \"kk@kohsuke.org\",\n \"date\": \"2012-04-11T16:23:37Z\"\n },\n \"committer\": {\n \"name\": \"Kohsuke Kawaguchi\",\n \"email\": \"kk@kohsuke.org\",\n \"date\": \"2012-04-11T16:23:37Z\"\n },\n \"message\": \"Added a file\",\n \"tree\": {\n \"sha\": \"496d6428b9cf92981dc9495211e6e1120fb6f2ba\",\n \"url\": \"https://api.github.com/repos/kohsuke/test/git/trees/496d6428b9cf92981dc9495211e6e1120fb6f2ba\"\n },\n \"url\": \"https://api.github.com/repos/kohsuke/test/git/commits/c77360d6f2ff2c2e6dd11828ad5dccf72419fa1b\",\n \"comment_count\": 0\n }, ...\n\ngithub-api updated wuth necessary models in order to wrap new info\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/41",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/41/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/41/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/41/events",
+ "html_url": "https://github.com/github-api/github-api/issues/41",
+ "id": 17685852,
+ "node_id": "MDU6SXNzdWUxNzY4NTg1Mg==",
+ "number": 41,
+ "title": "getMergeableState in GHPullRequest doesn't work",
+ "user": {
+ "login": "Memphiz",
+ "id": 701326,
+ "node_id": "MDQ6VXNlcjcwMTMyNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/701326?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Memphiz",
+ "html_url": "https://github.com/Memphiz",
+ "followers_url": "https://api.github.com/users/Memphiz/followers",
+ "following_url": "https://api.github.com/users/Memphiz/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Memphiz/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Memphiz/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Memphiz/subscriptions",
+ "organizations_url": "https://api.github.com/users/Memphiz/orgs",
+ "repos_url": "https://api.github.com/users/Memphiz/repos",
+ "events_url": "https://api.github.com/users/Memphiz/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Memphiz/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-08-06T11:53:57Z",
+ "updated_at": "2013-08-07T13:33:25Z",
+ "closed_at": "2013-08-07T13:33:25Z",
+ "author_association": "NONE",
+ "body": "Hi there,\n\nit seems that the GHPullRequest.getMergeableState method doesn't work in current implementation. At least when i use the jenkins ghprb (github pull request builder plugin) it always builds the unmerged branch only because off the method returing false (though the pr is mergeable as confirmed in the github webinterface).\n\nBased on the github api v3 the needed field is called \"mergeable\" (and a boolean).\n\nIt seems that \"populate\" doesn't fill in the \"mergeable_state\" member. Though i didn't find the code where it really fills in the object members.\n\nAlso it looks like in GHPullRequest.populate() the call to root.retrieve().to(url, this); is issued with an empty url object. At least i didn't spot where the url member (its a member of the parent class GHIssue) is initialised.\n\nWould be great if you could comment on that one :o)\n\nthx\n\nMemphiz\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/40",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/40/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/40/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/40/events",
+ "html_url": "https://github.com/github-api/github-api/issues/40",
+ "id": 17506321,
+ "node_id": "MDU6SXNzdWUxNzUwNjMyMQ==",
+ "number": 40,
+ "title": "[Feature Request] get tags",
+ "user": {
+ "login": "dMitin",
+ "id": 1221847,
+ "node_id": "MDQ6VXNlcjEyMjE4NDc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1221847?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dMitin",
+ "html_url": "https://github.com/dMitin",
+ "followers_url": "https://api.github.com/users/dMitin/followers",
+ "following_url": "https://api.github.com/users/dMitin/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dMitin/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dMitin/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dMitin/subscriptions",
+ "organizations_url": "https://api.github.com/users/dMitin/orgs",
+ "repos_url": "https://api.github.com/users/dMitin/repos",
+ "events_url": "https://api.github.com/users/dMitin/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dMitin/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-08-01T13:13:34Z",
+ "updated_at": "2014-05-10T21:14:13Z",
+ "closed_at": "2014-05-10T21:14:13Z",
+ "author_association": "NONE",
+ "body": "Hi!\nCan you add to project function to get tags of github repository?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/39",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/39/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/39/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/39/events",
+ "html_url": "https://github.com/github-api/github-api/issues/39",
+ "id": 14877909,
+ "node_id": "MDU6SXNzdWUxNDg3NzkwOQ==",
+ "number": 39,
+ "title": "GitHub.connectAnonymously() fails because of a lack of credentials.",
+ "user": {
+ "login": "Omertron",
+ "id": 1432853,
+ "node_id": "MDQ6VXNlcjE0MzI4NTM=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1432853?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Omertron",
+ "html_url": "https://github.com/Omertron",
+ "followers_url": "https://api.github.com/users/Omertron/followers",
+ "following_url": "https://api.github.com/users/Omertron/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Omertron/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Omertron/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Omertron/subscriptions",
+ "organizations_url": "https://api.github.com/users/Omertron/orgs",
+ "repos_url": "https://api.github.com/users/Omertron/repos",
+ "events_url": "https://api.github.com/users/Omertron/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Omertron/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-05-29T08:01:03Z",
+ "updated_at": "2014-05-10T21:15:15Z",
+ "closed_at": "2014-05-10T21:15:15Z",
+ "author_association": "NONE",
+ "body": "Using the following line:\n\n> GitHub github = GitHub.connectAnonymously();\n\nGenerates:\nException in thread \"main\" java.lang.IllegalStateException: This operation requires a credential but none is given to the GitHub constructor\n at org.kohsuke.github.GitHub.requireCredential(GitHub.java:197)\n at org.kohsuke.github.GitHub.getMyself(GitHub.java:228)\n at org.kohsuke.github.GitHub.(GitHub.java:127)\n at org.kohsuke.github.GitHub.(GitHub.java:74)\n at org.kohsuke.github.GitHub.connectAnonymously(GitHub.java:192)\n at com.omertron.githubtest.GitHubTest.(GitHubTest.java:16)\n at com.omertron.githubtest.App.main(App.java:8)\n\nNote: I do not have a \".github\" file in my user directory (nor do I want one, I just want to be able to access github anon from my code)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/38",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/38/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/38/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/38/events",
+ "html_url": "https://github.com/github-api/github-api/pull/38",
+ "id": 13898390,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTQ5NjUzNw==",
+ "number": 38,
+ "title": "add repository to Pull Request payload and wrap the PR with the repository",
+ "user": {
+ "login": "janinko",
+ "id": 644267,
+ "node_id": "MDQ6VXNlcjY0NDI2Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/644267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/janinko",
+ "html_url": "https://github.com/janinko",
+ "followers_url": "https://api.github.com/users/janinko/followers",
+ "following_url": "https://api.github.com/users/janinko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/janinko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/janinko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/janinko/subscriptions",
+ "organizations_url": "https://api.github.com/users/janinko/orgs",
+ "repos_url": "https://api.github.com/users/janinko/repos",
+ "events_url": "https://api.github.com/users/janinko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/janinko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-05-02T16:13:51Z",
+ "updated_at": "2014-07-01T17:26:17Z",
+ "closed_at": "2013-05-06T21:32:11Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/38",
+ "html_url": "https://github.com/github-api/github-api/pull/38",
+ "diff_url": "https://github.com/github-api/github-api/pull/38.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/38.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/37",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/37/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/37/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/37/events",
+ "html_url": "https://github.com/github-api/github-api/pull/37",
+ "id": 13864794,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTQ3ODkwMQ==",
+ "number": 37,
+ "title": "Force issues-based API route for PR comments",
+ "user": {
+ "login": "spiffxp",
+ "id": 49258,
+ "node_id": "MDQ6VXNlcjQ5MjU4",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/49258?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/spiffxp",
+ "html_url": "https://github.com/spiffxp",
+ "followers_url": "https://api.github.com/users/spiffxp/followers",
+ "following_url": "https://api.github.com/users/spiffxp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/spiffxp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/spiffxp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/spiffxp/subscriptions",
+ "organizations_url": "https://api.github.com/users/spiffxp/orgs",
+ "repos_url": "https://api.github.com/users/spiffxp/repos",
+ "events_url": "https://api.github.com/users/spiffxp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/spiffxp/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2013-05-01T20:33:10Z",
+ "updated_at": "2014-06-14T22:49:22Z",
+ "closed_at": "2013-05-06T21:33:29Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/37",
+ "html_url": "https://github.com/github-api/github-api/pull/37",
+ "diff_url": "https://github.com/github-api/github-api/pull/37.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/37.patch"
+ },
+ "body": "beec605 caused `GHPullRequest.getComments()` to hit `pulls/:number/comments`, which correponds to inline review comments instead of regular issue comments\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/36",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/36/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/36/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/36/events",
+ "html_url": "https://github.com/github-api/github-api/pull/36",
+ "id": 13830885,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTQ2MTY0MQ==",
+ "number": 36,
+ "title": "Allow oauthToken to be used without login",
+ "user": {
+ "login": "spiffxp",
+ "id": 49258,
+ "node_id": "MDQ6VXNlcjQ5MjU4",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/49258?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/spiffxp",
+ "html_url": "https://github.com/spiffxp",
+ "followers_url": "https://api.github.com/users/spiffxp/followers",
+ "following_url": "https://api.github.com/users/spiffxp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/spiffxp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/spiffxp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/spiffxp/subscriptions",
+ "organizations_url": "https://api.github.com/users/spiffxp/orgs",
+ "repos_url": "https://api.github.com/users/spiffxp/repos",
+ "events_url": "https://api.github.com/users/spiffxp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/spiffxp/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-04-30T22:42:04Z",
+ "updated_at": "2014-07-01T17:26:18Z",
+ "closed_at": "2013-05-06T21:34:06Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/36",
+ "html_url": "https://github.com/github-api/github-api/pull/36",
+ "diff_url": "https://github.com/github-api/github-api/pull/36.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/36.patch"
+ },
+ "body": null
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/35",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/35/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/35/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/35/events",
+ "html_url": "https://github.com/github-api/github-api/pull/35",
+ "id": 13538659,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTMxODc3Mg==",
+ "number": 35,
+ "title": "#34 use github v3 API, getting pulls using 'pulls' instead of 'issues'",
+ "user": {
+ "login": "mdelapenya",
+ "id": 951580,
+ "node_id": "MDQ6VXNlcjk1MTU4MA==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/951580?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mdelapenya",
+ "html_url": "https://github.com/mdelapenya",
+ "followers_url": "https://api.github.com/users/mdelapenya/followers",
+ "following_url": "https://api.github.com/users/mdelapenya/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mdelapenya/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mdelapenya/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mdelapenya/subscriptions",
+ "organizations_url": "https://api.github.com/users/mdelapenya/orgs",
+ "repos_url": "https://api.github.com/users/mdelapenya/repos",
+ "events_url": "https://api.github.com/users/mdelapenya/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mdelapenya/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2013-04-23T14:59:08Z",
+ "updated_at": "2014-07-01T17:26:18Z",
+ "closed_at": "2013-04-23T16:29:41Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/35",
+ "html_url": "https://github.com/github-api/github-api/pull/35",
+ "diff_url": "https://github.com/github-api/github-api/pull/35.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/35.patch"
+ },
+ "body": "Please review my changes\n\nThanks!\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/34",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/34/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/34/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/34/events",
+ "html_url": "https://github.com/github-api/github-api/issues/34",
+ "id": 13538471,
+ "node_id": "MDU6SXNzdWUxMzUzODQ3MQ==",
+ "number": 34,
+ "title": "Closing pull request using Github API return FileNotFoundException",
+ "user": {
+ "login": "mdelapenya",
+ "id": 951580,
+ "node_id": "MDQ6VXNlcjk1MTU4MA==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/951580?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mdelapenya",
+ "html_url": "https://github.com/mdelapenya",
+ "followers_url": "https://api.github.com/users/mdelapenya/followers",
+ "following_url": "https://api.github.com/users/mdelapenya/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mdelapenya/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mdelapenya/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mdelapenya/subscriptions",
+ "organizations_url": "https://api.github.com/users/mdelapenya/orgs",
+ "repos_url": "https://api.github.com/users/mdelapenya/repos",
+ "events_url": "https://api.github.com/users/mdelapenya/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mdelapenya/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2013-04-23T14:55:44Z",
+ "updated_at": "2013-04-23T16:48:31Z",
+ "closed_at": "2013-04-23T16:29:12Z",
+ "author_association": "NONE",
+ "body": "Using ghprb plugin, we have discovered that closing pull request is not working:\n\nSEVERE: Couldn't close the pullrequest #10582: '\njava.io.FileNotFoundException: https://api.github.com/repos/USER/REPO/issues/10582\n\nAs Github API says, pull requests must be accesed in this way:\n\nGET /repos/:owner/:repo/pulls/:number\n\nUsing pulls intead of issues.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/33",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/33/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/33/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/33/events",
+ "html_url": "https://github.com/github-api/github-api/pull/33",
+ "id": 13425473,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTI3MTc5Mw==",
+ "number": 33,
+ "title": "Stop using deprecated API tokens for Enterprise",
+ "user": {
+ "login": "watsonian",
+ "id": 244,
+ "node_id": "MDQ6VXNlcjI0NA==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/244?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/watsonian",
+ "html_url": "https://github.com/watsonian",
+ "followers_url": "https://api.github.com/users/watsonian/followers",
+ "following_url": "https://api.github.com/users/watsonian/following{/other_user}",
+ "gists_url": "https://api.github.com/users/watsonian/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/watsonian/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/watsonian/subscriptions",
+ "organizations_url": "https://api.github.com/users/watsonian/orgs",
+ "repos_url": "https://api.github.com/users/watsonian/repos",
+ "events_url": "https://api.github.com/users/watsonian/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/watsonian/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2013-04-19T23:32:47Z",
+ "updated_at": "2017-10-24T20:44:54Z",
+ "closed_at": "2013-04-23T17:29:05Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/33",
+ "html_url": "https://github.com/github-api/github-api/pull/33",
+ "diff_url": "https://github.com/github-api/github-api/pull/33.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/33.patch"
+ },
+ "body": "Authentication by API token is deprecated and doesn't work anymore. Instead, authentication should be done via OAuth token now. This is causing the GitHub plugin to fail when trying to setup Jenkins to auto-manage web hooks and will just be breaking in general for anyone trying to use this with Enterprise.\n\nI'm not much of a Java guy, so I'd appreciate a look over this to make sure it works.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/32",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/32/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/32/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/32/events",
+ "html_url": "https://github.com/github-api/github-api/pull/32",
+ "id": 13167366,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTE0OTY5OA==",
+ "number": 32,
+ "title": "Implement GHEventPayload.IssueComment",
+ "user": {
+ "login": "janinko",
+ "id": 644267,
+ "node_id": "MDQ6VXNlcjY0NDI2Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/644267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/janinko",
+ "html_url": "https://github.com/janinko",
+ "followers_url": "https://api.github.com/users/janinko/followers",
+ "following_url": "https://api.github.com/users/janinko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/janinko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/janinko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/janinko/subscriptions",
+ "organizations_url": "https://api.github.com/users/janinko/orgs",
+ "repos_url": "https://api.github.com/users/janinko/repos",
+ "events_url": "https://api.github.com/users/janinko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/janinko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-04-14T03:53:29Z",
+ "updated_at": "2014-07-01T17:26:19Z",
+ "closed_at": "2013-04-16T19:19:59Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/32",
+ "html_url": "https://github.com/github-api/github-api/pull/32",
+ "diff_url": "https://github.com/github-api/github-api/pull/32.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/32.patch"
+ },
+ "body": "http://developer.github.com/v3/activity/events/types/#issuecommentevent\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/31",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/31/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/31/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/31/events",
+ "html_url": "https://github.com/github-api/github-api/pull/31",
+ "id": 13167355,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTE0OTY5Ng==",
+ "number": 31,
+ "title": "implement retrieving of access token",
+ "user": {
+ "login": "janinko",
+ "id": 644267,
+ "node_id": "MDQ6VXNlcjY0NDI2Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/644267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/janinko",
+ "html_url": "https://github.com/janinko",
+ "followers_url": "https://api.github.com/users/janinko/followers",
+ "following_url": "https://api.github.com/users/janinko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/janinko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/janinko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/janinko/subscriptions",
+ "organizations_url": "https://api.github.com/users/janinko/orgs",
+ "repos_url": "https://api.github.com/users/janinko/repos",
+ "events_url": "https://api.github.com/users/janinko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/janinko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-04-14T03:52:28Z",
+ "updated_at": "2014-07-01T17:26:20Z",
+ "closed_at": "2013-04-16T19:19:58Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/31",
+ "html_url": "https://github.com/github-api/github-api/pull/31",
+ "diff_url": "https://github.com/github-api/github-api/pull/31.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/31.patch"
+ },
+ "body": "http://developer.github.com/v3/oauth/#create-a-new-authorization\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/30",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/30/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/30/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/30/events",
+ "html_url": "https://github.com/github-api/github-api/pull/30",
+ "id": 11057824,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDE3NDcyNg==",
+ "number": 30,
+ "title": "Adding Compare and Refs commands to API",
+ "user": {
+ "login": "mc1arke",
+ "id": 1250331,
+ "node_id": "MDQ6VXNlcjEyNTAzMzE=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1250331?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mc1arke",
+ "html_url": "https://github.com/mc1arke",
+ "followers_url": "https://api.github.com/users/mc1arke/followers",
+ "following_url": "https://api.github.com/users/mc1arke/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mc1arke/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mc1arke/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mc1arke/subscriptions",
+ "organizations_url": "https://api.github.com/users/mc1arke/orgs",
+ "repos_url": "https://api.github.com/users/mc1arke/repos",
+ "events_url": "https://api.github.com/users/mc1arke/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mc1arke/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-02-16T00:00:35Z",
+ "updated_at": "2014-06-13T00:53:04Z",
+ "closed_at": "2013-03-15T02:02:54Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/30",
+ "html_url": "https://github.com/github-api/github-api/pull/30",
+ "diff_url": "https://github.com/github-api/github-api/pull/30.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/30.patch"
+ },
+ "body": "Supporting http://developer.github.com/v3/git/refs/ and http://developer.github.com/v3/repos/commits/#compare-two-commits\n\nI've not checked in my unit tests for this since the current tests don't work properly (they perform actions not available to some users) and don't want to add further tests like this.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/29",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/29/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/29/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/29/events",
+ "html_url": "https://github.com/github-api/github-api/issues/29",
+ "id": 10276391,
+ "node_id": "MDU6SXNzdWUxMDI3NjM5MQ==",
+ "number": 29,
+ "title": "Error 500 - No Protocol",
+ "user": {
+ "login": "bradgignac",
+ "id": 17019,
+ "node_id": "MDQ6VXNlcjE3MDE5",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/17019?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bradgignac",
+ "html_url": "https://github.com/bradgignac",
+ "followers_url": "https://api.github.com/users/bradgignac/followers",
+ "following_url": "https://api.github.com/users/bradgignac/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bradgignac/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bradgignac/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bradgignac/subscriptions",
+ "organizations_url": "https://api.github.com/users/bradgignac/orgs",
+ "repos_url": "https://api.github.com/users/bradgignac/repos",
+ "events_url": "https://api.github.com/users/bradgignac/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bradgignac/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 10,
+ "created_at": "2013-01-24T15:28:42Z",
+ "updated_at": "2013-03-30T06:33:56Z",
+ "closed_at": "2013-03-30T06:33:56Z",
+ "author_association": "NONE",
+ "body": "When attempting to use the GitHub OAuth plugin with GitHub Enterprise, I'm receiving a 500 status code after GitHub redirects back to Jenkins.\n\nURL: http://ci.canon.rackspace.com/securityRealm/finishLogin?code=REDACTED\nStacktrace: https://gist.github.com/4623038\n\nIt's unclear to me whether this is an issue in the Java API bindings or the GitHub OAuth plugin.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/28",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/28/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/28/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/28/events",
+ "html_url": "https://github.com/github-api/github-api/pull/28",
+ "id": 9715785,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzU2MTk0NQ==",
+ "number": 28,
+ "title": "Added membership checks.",
+ "user": {
+ "login": "johnou",
+ "id": 323497,
+ "node_id": "MDQ6VXNlcjMyMzQ5Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/323497?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/johnou",
+ "html_url": "https://github.com/johnou",
+ "followers_url": "https://api.github.com/users/johnou/followers",
+ "following_url": "https://api.github.com/users/johnou/following{/other_user}",
+ "gists_url": "https://api.github.com/users/johnou/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/johnou/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/johnou/subscriptions",
+ "organizations_url": "https://api.github.com/users/johnou/orgs",
+ "repos_url": "https://api.github.com/users/johnou/repos",
+ "events_url": "https://api.github.com/users/johnou/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/johnou/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2013-01-06T12:26:18Z",
+ "updated_at": "2014-06-14T04:55:17Z",
+ "closed_at": "2013-01-07T00:28:25Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/28",
+ "html_url": "https://github.com/github-api/github-api/pull/28",
+ "diff_url": "https://github.com/github-api/github-api/pull/28.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/28.patch"
+ },
+ "body": "PR for https://github.com/kohsuke/github-api/issues/23\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/27",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/27/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/27/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/27/events",
+ "html_url": "https://github.com/github-api/github-api/pull/27",
+ "id": 9715684,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzU2MTkxNQ==",
+ "number": 27,
+ "title": "Password is no longer required for api usage and fix for broken base64 encoding.",
+ "user": {
+ "login": "johnou",
+ "id": 323497,
+ "node_id": "MDQ6VXNlcjMyMzQ5Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/323497?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/johnou",
+ "html_url": "https://github.com/johnou",
+ "followers_url": "https://api.github.com/users/johnou/followers",
+ "following_url": "https://api.github.com/users/johnou/following{/other_user}",
+ "gists_url": "https://api.github.com/users/johnou/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/johnou/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/johnou/subscriptions",
+ "organizations_url": "https://api.github.com/users/johnou/orgs",
+ "repos_url": "https://api.github.com/users/johnou/repos",
+ "events_url": "https://api.github.com/users/johnou/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/johnou/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2013-01-06T12:09:14Z",
+ "updated_at": "2014-07-01T17:26:21Z",
+ "closed_at": "2013-01-07T00:14:15Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/27",
+ "html_url": "https://github.com/github-api/github-api/pull/27",
+ "diff_url": "https://github.com/github-api/github-api/pull/27.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/27.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/26",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/26/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/26/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/26/events",
+ "html_url": "https://github.com/github-api/github-api/pull/26",
+ "id": 9712489,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzU2MDkzNw==",
+ "number": 26,
+ "title": "Removed web client and proprietary api usage.",
+ "user": {
+ "login": "johnou",
+ "id": 323497,
+ "node_id": "MDQ6VXNlcjMyMzQ5Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/323497?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/johnou",
+ "html_url": "https://github.com/johnou",
+ "followers_url": "https://api.github.com/users/johnou/followers",
+ "following_url": "https://api.github.com/users/johnou/following{/other_user}",
+ "gists_url": "https://api.github.com/users/johnou/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/johnou/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/johnou/subscriptions",
+ "organizations_url": "https://api.github.com/users/johnou/orgs",
+ "repos_url": "https://api.github.com/users/johnou/repos",
+ "events_url": "https://api.github.com/users/johnou/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/johnou/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2013-01-06T03:07:39Z",
+ "updated_at": "2014-07-01T17:26:21Z",
+ "closed_at": "2013-01-06T08:34:16Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/26",
+ "html_url": "https://github.com/github-api/github-api/pull/26",
+ "diff_url": "https://github.com/github-api/github-api/pull/26.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/26.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/25",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/25/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/25/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/25/events",
+ "html_url": "https://github.com/github-api/github-api/pull/25",
+ "id": 9711600,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzU2MDY1Ng==",
+ "number": 25,
+ "title": "Backward compat redundant.",
+ "user": {
+ "login": "johnou",
+ "id": 323497,
+ "node_id": "MDQ6VXNlcjMyMzQ5Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/323497?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/johnou",
+ "html_url": "https://github.com/johnou",
+ "followers_url": "https://api.github.com/users/johnou/followers",
+ "following_url": "https://api.github.com/users/johnou/following{/other_user}",
+ "gists_url": "https://api.github.com/users/johnou/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/johnou/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/johnou/subscriptions",
+ "organizations_url": "https://api.github.com/users/johnou/orgs",
+ "repos_url": "https://api.github.com/users/johnou/repos",
+ "events_url": "https://api.github.com/users/johnou/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/johnou/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2013-01-06T00:56:18Z",
+ "updated_at": "2014-07-01T17:26:22Z",
+ "closed_at": "2013-01-06T01:10:54Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/25",
+ "html_url": "https://github.com/github-api/github-api/pull/25",
+ "diff_url": "https://github.com/github-api/github-api/pull/25.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/25.patch"
+ },
+ "body": "As discussed, was never in use.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/24",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/24/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/24/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/24/events",
+ "html_url": "https://github.com/github-api/github-api/pull/24",
+ "id": 9711114,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzU2MDQ5OA==",
+ "number": 24,
+ "title": "JENKINS-13726: Github plugin should work with Github enterprise by allowing for overriding the github URL.",
+ "user": {
+ "login": "johnou",
+ "id": 323497,
+ "node_id": "MDQ6VXNlcjMyMzQ5Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/323497?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/johnou",
+ "html_url": "https://github.com/johnou",
+ "followers_url": "https://api.github.com/users/johnou/followers",
+ "following_url": "https://api.github.com/users/johnou/following{/other_user}",
+ "gists_url": "https://api.github.com/users/johnou/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/johnou/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/johnou/subscriptions",
+ "organizations_url": "https://api.github.com/users/johnou/orgs",
+ "repos_url": "https://api.github.com/users/johnou/repos",
+ "events_url": "https://api.github.com/users/johnou/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/johnou/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-01-05T23:49:23Z",
+ "updated_at": "2014-07-01T17:26:22Z",
+ "closed_at": "2013-01-05T23:59:45Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/24",
+ "html_url": "https://github.com/github-api/github-api/pull/24",
+ "diff_url": "https://github.com/github-api/github-api/pull/24.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/24.patch"
+ },
+ "body": "For supporting standalone github enterprise servers.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/23",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/23/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/23/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/23/events",
+ "html_url": "https://github.com/github-api/github-api/issues/23",
+ "id": 8502929,
+ "node_id": "MDU6SXNzdWU4NTAyOTI5",
+ "number": 23,
+ "title": "Support for organization check mebership",
+ "user": {
+ "login": "janinko",
+ "id": 644267,
+ "node_id": "MDQ6VXNlcjY0NDI2Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/644267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/janinko",
+ "html_url": "https://github.com/janinko",
+ "followers_url": "https://api.github.com/users/janinko/followers",
+ "following_url": "https://api.github.com/users/janinko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/janinko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/janinko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/janinko/subscriptions",
+ "organizations_url": "https://api.github.com/users/janinko/orgs",
+ "repos_url": "https://api.github.com/users/janinko/repos",
+ "events_url": "https://api.github.com/users/janinko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/janinko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2012-11-20T12:43:39Z",
+ "updated_at": "2013-01-07T00:28:52Z",
+ "closed_at": "2013-01-07T00:28:52Z",
+ "author_association": "COLLABORATOR",
+ "body": "http://developer.github.com/v3/orgs/members/#check-membership\n\n`GET /orgs/:org/members/:user`\n204 -> true\n404 -> false\n\n302 -> `GET /orgs/:org/public_members/:user`\n204 -> true\n404 -> false\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/22",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/22/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/22/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/22/events",
+ "html_url": "https://github.com/github-api/github-api/pull/22",
+ "id": 7741541,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjcxOTE2NQ==",
+ "number": 22,
+ "title": "Retrieve repository directly.",
+ "user": {
+ "login": "janinko",
+ "id": 644267,
+ "node_id": "MDQ6VXNlcjY0NDI2Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/644267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/janinko",
+ "html_url": "https://github.com/janinko",
+ "followers_url": "https://api.github.com/users/janinko/followers",
+ "following_url": "https://api.github.com/users/janinko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/janinko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/janinko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/janinko/subscriptions",
+ "organizations_url": "https://api.github.com/users/janinko/orgs",
+ "repos_url": "https://api.github.com/users/janinko/repos",
+ "events_url": "https://api.github.com/users/janinko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/janinko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2012-10-20T21:27:45Z",
+ "updated_at": "2014-06-18T11:06:05Z",
+ "closed_at": "2013-01-06T01:12:58Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/22",
+ "html_url": "https://github.com/github-api/github-api/pull/22",
+ "diff_url": "https://github.com/github-api/github-api/pull/22.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/22.patch"
+ },
+ "body": ""
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-9486f660-2139-4f84-ae0f-898d0369d061.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-9486f660-2139-4f84-ae0f-898d0369d061.json
new file mode 100644
index 000000000..2a065037d
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-9486f660-2139-4f84-ae0f-898d0369d061.json
@@ -0,0 +1,1388 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/174",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/174/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/174/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/174/events",
+ "html_url": "https://github.com/github-api/github-api/pull/174",
+ "id": 66146575,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzI1ODg2Nzg=",
+ "number": 174,
+ "title": "Add more binding for pull requests:",
+ "user": {
+ "login": "henryju",
+ "id": 281596,
+ "node_id": "MDQ6VXNlcjI4MTU5Ng==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/281596?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/henryju",
+ "html_url": "https://github.com/henryju",
+ "followers_url": "https://api.github.com/users/henryju/followers",
+ "following_url": "https://api.github.com/users/henryju/following{/other_user}",
+ "gists_url": "https://api.github.com/users/henryju/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/henryju/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/henryju/subscriptions",
+ "organizations_url": "https://api.github.com/users/henryju/orgs",
+ "repos_url": "https://api.github.com/users/henryju/repos",
+ "events_url": "https://api.github.com/users/henryju/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/henryju/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 7,
+ "created_at": "2015-04-03T13:28:30Z",
+ "updated_at": "2015-04-20T00:22:54Z",
+ "closed_at": "2015-04-20T00:22:54Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/174",
+ "html_url": "https://github.com/github-api/github-api/pull/174",
+ "diff_url": "https://github.com/github-api/github-api/pull/174.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/174.patch"
+ },
+ "body": "- ability to list files of a pull request\n- ability to add/remove/update PR review comment\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/173",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/173/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/173/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/173/events",
+ "html_url": "https://github.com/github-api/github-api/pull/173",
+ "id": 63813318,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzE3NjY0MDY=",
+ "number": 173,
+ "title": "Removing mis-match of decorator and method defintions",
+ "user": {
+ "login": "madhephaestus",
+ "id": 1254726,
+ "node_id": "MDQ6VXNlcjEyNTQ3MjY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1254726?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/madhephaestus",
+ "html_url": "https://github.com/madhephaestus",
+ "followers_url": "https://api.github.com/users/madhephaestus/followers",
+ "following_url": "https://api.github.com/users/madhephaestus/following{/other_user}",
+ "gists_url": "https://api.github.com/users/madhephaestus/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/madhephaestus/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/madhephaestus/subscriptions",
+ "organizations_url": "https://api.github.com/users/madhephaestus/orgs",
+ "repos_url": "https://api.github.com/users/madhephaestus/repos",
+ "events_url": "https://api.github.com/users/madhephaestus/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/madhephaestus/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-03-23T19:37:06Z",
+ "updated_at": "2015-04-20T00:41:25Z",
+ "closed_at": "2015-04-20T00:41:25Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/173",
+ "html_url": "https://github.com/github-api/github-api/pull/173",
+ "diff_url": "https://github.com/github-api/github-api/pull/173.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/173.patch"
+ },
+ "body": "This addresses the issue #171 \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/172",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/172/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/172/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/172/events",
+ "html_url": "https://github.com/github-api/github-api/issues/172",
+ "id": 63757226,
+ "node_id": "MDU6SXNzdWU2Mzc1NzIyNg==",
+ "number": 172,
+ "title": "Rate limiting causes silent freezing failures",
+ "user": {
+ "login": "madhephaestus",
+ "id": 1254726,
+ "node_id": "MDQ6VXNlcjEyNTQ3MjY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1254726?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/madhephaestus",
+ "html_url": "https://github.com/madhephaestus",
+ "followers_url": "https://api.github.com/users/madhephaestus/followers",
+ "following_url": "https://api.github.com/users/madhephaestus/following{/other_user}",
+ "gists_url": "https://api.github.com/users/madhephaestus/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/madhephaestus/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/madhephaestus/subscriptions",
+ "organizations_url": "https://api.github.com/users/madhephaestus/orgs",
+ "repos_url": "https://api.github.com/users/madhephaestus/repos",
+ "events_url": "https://api.github.com/users/madhephaestus/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/madhephaestus/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-03-23T15:52:26Z",
+ "updated_at": "2015-03-23T15:59:43Z",
+ "closed_at": "2015-03-23T15:59:43Z",
+ "author_association": "NONE",
+ "body": "WHen Github rate limits the API will lock up until the rate limit is cleared (up to an hour!) A rate limit block should be shown as an exception and in a perfect world an event listener for remaining trys (in the API) \n\nI had to go in and manually print a stacktrace in RateLimitHandler.java that was being caught silently to even figure out what was happening. \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/171",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/171/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/171/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/171/events",
+ "html_url": "https://github.com/github-api/github-api/issues/171",
+ "id": 63739705,
+ "node_id": "MDU6SXNzdWU2MzczOTcwNQ==",
+ "number": 171,
+ "title": "@WithBridgeMethods decorator in GHObject has no value adapterMethod",
+ "user": {
+ "login": "madhephaestus",
+ "id": 1254726,
+ "node_id": "MDQ6VXNlcjEyNTQ3MjY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1254726?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/madhephaestus",
+ "html_url": "https://github.com/madhephaestus",
+ "followers_url": "https://api.github.com/users/madhephaestus/followers",
+ "following_url": "https://api.github.com/users/madhephaestus/following{/other_user}",
+ "gists_url": "https://api.github.com/users/madhephaestus/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/madhephaestus/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/madhephaestus/subscriptions",
+ "organizations_url": "https://api.github.com/users/madhephaestus/orgs",
+ "repos_url": "https://api.github.com/users/madhephaestus/repos",
+ "events_url": "https://api.github.com/users/madhephaestus/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/madhephaestus/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 11,
+ "created_at": "2015-03-23T14:40:53Z",
+ "updated_at": "2015-12-01T16:04:40Z",
+ "closed_at": "2015-12-01T16:04:39Z",
+ "author_association": "NONE",
+ "body": "When pulling the sources and building there is a build error in GHObject at each usage of adapterMethod. This is not a runtime problem, it will not even compile. \n\nPerhaps this is a problem with the decorator definition and the dependency version number problem?\n\nbuild 1.6.4-SNAPSHOT \nbridge-method-annotation-1.8.jar\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/170",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/170/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/170/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/170/events",
+ "html_url": "https://github.com/github-api/github-api/pull/170",
+ "id": 63589888,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzE2OTc0NDk=",
+ "number": 170,
+ "title": "Improvements",
+ "user": {
+ "login": "KostyaSha",
+ "id": 231611,
+ "node_id": "MDQ6VXNlcjIzMTYxMQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/231611?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KostyaSha",
+ "html_url": "https://github.com/KostyaSha",
+ "followers_url": "https://api.github.com/users/KostyaSha/followers",
+ "following_url": "https://api.github.com/users/KostyaSha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KostyaSha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KostyaSha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KostyaSha/subscriptions",
+ "organizations_url": "https://api.github.com/users/KostyaSha/orgs",
+ "repos_url": "https://api.github.com/users/KostyaSha/repos",
+ "events_url": "https://api.github.com/users/KostyaSha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KostyaSha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2015-03-22T23:25:31Z",
+ "updated_at": "2015-04-13T23:55:24Z",
+ "closed_at": "2015-04-13T23:55:24Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/170",
+ "html_url": "https://github.com/github-api/github-api/pull/170",
+ "diff_url": "https://github.com/github-api/github-api/pull/170.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/170.patch"
+ },
+ "body": "Similar to other events\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/169",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/169/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/169/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/169/events",
+ "html_url": "https://github.com/github-api/github-api/pull/169",
+ "id": 63588706,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzE2OTcxOTc=",
+ "number": 169,
+ "title": "Throw error for bad creds",
+ "user": {
+ "login": "KostyaSha",
+ "id": 231611,
+ "node_id": "MDQ6VXNlcjIzMTYxMQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/231611?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KostyaSha",
+ "html_url": "https://github.com/KostyaSha",
+ "followers_url": "https://api.github.com/users/KostyaSha/followers",
+ "following_url": "https://api.github.com/users/KostyaSha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KostyaSha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KostyaSha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KostyaSha/subscriptions",
+ "organizations_url": "https://api.github.com/users/KostyaSha/orgs",
+ "repos_url": "https://api.github.com/users/KostyaSha/repos",
+ "events_url": "https://api.github.com/users/KostyaSha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KostyaSha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-03-22T23:10:10Z",
+ "updated_at": "2015-04-13T23:55:58Z",
+ "closed_at": "2015-04-13T23:55:58Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/169",
+ "html_url": "https://github.com/github-api/github-api/pull/169",
+ "diff_url": "https://github.com/github-api/github-api/pull/169.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/169.patch"
+ },
+ "body": "PoC for https://github.com/kohsuke/github-api/pull/160#issuecomment-81986789\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/168",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/168/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/168/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/168/events",
+ "html_url": "https://github.com/github-api/github-api/issues/168",
+ "id": 63560074,
+ "node_id": "MDU6SXNzdWU2MzU2MDA3NA==",
+ "number": 168,
+ "title": "Pluggable persistent cache support",
+ "user": {
+ "login": "kohsuke",
+ "id": 50003,
+ "node_id": "MDQ6VXNlcjUwMDAz",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/50003?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kohsuke",
+ "html_url": "https://github.com/kohsuke",
+ "followers_url": "https://api.github.com/users/kohsuke/followers",
+ "following_url": "https://api.github.com/users/kohsuke/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kohsuke/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kohsuke/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kohsuke/subscriptions",
+ "organizations_url": "https://api.github.com/users/kohsuke/orgs",
+ "repos_url": "https://api.github.com/users/kohsuke/repos",
+ "events_url": "https://api.github.com/users/kohsuke/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kohsuke/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-03-22T18:17:37Z",
+ "updated_at": "2015-03-22T19:13:48Z",
+ "closed_at": "2015-03-22T19:13:48Z",
+ "author_association": "MEMBER",
+ "body": "This is a fall out from issue #104.\n\nIt would be nice to leverage [conditional get support in GitHub](https://developer.github.com/v3/#conditional-requests) by offering some kind of optional classes that adds persistent cache on the disk.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/167",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/167/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/167/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/167/events",
+ "html_url": "https://github.com/github-api/github-api/issues/167",
+ "id": 63551821,
+ "node_id": "MDU6SXNzdWU2MzU1MTgyMQ==",
+ "number": 167,
+ "title": "SBT build is broken from version 1.53",
+ "user": {
+ "login": "lev4ik",
+ "id": 4324962,
+ "node_id": "MDQ6VXNlcjQzMjQ5NjI=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/4324962?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lev4ik",
+ "html_url": "https://github.com/lev4ik",
+ "followers_url": "https://api.github.com/users/lev4ik/followers",
+ "following_url": "https://api.github.com/users/lev4ik/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lev4ik/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lev4ik/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lev4ik/subscriptions",
+ "organizations_url": "https://api.github.com/users/lev4ik/orgs",
+ "repos_url": "https://api.github.com/users/lev4ik/repos",
+ "events_url": "https://api.github.com/users/lev4ik/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lev4ik/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-03-22T16:42:57Z",
+ "updated_at": "2016-03-08T21:37:14Z",
+ "closed_at": "2015-03-22T17:36:19Z",
+ "author_association": "NONE",
+ "body": "When adding \n\nlibraryDependencies += \"org.kohsuke\" % \"github-api\" % \"1.53\"\n\nor higher version to *.sbt files the build breaks with unresolved dependency of org.jenkins-ci#annotation-indexer, with the following error :\n\n```\n at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:126)\n at sbt.IvyActions$$anonfun$update$1.apply(IvyActions.scala:125)\n at sbt.IvySbt$$anon$3.call(Ivy.scala:57)\n at xsbt.boot.Locks$GlobalLock.withChannel$1(Locks.scala:98)\n at xsbt.boot.Locks$GlobalLock.xsbt$boot$Locks$GlobalLock$$withChannelRetries$1(Locks.scala:81)\n at xsbt.boot.Locks$GlobalLock$$anonfun$withFileLock$1.apply(Locks.scala:102)\n at xsbt.boot.Using$.withResource(Using.scala:11)\n at xsbt.boot.Using$.apply(Using.scala:10)\n at xsbt.boot.Locks$GlobalLock.ignoringDeadlockAvoided(Locks.scala:62)\n at xsbt.boot.Locks$GlobalLock.withLock(Locks.scala:52)\n at xsbt.boot.Locks$.apply0(Locks.scala:31)\n at xsbt.boot.Locks$.apply(Locks.scala:28)\n at sbt.IvySbt.withDefaultLogger(Ivy.scala:57)\n at sbt.IvySbt.withIvy(Ivy.scala:98)\n at sbt.IvySbt.withIvy(Ivy.scala:94)\n at sbt.IvySbt$Module.withModule(Ivy.scala:115)\n at sbt.IvyActions$.update(IvyActions.scala:125)\n at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1223)\n at sbt.Classpaths$$anonfun$sbt$Classpaths$$work$1$1.apply(Defaults.scala:1221)\n at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$74.apply(Defaults.scala:1244)\n at sbt.Classpaths$$anonfun$doWork$1$1$$anonfun$74.apply(Defaults.scala:1242)\n at sbt.Tracked$$anonfun$lastOutput$1.apply(Tracked.scala:35)\n at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1246)\n at sbt.Classpaths$$anonfun$doWork$1$1.apply(Defaults.scala:1241)\n at sbt.Tracked$$anonfun$inputChanged$1.apply(Tracked.scala:45)\n at sbt.Classpaths$.cachedUpdate(Defaults.scala:1249)\n at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1214)\n at sbt.Classpaths$$anonfun$updateTask$1.apply(Defaults.scala:1192)\n at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)\n at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)\n at sbt.std.Transform$$anon$4.work(System.scala:64)\n at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)\n at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)\n at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)\n at sbt.Execute.work(Execute.scala:244)\n at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)\n at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)\n at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)\n at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)\n at java.util.concurrent.FutureTask.run(FutureTask.java:262)\n at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)\n at java.util.concurrent.FutureTask.run(FutureTask.java:262)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n at java.lang.Thread.run(Thread.java:745)\n```\n\n[error] sbt.ResolveException: unresolved dependency: org.jenkins-ci#annotation-indexer;1.4: not found\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/166",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/166/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/166/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/166/events",
+ "html_url": "https://github.com/github-api/github-api/issues/166",
+ "id": 63492849,
+ "node_id": "MDU6SXNzdWU2MzQ5Mjg0OQ==",
+ "number": 166,
+ "title": "Reading a gist in anonymonous mode causes error",
+ "user": {
+ "login": "madhephaestus",
+ "id": 1254726,
+ "node_id": "MDQ6VXNlcjEyNTQ3MjY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1254726?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/madhephaestus",
+ "html_url": "https://github.com/madhephaestus",
+ "followers_url": "https://api.github.com/users/madhephaestus/followers",
+ "following_url": "https://api.github.com/users/madhephaestus/following{/other_user}",
+ "gists_url": "https://api.github.com/users/madhephaestus/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/madhephaestus/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/madhephaestus/subscriptions",
+ "organizations_url": "https://api.github.com/users/madhephaestus/orgs",
+ "repos_url": "https://api.github.com/users/madhephaestus/repos",
+ "events_url": "https://api.github.com/users/madhephaestus/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/madhephaestus/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2015-03-22T05:48:49Z",
+ "updated_at": "2015-03-23T21:12:21Z",
+ "closed_at": "2015-03-22T17:39:08Z",
+ "author_association": "NONE",
+ "body": "When I run \n\n`GitHub github = GitHub.connectAnonymously();`\n\n`GHGist gist = github.getGist(currentGist);`\n\nI get the following exception: \n\njava.lang.NullPointerException\n at java.util.Hashtable.put(Hashtable.java:464)\n at org.kohsuke.github.GitHub.getUser(GitHub.java:293)\n at org.kohsuke.github.GHGist.wrapUp(GHGist.java:106)\n at org.kohsuke.github.GitHub.getGist(GitHub.java:370)\n at ...\n\nSInce i connected anynomously, why is it asking for the user? Is there something i can set to get it to ignore this? \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/165",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/165/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/165/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/165/events",
+ "html_url": "https://github.com/github-api/github-api/issues/165",
+ "id": 63454342,
+ "node_id": "MDU6SXNzdWU2MzQ1NDM0Mg==",
+ "number": 165,
+ "title": "Add support for the Markdown API",
+ "user": {
+ "login": "s0undt3ch",
+ "id": 300048,
+ "node_id": "MDQ6VXNlcjMwMDA0OA==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/300048?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/s0undt3ch",
+ "html_url": "https://github.com/s0undt3ch",
+ "followers_url": "https://api.github.com/users/s0undt3ch/followers",
+ "following_url": "https://api.github.com/users/s0undt3ch/following{/other_user}",
+ "gists_url": "https://api.github.com/users/s0undt3ch/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/s0undt3ch/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/s0undt3ch/subscriptions",
+ "organizations_url": "https://api.github.com/users/s0undt3ch/orgs",
+ "repos_url": "https://api.github.com/users/s0undt3ch/repos",
+ "events_url": "https://api.github.com/users/s0undt3ch/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/s0undt3ch/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-03-21T20:44:33Z",
+ "updated_at": "2015-03-22T19:34:36Z",
+ "closed_at": "2015-03-22T18:01:00Z",
+ "author_association": "NONE",
+ "body": "https://developer.github.com/v3/markdown/\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/164",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/164/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/164/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/164/events",
+ "html_url": "https://github.com/github-api/github-api/pull/164",
+ "id": 60742530,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzA5OTI3NzQ=",
+ "number": 164,
+ "title": "Add Delete Branch",
+ "user": {
+ "login": "DavidTanner",
+ "id": 368889,
+ "node_id": "MDQ6VXNlcjM2ODg4OQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/368889?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/DavidTanner",
+ "html_url": "https://github.com/DavidTanner",
+ "followers_url": "https://api.github.com/users/DavidTanner/followers",
+ "following_url": "https://api.github.com/users/DavidTanner/following{/other_user}",
+ "gists_url": "https://api.github.com/users/DavidTanner/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/DavidTanner/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/DavidTanner/subscriptions",
+ "organizations_url": "https://api.github.com/users/DavidTanner/orgs",
+ "repos_url": "https://api.github.com/users/DavidTanner/repos",
+ "events_url": "https://api.github.com/users/DavidTanner/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/DavidTanner/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2015-03-11T22:42:19Z",
+ "updated_at": "2015-03-12T03:58:38Z",
+ "closed_at": "2015-03-12T03:58:38Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/164",
+ "html_url": "https://github.com/github-api/github-api/pull/164",
+ "diff_url": "https://github.com/github-api/github-api/pull/164.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/164.patch"
+ },
+ "body": "Add the request to delete a branch. This is useful after merging a pull request.\n\nMy use case is in the Github Pull Request Builder plugin for Jenkins I would like to delete the branch after merging the pull request. \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/163",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/163/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/163/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/163/events",
+ "html_url": "https://github.com/github-api/github-api/pull/163",
+ "id": 60603017,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzA5MTIxNDY=",
+ "number": 163,
+ "title": "merge",
+ "user": {
+ "login": "weijianzhenli",
+ "id": 10072397,
+ "node_id": "MDQ6VXNlcjEwMDcyMzk3",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/10072397?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/weijianzhenli",
+ "html_url": "https://github.com/weijianzhenli",
+ "followers_url": "https://api.github.com/users/weijianzhenli/followers",
+ "following_url": "https://api.github.com/users/weijianzhenli/following{/other_user}",
+ "gists_url": "https://api.github.com/users/weijianzhenli/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/weijianzhenli/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/weijianzhenli/subscriptions",
+ "organizations_url": "https://api.github.com/users/weijianzhenli/orgs",
+ "repos_url": "https://api.github.com/users/weijianzhenli/repos",
+ "events_url": "https://api.github.com/users/weijianzhenli/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/weijianzhenli/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-03-11T03:01:19Z",
+ "updated_at": "2015-03-11T03:05:33Z",
+ "closed_at": "2015-03-11T03:05:33Z",
+ "author_association": "FIRST_TIMER",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/163",
+ "html_url": "https://github.com/github-api/github-api/pull/163",
+ "diff_url": "https://github.com/github-api/github-api/pull/163.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/163.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/162",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/162/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/162/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/162/events",
+ "html_url": "https://github.com/github-api/github-api/issues/162",
+ "id": 59959411,
+ "node_id": "MDU6SXNzdWU1OTk1OTQxMQ==",
+ "number": 162,
+ "title": "GHContent#content always returns master version",
+ "user": {
+ "login": "tilayealemu",
+ "id": 11229217,
+ "node_id": "MDQ6VXNlcjExMjI5MjE3",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/11229217?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/tilayealemu",
+ "html_url": "https://github.com/tilayealemu",
+ "followers_url": "https://api.github.com/users/tilayealemu/followers",
+ "following_url": "https://api.github.com/users/tilayealemu/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tilayealemu/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tilayealemu/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tilayealemu/subscriptions",
+ "organizations_url": "https://api.github.com/users/tilayealemu/orgs",
+ "repos_url": "https://api.github.com/users/tilayealemu/repos",
+ "events_url": "https://api.github.com/users/tilayealemu/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tilayealemu/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-03-05T14:34:45Z",
+ "updated_at": "2015-03-22T17:21:23Z",
+ "closed_at": "2015-03-22T17:21:09Z",
+ "author_association": "NONE",
+ "body": "GHContent#content always returns content from the master branch. Included sample code. Content 1 comes from master and 2 from the specified branch. Using github-api 1.62.\n\n```\n@Test\npublic void github_api_issue() throws Exception {\n String branch = \"mybranch\";\n GitHub github = GitHub.connectUsingPassword(\"myyser\", \"mypassword\");\n GHRepository ghRepo = github.getRepository(\"myrepo\");\n List contents = ghRepo.getDirectoryContent(\"myfolder\", \"heads/\" + branch);\n for (GHContent content : contents) {\n String content1 = content.getContent();\n String content2 = ghRepo.getFileContent(content.getPath(), branch).getContent();\n System.out.println(\"Contents of \" + content.getPath());\n System.out.println(\"Content1\");\n System.out.println(content1);\n System.out.println(\"Content2\");\n System.out.println(content2);\n }\n}\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/161",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/161/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/161/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/161/events",
+ "html_url": "https://github.com/github-api/github-api/pull/161",
+ "id": 59922679,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzA1Mzk2NjI=",
+ "number": 161,
+ "title": "Add method to get the list of languages using in repository",
+ "user": {
+ "login": "khoa-nd",
+ "id": 1620282,
+ "node_id": "MDQ6VXNlcjE2MjAyODI=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1620282?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/khoa-nd",
+ "html_url": "https://github.com/khoa-nd",
+ "followers_url": "https://api.github.com/users/khoa-nd/followers",
+ "following_url": "https://api.github.com/users/khoa-nd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/khoa-nd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/khoa-nd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/khoa-nd/subscriptions",
+ "organizations_url": "https://api.github.com/users/khoa-nd/orgs",
+ "repos_url": "https://api.github.com/users/khoa-nd/repos",
+ "events_url": "https://api.github.com/users/khoa-nd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/khoa-nd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2015-03-05T08:58:11Z",
+ "updated_at": "2015-03-13T14:58:09Z",
+ "closed_at": "2015-03-13T14:58:01Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/161",
+ "html_url": "https://github.com/github-api/github-api/pull/161",
+ "diff_url": "https://github.com/github-api/github-api/pull/161.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/161.patch"
+ },
+ "body": "Hi kohsuke\nI used your API to call Github API but I found that there isn't any method lists all languages using in repository. Therefore, I ask you to add it into your master code.\nThanks\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/160",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/160/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/160/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/160/events",
+ "html_url": "https://github.com/github-api/github-api/pull/160",
+ "id": 59666318,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzAzODg0MjM=",
+ "number": 160,
+ "title": "Rate-Limit: Thread fix, reset date",
+ "user": {
+ "login": "KostyaSha",
+ "id": 231611,
+ "node_id": "MDQ6VXNlcjIzMTYxMQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/231611?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KostyaSha",
+ "html_url": "https://github.com/KostyaSha",
+ "followers_url": "https://api.github.com/users/KostyaSha/followers",
+ "following_url": "https://api.github.com/users/KostyaSha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KostyaSha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KostyaSha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KostyaSha/subscriptions",
+ "organizations_url": "https://api.github.com/users/KostyaSha/orgs",
+ "repos_url": "https://api.github.com/users/KostyaSha/repos",
+ "events_url": "https://api.github.com/users/KostyaSha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KostyaSha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 11,
+ "created_at": "2015-03-03T16:25:50Z",
+ "updated_at": "2015-06-11T11:52:37Z",
+ "closed_at": "2015-03-17T14:46:28Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/160",
+ "html_url": "https://github.com/github-api/github-api/pull/160",
+ "diff_url": "https://github.com/github-api/github-api/pull/160.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/160.patch"
+ },
+ "body": "for #159 \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/159",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/159/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/159/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/159/events",
+ "html_url": "https://github.com/github-api/github-api/issues/159",
+ "id": 59493545,
+ "node_id": "MDU6SXNzdWU1OTQ5MzU0NQ==",
+ "number": 159,
+ "title": "infinite Thread usage loop with handleApiError",
+ "user": {
+ "login": "KostyaSha",
+ "id": 231611,
+ "node_id": "MDQ6VXNlcjIzMTYxMQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/231611?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KostyaSha",
+ "html_url": "https://github.com/KostyaSha",
+ "followers_url": "https://api.github.com/users/KostyaSha/followers",
+ "following_url": "https://api.github.com/users/KostyaSha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KostyaSha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KostyaSha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KostyaSha/subscriptions",
+ "organizations_url": "https://api.github.com/users/KostyaSha/orgs",
+ "repos_url": "https://api.github.com/users/KostyaSha/repos",
+ "events_url": "https://api.github.com/users/KostyaSha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KostyaSha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-03-02T15:11:23Z",
+ "updated_at": "2015-03-17T15:07:14Z",
+ "closed_at": "2015-03-17T15:07:14Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "https://github.com/kohsuke/github-api/blob/4b6981c2e7e60a510d5881e33f850aafa5bad25d/src/main/java/org/kohsuke/github/Requester.java#L191-L222\n+\nhttps://github.com/kohsuke/github-api/blob/4b6981c2e7e60a510d5881e33f850aafa5bad25d/src/main/java/org/kohsuke/github/Requester.java#L423-L428\nends with infinite loop that may lock all jenkins Timers\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/158",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/158/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/158/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/158/events",
+ "html_url": "https://github.com/github-api/github-api/issues/158",
+ "id": 59139665,
+ "node_id": "MDU6SXNzdWU1OTEzOTY2NQ==",
+ "number": 158,
+ "title": "Implement /search",
+ "user": {
+ "login": "bamos",
+ "id": 707462,
+ "node_id": "MDQ6VXNlcjcwNzQ2Mg==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/707462?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bamos",
+ "html_url": "https://github.com/bamos",
+ "followers_url": "https://api.github.com/users/bamos/followers",
+ "following_url": "https://api.github.com/users/bamos/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bamos/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bamos/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bamos/subscriptions",
+ "organizations_url": "https://api.github.com/users/bamos/orgs",
+ "repos_url": "https://api.github.com/users/bamos/repos",
+ "events_url": "https://api.github.com/users/bamos/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bamos/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-02-26T20:39:49Z",
+ "updated_at": "2015-03-22T19:09:14Z",
+ "closed_at": "2015-03-22T19:09:14Z",
+ "author_association": "NONE",
+ "body": "https://developer.github.com/v3/search/\n\nHi, sorry for filing this and #157.\nI'd prefer to use the repository search api.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/157",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/157/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/157/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/157/events",
+ "html_url": "https://github.com/github-api/github-api/issues/157",
+ "id": 59074623,
+ "node_id": "MDU6SXNzdWU1OTA3NDYyMw==",
+ "number": 157,
+ "title": "/repositories?",
+ "user": {
+ "login": "bamos",
+ "id": 707462,
+ "node_id": "MDQ6VXNlcjcwNzQ2Mg==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/707462?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bamos",
+ "html_url": "https://github.com/bamos",
+ "followers_url": "https://api.github.com/users/bamos/followers",
+ "following_url": "https://api.github.com/users/bamos/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bamos/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bamos/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bamos/subscriptions",
+ "organizations_url": "https://api.github.com/users/bamos/orgs",
+ "repos_url": "https://api.github.com/users/bamos/repos",
+ "events_url": "https://api.github.com/users/bamos/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bamos/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2015-02-26T13:48:09Z",
+ "updated_at": "2015-03-21T23:35:40Z",
+ "closed_at": "2015-03-21T23:35:40Z",
+ "author_association": "NONE",
+ "body": "Hi, sorry if I'm overlooking something in the Javadoc or source,\nbut is the `/repositories` feature of the github API supported?\n\nhttps://developer.github.com/v3/repos/#list-all-public-repositories\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/156",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/156/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/156/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/156/events",
+ "html_url": "https://github.com/github-api/github-api/pull/156",
+ "id": 58489501,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Mjk3NjUzNDg=",
+ "number": 156,
+ "title": "Picking endpoint from the properties file and environment variables",
+ "user": {
+ "login": "ashwanthkumar",
+ "id": 600279,
+ "node_id": "MDQ6VXNlcjYwMDI3OQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/600279?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ashwanthkumar",
+ "html_url": "https://github.com/ashwanthkumar",
+ "followers_url": "https://api.github.com/users/ashwanthkumar/followers",
+ "following_url": "https://api.github.com/users/ashwanthkumar/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ashwanthkumar/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ashwanthkumar/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ashwanthkumar/subscriptions",
+ "organizations_url": "https://api.github.com/users/ashwanthkumar/orgs",
+ "repos_url": "https://api.github.com/users/ashwanthkumar/repos",
+ "events_url": "https://api.github.com/users/ashwanthkumar/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ashwanthkumar/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-02-22T04:13:48Z",
+ "updated_at": "2015-03-15T19:55:32Z",
+ "closed_at": "2015-03-15T19:55:32Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/156",
+ "html_url": "https://github.com/github-api/github-api/pull/156",
+ "diff_url": "https://github.com/github-api/github-api/pull/156.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/156.patch"
+ },
+ "body": "Helps seemless switching between public github and enterprise without any code changes. \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/155",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/155/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/155/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/155/events",
+ "html_url": "https://github.com/github-api/github-api/pull/155",
+ "id": 58070943,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Mjk1MjcwMDA=",
+ "number": 155,
+ "title": "Implementing github trees",
+ "user": {
+ "login": "ddtxra",
+ "id": 3664331,
+ "node_id": "MDQ6VXNlcjM2NjQzMzE=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/3664331?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ddtxra",
+ "html_url": "https://github.com/ddtxra",
+ "followers_url": "https://api.github.com/users/ddtxra/followers",
+ "following_url": "https://api.github.com/users/ddtxra/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ddtxra/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ddtxra/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ddtxra/subscriptions",
+ "organizations_url": "https://api.github.com/users/ddtxra/orgs",
+ "repos_url": "https://api.github.com/users/ddtxra/repos",
+ "events_url": "https://api.github.com/users/ddtxra/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ddtxra/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-02-18T14:01:06Z",
+ "updated_at": "2015-03-15T19:49:34Z",
+ "closed_at": "2015-03-15T19:49:33Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/155",
+ "html_url": "https://github.com/github-api/github-api/pull/155",
+ "diff_url": "https://github.com/github-api/github-api/pull/155.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/155.patch"
+ },
+ "body": "Implementing GitHub Trees as described in https://developer.github.com/v3/git/trees/\nSupports getTree and getTreeRecursive method on the GHRepository class\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/154",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/154/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/154/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/154/events",
+ "html_url": "https://github.com/github-api/github-api/issues/154",
+ "id": 57630007,
+ "node_id": "MDU6SXNzdWU1NzYzMDAwNw==",
+ "number": 154,
+ "title": "\"Stars\" and \"Forks\" parameters for Gist",
+ "user": {
+ "login": "vbauer",
+ "id": 578021,
+ "node_id": "MDQ6VXNlcjU3ODAyMQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/578021?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vbauer",
+ "html_url": "https://github.com/vbauer",
+ "followers_url": "https://api.github.com/users/vbauer/followers",
+ "following_url": "https://api.github.com/users/vbauer/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vbauer/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vbauer/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vbauer/subscriptions",
+ "organizations_url": "https://api.github.com/users/vbauer/orgs",
+ "repos_url": "https://api.github.com/users/vbauer/repos",
+ "events_url": "https://api.github.com/users/vbauer/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vbauer/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-02-13T17:43:20Z",
+ "updated_at": "2015-02-15T14:22:17Z",
+ "closed_at": "2015-02-15T14:22:17Z",
+ "author_association": "NONE",
+ "body": "It looks like we haven't got a way to fetch information about stars and forks from Gist.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/153",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/153/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/153/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/153/events",
+ "html_url": "https://github.com/github-api/github-api/issues/153",
+ "id": 57621420,
+ "node_id": "MDU6SXNzdWU1NzYyMTQyMA==",
+ "number": 153,
+ "title": "Github Trees support",
+ "user": {
+ "login": "ddtxra",
+ "id": 3664331,
+ "node_id": "MDQ6VXNlcjM2NjQzMzE=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/3664331?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ddtxra",
+ "html_url": "https://github.com/ddtxra",
+ "followers_url": "https://api.github.com/users/ddtxra/followers",
+ "following_url": "https://api.github.com/users/ddtxra/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ddtxra/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ddtxra/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ddtxra/subscriptions",
+ "organizations_url": "https://api.github.com/users/ddtxra/orgs",
+ "repos_url": "https://api.github.com/users/ddtxra/repos",
+ "events_url": "https://api.github.com/users/ddtxra/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ddtxra/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-02-13T16:38:16Z",
+ "updated_at": "2015-02-24T22:15:14Z",
+ "closed_at": "2015-02-24T22:15:14Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "Hello,\nThanks for this wonderful library!\n\nI would like the library to support github trees, is it foreseen (https://developer.github.com/v3/git/trees/)?\nFor instance I need to retrieve this:\nhttps://api.github.com/repos/calipho-sib/nextprot-docs/git/trees/master?recursive=1\n\nIf you would like I can try to implement this feature and I make a pull request?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/152",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/152/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/152/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/152/events",
+ "html_url": "https://github.com/github-api/github-api/issues/152",
+ "id": 56969535,
+ "node_id": "MDU6SXNzdWU1Njk2OTUzNQ==",
+ "number": 152,
+ "title": "NPE during tag.getCommit().getLastStatus()",
+ "user": {
+ "login": "vbauer",
+ "id": 578021,
+ "node_id": "MDQ6VXNlcjU3ODAyMQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/578021?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vbauer",
+ "html_url": "https://github.com/vbauer",
+ "followers_url": "https://api.github.com/users/vbauer/followers",
+ "following_url": "https://api.github.com/users/vbauer/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vbauer/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vbauer/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vbauer/subscriptions",
+ "organizations_url": "https://api.github.com/users/vbauer/orgs",
+ "repos_url": "https://api.github.com/users/vbauer/repos",
+ "events_url": "https://api.github.com/users/vbauer/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vbauer/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2015-02-08T21:52:26Z",
+ "updated_at": "2015-02-15T17:06:06Z",
+ "closed_at": "2015-02-15T17:06:06Z",
+ "author_association": "NONE",
+ "body": "NPE on the line \"final GHCommitStatus lastStatus = commit.getLastStatus();\", because owner is null.\n\n``` java\n public Date getDate(final GHTag tag) throws Exception {\n final GHCommit commit = tag.getCommit();\n final GHCommitStatus lastStatus = commit.getLastStatus();\n return lastStatus.getCreatedAt();\n }\n```\n\nIt looks like there is no way to retrieve information about tag/commit date.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/150",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/150/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/150/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/150/events",
+ "html_url": "https://github.com/github-api/github-api/issues/150",
+ "id": 55156508,
+ "node_id": "MDU6SXNzdWU1NTE1NjUwOA==",
+ "number": 150,
+ "title": "Incorrect behavior of GHRepository.getReadme",
+ "user": {
+ "login": "vbauer",
+ "id": 578021,
+ "node_id": "MDQ6VXNlcjU3ODAyMQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/578021?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vbauer",
+ "html_url": "https://github.com/vbauer",
+ "followers_url": "https://api.github.com/users/vbauer/followers",
+ "following_url": "https://api.github.com/users/vbauer/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vbauer/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vbauer/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vbauer/subscriptions",
+ "organizations_url": "https://api.github.com/users/vbauer/orgs",
+ "repos_url": "https://api.github.com/users/vbauer/repos",
+ "events_url": "https://api.github.com/users/vbauer/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vbauer/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-01-22T14:05:12Z",
+ "updated_at": "2015-02-15T19:35:04Z",
+ "closed_at": "2015-02-15T14:32:04Z",
+ "author_association": "NONE",
+ "body": "I've got the following error, trying to fetch README file from https://github.com/matshofman/Android-RSS-Reader-Library:\n\n```\njava.io.FileNotFoundException: https://api.github.com/repos/matshofman/Android-RSS-Reader-Library/contents/readme\n at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1834) ~[na:1.8.0_11]\n at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1439) ~[na:1.8.0_11]\n at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) ~[na:1.8.0_11]\n at org.kohsuke.github.Requester.parse(Requester.java:383) ~[github-api-1.59.jar:na]\n at org.kohsuke.github.Requester._to(Requester.java:185) ~[github-api-1.59.jar:na]\n at org.kohsuke.github.Requester.to(Requester.java:160) ~[github-api-1.59.jar:na]\n at org.kohsuke.github.GHRepository.getFileContent(GHRepository.java:917) ~[github-api-1.59.jar:na]\n at org.kohsuke.github.GHRepository.getFileContent(GHRepository.java:907) ~[github-api-1.59.jar:na]\n at org.kohsuke.github.GHRepository.getReadme(GHRepository.java:939) ~[github-api-1.59.jar:na]\n at com.android.arsenal.service.impl.ConverterServiceImpl.convertRepository(ConverterServiceImpl.java:62) ~[classes/:na]\n at com.android.arsenal.service.impl.ProcessorServiceImpl.process(ProcessorServiceImpl.java:135) ~[classes/:na]\n at com.android.arsenal.service.impl.ProcessorServiceImpl.access$100(ProcessorServiceImpl.java:33) ~[classes/:na]\n at com.android.arsenal.service.impl.ProcessorServiceImpl$2.run(ProcessorServiceImpl.java:99) ~[classes/:na]\n at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_11]\n at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_11]\n at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_11]\n at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_11]\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_11]\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_11]\n at java.lang.Thread.run(Thread.java:745) [na:1.8.0_11]\n```\n\nThe reason of this problem that readme-file was called \"README.markdown\" and github-api doesn't use specific Github API to fetch info about README. It just tries to download \"readme\" file from repository.\n\nAdditional information could be found here: https://developer.github.com/v3/repos/contents/\n\nAPI call should be like this: `GET /repos/:owner/:repo/readme`\n\nUPD: It will be also useful to add method getReadmHtml and use 'application/vnd.github.VERSION.html' to retrieve HTML document.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/149",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/149/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/149/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/149/events",
+ "html_url": "https://github.com/github-api/github-api/issues/149",
+ "id": 55059781,
+ "node_id": "MDU6SXNzdWU1NTA1OTc4MQ==",
+ "number": 149,
+ "title": "Make public GHRepository.getOwnerName",
+ "user": {
+ "login": "vbauer",
+ "id": 578021,
+ "node_id": "MDQ6VXNlcjU3ODAyMQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/578021?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vbauer",
+ "html_url": "https://github.com/vbauer",
+ "followers_url": "https://api.github.com/users/vbauer/followers",
+ "following_url": "https://api.github.com/users/vbauer/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vbauer/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vbauer/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vbauer/subscriptions",
+ "organizations_url": "https://api.github.com/users/vbauer/orgs",
+ "repos_url": "https://api.github.com/users/vbauer/repos",
+ "events_url": "https://api.github.com/users/vbauer/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vbauer/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2015-01-21T18:45:49Z",
+ "updated_at": "2015-02-15T16:58:37Z",
+ "closed_at": "2015-02-15T16:58:37Z",
+ "author_association": "NONE",
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/148",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/148/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/148/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/148/events",
+ "html_url": "https://github.com/github-api/github-api/issues/148",
+ "id": 54950934,
+ "node_id": "MDU6SXNzdWU1NDk1MDkzNA==",
+ "number": 148,
+ "title": "Add information about thread-safety in Javadoc",
+ "user": {
+ "login": "vbauer",
+ "id": 578021,
+ "node_id": "MDQ6VXNlcjU3ODAyMQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/578021?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vbauer",
+ "html_url": "https://github.com/vbauer",
+ "followers_url": "https://api.github.com/users/vbauer/followers",
+ "following_url": "https://api.github.com/users/vbauer/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vbauer/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vbauer/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vbauer/subscriptions",
+ "organizations_url": "https://api.github.com/users/vbauer/orgs",
+ "repos_url": "https://api.github.com/users/vbauer/repos",
+ "events_url": "https://api.github.com/users/vbauer/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vbauer/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2015-01-20T22:37:55Z",
+ "updated_at": "2015-02-15T16:56:57Z",
+ "closed_at": "2015-02-15T16:56:57Z",
+ "author_association": "NONE",
+ "body": "Especially, it is interesting to know:\nIs it possible to use `GitHub` instance in the few concurrent threads?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/147",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/147/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/147/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/147/events",
+ "html_url": "https://github.com/github-api/github-api/issues/147",
+ "id": 54937159,
+ "node_id": "MDU6SXNzdWU1NDkzNzE1OQ==",
+ "number": 147,
+ "title": "Add API to retrieve list of contributors",
+ "user": {
+ "login": "vbauer",
+ "id": 578021,
+ "node_id": "MDQ6VXNlcjU3ODAyMQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/578021?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vbauer",
+ "html_url": "https://github.com/vbauer",
+ "followers_url": "https://api.github.com/users/vbauer/followers",
+ "following_url": "https://api.github.com/users/vbauer/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vbauer/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vbauer/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vbauer/subscriptions",
+ "organizations_url": "https://api.github.com/users/vbauer/orgs",
+ "repos_url": "https://api.github.com/users/vbauer/repos",
+ "events_url": "https://api.github.com/users/vbauer/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vbauer/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-01-20T20:46:49Z",
+ "updated_at": "2015-02-15T16:51:03Z",
+ "closed_at": "2015-02-15T16:51:03Z",
+ "author_association": "NONE",
+ "body": "Now, I'm using the following workaround:\n\njava\n\n```\n public GHUser[] getContributors(final GHRepository repository) throws Exception {\n final Field field = GHRepository.class.getDeclaredField(\"root\");\n field.setAccessible(true);\n final GitHub gitHub = (GitHub) field.get(repository);\n\n final GHUser owner = repository.getOwner();\n final String login = owner.getLogin();\n final String name = repository.getName();\n\n final Method retrieveMethod = GitHub.class.getDeclaredMethod(\"retrieve\");\n retrieveMethod.setAccessible(true);\n final Object request = retrieveMethod.invoke(gitHub);\n\n final Method toMethod = request.getClass().getDeclaredMethod(\"to\", String.class, Class.class);\n toMethod.setAccessible(true);\n return (GHUser[]) toMethod.invoke(request, \"/repos/\" + login + \"/\" + name + \"/contributors\", GHUser[].class);\n }\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/146",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/146/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/146/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/146/events",
+ "html_url": "https://github.com/github-api/github-api/pull/146",
+ "id": 53012821,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjY2MjkwMjE=",
+ "number": 146,
+ "title": "fix #145 GHTeam.getMembers() does not page properly",
+ "user": {
+ "login": "if6was9",
+ "id": 463742,
+ "node_id": "MDQ6VXNlcjQ2Mzc0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/463742?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/if6was9",
+ "html_url": "https://github.com/if6was9",
+ "followers_url": "https://api.github.com/users/if6was9/followers",
+ "following_url": "https://api.github.com/users/if6was9/following{/other_user}",
+ "gists_url": "https://api.github.com/users/if6was9/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/if6was9/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/if6was9/subscriptions",
+ "organizations_url": "https://api.github.com/users/if6was9/orgs",
+ "repos_url": "https://api.github.com/users/if6was9/repos",
+ "events_url": "https://api.github.com/users/if6was9/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/if6was9/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2014-12-28T23:42:08Z",
+ "updated_at": "2015-02-14T14:41:28Z",
+ "closed_at": "2015-02-14T14:41:28Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/146",
+ "html_url": "https://github.com/github-api/github-api/pull/146",
+ "diff_url": "https://github.com/github-api/github-api/pull/146.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/146.patch"
+ },
+ "body": "GHTeam.getMembers() would only return the first 30 members of an organization. This fixes that by reading each page of results.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/145",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/145/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/145/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/145/events",
+ "html_url": "https://github.com/github-api/github-api/issues/145",
+ "id": 53006362,
+ "node_id": "MDU6SXNzdWU1MzAwNjM2Mg==",
+ "number": 145,
+ "title": "GHTeam.getMembers() response does not include all users if user count >30",
+ "user": {
+ "login": "if6was9",
+ "id": 463742,
+ "node_id": "MDQ6VXNlcjQ2Mzc0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/463742?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/if6was9",
+ "html_url": "https://github.com/if6was9",
+ "followers_url": "https://api.github.com/users/if6was9/followers",
+ "following_url": "https://api.github.com/users/if6was9/following{/other_user}",
+ "gists_url": "https://api.github.com/users/if6was9/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/if6was9/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/if6was9/subscriptions",
+ "organizations_url": "https://api.github.com/users/if6was9/orgs",
+ "repos_url": "https://api.github.com/users/if6was9/repos",
+ "events_url": "https://api.github.com/users/if6was9/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/if6was9/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-12-28T18:24:18Z",
+ "updated_at": "2015-02-14T14:41:28Z",
+ "closed_at": "2015-02-14T14:41:28Z",
+ "author_association": "NONE",
+ "body": "I have not gotten to the bottom of why this is happening, but getMembers() returns at most 30 members, even if the team has more.\n\nI have a strong suspicion that the API is returning paged results but the response processing is not fetching the pages.\n\nWill submit a PR if I can get it fixed.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/144",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/144/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/144/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/144/events",
+ "html_url": "https://github.com/github-api/github-api/issues/144",
+ "id": 52643220,
+ "node_id": "MDU6SXNzdWU1MjY0MzIyMA==",
+ "number": 144,
+ "title": "Parsing a push event payload doesn't get the repository",
+ "user": {
+ "login": "turt2live",
+ "id": 1190097,
+ "node_id": "MDQ6VXNlcjExOTAwOTc=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1190097?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/turt2live",
+ "html_url": "https://github.com/turt2live",
+ "followers_url": "https://api.github.com/users/turt2live/followers",
+ "following_url": "https://api.github.com/users/turt2live/following{/other_user}",
+ "gists_url": "https://api.github.com/users/turt2live/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/turt2live/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/turt2live/subscriptions",
+ "organizations_url": "https://api.github.com/users/turt2live/orgs",
+ "repos_url": "https://api.github.com/users/turt2live/repos",
+ "events_url": "https://api.github.com/users/turt2live/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/turt2live/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2014-12-22T11:56:24Z",
+ "updated_at": "2015-02-15T16:42:40Z",
+ "closed_at": "2015-02-15T16:42:40Z",
+ "author_association": "NONE",
+ "body": "The `GHEventPayload.Push` class does not contain a way to get the `GHRepository` that was pushed to despite the [GitHub API sending it](https://developer.github.com/v3/activity/events/types/#pushevent). \n"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-ab269330-3eb7-4ec1-9211-ecc8d0d70701.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-ab269330-3eb7-4ec1-9211-ecc8d0d70701.json
new file mode 100644
index 000000000..92efc9b58
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-ab269330-3eb7-4ec1-9211-ecc8d0d70701.json
@@ -0,0 +1,1430 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/206",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/206/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/206/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/206/events",
+ "html_url": "https://github.com/github-api/github-api/pull/206",
+ "id": 94849442,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Mzk4NzQ4MzQ=",
+ "number": 206,
+ "title": "Specified the GET",
+ "user": {
+ "login": "torodev",
+ "id": 12505974,
+ "node_id": "MDQ6VXNlcjEyNTA1OTc0",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/12505974?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/torodev",
+ "html_url": "https://github.com/torodev",
+ "followers_url": "https://api.github.com/users/torodev/followers",
+ "following_url": "https://api.github.com/users/torodev/following{/other_user}",
+ "gists_url": "https://api.github.com/users/torodev/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/torodev/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/torodev/subscriptions",
+ "organizations_url": "https://api.github.com/users/torodev/orgs",
+ "repos_url": "https://api.github.com/users/torodev/repos",
+ "events_url": "https://api.github.com/users/torodev/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/torodev/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-07-14T01:49:32Z",
+ "updated_at": "2015-07-17T10:24:48Z",
+ "closed_at": "2015-07-17T10:24:48Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/206",
+ "html_url": "https://github.com/github-api/github-api/pull/206",
+ "diff_url": "https://github.com/github-api/github-api/pull/206.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/206.patch"
+ },
+ "body": "Previously doesn't specify the HTTP method to perform\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/205",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/205/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/205/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/205/events",
+ "html_url": "https://github.com/github-api/github-api/pull/205",
+ "id": 93239043,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzkyNTI3NDA=",
+ "number": 205,
+ "title": "Fix NPE found when resolving issues from search api",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2015-07-06T10:07:32Z",
+ "updated_at": "2015-07-06T21:23:03Z",
+ "closed_at": "2015-07-06T21:22:46Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/205",
+ "html_url": "https://github.com/github-api/github-api/pull/205",
+ "diff_url": "https://github.com/github-api/github-api/pull/205.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/205.patch"
+ },
+ "body": "@reviewbybees\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/204",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/204/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/204/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/204/events",
+ "html_url": "https://github.com/github-api/github-api/pull/204",
+ "id": 93124984,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzkyMjMzMDE=",
+ "number": 204,
+ "title": "add ping event to GH events enum",
+ "user": {
+ "login": "lanwen",
+ "id": 1964214,
+ "node_id": "MDQ6VXNlcjE5NjQyMTQ=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1964214?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lanwen",
+ "html_url": "https://github.com/lanwen",
+ "followers_url": "https://api.github.com/users/lanwen/followers",
+ "following_url": "https://api.github.com/users/lanwen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lanwen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lanwen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lanwen/subscriptions",
+ "organizations_url": "https://api.github.com/users/lanwen/orgs",
+ "repos_url": "https://api.github.com/users/lanwen/repos",
+ "events_url": "https://api.github.com/users/lanwen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lanwen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-07-05T16:38:37Z",
+ "updated_at": "2015-07-05T18:09:35Z",
+ "closed_at": "2015-07-05T16:57:20Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/204",
+ "html_url": "https://github.com/github-api/github-api/pull/204",
+ "diff_url": "https://github.com/github-api/github-api/pull/204.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/204.patch"
+ },
+ "body": "https://developer.github.com/webhooks/#ping-event\n\n\n\n[
](https://reviewable.io/reviews/kohsuke/github-api/204)\n\n\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/203",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/203/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/203/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/203/events",
+ "html_url": "https://github.com/github-api/github-api/pull/203",
+ "id": 91190898,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Mzg2MjgwNTM=",
+ "number": 203,
+ "title": "GitHub API have changed the semantics of /user/repos API",
+ "user": {
+ "login": "lucamilanesio",
+ "id": 182893,
+ "node_id": "MDQ6VXNlcjE4Mjg5Mw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/182893?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lucamilanesio",
+ "html_url": "https://github.com/lucamilanesio",
+ "followers_url": "https://api.github.com/users/lucamilanesio/followers",
+ "following_url": "https://api.github.com/users/lucamilanesio/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lucamilanesio/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lucamilanesio/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lucamilanesio/subscriptions",
+ "organizations_url": "https://api.github.com/users/lucamilanesio/orgs",
+ "repos_url": "https://api.github.com/users/lucamilanesio/repos",
+ "events_url": "https://api.github.com/users/lucamilanesio/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lucamilanesio/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2015-06-26T08:39:09Z",
+ "updated_at": "2018-03-02T17:40:22Z",
+ "closed_at": "2015-07-17T10:52:46Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/203",
+ "html_url": "https://github.com/github-api/github-api/pull/203",
+ "diff_url": "https://github.com/github-api/github-api/pull/203.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/203.patch"
+ },
+ "body": "It seems that since a couple of days (or weeks?) the /user/repos is returning\n ALL the repositories that the user has access or collaborates to whilst previously\n were only the ones that belong to him.\n\n```\nJavaDoc updated in order to avoid getting unwanted results and introduced as well\nthe possibility to filter a specific type of repository to be returned:\n- All (the GitHub's default)\n- Owner (the user's repos)\n- Public / Private (public or private repos)\n- Member (the user collaborates to)\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/202",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/202/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/202/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/202/events",
+ "html_url": "https://github.com/github-api/github-api/issues/202",
+ "id": 90738294,
+ "node_id": "MDU6SXNzdWU5MDczODI5NA==",
+ "number": 202,
+ "title": "Some features of this plugin no longer work with the recent changes to api.github.com",
+ "user": {
+ "login": "neaket360pi",
+ "id": 4418194,
+ "node_id": "MDQ6VXNlcjQ0MTgxOTQ=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/4418194?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/neaket360pi",
+ "html_url": "https://github.com/neaket360pi",
+ "followers_url": "https://api.github.com/users/neaket360pi/followers",
+ "following_url": "https://api.github.com/users/neaket360pi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/neaket360pi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/neaket360pi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/neaket360pi/subscriptions",
+ "organizations_url": "https://api.github.com/users/neaket360pi/orgs",
+ "repos_url": "https://api.github.com/users/neaket360pi/repos",
+ "events_url": "https://api.github.com/users/neaket360pi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/neaket360pi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-06-24T17:27:04Z",
+ "updated_at": "2015-12-01T16:28:24Z",
+ "closed_at": "2015-12-01T16:28:24Z",
+ "author_association": "NONE",
+ "body": "On June 24th, GitHub made some breaking changes to the api. See https://developer.github.com/changes/2015-06-10-breaking-changes-to-organization-permissions-coming-on-june-24/\n\nI am currently using the Jenkins GitHub Oauth plugin which uses the `getMyOrganizations` method defined at https://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/GitHub.java#L333 \n\nUnfortunately this method relies on the API endpoint https://api.github.com/users/orgs which no longer works. \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/201",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/201/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/201/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/201/events",
+ "html_url": "https://github.com/github-api/github-api/pull/201",
+ "id": 88644891,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Mzc3NjY0NTY=",
+ "number": 201,
+ "title": "Add support for update/delete operations on issue comments",
+ "user": {
+ "login": "henryju",
+ "id": 281596,
+ "node_id": "MDQ6VXNlcjI4MTU5Ng==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/281596?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/henryju",
+ "html_url": "https://github.com/henryju",
+ "followers_url": "https://api.github.com/users/henryju/followers",
+ "following_url": "https://api.github.com/users/henryju/following{/other_user}",
+ "gists_url": "https://api.github.com/users/henryju/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/henryju/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/henryju/subscriptions",
+ "organizations_url": "https://api.github.com/users/henryju/orgs",
+ "repos_url": "https://api.github.com/users/henryju/repos",
+ "events_url": "https://api.github.com/users/henryju/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/henryju/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-06-16T07:28:34Z",
+ "updated_at": "2015-07-17T10:29:49Z",
+ "closed_at": "2015-07-17T10:29:49Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/201",
+ "html_url": "https://github.com/github-api/github-api/pull/201",
+ "diff_url": "https://github.com/github-api/github-api/pull/201.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/201.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/200",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/200/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/200/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/200/events",
+ "html_url": "https://github.com/github-api/github-api/pull/200",
+ "id": 88450804,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Mzc3MDA0MjE=",
+ "number": 200,
+ "title": "fix for unused json map when method with body, but body is null",
+ "user": {
+ "login": "lanwen",
+ "id": 1964214,
+ "node_id": "MDQ6VXNlcjE5NjQyMTQ=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1964214?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lanwen",
+ "html_url": "https://github.com/lanwen",
+ "followers_url": "https://api.github.com/users/lanwen/followers",
+ "following_url": "https://api.github.com/users/lanwen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lanwen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lanwen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lanwen/subscriptions",
+ "organizations_url": "https://api.github.com/users/lanwen/orgs",
+ "repos_url": "https://api.github.com/users/lanwen/repos",
+ "events_url": "https://api.github.com/users/lanwen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lanwen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-06-15T14:57:52Z",
+ "updated_at": "2015-06-15T18:37:14Z",
+ "closed_at": "2015-06-15T17:38:14Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/200",
+ "html_url": "https://github.com/github-api/github-api/pull/200",
+ "diff_url": "https://github.com/github-api/github-api/pull/200.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/200.patch"
+ },
+ "body": "fixes regression from b976e0ef4ef70f26b8d75a1a847b251f8c895e62\n\n\n\n[
](https://reviewable.io/reviews/kohsuke/github-api/200)\n\n\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/199",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/199/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/199/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/199/events",
+ "html_url": "https://github.com/github-api/github-api/issues/199",
+ "id": 87809196,
+ "node_id": "MDU6SXNzdWU4NzgwOTE5Ng==",
+ "number": 199,
+ "title": "Add an option to get the id of an event",
+ "user": {
+ "login": "Techcable",
+ "id": 4615889,
+ "node_id": "MDQ6VXNlcjQ2MTU4ODk=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/4615889?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Techcable",
+ "html_url": "https://github.com/Techcable",
+ "followers_url": "https://api.github.com/users/Techcable/followers",
+ "following_url": "https://api.github.com/users/Techcable/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Techcable/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Techcable/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Techcable/subscriptions",
+ "organizations_url": "https://api.github.com/users/Techcable/orgs",
+ "repos_url": "https://api.github.com/users/Techcable/repos",
+ "events_url": "https://api.github.com/users/Techcable/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Techcable/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-06-12T18:15:44Z",
+ "updated_at": "2015-12-01T16:03:56Z",
+ "closed_at": "2015-12-01T16:03:56Z",
+ "author_association": "NONE",
+ "body": "All events start with an 'event id' like this:\n\n``` json\n {\n \"id\": \"2834753425\",\n \"type\": \"ForkEvent\",\n \"actor\": {\n \"id\": 8795909,\n \"login\": \"Prismarine\",\n \"gravatar_id\": \"\",\n \"url\": \"https://api.github.com/users/Prismarine\",\n \"avatar_url\": \"https://avatars.githubusercontent.com/u/8795909?\"\n },\n \"repo\": {\n \"id\": 29747510,\n \"name\": \"Techcable/mc-dev\",\n \"url\": \"https://api.github.com/repos/Techcable/mc-dev\"\n },\n```\n\nCould you please add a method to get the event id from the api?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/198",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/198/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/198/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/198/events",
+ "html_url": "https://github.com/github-api/github-api/pull/198",
+ "id": 87317875,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Mzc0NTUxNDE=",
+ "number": 198,
+ "title": "fix for GH Enterprise which does not have rate limit reset field",
+ "user": {
+ "login": "lanwen",
+ "id": 1964214,
+ "node_id": "MDQ6VXNlcjE5NjQyMTQ=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1964214?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lanwen",
+ "html_url": "https://github.com/lanwen",
+ "followers_url": "https://api.github.com/users/lanwen/followers",
+ "following_url": "https://api.github.com/users/lanwen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lanwen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lanwen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lanwen/subscriptions",
+ "organizations_url": "https://api.github.com/users/lanwen/orgs",
+ "repos_url": "https://api.github.com/users/lanwen/repos",
+ "events_url": "https://api.github.com/users/lanwen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lanwen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2015-06-11T11:50:08Z",
+ "updated_at": "2015-06-11T21:51:00Z",
+ "closed_at": "2015-06-11T17:53:11Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/198",
+ "html_url": "https://github.com/github-api/github-api/pull/198",
+ "diff_url": "https://github.com/github-api/github-api/pull/198.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/198.patch"
+ },
+ "body": "\n\n[
](https://reviewable.io/reviews/kohsuke/github-api/198)\n\n\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/197",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/197/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/197/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/197/events",
+ "html_url": "https://github.com/github-api/github-api/pull/197",
+ "id": 87135046,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Mzc0MTM0ODg=",
+ "number": 197,
+ "title": "added Page Build",
+ "user": {
+ "login": "treeduck",
+ "id": 7660871,
+ "node_id": "MDQ6VXNlcjc2NjA4NzE=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/7660871?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/treeduck",
+ "html_url": "https://github.com/treeduck",
+ "followers_url": "https://api.github.com/users/treeduck/followers",
+ "following_url": "https://api.github.com/users/treeduck/following{/other_user}",
+ "gists_url": "https://api.github.com/users/treeduck/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/treeduck/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/treeduck/subscriptions",
+ "organizations_url": "https://api.github.com/users/treeduck/orgs",
+ "repos_url": "https://api.github.com/users/treeduck/repos",
+ "events_url": "https://api.github.com/users/treeduck/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/treeduck/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-06-10T22:54:17Z",
+ "updated_at": "2015-07-17T15:55:46Z",
+ "closed_at": "2015-07-17T10:35:20Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/197",
+ "html_url": "https://github.com/github-api/github-api/pull/197",
+ "diff_url": "https://github.com/github-api/github-api/pull/197.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/197.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/196",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/196/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/196/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/196/events",
+ "html_url": "https://github.com/github-api/github-api/issues/196",
+ "id": 85801053,
+ "node_id": "MDU6SXNzdWU4NTgwMTA1Mw==",
+ "number": 196,
+ "title": "Need documentation for how to clone a git repo to the disk",
+ "user": {
+ "login": "madhephaestus",
+ "id": 1254726,
+ "node_id": "MDQ6VXNlcjEyNTQ3MjY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1254726?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/madhephaestus",
+ "html_url": "https://github.com/madhephaestus",
+ "followers_url": "https://api.github.com/users/madhephaestus/followers",
+ "following_url": "https://api.github.com/users/madhephaestus/following{/other_user}",
+ "gists_url": "https://api.github.com/users/madhephaestus/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/madhephaestus/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/madhephaestus/subscriptions",
+ "organizations_url": "https://api.github.com/users/madhephaestus/orgs",
+ "repos_url": "https://api.github.com/users/madhephaestus/repos",
+ "events_url": "https://api.github.com/users/madhephaestus/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/madhephaestus/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-06-06T18:56:25Z",
+ "updated_at": "2015-12-01T16:27:12Z",
+ "closed_at": "2015-12-01T16:22:21Z",
+ "author_association": "NONE",
+ "body": "I can not find the API equivalent of 'git clone .git' to pull the full contents of a repository to the local disk. I would also like to read from the dist a repository for local caching of files. Is this possible with github-api?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/194",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/194/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/194/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/194/events",
+ "html_url": "https://github.com/github-api/github-api/issues/194",
+ "id": 81613385,
+ "node_id": "MDU6SXNzdWU4MTYxMzM4NQ==",
+ "number": 194,
+ "title": "NullPointerException in Requester.java",
+ "user": {
+ "login": "anderssonjohan",
+ "id": 435885,
+ "node_id": "MDQ6VXNlcjQzNTg4NQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/435885?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/anderssonjohan",
+ "html_url": "https://github.com/anderssonjohan",
+ "followers_url": "https://api.github.com/users/anderssonjohan/followers",
+ "following_url": "https://api.github.com/users/anderssonjohan/following{/other_user}",
+ "gists_url": "https://api.github.com/users/anderssonjohan/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/anderssonjohan/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/anderssonjohan/subscriptions",
+ "organizations_url": "https://api.github.com/users/anderssonjohan/orgs",
+ "repos_url": "https://api.github.com/users/anderssonjohan/repos",
+ "events_url": "https://api.github.com/users/anderssonjohan/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/anderssonjohan/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2015-05-27T20:35:27Z",
+ "updated_at": "2015-06-11T14:33:23Z",
+ "closed_at": "2015-06-11T14:33:23Z",
+ "author_association": "NONE",
+ "body": "I got this nasty stacktrace when trying to set up a Jenkins instance with GitHub OAuth login.\nEverything worked fine for starters, but then it just started to throw this at me.\nMaybe there is some API throttling going on that isn't handled thourougly?\n\nI'm using Jenkins v1.615.\n\n```\njavax.servlet.ServletException: java.lang.NullPointerException\n at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:796)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)\n at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:211)\n at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)\n at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)\n at org.kohsuke.stapler.Stapler.service(Stapler.java:238)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)\n at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)\n at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:123)\n at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:198)\n at net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:176)\n at net.bull.javamelody.PluginMonitoringFilter.doFilter(PluginMonitoringFilter.java:85)\n at org.jvnet.hudson.plugins.monitoring.HudsonMonitoringFilter.doFilter(HudsonMonitoringFilter.java:99)\n at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:120)\n at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)\n at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:120)\n at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:114)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)\n at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)\n at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)\n at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)\n at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)\n at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)\n at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)\n at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)\n at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)\n at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)\n at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)\n at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)\n at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)\n at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)\n at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)\n at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)\n at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)\n at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)\n at org.eclipse.jetty.server.Server.handle(Server.java:370)\n at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)\n at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)\n at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)\n at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)\n at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)\n at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)\n at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)\n at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)\n at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)\n at java.lang.Thread.run(Unknown Source)\nCaused by: java.lang.NullPointerException\n at org.kohsuke.github.Requester.handleApiError(Requester.java:486)\n at org.kohsuke.github.Requester._to(Requester.java:245)\n at org.kohsuke.github.Requester.to(Requester.java:191)\n at org.kohsuke.github.GitHub.getMyself(GitHub.java:261)\n at org.kohsuke.github.GitHub.(GitHub.java:137)\n at org.kohsuke.github.GitHubBuilder.build(GitHubBuilder.java:195)\n at org.kohsuke.github.GitHub.connectUsingOAuth(GitHub.java:187)\n at org.jenkinsci.plugins.GithubAuthenticationToken.(GithubAuthenticationToken.java:87)\n at org.jenkinsci.plugins.GithubSecurityRealm.doFinishLogin(GithubSecurityRealm.java:386)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)\n at java.lang.reflect.Method.invoke(Unknown Source)\n at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)\n at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)\n at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)\n at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:121)\n at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)\n at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)\n ... 70 more\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/193",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/193/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/193/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/193/events",
+ "html_url": "https://github.com/github-api/github-api/pull/193",
+ "id": 81448719,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzYzMDM4NjE=",
+ "number": 193,
+ "title": "Fix bug in Requester. The body would never get assembled.",
+ "user": {
+ "login": "yegorius",
+ "id": 309959,
+ "node_id": "MDQ6VXNlcjMwOTk1OQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/309959?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/yegorius",
+ "html_url": "https://github.com/yegorius",
+ "followers_url": "https://api.github.com/users/yegorius/followers",
+ "following_url": "https://api.github.com/users/yegorius/following{/other_user}",
+ "gists_url": "https://api.github.com/users/yegorius/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/yegorius/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/yegorius/subscriptions",
+ "organizations_url": "https://api.github.com/users/yegorius/orgs",
+ "repos_url": "https://api.github.com/users/yegorius/repos",
+ "events_url": "https://api.github.com/users/yegorius/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/yegorius/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-05-27T13:34:25Z",
+ "updated_at": "2015-09-30T12:38:44Z",
+ "closed_at": "2015-07-17T10:38:23Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/193",
+ "html_url": "https://github.com/github-api/github-api/pull/193",
+ "diff_url": "https://github.com/github-api/github-api/pull/193.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/193.patch"
+ },
+ "body": "Eliminate dead code branch in Requester::buildRequest().\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/192",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/192/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/192/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/192/events",
+ "html_url": "https://github.com/github-api/github-api/pull/192",
+ "id": 76848976,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzU1NDgwOTU=",
+ "number": 192,
+ "title": "Enable creation and retrieval of org webhooks",
+ "user": {
+ "login": "chrisrhut",
+ "id": 1924951,
+ "node_id": "MDQ6VXNlcjE5MjQ5NTE=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1924951?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/chrisrhut",
+ "html_url": "https://github.com/chrisrhut",
+ "followers_url": "https://api.github.com/users/chrisrhut/followers",
+ "following_url": "https://api.github.com/users/chrisrhut/following{/other_user}",
+ "gists_url": "https://api.github.com/users/chrisrhut/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/chrisrhut/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/chrisrhut/subscriptions",
+ "organizations_url": "https://api.github.com/users/chrisrhut/orgs",
+ "repos_url": "https://api.github.com/users/chrisrhut/repos",
+ "events_url": "https://api.github.com/users/chrisrhut/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/chrisrhut/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-05-15T20:31:02Z",
+ "updated_at": "2015-07-17T11:09:52Z",
+ "closed_at": "2015-07-17T11:09:52Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/192",
+ "html_url": "https://github.com/github-api/github-api/pull/192",
+ "diff_url": "https://github.com/github-api/github-api/pull/192.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/192.patch"
+ },
+ "body": "made GHHook abstract and created two concrete subclasses for org\nand repo hooks. Created utility class GHHooks to manage creation\nand retrieval of org/repo hooks with minimal code duplication. These\nare invoked by GHOrganization and GHRepository respectively.\n\nAdditional info on org webhooks here: https://developer.github.com/v3/orgs/hooks/\n\nNote: requires #189 to test creation of org/repo hooks\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/191",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/191/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/191/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/191/events",
+ "html_url": "https://github.com/github-api/github-api/issues/191",
+ "id": 76350040,
+ "node_id": "MDU6SXNzdWU3NjM1MDA0MA==",
+ "number": 191,
+ "title": "Dependency problems",
+ "user": {
+ "login": "yanickrochon",
+ "id": 78461,
+ "node_id": "MDQ6VXNlcjc4NDYx",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/78461?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/yanickrochon",
+ "html_url": "https://github.com/yanickrochon",
+ "followers_url": "https://api.github.com/users/yanickrochon/followers",
+ "following_url": "https://api.github.com/users/yanickrochon/following{/other_user}",
+ "gists_url": "https://api.github.com/users/yanickrochon/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/yanickrochon/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/yanickrochon/subscriptions",
+ "organizations_url": "https://api.github.com/users/yanickrochon/orgs",
+ "repos_url": "https://api.github.com/users/yanickrochon/repos",
+ "events_url": "https://api.github.com/users/yanickrochon/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/yanickrochon/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-05-14T12:51:07Z",
+ "updated_at": "2015-05-15T00:01:01Z",
+ "closed_at": "2015-05-15T00:01:01Z",
+ "author_association": "NONE",
+ "body": "```\nThe type com.squareup.okhttp.OkUrlFactory cannot be resolved. It is indirectly referenced from required .class files\n```\n\nI'm not sure how I can resolve this. My project is new, I'm not familiar with Maven, and I'm not sure what am I missing....\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/190",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/190/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/190/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/190/events",
+ "html_url": "https://github.com/github-api/github-api/pull/190",
+ "id": 74618200,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzUwNjMzNjg=",
+ "number": 190,
+ "title": "allow default branch to be set",
+ "user": {
+ "login": "if6was9",
+ "id": 463742,
+ "node_id": "MDQ6VXNlcjQ2Mzc0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/463742?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/if6was9",
+ "html_url": "https://github.com/if6was9",
+ "followers_url": "https://api.github.com/users/if6was9/followers",
+ "following_url": "https://api.github.com/users/if6was9/following{/other_user}",
+ "gists_url": "https://api.github.com/users/if6was9/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/if6was9/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/if6was9/subscriptions",
+ "organizations_url": "https://api.github.com/users/if6was9/orgs",
+ "repos_url": "https://api.github.com/users/if6was9/repos",
+ "events_url": "https://api.github.com/users/if6was9/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/if6was9/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-05-09T08:06:49Z",
+ "updated_at": "2015-07-17T10:45:40Z",
+ "closed_at": "2015-07-17T10:45:40Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/190",
+ "html_url": "https://github.com/github-api/github-api/pull/190",
+ "diff_url": "https://github.com/github-api/github-api/pull/190.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/190.patch"
+ },
+ "body": "GHRepository did not provide a method to set the default branch. \n\nNote that https://github.com/kohsuke/github-api/pull/189 is required for this to work. \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/189",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/189/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/189/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/189/events",
+ "html_url": "https://github.com/github-api/github-api/pull/189",
+ "id": 74617885,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzUwNjMzMzI=",
+ "number": 189,
+ "title": "fixed regression that caused POST operations to be sent as GET",
+ "user": {
+ "login": "if6was9",
+ "id": 463742,
+ "node_id": "MDQ6VXNlcjQ2Mzc0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/463742?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/if6was9",
+ "html_url": "https://github.com/if6was9",
+ "followers_url": "https://api.github.com/users/if6was9/followers",
+ "following_url": "https://api.github.com/users/if6was9/following{/other_user}",
+ "gists_url": "https://api.github.com/users/if6was9/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/if6was9/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/if6was9/subscriptions",
+ "organizations_url": "https://api.github.com/users/if6was9/orgs",
+ "repos_url": "https://api.github.com/users/if6was9/repos",
+ "events_url": "https://api.github.com/users/if6was9/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/if6was9/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-05-09T08:03:24Z",
+ "updated_at": "2015-07-17T10:39:52Z",
+ "closed_at": "2015-07-17T10:39:52Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/189",
+ "html_url": "https://github.com/github-api/github-api/pull/189",
+ "diff_url": "https://github.com/github-api/github-api/pull/189.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/189.patch"
+ },
+ "body": "This fixes a major regression where operations that are supposed to POST data to the server were actually just issuing GETs.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/188",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/188/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/188/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/188/events",
+ "html_url": "https://github.com/github-api/github-api/issues/188",
+ "id": 73772045,
+ "node_id": "MDU6SXNzdWU3Mzc3MjA0NQ==",
+ "number": 188,
+ "title": "JDK Version",
+ "user": {
+ "login": "mohamed-ennahdi",
+ "id": 6767325,
+ "node_id": "MDQ6VXNlcjY3NjczMjU=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/6767325?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mohamed-ennahdi",
+ "html_url": "https://github.com/mohamed-ennahdi",
+ "followers_url": "https://api.github.com/users/mohamed-ennahdi/followers",
+ "following_url": "https://api.github.com/users/mohamed-ennahdi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mohamed-ennahdi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mohamed-ennahdi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mohamed-ennahdi/subscriptions",
+ "organizations_url": "https://api.github.com/users/mohamed-ennahdi/orgs",
+ "repos_url": "https://api.github.com/users/mohamed-ennahdi/repos",
+ "events_url": "https://api.github.com/users/mohamed-ennahdi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mohamed-ennahdi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-05-06T23:40:58Z",
+ "updated_at": "2017-05-04T20:01:46Z",
+ "closed_at": "2015-12-01T15:58:26Z",
+ "author_association": "NONE",
+ "body": "github-api was developed with JDK 1.4?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/187",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/187/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/187/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/187/events",
+ "html_url": "https://github.com/github-api/github-api/pull/187",
+ "id": 72451044,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzQ1NDI2OTY=",
+ "number": 187,
+ "title": "Recognize previous_file field in GHCommit.File",
+ "user": {
+ "login": "yegorius",
+ "id": 309959,
+ "node_id": "MDQ6VXNlcjMwOTk1OQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/309959?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/yegorius",
+ "html_url": "https://github.com/yegorius",
+ "followers_url": "https://api.github.com/users/yegorius/followers",
+ "following_url": "https://api.github.com/users/yegorius/following{/other_user}",
+ "gists_url": "https://api.github.com/users/yegorius/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/yegorius/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/yegorius/subscriptions",
+ "organizations_url": "https://api.github.com/users/yegorius/orgs",
+ "repos_url": "https://api.github.com/users/yegorius/repos",
+ "events_url": "https://api.github.com/users/yegorius/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/yegorius/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-05-01T15:10:38Z",
+ "updated_at": "2015-07-17T10:46:21Z",
+ "closed_at": "2015-07-17T10:46:21Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/187",
+ "html_url": "https://github.com/github-api/github-api/pull/187",
+ "diff_url": "https://github.com/github-api/github-api/pull/187.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/187.patch"
+ },
+ "body": "This field appears in API response in case file has moved.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/186",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/186/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/186/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/186/events",
+ "html_url": "https://github.com/github-api/github-api/issues/186",
+ "id": 72300355,
+ "node_id": "MDU6SXNzdWU3MjMwMDM1NQ==",
+ "number": 186,
+ "title": "Obtain Pushed Commit using GitHub API",
+ "user": {
+ "login": "mohamed-ennahdi",
+ "id": 6767325,
+ "node_id": "MDQ6VXNlcjY3NjczMjU=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/6767325?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mohamed-ennahdi",
+ "html_url": "https://github.com/mohamed-ennahdi",
+ "followers_url": "https://api.github.com/users/mohamed-ennahdi/followers",
+ "following_url": "https://api.github.com/users/mohamed-ennahdi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mohamed-ennahdi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mohamed-ennahdi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mohamed-ennahdi/subscriptions",
+ "organizations_url": "https://api.github.com/users/mohamed-ennahdi/orgs",
+ "repos_url": "https://api.github.com/users/mohamed-ennahdi/repos",
+ "events_url": "https://api.github.com/users/mohamed-ennahdi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mohamed-ennahdi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-04-30T22:34:19Z",
+ "updated_at": "2015-12-01T16:06:15Z",
+ "closed_at": "2015-12-01T16:06:15Z",
+ "author_association": "NONE",
+ "body": "Is it enough to use repo.listCommits() to get \"pushed\" commits?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/185",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/185/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/185/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/185/events",
+ "html_url": "https://github.com/github-api/github-api/pull/185",
+ "id": 72099945,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzQ0Mzg0MTU=",
+ "number": 185,
+ "title": "Fixes #183: added a method listForks() to GHRepository",
+ "user": {
+ "login": "marc-guenther",
+ "id": 393230,
+ "node_id": "MDQ6VXNlcjM5MzIzMA==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/393230?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/marc-guenther",
+ "html_url": "https://github.com/marc-guenther",
+ "followers_url": "https://api.github.com/users/marc-guenther/followers",
+ "following_url": "https://api.github.com/users/marc-guenther/following{/other_user}",
+ "gists_url": "https://api.github.com/users/marc-guenther/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/marc-guenther/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/marc-guenther/subscriptions",
+ "organizations_url": "https://api.github.com/users/marc-guenther/orgs",
+ "repos_url": "https://api.github.com/users/marc-guenther/repos",
+ "events_url": "https://api.github.com/users/marc-guenther/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/marc-guenther/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2015-04-30T08:33:04Z",
+ "updated_at": "2015-07-17T10:48:29Z",
+ "closed_at": "2015-07-17T10:47:17Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/185",
+ "html_url": "https://github.com/github-api/github-api/pull/185",
+ "diff_url": "https://github.com/github-api/github-api/pull/185.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/185.patch"
+ },
+ "body": "listForks() will list all forks of a repository.\n\nAn optional sort argument is also supported.\n\nI did not know if list\\* or get\\* is the way to go, but as getForks() is already taken (it returns the number of forks), I decided to use listForks(), with an optional sort argument.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/184",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/184/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/184/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/184/events",
+ "html_url": "https://github.com/github-api/github-api/issues/184",
+ "id": 72098068,
+ "node_id": "MDU6SXNzdWU3MjA5ODA2OA==",
+ "number": 184,
+ "title": "Enable this to work with GitHub Enterprise",
+ "user": {
+ "login": "clancychilds",
+ "id": 8244623,
+ "node_id": "MDQ6VXNlcjgyNDQ2MjM=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/8244623?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/clancychilds",
+ "html_url": "https://github.com/clancychilds",
+ "followers_url": "https://api.github.com/users/clancychilds/followers",
+ "following_url": "https://api.github.com/users/clancychilds/following{/other_user}",
+ "gists_url": "https://api.github.com/users/clancychilds/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/clancychilds/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/clancychilds/subscriptions",
+ "organizations_url": "https://api.github.com/users/clancychilds/orgs",
+ "repos_url": "https://api.github.com/users/clancychilds/repos",
+ "events_url": "https://api.github.com/users/clancychilds/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/clancychilds/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-04-30T08:24:05Z",
+ "updated_at": "2015-05-05T06:44:59Z",
+ "closed_at": "2015-05-05T06:44:59Z",
+ "author_association": "NONE",
+ "body": "Putting this out there without much knowledge about GitHub Enterprise APIs.\n\nOur organization uses GitHub Enterprise hosted internally. We would love to integrate Gerrit, which uses this package, with it, but the GitHub API in here is currently a static final string: https://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/GitHub.java#L558\n\nWould be very nice if there was a way to use this with the apis for an internal Enterprise instance of github.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/183",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/183/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/183/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/183/events",
+ "html_url": "https://github.com/github-api/github-api/issues/183",
+ "id": 71697591,
+ "node_id": "MDU6SXNzdWU3MTY5NzU5MQ==",
+ "number": 183,
+ "title": "no way to list forks of a repository",
+ "user": {
+ "login": "marc-guenther",
+ "id": 393230,
+ "node_id": "MDQ6VXNlcjM5MzIzMA==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/393230?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/marc-guenther",
+ "html_url": "https://github.com/marc-guenther",
+ "followers_url": "https://api.github.com/users/marc-guenther/followers",
+ "following_url": "https://api.github.com/users/marc-guenther/following{/other_user}",
+ "gists_url": "https://api.github.com/users/marc-guenther/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/marc-guenther/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/marc-guenther/subscriptions",
+ "organizations_url": "https://api.github.com/users/marc-guenther/orgs",
+ "repos_url": "https://api.github.com/users/marc-guenther/repos",
+ "events_url": "https://api.github.com/users/marc-guenther/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/marc-guenther/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2015-04-28T20:42:11Z",
+ "updated_at": "2015-07-17T10:47:20Z",
+ "closed_at": "2015-07-17T10:47:20Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "Seems there is no way to list all the forks of a GHRepository. I only find methods to count them(?), and to check if it is a fork, and look for parent/source, and to create a fork.\n\nGithub API supports to [list forks](https://developer.github.com/v3/repos/forks/)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/182",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/182/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/182/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/182/events",
+ "html_url": "https://github.com/github-api/github-api/pull/182",
+ "id": 71288224,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzQxNjk1NjQ=",
+ "number": 182,
+ "title": "Fix invalid URL for pull request comments update/delete",
+ "user": {
+ "login": "henryju",
+ "id": 281596,
+ "node_id": "MDQ6VXNlcjI4MTU5Ng==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/281596?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/henryju",
+ "html_url": "https://github.com/henryju",
+ "followers_url": "https://api.github.com/users/henryju/followers",
+ "following_url": "https://api.github.com/users/henryju/following{/other_user}",
+ "gists_url": "https://api.github.com/users/henryju/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/henryju/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/henryju/subscriptions",
+ "organizations_url": "https://api.github.com/users/henryju/orgs",
+ "repos_url": "https://api.github.com/users/henryju/repos",
+ "events_url": "https://api.github.com/users/henryju/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/henryju/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 14,
+ "created_at": "2015-04-27T13:42:15Z",
+ "updated_at": "2015-07-17T10:47:50Z",
+ "closed_at": "2015-07-17T10:47:43Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/182",
+ "html_url": "https://github.com/github-api/github-api/pull/182",
+ "diff_url": "https://github.com/github-api/github-api/pull/182.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/182.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/181",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/181/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/181/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/181/events",
+ "html_url": "https://github.com/github-api/github-api/issues/181",
+ "id": 70777432,
+ "node_id": "MDU6SXNzdWU3MDc3NzQzMg==",
+ "number": 181,
+ "title": "Nothing is Fetched when calling repo.listNotifications();",
+ "user": {
+ "login": "mohamed-ennahdi",
+ "id": 6767325,
+ "node_id": "MDQ6VXNlcjY3NjczMjU=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/6767325?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mohamed-ennahdi",
+ "html_url": "https://github.com/mohamed-ennahdi",
+ "followers_url": "https://api.github.com/users/mohamed-ennahdi/followers",
+ "following_url": "https://api.github.com/users/mohamed-ennahdi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mohamed-ennahdi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mohamed-ennahdi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mohamed-ennahdi/subscriptions",
+ "organizations_url": "https://api.github.com/users/mohamed-ennahdi/orgs",
+ "repos_url": "https://api.github.com/users/mohamed-ennahdi/repos",
+ "events_url": "https://api.github.com/users/mohamed-ennahdi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mohamed-ennahdi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2015-04-24T19:44:01Z",
+ "updated_at": "2015-04-30T22:31:11Z",
+ "closed_at": "2015-04-30T22:31:11Z",
+ "author_association": "NONE",
+ "body": "Hello,\n\nI try to fetch notifications of a specific repository, but nothing is retrieved (See code below).\n\nWhat am I missing ?\n\nGHRepository repo = gh.getUser(\"blueimp\").getRepository(\"jQuery-File-Upload\");\nSystem.out.println(\"Start\");\nfor (GHThread t : repo.listNotifications().nonBlocking(true)) {\n System.out.println(t.getReason());\n}\nSystem.out.println(\"Finish\");\n\nThank you,\nMohamed Ennahdi El Idrissi\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/180",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/180/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/180/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/180/events",
+ "html_url": "https://github.com/github-api/github-api/issues/180",
+ "id": 70015991,
+ "node_id": "MDU6SXNzdWU3MDAxNTk5MQ==",
+ "number": 180,
+ "title": "java.net.ProtocolException: DELETE does not support writing",
+ "user": {
+ "login": "varis",
+ "id": 65634,
+ "node_id": "MDQ6VXNlcjY1NjM0",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/65634?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/varis",
+ "html_url": "https://github.com/varis",
+ "followers_url": "https://api.github.com/users/varis/followers",
+ "following_url": "https://api.github.com/users/varis/following{/other_user}",
+ "gists_url": "https://api.github.com/users/varis/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/varis/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/varis/subscriptions",
+ "organizations_url": "https://api.github.com/users/varis/orgs",
+ "repos_url": "https://api.github.com/users/varis/repos",
+ "events_url": "https://api.github.com/users/varis/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/varis/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2015-04-22T04:03:18Z",
+ "updated_at": "2015-04-26T17:52:58Z",
+ "closed_at": "2015-04-26T17:52:58Z",
+ "author_association": "NONE",
+ "body": "run example from http://github-api.kohsuke.org/\n\n```\nGitHub github = GitHub.connect();\nGHRepository repo = github.createRepository(\n \"new-repository\",\"this is my new repository\",\n \"http://www.kohsuke.org/\",true/*public*/);\nrepo.delete();\n```\n\non android 4.4.4 API 19 and on delete got error\n\n----- begin exception -----\n04-21 23:58:06.992 1823-1836/? I/TestRunner﹕ java.net.ProtocolException: DELETE does not support writing\n at com.android.okhttp.internal.http.HttpURLConnectionImpl.initHttpEngine(HttpURLConnectionImpl.java:258)\n at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:86)\n at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197)\n at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:254)\n at org.kohsuke.github.Requester.buildRequest(Requester.java:299)\n at org.kohsuke.github.Requester._to(Requester.java:221)\n at org.kohsuke.github.Requester.to(Requester.java:191)\n at org.kohsuke.github.Requester.to(Requester.java:179)\n at org.kohsuke.github.GHRepository.delete(GHRepository.java:502)\n at com.example.varis.githubtest.ApplicationTest.test(ApplicationTest.java:25)\n at java.lang.reflect.Method.invokeNative(Native Method)\n at java.lang.reflect.Method.invoke(Method.java:515)\n at junit.framework.TestCase.runTest(TestCase.java:168)\n at junit.framework.TestCase.runBare(TestCase.java:134)\n at junit.framework.TestResult$1.protect(TestResult.java:115)\n at junit.framework.TestResult.runProtected(TestResult.java:133)\n at junit.framework.TestResult.run(TestResult.java:118)\n at junit.framework.TestCase.run(TestCase.java:124)\n at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)\n at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)\n at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)\n at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/179",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/179/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/179/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/179/events",
+ "html_url": "https://github.com/github-api/github-api/pull/179",
+ "id": 68386833,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzMyNjAzMjM=",
+ "number": 179,
+ "title": "Fix NullPointerException on RateLimitHandler when handling API errors.",
+ "user": {
+ "login": "lskillen",
+ "id": 2248287,
+ "node_id": "MDQ6VXNlcjIyNDgyODc=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/2248287?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lskillen",
+ "html_url": "https://github.com/lskillen",
+ "followers_url": "https://api.github.com/users/lskillen/followers",
+ "following_url": "https://api.github.com/users/lskillen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lskillen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lskillen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lskillen/subscriptions",
+ "organizations_url": "https://api.github.com/users/lskillen/orgs",
+ "repos_url": "https://api.github.com/users/lskillen/repos",
+ "events_url": "https://api.github.com/users/lskillen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lskillen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-04-14T14:06:00Z",
+ "updated_at": "2015-04-20T00:03:50Z",
+ "closed_at": "2015-04-20T00:03:50Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/179",
+ "html_url": "https://github.com/github-api/github-api/pull/179",
+ "diff_url": "https://github.com/github-api/github-api/pull/179.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/179.patch"
+ },
+ "body": "Hello!\n\nWe encountered a NullPointerException after the upgrade to 1.67 when rate limited by the GitHub API. Essentially it is because the call to `getMyself().getLogin()` failed during the construction of the GitHub object due to being rate limited. However, the RateLimitHandler object had not yet been set at that point in time within the GitHub object constructor. Fix is a simple statement movement.\n\nError within GitHub::handleApiError():\n\n```\n if (\"0\".equals(uc.getHeaderField(\"X-RateLimit-Remaining\"))) {\n root.rateLimitHandler.onError(e,uc); // rateLimitHandler is null\n }\n```\n\nRan the test suite locally after setting github authentication details:\n\n```\nResults :\n\nFailed tests: setLabels(org.kohsuke.github.PullRequestTest): expected:<1> but was:<0>\n setAssignee(org.kohsuke.github.PullRequestTest): expected: but was:\n\nTests in error:\n testMembership(org.kohsuke.github.AppTest): {\"message\":\"Must have push access to view repository collaborators.\",\"documentation_url\":\"https://developer.github.com/v3\"}\n testListDeployments(org.kohsuke.github.AppTest): {\"message\":\"No ref found for: master\",\"documentation_url\":\"https://developer.github.com/v3\"}\n testCreateDeployment(org.kohsuke.github.AppTest): {\"message\":\"No ref found for: master\",\"documentation_url\":\"https://developer.github.com/v3\"}\n testMemberPagenation(org.kohsuke.github.AppTest): java.io.IOException: {\"message\":\"Must have admin rights to Repository.\",\"documentation_url\":\"https://developer.github.com/v3\"}\n testRepoLabel(org.kohsuke.github.AppTest): {\"message\":\"Not Found\",\"documentation_url\":\"https://developer.github.com/v3/issues/labels/#create-a-label\"}\n testGetDeploymentStatuses(org.kohsuke.github.AppTest): {\"message\":\"No ref found for: master\",\"documentation_url\":\"https://developer.github.com/v3\"}\n testCreateRepository(org.kohsuke.github.LifecycleTest): java.io.IOException: {\"message\":\"Must have admin rights to Repository.\",\"documentation_url\":\"https://developer.github.com/v3\"}\n\nTests run: 79, Failures: 2, Errors: 7, Skipped: 10\n```\n\nFailures seem to be mostly related to access to the github-api-test-org (which obviously I don't have any permissions for), and I had the same results before/after the change so it looks like they are unrelated to it - Hopefully that's acceptable!\n\nThanks,\nLee\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/177",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/177/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/177/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/177/events",
+ "html_url": "https://github.com/github-api/github-api/pull/177",
+ "id": 67965127,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzMxMjczNTU=",
+ "number": 177,
+ "title": "Added getters for the objects notifications refer to",
+ "user": {
+ "login": "syniuhin",
+ "id": 6153943,
+ "node_id": "MDQ6VXNlcjYxNTM5NDM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6153943?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/syniuhin",
+ "html_url": "https://github.com/syniuhin",
+ "followers_url": "https://api.github.com/users/syniuhin/followers",
+ "following_url": "https://api.github.com/users/syniuhin/following{/other_user}",
+ "gists_url": "https://api.github.com/users/syniuhin/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/syniuhin/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/syniuhin/subscriptions",
+ "organizations_url": "https://api.github.com/users/syniuhin/orgs",
+ "repos_url": "https://api.github.com/users/syniuhin/repos",
+ "events_url": "https://api.github.com/users/syniuhin/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/syniuhin/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-04-12T22:00:22Z",
+ "updated_at": "2015-04-13T23:38:22Z",
+ "closed_at": "2015-04-13T23:38:22Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/177",
+ "html_url": "https://github.com/github-api/github-api/pull/177",
+ "diff_url": "https://github.com/github-api/github-api/pull/177.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/177.patch"
+ },
+ "body": "I'm using this wrapper primarily interacting with notifications, so I find these methods useful.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/176",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/176/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/176/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/176/events",
+ "html_url": "https://github.com/github-api/github-api/issues/176",
+ "id": 67408401,
+ "node_id": "MDU6SXNzdWU2NzQwODQwMQ==",
+ "number": 176,
+ "title": "Merging with SHA1",
+ "user": {
+ "login": "sonOfRa",
+ "id": 1269520,
+ "node_id": "MDQ6VXNlcjEyNjk1MjA=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1269520?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sonOfRa",
+ "html_url": "https://github.com/sonOfRa",
+ "followers_url": "https://api.github.com/users/sonOfRa/followers",
+ "following_url": "https://api.github.com/users/sonOfRa/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sonOfRa/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sonOfRa/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sonOfRa/subscriptions",
+ "organizations_url": "https://api.github.com/users/sonOfRa/orgs",
+ "repos_url": "https://api.github.com/users/sonOfRa/repos",
+ "events_url": "https://api.github.com/users/sonOfRa/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sonOfRa/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2015-04-09T17:15:25Z",
+ "updated_at": "2015-04-20T00:25:32Z",
+ "closed_at": "2015-04-20T00:25:32Z",
+ "author_association": "NONE",
+ "body": "Does the current implementation use the SHA-1 head to check whether a merge of a Pull Request is good? https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button Describes that you can add a SHA-1 to the merge API call, which causes GitHub to check whether the SHA-1 and the current head of that Pull Request match.\n\nThis would be useful for security reasons in our application. We're building a review-tool-bot that merges Pull Requests for us after we signal (via a comment) that the Pull Request is OK to merge. Now, a malicious person could theoretically introduce a new commit to their Pull Request branch, while the Request to merge is still on the way (either from the GitHub comment webhook to the bot, or from the bot to the GitHub API). If the SHA-1 doesn't match, the merge should be denied by GitHub.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/175",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/175/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/175/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/175/events",
+ "html_url": "https://github.com/github-api/github-api/pull/175",
+ "id": 66154677,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzI1OTEyNzU=",
+ "number": 175,
+ "title": "Added the source attribute to GHRepository",
+ "user": {
+ "login": "kickroot",
+ "id": 1015101,
+ "node_id": "MDQ6VXNlcjEwMTUxMDE=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1015101?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kickroot",
+ "html_url": "https://github.com/kickroot",
+ "followers_url": "https://api.github.com/users/kickroot/followers",
+ "following_url": "https://api.github.com/users/kickroot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kickroot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kickroot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kickroot/subscriptions",
+ "organizations_url": "https://api.github.com/users/kickroot/orgs",
+ "repos_url": "https://api.github.com/users/kickroot/repos",
+ "events_url": "https://api.github.com/users/kickroot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kickroot/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-04-03T14:18:37Z",
+ "updated_at": "2015-04-13T23:50:10Z",
+ "closed_at": "2015-04-13T23:50:10Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/175",
+ "html_url": "https://github.com/github-api/github-api/pull/175",
+ "diff_url": "https://github.com/github-api/github-api/pull/175.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/175.patch"
+ },
+ "body": "Forked repositories have a 'source' attribute that specifies the repository they were forked from. The source attribute is itself a GHRepository instance. \n\nFor repos that were not forked, this field will be null.\n"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-b2fa4ec1-c691-4d0a-a3b2-13e129aa1dea.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-b2fa4ec1-c691-4d0a-a3b2-13e129aa1dea.json
new file mode 100644
index 000000000..5238f993c
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-b2fa4ec1-c691-4d0a-a3b2-13e129aa1dea.json
@@ -0,0 +1,1430 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/82",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/82/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/82/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/82/events",
+ "html_url": "https://github.com/github-api/github-api/pull/82",
+ "id": 31208218,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQ1ODMzNTI=",
+ "number": 82,
+ "title": "Cast url.openConnection() to HttpURLConnection instead of HttpsURLConnec...",
+ "user": {
+ "login": "prazanna",
+ "id": 1994157,
+ "node_id": "MDQ6VXNlcjE5OTQxNTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1994157?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/prazanna",
+ "html_url": "https://github.com/prazanna",
+ "followers_url": "https://api.github.com/users/prazanna/followers",
+ "following_url": "https://api.github.com/users/prazanna/following{/other_user}",
+ "gists_url": "https://api.github.com/users/prazanna/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/prazanna/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/prazanna/subscriptions",
+ "organizations_url": "https://api.github.com/users/prazanna/orgs",
+ "repos_url": "https://api.github.com/users/prazanna/repos",
+ "events_url": "https://api.github.com/users/prazanna/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/prazanna/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-04-10T01:15:31Z",
+ "updated_at": "2014-07-01T17:26:06Z",
+ "closed_at": "2014-04-13T15:22:00Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/82",
+ "html_url": "https://github.com/github-api/github-api/pull/82",
+ "diff_url": "https://github.com/github-api/github-api/pull/82.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/82.patch"
+ },
+ "body": "...tion. Useful for enterprise githubs which does not have https set up.\n\nHi Koshuke,\n\nPlease accept this pull request if this makes sense to you.\n\nThanks\nPrasanna\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/81",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/81/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/81/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/81/events",
+ "html_url": "https://github.com/github-api/github-api/issues/81",
+ "id": 30787542,
+ "node_id": "MDU6SXNzdWUzMDc4NzU0Mg==",
+ "number": 81,
+ "title": "Add support for setting explicit connection timeouts",
+ "user": {
+ "login": "giladegozi",
+ "id": 3824338,
+ "node_id": "MDQ6VXNlcjM4MjQzMzg=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/3824338?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/giladegozi",
+ "html_url": "https://github.com/giladegozi",
+ "followers_url": "https://api.github.com/users/giladegozi/followers",
+ "following_url": "https://api.github.com/users/giladegozi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/giladegozi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/giladegozi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/giladegozi/subscriptions",
+ "organizations_url": "https://api.github.com/users/giladegozi/orgs",
+ "repos_url": "https://api.github.com/users/giladegozi/repos",
+ "events_url": "https://api.github.com/users/giladegozi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/giladegozi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-04-03T15:50:10Z",
+ "updated_at": "2014-04-13T15:52:24Z",
+ "closed_at": "2014-04-13T15:52:24Z",
+ "author_association": "NONE",
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/80",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/80/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/80/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/80/events",
+ "html_url": "https://github.com/github-api/github-api/pull/80",
+ "id": 30709448,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQyOTIxMTE=",
+ "number": 80,
+ "title": "Add support for removing a user from an Organisation",
+ "user": {
+ "login": "rtyley",
+ "id": 52038,
+ "node_id": "MDQ6VXNlcjUyMDM4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/52038?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rtyley",
+ "html_url": "https://github.com/rtyley",
+ "followers_url": "https://api.github.com/users/rtyley/followers",
+ "following_url": "https://api.github.com/users/rtyley/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rtyley/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rtyley/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rtyley/subscriptions",
+ "organizations_url": "https://api.github.com/users/rtyley/orgs",
+ "repos_url": "https://api.github.com/users/rtyley/repos",
+ "events_url": "https://api.github.com/users/rtyley/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rtyley/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-04-02T17:48:28Z",
+ "updated_at": "2014-07-01T17:26:06Z",
+ "closed_at": "2014-04-13T15:22:23Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/80",
+ "html_url": "https://github.com/github-api/github-api/pull/80",
+ "diff_url": "https://github.com/github-api/github-api/pull/80.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/80.patch"
+ },
+ "body": "https://developer.github.com/v3/orgs/members/#remove-a-member\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/79",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/79/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/79/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/79/events",
+ "html_url": "https://github.com/github-api/github-api/issues/79",
+ "id": 30269051,
+ "node_id": "MDU6SXNzdWUzMDI2OTA1MQ==",
+ "number": 79,
+ "title": "create pull requests?",
+ "user": {
+ "login": "dtoms",
+ "id": 5245557,
+ "node_id": "MDQ6VXNlcjUyNDU1NTc=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/5245557?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dtoms",
+ "html_url": "https://github.com/dtoms",
+ "followers_url": "https://api.github.com/users/dtoms/followers",
+ "following_url": "https://api.github.com/users/dtoms/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dtoms/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dtoms/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dtoms/subscriptions",
+ "organizations_url": "https://api.github.com/users/dtoms/orgs",
+ "repos_url": "https://api.github.com/users/dtoms/repos",
+ "events_url": "https://api.github.com/users/dtoms/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dtoms/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-03-27T02:22:52Z",
+ "updated_at": "2014-05-10T22:06:58Z",
+ "closed_at": "2014-05-10T22:06:58Z",
+ "author_association": "NONE",
+ "body": "I dug around the source but from what I see there are currently only methods to get GHPullRequest's from github. I'm hoping that's not the case of course. Is there support for creating a new pull request for a branch?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/78",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/78/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/78/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/78/events",
+ "html_url": "https://github.com/github-api/github-api/issues/78",
+ "id": 29715979,
+ "node_id": "MDU6SXNzdWUyOTcxNTk3OQ==",
+ "number": 78,
+ "title": "getRateLimit() fails for GitHub Enterprise",
+ "user": {
+ "login": "alexwhitman",
+ "id": 422013,
+ "node_id": "MDQ6VXNlcjQyMjAxMw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/422013?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alexwhitman",
+ "html_url": "https://github.com/alexwhitman",
+ "followers_url": "https://api.github.com/users/alexwhitman/followers",
+ "following_url": "https://api.github.com/users/alexwhitman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alexwhitman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alexwhitman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alexwhitman/subscriptions",
+ "organizations_url": "https://api.github.com/users/alexwhitman/orgs",
+ "repos_url": "https://api.github.com/users/alexwhitman/repos",
+ "events_url": "https://api.github.com/users/alexwhitman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alexwhitman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2014-03-19T09:06:05Z",
+ "updated_at": "2014-05-10T22:31:37Z",
+ "closed_at": "2014-05-10T22:31:37Z",
+ "author_association": "NONE",
+ "body": "`getRateLimit()` at https://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/GitHub.java#L228 fails for GitHub Enterprise with a 404 status code, body of\n\n``` json\n{\n \"message\": \"No rate limit for white listed users\"\n}\n```\n\nGitHub Enterprise users are considered white listed and so don't have rate limits.\n\nSee also janinko/ghprb#127\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/77",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/77/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/77/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/77/events",
+ "html_url": "https://github.com/github-api/github-api/pull/77",
+ "id": 29709117,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTM3MjE5ODQ=",
+ "number": 77,
+ "title": "Added apis to list commits by author and list the repos of an organization (including private ones)",
+ "user": {
+ "login": "vr100",
+ "id": 6443683,
+ "node_id": "MDQ6VXNlcjY0NDM2ODM=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/6443683?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vr100",
+ "html_url": "https://github.com/vr100",
+ "followers_url": "https://api.github.com/users/vr100/followers",
+ "following_url": "https://api.github.com/users/vr100/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vr100/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vr100/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vr100/subscriptions",
+ "organizations_url": "https://api.github.com/users/vr100/orgs",
+ "repos_url": "https://api.github.com/users/vr100/repos",
+ "events_url": "https://api.github.com/users/vr100/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vr100/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 7,
+ "created_at": "2014-03-19T06:04:07Z",
+ "updated_at": "2014-07-01T17:26:07Z",
+ "closed_at": "2014-04-19T18:50:17Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/77",
+ "html_url": "https://github.com/github-api/github-api/pull/77",
+ "diff_url": "https://github.com/github-api/github-api/pull/77.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/77.patch"
+ },
+ "body": "Hi,\n\nI have added apis for the following\n- List the repos of organization (including the private ones). The existing implementation does not list the private repos of an organization even with the appropriate scope permissions.\n- List the commits by author and branch. [Note that both branch and sha are given as sha parameters to the url. I verified this manually. Got this solution from stackoverflow : http://stackoverflow.com/questions/9179828/github-api-retrieve-all-commits-for-all-branches-for-a-repo \n\nThank you,\nvr100\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/76",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/76/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/76/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/76/events",
+ "html_url": "https://github.com/github-api/github-api/pull/76",
+ "id": 29397349,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTM1NTAwODc=",
+ "number": 76,
+ "title": "Add org public-members call, to complement the full members list",
+ "user": {
+ "login": "rtyley",
+ "id": 52038,
+ "node_id": "MDQ6VXNlcjUyMDM4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/52038?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rtyley",
+ "html_url": "https://github.com/rtyley",
+ "followers_url": "https://api.github.com/users/rtyley/followers",
+ "following_url": "https://api.github.com/users/rtyley/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rtyley/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rtyley/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rtyley/subscriptions",
+ "organizations_url": "https://api.github.com/users/rtyley/orgs",
+ "repos_url": "https://api.github.com/users/rtyley/repos",
+ "events_url": "https://api.github.com/users/rtyley/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rtyley/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-03-13T22:59:43Z",
+ "updated_at": "2014-07-01T17:26:08Z",
+ "closed_at": "2014-03-28T16:35:52Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/76",
+ "html_url": "https://github.com/github-api/github-api/pull/76",
+ "diff_url": "https://github.com/github-api/github-api/pull/76.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/76.patch"
+ },
+ "body": "http://developer.github.com/v3/orgs/members/#public-members-list\n\nThis PR sits on top of PRs #66 & #68, which is why it's a 3-commit pull request.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/75",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/75/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/75/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/75/events",
+ "html_url": "https://github.com/github-api/github-api/pull/75",
+ "id": 29311067,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTM0OTg1MDY=",
+ "number": 75,
+ "title": "Support the check-user-team-membership API call",
+ "user": {
+ "login": "rtyley",
+ "id": 52038,
+ "node_id": "MDQ6VXNlcjUyMDM4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/52038?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rtyley",
+ "html_url": "https://github.com/rtyley",
+ "followers_url": "https://api.github.com/users/rtyley/followers",
+ "following_url": "https://api.github.com/users/rtyley/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rtyley/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rtyley/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rtyley/subscriptions",
+ "organizations_url": "https://api.github.com/users/rtyley/orgs",
+ "repos_url": "https://api.github.com/users/rtyley/repos",
+ "events_url": "https://api.github.com/users/rtyley/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rtyley/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-03-12T22:44:04Z",
+ "updated_at": "2014-07-01T17:26:08Z",
+ "closed_at": "2014-03-28T17:24:18Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/75",
+ "html_url": "https://github.com/github-api/github-api/pull/75",
+ "diff_url": "https://github.com/github-api/github-api/pull/75.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/75.patch"
+ },
+ "body": "http://developer.github.com/v3/orgs/teams/#get-team-member\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/74",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/74/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/74/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/74/events",
+ "html_url": "https://github.com/github-api/github-api/pull/74",
+ "id": 29254760,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTM0NjU0MTM=",
+ "number": 74,
+ "title": "Allow use of alternative HTTP client implementations",
+ "user": {
+ "login": "rtyley",
+ "id": 52038,
+ "node_id": "MDQ6VXNlcjUyMDM4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/52038?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rtyley",
+ "html_url": "https://github.com/rtyley",
+ "followers_url": "https://api.github.com/users/rtyley/followers",
+ "following_url": "https://api.github.com/users/rtyley/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rtyley/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rtyley/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rtyley/subscriptions",
+ "organizations_url": "https://api.github.com/users/rtyley/orgs",
+ "repos_url": "https://api.github.com/users/rtyley/repos",
+ "events_url": "https://api.github.com/users/rtyley/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rtyley/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2014-03-12T11:21:19Z",
+ "updated_at": "2014-06-24T08:14:50Z",
+ "closed_at": "2014-04-13T15:49:14Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/74",
+ "html_url": "https://github.com/github-api/github-api/pull/74",
+ "diff_url": "https://github.com/github-api/github-api/pull/74.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/74.patch"
+ },
+ "body": "In particular this means we can use OkHttp, so we can make use of it's HttpResponseCache/DiskLruCache. Making a conditional request against the GitHub API and receiving a 304 response does not count against the Rate Limit - very beneficial.\n\nhttp://developer.github.com/v3/#conditional-requests\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/73",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/73/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/73/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/73/events",
+ "html_url": "https://github.com/github-api/github-api/pull/73",
+ "id": 29024292,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTMzNDMwNzA=",
+ "number": 73,
+ "title": "Fix GHIssue.setLabels()",
+ "user": {
+ "login": "rtyley",
+ "id": 52038,
+ "node_id": "MDQ6VXNlcjUyMDM4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/52038?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rtyley",
+ "html_url": "https://github.com/rtyley",
+ "followers_url": "https://api.github.com/users/rtyley/followers",
+ "following_url": "https://api.github.com/users/rtyley/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rtyley/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rtyley/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rtyley/subscriptions",
+ "organizations_url": "https://api.github.com/users/rtyley/orgs",
+ "repos_url": "https://api.github.com/users/rtyley/repos",
+ "events_url": "https://api.github.com/users/rtyley/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rtyley/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-03-08T16:06:36Z",
+ "updated_at": "2014-07-01T09:04:54Z",
+ "closed_at": "2014-03-28T17:23:15Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/73",
+ "html_url": "https://github.com/github-api/github-api/pull/73",
+ "diff_url": "https://github.com/github-api/github-api/pull/73.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/73.patch"
+ },
+ "body": "..._don't_ set 'assignee' instead!\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/72",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/72/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/72/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/72/events",
+ "html_url": "https://github.com/github-api/github-api/pull/72",
+ "id": 29013881,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTMzMzg3MDk=",
+ "number": 72,
+ "title": "Un-finalize GHContent.",
+ "user": {
+ "login": "farmdawgnation",
+ "id": 620189,
+ "node_id": "MDQ6VXNlcjYyMDE4OQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/620189?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/farmdawgnation",
+ "html_url": "https://github.com/farmdawgnation",
+ "followers_url": "https://api.github.com/users/farmdawgnation/followers",
+ "following_url": "https://api.github.com/users/farmdawgnation/following{/other_user}",
+ "gists_url": "https://api.github.com/users/farmdawgnation/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/farmdawgnation/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/farmdawgnation/subscriptions",
+ "organizations_url": "https://api.github.com/users/farmdawgnation/orgs",
+ "repos_url": "https://api.github.com/users/farmdawgnation/repos",
+ "events_url": "https://api.github.com/users/farmdawgnation/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/farmdawgnation/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-03-08T03:14:44Z",
+ "updated_at": "2014-07-01T17:26:10Z",
+ "closed_at": "2014-03-28T17:23:03Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/72",
+ "html_url": "https://github.com/github-api/github-api/pull/72",
+ "diff_url": "https://github.com/github-api/github-api/pull/72.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/72.patch"
+ },
+ "body": "GHContent was declared as a final class, which makes it impossible to mock with libraries like Mockito.\n\nThis PR un-finalizes it so it's mock-able.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/71",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/71/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/71/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/71/events",
+ "html_url": "https://github.com/github-api/github-api/pull/71",
+ "id": 28599079,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTMxMDA4NzY=",
+ "number": 71,
+ "title": "add support for getting issues by milestone and state",
+ "user": {
+ "login": "evanchooly",
+ "id": 195021,
+ "node_id": "MDQ6VXNlcjE5NTAyMQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/195021?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/evanchooly",
+ "html_url": "https://github.com/evanchooly",
+ "followers_url": "https://api.github.com/users/evanchooly/followers",
+ "following_url": "https://api.github.com/users/evanchooly/following{/other_user}",
+ "gists_url": "https://api.github.com/users/evanchooly/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/evanchooly/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/evanchooly/subscriptions",
+ "organizations_url": "https://api.github.com/users/evanchooly/orgs",
+ "repos_url": "https://api.github.com/users/evanchooly/repos",
+ "events_url": "https://api.github.com/users/evanchooly/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/evanchooly/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2014-03-03T04:55:20Z",
+ "updated_at": "2014-07-01T17:26:10Z",
+ "closed_at": "2014-03-28T17:22:47Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/71",
+ "html_url": "https://github.com/github-api/github-api/pull/71",
+ "diff_url": "https://github.com/github-api/github-api/pull/71.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/71.patch"
+ },
+ "body": "rework AppTest to work better for people other than kohsuke\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/70",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/70/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/70/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/70/events",
+ "html_url": "https://github.com/github-api/github-api/pull/70",
+ "id": 28519716,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTMwNjE2MjE=",
+ "number": 70,
+ "title": "BugFix when listing repositories of a GitHub Organisation",
+ "user": {
+ "login": "lucamilanesio",
+ "id": 182893,
+ "node_id": "MDQ6VXNlcjE4Mjg5Mw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/182893?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lucamilanesio",
+ "html_url": "https://github.com/lucamilanesio",
+ "followers_url": "https://api.github.com/users/lucamilanesio/followers",
+ "following_url": "https://api.github.com/users/lucamilanesio/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lucamilanesio/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lucamilanesio/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lucamilanesio/subscriptions",
+ "organizations_url": "https://api.github.com/users/lucamilanesio/orgs",
+ "repos_url": "https://api.github.com/users/lucamilanesio/repos",
+ "events_url": "https://api.github.com/users/lucamilanesio/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lucamilanesio/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2014-02-28T17:47:17Z",
+ "updated_at": "2014-07-01T17:26:11Z",
+ "closed_at": "2014-03-28T16:50:33Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/70",
+ "html_url": "https://github.com/github-api/github-api/pull/70",
+ "diff_url": "https://github.com/github-api/github-api/pull/70.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/70.patch"
+ },
+ "body": "Repositories of a GitHub Organisation are under \n/orgs/:org/repos as documented at:\nhttp://developer.github.com/v3/repos/#list-organization-repositories\n\nWe need then to override the GHPerson implementation\nwhich would have just returned the user's repositories.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/69",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/69/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/69/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/69/events",
+ "html_url": "https://github.com/github-api/github-api/pull/69",
+ "id": 28154464,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTI4NDk1Nzc=",
+ "number": 69,
+ "title": "Created new method to automate the merge",
+ "user": {
+ "login": "vanjikumaran",
+ "id": 3397321,
+ "node_id": "MDQ6VXNlcjMzOTczMjE=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/3397321?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vanjikumaran",
+ "html_url": "https://github.com/vanjikumaran",
+ "followers_url": "https://api.github.com/users/vanjikumaran/followers",
+ "following_url": "https://api.github.com/users/vanjikumaran/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vanjikumaran/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vanjikumaran/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vanjikumaran/subscriptions",
+ "organizations_url": "https://api.github.com/users/vanjikumaran/orgs",
+ "repos_url": "https://api.github.com/users/vanjikumaran/repos",
+ "events_url": "https://api.github.com/users/vanjikumaran/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vanjikumaran/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-02-24T11:31:02Z",
+ "updated_at": "2014-07-01T17:26:12Z",
+ "closed_at": "2014-03-28T16:42:16Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/69",
+ "html_url": "https://github.com/github-api/github-api/pull/69",
+ "diff_url": "https://github.com/github-api/github-api/pull/69.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/69.patch"
+ },
+ "body": "This new method enables to call merge\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/68",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/68/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/68/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/68/events",
+ "html_url": "https://github.com/github-api/github-api/pull/68",
+ "id": 28039406,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTI3OTA1MjU=",
+ "number": 68,
+ "title": "Enable org member filtering",
+ "user": {
+ "login": "lindseydew",
+ "id": 1202622,
+ "node_id": "MDQ6VXNlcjEyMDI2MjI=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1202622?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lindseydew",
+ "html_url": "https://github.com/lindseydew",
+ "followers_url": "https://api.github.com/users/lindseydew/followers",
+ "following_url": "https://api.github.com/users/lindseydew/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lindseydew/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lindseydew/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lindseydew/subscriptions",
+ "organizations_url": "https://api.github.com/users/lindseydew/orgs",
+ "repos_url": "https://api.github.com/users/lindseydew/repos",
+ "events_url": "https://api.github.com/users/lindseydew/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lindseydew/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-02-21T12:45:01Z",
+ "updated_at": "2014-07-01T17:26:13Z",
+ "closed_at": "2014-03-28T16:35:51Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/68",
+ "html_url": "https://github.com/github-api/github-api/pull/68",
+ "diff_url": "https://github.com/github-api/github-api/pull/68.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/68.patch"
+ },
+ "body": "This adds an option of supplying a parameter to the get members method so that we can call the filter by two factor authentication method\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/67",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/67/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/67/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/67/events",
+ "html_url": "https://github.com/github-api/github-api/pull/67",
+ "id": 26860355,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTIxNjUwMDY=",
+ "number": 67,
+ "title": "add method to find issues by milestone",
+ "user": {
+ "login": "evanchooly",
+ "id": 195021,
+ "node_id": "MDQ6VXNlcjE5NTAyMQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/195021?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/evanchooly",
+ "html_url": "https://github.com/evanchooly",
+ "followers_url": "https://api.github.com/users/evanchooly/followers",
+ "following_url": "https://api.github.com/users/evanchooly/following{/other_user}",
+ "gists_url": "https://api.github.com/users/evanchooly/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/evanchooly/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/evanchooly/subscriptions",
+ "organizations_url": "https://api.github.com/users/evanchooly/orgs",
+ "repos_url": "https://api.github.com/users/evanchooly/repos",
+ "events_url": "https://api.github.com/users/evanchooly/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/evanchooly/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-02-04T05:15:19Z",
+ "updated_at": "2014-07-01T17:26:13Z",
+ "closed_at": "2014-02-04T05:20:43Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/67",
+ "html_url": "https://github.com/github-api/github-api/pull/67",
+ "diff_url": "https://github.com/github-api/github-api/pull/67.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/67.patch"
+ },
+ "body": "…\n\nslight refactoring of tests to use developer's github info rather than kohsuke's to avoid certain permissions problems on the repositories created\n\nIt _does_ change the name of the repository to something a bit more unique which might cause problems. I can go either way with that repo name but it is a bit less like to clash with any other repo/project naming.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/66",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/66/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/66/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/66/events",
+ "html_url": "https://github.com/github-api/github-api/pull/66",
+ "id": 26108982,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTE3Njc1MDQ=",
+ "number": 66,
+ "title": "Support paging when fetching organization members",
+ "user": {
+ "login": "ryankennedy",
+ "id": 37302,
+ "node_id": "MDQ6VXNlcjM3MzAy",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/37302?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ryankennedy",
+ "html_url": "https://github.com/ryankennedy",
+ "followers_url": "https://api.github.com/users/ryankennedy/followers",
+ "following_url": "https://api.github.com/users/ryankennedy/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ryankennedy/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ryankennedy/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ryankennedy/subscriptions",
+ "organizations_url": "https://api.github.com/users/ryankennedy/orgs",
+ "repos_url": "https://api.github.com/users/ryankennedy/repos",
+ "events_url": "https://api.github.com/users/ryankennedy/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ryankennedy/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-01-22T17:56:21Z",
+ "updated_at": "2014-07-01T17:26:14Z",
+ "closed_at": "2014-03-28T16:35:51Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/66",
+ "html_url": "https://github.com/github-api/github-api/pull/66",
+ "diff_url": "https://github.com/github-api/github-api/pull/66.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/66.patch"
+ },
+ "body": "Organization members are a paged list in the V3 GitHub API. Previously the code would fetch only the first page of ~30 members and return that. This change switches the return to a PagedIterable so clients can fetch the entire organization's member list.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/65",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/65/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/65/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/65/events",
+ "html_url": "https://github.com/github-api/github-api/issues/65",
+ "id": 25697084,
+ "node_id": "MDU6SXNzdWUyNTY5NzA4NA==",
+ "number": 65,
+ "title": "Throwing an Error when an IOException occurs is overly fatal",
+ "user": {
+ "login": "ryankennedy",
+ "id": 37302,
+ "node_id": "MDQ6VXNlcjM3MzAy",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/37302?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ryankennedy",
+ "html_url": "https://github.com/ryankennedy",
+ "followers_url": "https://api.github.com/users/ryankennedy/followers",
+ "following_url": "https://api.github.com/users/ryankennedy/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ryankennedy/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ryankennedy/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ryankennedy/subscriptions",
+ "organizations_url": "https://api.github.com/users/ryankennedy/orgs",
+ "repos_url": "https://api.github.com/users/ryankennedy/repos",
+ "events_url": "https://api.github.com/users/ryankennedy/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ryankennedy/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2014-01-16T01:34:51Z",
+ "updated_at": "2016-02-12T18:35:43Z",
+ "closed_at": "2014-04-13T15:55:35Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "https://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/Requester.java#L268\n\nWhen attempting to get the details of an empty repository, the github enterprise server returns an HTTP 409. This, in turn, causes Requester to throw an Error…\n\nCaused by: java.io.IOException: Server returned HTTP response code: 409 for URL: \n\nAn Error, for those unfamiliar, is \"a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch.\" I don't think an HTTP 409 response warrants throwing an Error, thereby dooming the client Java process to exit with status code 1.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/64",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/64/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/64/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/64/events",
+ "html_url": "https://github.com/github-api/github-api/issues/64",
+ "id": 25693932,
+ "node_id": "MDU6SXNzdWUyNTY5MzkzMg==",
+ "number": 64,
+ "title": "GHRepository assumes public github.com, won't work with github enterprise",
+ "user": {
+ "login": "ryankennedy",
+ "id": 37302,
+ "node_id": "MDQ6VXNlcjM3MzAy",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/37302?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ryankennedy",
+ "html_url": "https://github.com/ryankennedy",
+ "followers_url": "https://api.github.com/users/ryankennedy/followers",
+ "following_url": "https://api.github.com/users/ryankennedy/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ryankennedy/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ryankennedy/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ryankennedy/subscriptions",
+ "organizations_url": "https://api.github.com/users/ryankennedy/orgs",
+ "repos_url": "https://api.github.com/users/ryankennedy/repos",
+ "events_url": "https://api.github.com/users/ryankennedy/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ryankennedy/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-01-16T00:21:32Z",
+ "updated_at": "2014-05-10T22:23:12Z",
+ "closed_at": "2014-05-10T22:23:12Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "https://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/GHRepository.java#L96\n\nGHRepository doesn't take into account whether or not the client is speaking with the public github.com or if it's talking to a github enterprise instance. Consequently, when you call getGitTransportUrl() or gitHttpTransportUrl() it only ever returns a github.com URL, which won't work for github enterprise hosted repositories.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/63",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/63/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/63/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/63/events",
+ "html_url": "https://github.com/github-api/github-api/issues/63",
+ "id": 25598503,
+ "node_id": "MDU6SXNzdWUyNTU5ODUwMw==",
+ "number": 63,
+ "title": "publish 1.49 version to jenkins maven repo",
+ "user": {
+ "login": "suryagaddipati",
+ "id": 64078,
+ "node_id": "MDQ6VXNlcjY0MDc4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/64078?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/suryagaddipati",
+ "html_url": "https://github.com/suryagaddipati",
+ "followers_url": "https://api.github.com/users/suryagaddipati/followers",
+ "following_url": "https://api.github.com/users/suryagaddipati/following{/other_user}",
+ "gists_url": "https://api.github.com/users/suryagaddipati/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/suryagaddipati/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/suryagaddipati/subscriptions",
+ "organizations_url": "https://api.github.com/users/suryagaddipati/orgs",
+ "repos_url": "https://api.github.com/users/suryagaddipati/repos",
+ "events_url": "https://api.github.com/users/suryagaddipati/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/suryagaddipati/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-01-14T19:28:32Z",
+ "updated_at": "2014-01-15T17:58:48Z",
+ "closed_at": "2014-01-15T17:58:48Z",
+ "author_association": "COLLABORATOR",
+ "body": "1.47 seems to be the latest version published here\nhttp://repo.jenkins-ci.org/public/org/kohsuke/github-api/\n\nWould it be possible to publish 1.49 on there.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/62",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/62/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/62/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/62/events",
+ "html_url": "https://github.com/github-api/github-api/issues/62",
+ "id": 24261123,
+ "node_id": "MDU6SXNzdWUyNDI2MTEyMw==",
+ "number": 62,
+ "title": "Getting private repositories for a private organization",
+ "user": {
+ "login": "cwarren-mw",
+ "id": 4967481,
+ "node_id": "MDQ6VXNlcjQ5Njc0ODE=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/4967481?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/cwarren-mw",
+ "html_url": "https://github.com/cwarren-mw",
+ "followers_url": "https://api.github.com/users/cwarren-mw/followers",
+ "following_url": "https://api.github.com/users/cwarren-mw/following{/other_user}",
+ "gists_url": "https://api.github.com/users/cwarren-mw/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/cwarren-mw/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/cwarren-mw/subscriptions",
+ "organizations_url": "https://api.github.com/users/cwarren-mw/orgs",
+ "repos_url": "https://api.github.com/users/cwarren-mw/repos",
+ "events_url": "https://api.github.com/users/cwarren-mw/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/cwarren-mw/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-12-13T17:43:32Z",
+ "updated_at": "2014-05-10T22:19:49Z",
+ "closed_at": "2014-05-10T22:19:49Z",
+ "author_association": "NONE",
+ "body": "I've been able to list the repositories for a public organization:\n\n```\nGHOrganization org = gitHub.getOrganization(\"jenkinsci\");\nfor (GHRepository r : org.getRepositories().values()) {\n System.out.println(\"Repo: \" + r.getName());\n}\n```\n\nAnd I've been able to list the users for a private organization (I believe this should prove I'm successfully authenticating against that organization):\n\n```\nGHOrganization org = gitHub.getOrganization(\"merchantwarehouse\");\nList users = org.getMembers();\nfor (GHUser user : users) {\n System.out.println(\"User: \" + user.toString());\n}\n```\n\nBut when I try to list the repositories (all private) for the private organization, I get nothing. Have I missed a step?\n\nMy apologies if this is something that should have been obvious to me.\n\nThanks.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/61",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/61/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/61/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/61/events",
+ "html_url": "https://github.com/github-api/github-api/pull/61",
+ "id": 24077446,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3MDk4OTM=",
+ "number": 61,
+ "title": "Fetching of user's verified keys through standard OAuth scope.",
+ "user": {
+ "login": "lucamilanesio",
+ "id": 182893,
+ "node_id": "MDQ6VXNlcjE4Mjg5Mw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/182893?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lucamilanesio",
+ "html_url": "https://github.com/lucamilanesio",
+ "followers_url": "https://api.github.com/users/lucamilanesio/followers",
+ "following_url": "https://api.github.com/users/lucamilanesio/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lucamilanesio/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lucamilanesio/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lucamilanesio/subscriptions",
+ "organizations_url": "https://api.github.com/users/lucamilanesio/orgs",
+ "repos_url": "https://api.github.com/users/lucamilanesio/repos",
+ "events_url": "https://api.github.com/users/lucamilanesio/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lucamilanesio/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-12-11T00:32:34Z",
+ "updated_at": "2014-07-01T17:26:14Z",
+ "closed_at": "2014-01-01T23:26:58Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/61",
+ "html_url": "https://github.com/github-api/github-api/pull/61",
+ "diff_url": "https://github.com/github-api/github-api/pull/61.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/61.patch"
+ },
+ "body": "Allow the fetching of a user's verified key list without\nrequiring to have an OAuth user scope (which implies\nuser's profile READ/WRITE permissions).\nThis would relax the requirements of GitHub OAuth scope\nwhen fetching public information such as their SSH\npublic keys.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/60",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/60/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/60/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/60/events",
+ "html_url": "https://github.com/github-api/github-api/issues/60",
+ "id": 23731147,
+ "node_id": "MDU6SXNzdWUyMzczMTE0Nw==",
+ "number": 60,
+ "title": "ClosedBy returns nothing for closed issues",
+ "user": {
+ "login": "sura2k",
+ "id": 1226939,
+ "node_id": "MDQ6VXNlcjEyMjY5Mzk=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1226939?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sura2k",
+ "html_url": "https://github.com/sura2k",
+ "followers_url": "https://api.github.com/users/sura2k/followers",
+ "following_url": "https://api.github.com/users/sura2k/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sura2k/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sura2k/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sura2k/subscriptions",
+ "organizations_url": "https://api.github.com/users/sura2k/orgs",
+ "repos_url": "https://api.github.com/users/sura2k/repos",
+ "events_url": "https://api.github.com/users/sura2k/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sura2k/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-12-04T17:22:08Z",
+ "updated_at": "2014-08-03T18:04:58Z",
+ "closed_at": "2014-05-10T22:12:30Z",
+ "author_association": "NONE",
+ "body": "I wanted to export all the issues in to an excel.\nAPI returns everything except 'ClosedBy'.\nI'm using a private repository.\nI'm glad if you could look into this.\n\n(I Thank Kohsuke and all the contributors for making such a great API)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/59",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/59/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/59/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/59/events",
+ "html_url": "https://github.com/github-api/github-api/pull/59",
+ "id": 23431637,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTAzNjIyMDQ=",
+ "number": 59,
+ "title": "Contents API",
+ "user": {
+ "login": "farmdawgnation",
+ "id": 620189,
+ "node_id": "MDQ6VXNlcjYyMDE4OQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/620189?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/farmdawgnation",
+ "html_url": "https://github.com/farmdawgnation",
+ "followers_url": "https://api.github.com/users/farmdawgnation/followers",
+ "following_url": "https://api.github.com/users/farmdawgnation/following{/other_user}",
+ "gists_url": "https://api.github.com/users/farmdawgnation/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/farmdawgnation/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/farmdawgnation/subscriptions",
+ "organizations_url": "https://api.github.com/users/farmdawgnation/orgs",
+ "repos_url": "https://api.github.com/users/farmdawgnation/repos",
+ "events_url": "https://api.github.com/users/farmdawgnation/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/farmdawgnation/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2013-11-28T05:40:53Z",
+ "updated_at": "2014-07-01T17:26:15Z",
+ "closed_at": "2014-01-01T23:26:23Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/59",
+ "html_url": "https://github.com/github-api/github-api/pull/59",
+ "diff_url": "https://github.com/github-api/github-api/pull/59.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/59.patch"
+ },
+ "body": "Hat tip to @acollign for the work that he did on this to start. I took what he did and essentially added the ability to mutate content using the content API. This still needs some tests added, I think, but I had issues getting them to run? (I think something was screwy with my network connection?)\n\nAnyway, I'm more than happy to add the tests, but I wanted to go ahead and start getting feedback on how this looks. :-)\n\nThis would resolve #46\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/58",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/58/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/58/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/58/events",
+ "html_url": "https://github.com/github-api/github-api/pull/58",
+ "id": 23345345,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTAzMTQyODM=",
+ "number": 58,
+ "title": "Add support for PULL_REQUEST_REVIEW_COMMENT event types.",
+ "user": {
+ "login": "rtholmes",
+ "id": 89003,
+ "node_id": "MDQ6VXNlcjg5MDAz",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/89003?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rtholmes",
+ "html_url": "https://github.com/rtholmes",
+ "followers_url": "https://api.github.com/users/rtholmes/followers",
+ "following_url": "https://api.github.com/users/rtholmes/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rtholmes/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rtholmes/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rtholmes/subscriptions",
+ "organizations_url": "https://api.github.com/users/rtholmes/orgs",
+ "repos_url": "https://api.github.com/users/rtholmes/repos",
+ "events_url": "https://api.github.com/users/rtholmes/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rtholmes/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-11-26T20:30:05Z",
+ "updated_at": "2014-07-01T17:26:15Z",
+ "closed_at": "2013-11-27T19:49:17Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/58",
+ "html_url": "https://github.com/github-api/github-api/pull/58",
+ "diff_url": "https://github.com/github-api/github-api/pull/58.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/58.patch"
+ },
+ "body": "EventInfo.getType() would return a GHEvent with the GHEvent.type field set to \"PULL_REQUEST_REVIEW_COMMENT_EVENT\", but since PULL_REQUEST_REVIEW_COMMENT was not present in GHEvent, GHEvent.getType() would fail.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/57",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/57/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/57/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/57/events",
+ "html_url": "https://github.com/github-api/github-api/issues/57",
+ "id": 23300463,
+ "node_id": "MDU6SXNzdWUyMzMwMDQ2Mw==",
+ "number": 57,
+ "title": "github /user/orgs fails",
+ "user": {
+ "login": "helmut-jacob",
+ "id": 3501725,
+ "node_id": "MDQ6VXNlcjM1MDE3MjU=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/3501725?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/helmut-jacob",
+ "html_url": "https://github.com/helmut-jacob",
+ "followers_url": "https://api.github.com/users/helmut-jacob/followers",
+ "following_url": "https://api.github.com/users/helmut-jacob/following{/other_user}",
+ "gists_url": "https://api.github.com/users/helmut-jacob/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/helmut-jacob/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/helmut-jacob/subscriptions",
+ "organizations_url": "https://api.github.com/users/helmut-jacob/orgs",
+ "repos_url": "https://api.github.com/users/helmut-jacob/repos",
+ "events_url": "https://api.github.com/users/helmut-jacob/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/helmut-jacob/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2013-11-26T08:42:21Z",
+ "updated_at": "2013-11-26T12:50:09Z",
+ "closed_at": "2013-11-26T12:50:09Z",
+ "author_association": "NONE",
+ "body": "When using the github authentication plugin for jenkins I'm getting:\n\njava.io.FileNotFoundException: https://api.github.com/user/orgs\n at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1401)\n at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)\n at org.kohsuke.github.Requester.parse(Requester.java:298)\n at org.kohsuke.github.Requester._to(Requester.java:175)\n at org.kohsuke.github.Requester.to(Requester.java:141)\n at org.kohsuke.github.GitHub.getMyOrganizations(GitHub.java:290)\n at org.jenkinsci.plugins.GithubAuthenticationToken.(GithubAuthenticationToken.java:89)\n at org.jenkinsci.plugins.GithubSecurityRealm.doFinishLogin(GithubSecurityRealm.java:366)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:622)\n at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)\n at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)\n at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)\n at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:120)\n at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)\n at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)\n at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:210)\n at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)\n at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)\n at org.kohsuke.stapler.Stapler.service(Stapler.java:225)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)\n at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)\n at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:96)\n at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)\n at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)\n at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:174)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:64)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)\n at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)\n at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)\n at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)\n at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)\n at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)\n at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)\n at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)\n at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)\n at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)\n at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)\n at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)\n at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)\n at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)\n at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)\n at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)\n at org.eclipse.jetty.server.Server.handle(Server.java:370)\n at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)\n at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:949)\n at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)\n at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)\n at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)\n at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)\n at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)\n at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)\n at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)\n at java.lang.Thread.run(Thread.java:701)\n\nIt seems as if github removed /user/orgs. /user/$user/orgs still works.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/56",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/56/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/56/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/56/events",
+ "html_url": "https://github.com/github-api/github-api/pull/56",
+ "id": 23202159,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTAyNDA4NjA=",
+ "number": 56,
+ "title": "Use `PagedIterator` to retrieve repository issues",
+ "user": {
+ "login": "endeavor85",
+ "id": 1729092,
+ "node_id": "MDQ6VXNlcjE3MjkwOTI=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1729092?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/endeavor85",
+ "html_url": "https://github.com/endeavor85",
+ "followers_url": "https://api.github.com/users/endeavor85/followers",
+ "following_url": "https://api.github.com/users/endeavor85/following{/other_user}",
+ "gists_url": "https://api.github.com/users/endeavor85/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/endeavor85/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/endeavor85/subscriptions",
+ "organizations_url": "https://api.github.com/users/endeavor85/orgs",
+ "repos_url": "https://api.github.com/users/endeavor85/repos",
+ "events_url": "https://api.github.com/users/endeavor85/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/endeavor85/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-11-24T08:55:42Z",
+ "updated_at": "2014-07-01T17:26:15Z",
+ "closed_at": "2013-11-27T19:49:44Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/56",
+ "html_url": "https://github.com/github-api/github-api/pull/56",
+ "diff_url": "https://github.com/github-api/github-api/pull/56.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/56.patch"
+ },
+ "body": "Overcomes default 30 item page size limit.\n\nFixes #55 \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/55",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/55/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/55/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/55/events",
+ "html_url": "https://github.com/github-api/github-api/issues/55",
+ "id": 23202105,
+ "node_id": "MDU6SXNzdWUyMzIwMjEwNQ==",
+ "number": 55,
+ "title": "GHRepository.getIssues() limited to 30 issues",
+ "user": {
+ "login": "endeavor85",
+ "id": 1729092,
+ "node_id": "MDQ6VXNlcjE3MjkwOTI=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1729092?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/endeavor85",
+ "html_url": "https://github.com/endeavor85",
+ "followers_url": "https://api.github.com/users/endeavor85/followers",
+ "following_url": "https://api.github.com/users/endeavor85/following{/other_user}",
+ "gists_url": "https://api.github.com/users/endeavor85/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/endeavor85/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/endeavor85/subscriptions",
+ "organizations_url": "https://api.github.com/users/endeavor85/orgs",
+ "repos_url": "https://api.github.com/users/endeavor85/repos",
+ "events_url": "https://api.github.com/users/endeavor85/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/endeavor85/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2013-11-24T08:50:21Z",
+ "updated_at": "2013-11-27T19:49:44Z",
+ "closed_at": "2013-11-27T19:49:44Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "According to the [GitHub API](http://developer.github.com/v3/#pagination):\n\n> Requests that return multiple items will be paginated to 30 items by default.\n\nNeed to use `PagedIterable<>` when retrieving repository issues in order to retrieve all issues.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/54",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/54/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/54/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/54/events",
+ "html_url": "https://github.com/github-api/github-api/issues/54",
+ "id": 22125245,
+ "node_id": "MDU6SXNzdWUyMjEyNTI0NQ==",
+ "number": 54,
+ "title": "class file for com.infradna.tool.bridge_method_injector.WithBridgeMethods not found",
+ "user": {
+ "login": "yegor256",
+ "id": 526301,
+ "node_id": "MDQ6VXNlcjUyNjMwMQ==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/526301?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/yegor256",
+ "html_url": "https://github.com/yegor256",
+ "followers_url": "https://api.github.com/users/yegor256/followers",
+ "following_url": "https://api.github.com/users/yegor256/following{/other_user}",
+ "gists_url": "https://api.github.com/users/yegor256/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/yegor256/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/yegor256/subscriptions",
+ "organizations_url": "https://api.github.com/users/yegor256/orgs",
+ "repos_url": "https://api.github.com/users/yegor256/repos",
+ "events_url": "https://api.github.com/users/yegor256/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/yegor256/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-11-05T15:00:59Z",
+ "updated_at": "2014-05-10T19:53:26Z",
+ "closed_at": "2014-05-10T19:53:26Z",
+ "author_association": "NONE",
+ "body": "I see this warning during compilation when `org.kohsuke:github-api:jar` is in classpath:\n\n```\n[WARNING] Cannot find annotation method 'value()' in type 'com.infradna.tool.bridge_method_injector.WithBridgeMethods': class file for com.infradna.tool.bridge_method_injector.WithBridgeMethods not found\n```\n\nWould be great to get rid of it\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/53",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/53/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/53/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/53/events",
+ "html_url": "https://github.com/github-api/github-api/issues/53",
+ "id": 22123377,
+ "node_id": "MDU6SXNzdWUyMjEyMzM3Nw==",
+ "number": 53,
+ "title": "add support of Gists",
+ "user": {
+ "login": "yegor256",
+ "id": 526301,
+ "node_id": "MDQ6VXNlcjUyNjMwMQ==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/526301?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/yegor256",
+ "html_url": "https://github.com/yegor256",
+ "followers_url": "https://api.github.com/users/yegor256/followers",
+ "following_url": "https://api.github.com/users/yegor256/following{/other_user}",
+ "gists_url": "https://api.github.com/users/yegor256/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/yegor256/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/yegor256/subscriptions",
+ "organizations_url": "https://api.github.com/users/yegor256/orgs",
+ "repos_url": "https://api.github.com/users/yegor256/repos",
+ "events_url": "https://api.github.com/users/yegor256/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/yegor256/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2013-11-05T14:33:26Z",
+ "updated_at": "2014-05-10T21:13:13Z",
+ "closed_at": "2014-05-10T21:13:13Z",
+ "author_association": "NONE",
+ "body": "Would be great if the library would also support Gist API: http://developer.github.com/v3/gists/\n"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-c66e220e-9138-4ead-92fb-7e882c71b9bf.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-c66e220e-9138-4ead-92fb-7e882c71b9bf.json
new file mode 100644
index 000000000..6bae6215a
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-c66e220e-9138-4ead-92fb-7e882c71b9bf.json
@@ -0,0 +1,1424 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/367",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/367/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/367/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/367/events",
+ "html_url": "https://github.com/github-api/github-api/issues/367",
+ "id": 246406998,
+ "node_id": "MDU6SXNzdWUyNDY0MDY5OTg=",
+ "number": 367,
+ "title": "Cannot merge newly created GHPullRequest",
+ "user": {
+ "login": "jamesdh",
+ "id": 1085322,
+ "node_id": "MDQ6VXNlcjEwODUzMjI=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1085322?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jamesdh",
+ "html_url": "https://github.com/jamesdh",
+ "followers_url": "https://api.github.com/users/jamesdh/followers",
+ "following_url": "https://api.github.com/users/jamesdh/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jamesdh/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jamesdh/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jamesdh/subscriptions",
+ "organizations_url": "https://api.github.com/users/jamesdh/orgs",
+ "repos_url": "https://api.github.com/users/jamesdh/repos",
+ "events_url": "https://api.github.com/users/jamesdh/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jamesdh/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-07-28T17:10:49Z",
+ "updated_at": "2017-07-28T17:36:12Z",
+ "closed_at": "2017-07-28T17:35:59Z",
+ "author_association": "NONE",
+ "body": "```\r\nGHPullRequest pull = repo.createPullRequest(\"Release $version\", \"master\", \"production\", body)\r\nwhile(!pull.getMergeable()) {\r\n println \"PR not yet mergeable, retrying...\"\r\n sleep 2\r\n}\r\npull.merge(\"Merged via Jenkins\", pull.getHead().getSha())\r\n```\r\n\r\nThe `pull.merge(...)` seemingly results in a no-op. No error. No merge. \r\n\r\nGenerally it's not immediately mergeable via `pull.getMergeable()` and it must pause a moment before that passes. But even accounting for that, I still get nothing. "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/366",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/366/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/366/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/366/events",
+ "html_url": "https://github.com/github-api/github-api/pull/366",
+ "id": 244219273,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTMxNDUyMDkw",
+ "number": 366,
+ "title": "Implement Pull request review feature",
+ "user": {
+ "login": "PauloMigAlmeida",
+ "id": 1011868,
+ "node_id": "MDQ6VXNlcjEwMTE4Njg=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1011868?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/PauloMigAlmeida",
+ "html_url": "https://github.com/PauloMigAlmeida",
+ "followers_url": "https://api.github.com/users/PauloMigAlmeida/followers",
+ "following_url": "https://api.github.com/users/PauloMigAlmeida/following{/other_user}",
+ "gists_url": "https://api.github.com/users/PauloMigAlmeida/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/PauloMigAlmeida/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/PauloMigAlmeida/subscriptions",
+ "organizations_url": "https://api.github.com/users/PauloMigAlmeida/orgs",
+ "repos_url": "https://api.github.com/users/PauloMigAlmeida/repos",
+ "events_url": "https://api.github.com/users/PauloMigAlmeida/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/PauloMigAlmeida/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-07-20T01:23:23Z",
+ "updated_at": "2017-07-21T05:34:32Z",
+ "closed_at": "2017-07-21T05:34:32Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/366",
+ "html_url": "https://github.com/github-api/github-api/pull/366",
+ "diff_url": "https://github.com/github-api/github-api/pull/366.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/366.patch"
+ },
+ "body": "Hi @kohsuke and github-api's contributors,\r\n\r\nI have been using github-api for a while now (BTW congrats for the high-quality SDK provided 👍) and recently, I have come to the conclusion that the ```Pull Request Review``` feature was needed to achieve the automation level the team and I are aiming for. Since it wasn't implemented at that time, I decided to implement it myself and to create a PR so other developers with the same need could benefit from it in the future.\r\n\r\n**Features implemented / Things done:**\r\n* Create Review\r\n* List Review\r\n* Submit Review\r\n* Delete Review\r\n* Unit tests implemented\r\n\r\nIf you think that this is good addition to your SDK, please accept this PR. In case you have any doubt about anything I have coded, just let me know.\r\n\r\nBest regards,\r\n\r\nPaulo Miguel Almeida "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/365",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/365/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/365/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/365/events",
+ "html_url": "https://github.com/github-api/github-api/issues/365",
+ "id": 243315367,
+ "node_id": "MDU6SXNzdWUyNDMzMTUzNjc=",
+ "number": 365,
+ "title": "Unable to search thru search API",
+ "user": {
+ "login": "Rahamathulla",
+ "id": 23169170,
+ "node_id": "MDQ6VXNlcjIzMTY5MTcw",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/23169170?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Rahamathulla",
+ "html_url": "https://github.com/Rahamathulla",
+ "followers_url": "https://api.github.com/users/Rahamathulla/followers",
+ "following_url": "https://api.github.com/users/Rahamathulla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Rahamathulla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Rahamathulla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Rahamathulla/subscriptions",
+ "organizations_url": "https://api.github.com/users/Rahamathulla/orgs",
+ "repos_url": "https://api.github.com/users/Rahamathulla/repos",
+ "events_url": "https://api.github.com/users/Rahamathulla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Rahamathulla/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2017-07-17T07:34:13Z",
+ "updated_at": "2017-08-02T15:30:09Z",
+ "closed_at": "2017-08-02T15:30:09Z",
+ "author_association": "NONE",
+ "body": "I am getting the below error.\r\n\r\nINFO: timed out accessing https://api.github.com/search/issues?q=ArithmeticException+language%3AJava; will try 2 more time(s)\r\njava.net.SocketTimeoutException: connect timed out\r\n\r\nI am able to connect go github using password\r\n\r\ntry {\r\n\t\t\thub = GitHub.connectUsingPassword(\"username\", \"passwd\");\r\n\t\t\tSystem.out.println(\"Successfully connected\");\r\n\t\t} catch (IOException e) {\r\n\t\t\tSystem.out.println(\"failed to authenticate\");\r\n\t\t\te.printStackTrace();\r\n\t\t\tSystem.exit(1);\r\n\t\t}\r\n\r\n\r\nStack Trace:\r\n\r\nNFO: timed out accessing https://api.github.com/search/issues?q=ArithmeticException+language%3AJava; will try 2 more time(s)\r\njava.net.SocketTimeoutException: connect timed out\r\n\tat java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n\tat java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)\r\n\tat java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)\r\n\tat java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)\r\n\tat java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)\r\n\tat java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)\r\n\tat java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)\r\n\tat java.net.Socket.connect(Socket.java:589)\r\n\tat sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)\r\n\tat sun.net.NetworkClient.doConnect(NetworkClient.java:175)\r\n\tat sun.net.www.http.HttpClient.openServer(HttpClient.java:432)\r\n\tat sun.net.www.http.HttpClient.openServer(HttpClient.java:527)\r\n\tat sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:264)\r\n\tat sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)\r\n\tat sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)\r\n\tat sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)\r\n\tat java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)\r\n\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:592)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:584)\r\n\tat org.kohsuke.github.Requester.access$200(Requester.java:70)\r\n\tat org.kohsuke.github.Requester$PagingIterator.fetch(Requester.java:496)\r\n\tat org.kohsuke.github.Requester$PagingIterator.hasNext(Requester.java:472)\r\n\tat org.kohsuke.github.PagedSearchIterable$1.hasNext(PagedSearchIterable.java:56)\r\n\tat org.kohsuke.github.PagedIterator.fetch(PagedIterator.java:44)\r\n\tat org.kohsuke.github.PagedIterator.hasNext(PagedIterator.java:32)\r\n\tat org.kohsuke.github.PagedIterable.asList(PagedIterable.java:42)\r\n\tat org.kohsuke.github.GitHubSearchTest.search(GitHubSearchTest.java:55)\r\n\tat org.kohsuke.github.GitHubSearchTest.main(GitHubSearchTest.java:44)\r\n\r\nJul 17, 2017 12:57:17 PM org.kohsuke.github.Requester parse\r\nINFO: timed out accessing https://api.github.com/search/issues?q=ArithmeticException+language%3AJava; will try 1 more time(s)\r\njava.net.SocketTimeoutException: connect timed out\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\r\n\tat java.lang.reflect.Constructor.newInstance(Constructor.java:423)\r\n\tat sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1890)\r\n\tat sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1885)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1884)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1457)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)\r\n\tat java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)\r\n\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:592)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:620)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:584)\r\n\tat org.kohsuke.github.Requester.access$200(Requester.java:70)\r\n\tat org.kohsuke.github.Requester$PagingIterator.fetch(Requester.java:496)\r\n\tat org.kohsuke.github.Requester$PagingIterator.hasNext(Requester.java:472)\r\n\tat org.kohsuke.github.PagedSearchIterable$1.hasNext(PagedSearchIterable.java:56)\r\n\tat org.kohsuke.github.PagedIterator.fetch(PagedIterator.java:44)\r\n\tat org.kohsuke.github.PagedIterator.hasNext(PagedIterator.java:32)\r\n\tat org.kohsuke.github.PagedIterable.asList(PagedIterable.java:42)\r\n\tat org.kohsuke.github.GitHubSearchTest.search(GitHubSearchTest.java:55)\r\n\tat org.kohsuke.github.GitHubSearchTest.main(GitHubSearchTest.java:44)\r\nCaused by: java.net.SocketTimeoutException: connect timed out\r\n\tat java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n\tat java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)\r\n\tat java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)\r\n\tat java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)\r\n\tat java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)\r\n\tat java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)\r\n\tat java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)\r\n\tat java.net.Socket.connect(Socket.java:589)\r\n\tat sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)\r\n\tat sun.net.NetworkClient.doConnect(NetworkClient.java:175)\r\n\tat sun.net.www.http.HttpClient.openServer(HttpClient.java:432)\r\n\tat sun.net.www.http.HttpClient.openServer(HttpClient.java:527)\r\n\tat sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:264)\r\n\tat sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)\r\n\tat sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)\r\n\tat sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)\r\n\tat java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)\r\n\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:592)\r\n\t... 10 more\r\n\r\nException in thread \"main\" java.lang.Error: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/search/issues?q=ArithmeticException+language%3AJava\r\n\tat org.kohsuke.github.Requester$PagingIterator.fetch(Requester.java:507)\r\n\tat org.kohsuke.github.Requester$PagingIterator.hasNext(Requester.java:472)\r\n\tat org.kohsuke.github.PagedSearchIterable$1.hasNext(PagedSearchIterable.java:56)\r\n\tat org.kohsuke.github.PagedIterator.fetch(PagedIterator.java:44)\r\n\tat org.kohsuke.github.PagedIterator.hasNext(PagedIterator.java:32)\r\n\tat org.kohsuke.github.PagedIterable.asList(PagedIterable.java:42)\r\n\tat org.kohsuke.github.GitHubSearchTest.search(GitHubSearchTest.java:55)\r\n\tat org.kohsuke.github.GitHubSearchTest.main(GitHubSearchTest.java:44)\r\nCaused by: org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com/search/issues?q=ArithmeticException+language%3AJava\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:622)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:620)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:620)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:584)\r\n\tat org.kohsuke.github.Requester.access$200(Requester.java:70)\r\n\tat org.kohsuke.github.Requester$PagingIterator.fetch(Requester.java:496)\r\n\t... 7 more\r\nCaused by: java.net.SocketTimeoutException: connect timed out\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\r\n\tat java.lang.reflect.Constructor.newInstance(Constructor.java:423)\r\n\tat sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1890)\r\n\tat sun.net.www.protocol.http.HttpURLConnection$10.run(HttpURLConnection.java:1885)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1884)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1457)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)\r\n\tat java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)\r\n\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:592)\r\n\t... 12 more\r\nCaused by: java.net.SocketTimeoutException: connect timed out\r\n\tat java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)\r\n\tat java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85)\r\n\tat java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)\r\n\tat java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)\r\n\tat java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)\r\n\tat java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)\r\n\tat java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)\r\n\tat java.net.Socket.connect(Socket.java:589)\r\n\tat sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)\r\n\tat sun.net.NetworkClient.doConnect(NetworkClient.java:175)\r\n\tat sun.net.www.http.HttpClient.openServer(HttpClient.java:432)\r\n\tat sun.net.www.http.HttpClient.openServer(HttpClient.java:527)\r\n\tat sun.net.www.protocol.https.HttpsClient.(HttpsClient.java:264)\r\n\tat sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)\r\n\tat sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)\r\n\tat sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513)\r\n\tat sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)\r\n\tat java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)\r\n\tat sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:592)\r\n\t... 10 more"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/364",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/364/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/364/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/364/events",
+ "html_url": "https://github.com/github-api/github-api/issues/364",
+ "id": 243284423,
+ "node_id": "MDU6SXNzdWUyNDMyODQ0MjM=",
+ "number": 364,
+ "title": "Unable to find documentation for issue search",
+ "user": {
+ "login": "Rahamathulla",
+ "id": 23169170,
+ "node_id": "MDQ6VXNlcjIzMTY5MTcw",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/23169170?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Rahamathulla",
+ "html_url": "https://github.com/Rahamathulla",
+ "followers_url": "https://api.github.com/users/Rahamathulla/followers",
+ "following_url": "https://api.github.com/users/Rahamathulla/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Rahamathulla/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Rahamathulla/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Rahamathulla/subscriptions",
+ "organizations_url": "https://api.github.com/users/Rahamathulla/orgs",
+ "repos_url": "https://api.github.com/users/Rahamathulla/repos",
+ "events_url": "https://api.github.com/users/Rahamathulla/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Rahamathulla/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2017-07-17T02:18:45Z",
+ "updated_at": "2017-07-17T06:56:09Z",
+ "closed_at": "2017-07-17T06:56:09Z",
+ "author_association": "NONE",
+ "body": "I would like to see the documentation for sample issue search.\r\n\r\nCan you please help with it.\r\n\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/363",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/363/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/363/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/363/events",
+ "html_url": "https://github.com/github-api/github-api/pull/363",
+ "id": 242895852,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTMwNTE0NzU0",
+ "number": 363,
+ "title": "Add missing event types used by repository webhooks",
+ "user": {
+ "login": "PauloMigAlmeida",
+ "id": 1011868,
+ "node_id": "MDQ6VXNlcjEwMTE4Njg=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1011868?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/PauloMigAlmeida",
+ "html_url": "https://github.com/PauloMigAlmeida",
+ "followers_url": "https://api.github.com/users/PauloMigAlmeida/followers",
+ "following_url": "https://api.github.com/users/PauloMigAlmeida/following{/other_user}",
+ "gists_url": "https://api.github.com/users/PauloMigAlmeida/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/PauloMigAlmeida/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/PauloMigAlmeida/subscriptions",
+ "organizations_url": "https://api.github.com/users/PauloMigAlmeida/orgs",
+ "repos_url": "https://api.github.com/users/PauloMigAlmeida/repos",
+ "events_url": "https://api.github.com/users/PauloMigAlmeida/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/PauloMigAlmeida/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-07-14T04:42:14Z",
+ "updated_at": "2017-09-08T17:36:34Z",
+ "closed_at": "2017-09-08T17:36:34Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/363",
+ "html_url": "https://github.com/github-api/github-api/pull/363",
+ "diff_url": "https://github.com/github-api/github-api/pull/363.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/363.patch"
+ },
+ "body": "There are a few event types that were missing in the GHEvent file since the last time it was updated.\r\n\r\nSo I thought it would be nice to update it again with the most recent events.\r\n\r\nCheers,\r\n\r\nPaulo Almeida"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/362",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/362/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/362/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/362/events",
+ "html_url": "https://github.com/github-api/github-api/pull/362",
+ "id": 241568869,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTI5NTgzMDQ4",
+ "number": 362,
+ "title": "Add ping hook method",
+ "user": {
+ "login": "KostyaSha",
+ "id": 231611,
+ "node_id": "MDQ6VXNlcjIzMTYxMQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/231611?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KostyaSha",
+ "html_url": "https://github.com/KostyaSha",
+ "followers_url": "https://api.github.com/users/KostyaSha/followers",
+ "following_url": "https://api.github.com/users/KostyaSha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KostyaSha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KostyaSha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KostyaSha/subscriptions",
+ "organizations_url": "https://api.github.com/users/KostyaSha/orgs",
+ "repos_url": "https://api.github.com/users/KostyaSha/repos",
+ "events_url": "https://api.github.com/users/KostyaSha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KostyaSha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2017-07-09T23:39:05Z",
+ "updated_at": "2017-09-08T17:34:46Z",
+ "closed_at": "2017-09-08T17:34:46Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/362",
+ "html_url": "https://github.com/github-api/github-api/pull/362",
+ "diff_url": "https://github.com/github-api/github-api/pull/362.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/362.patch"
+ },
+ "body": "\n\n\nThis change is [
](https://reviewable.io/reviews/kohsuke/github-api/362)\n\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/361",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/361/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/361/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/361/events",
+ "html_url": "https://github.com/github-api/github-api/pull/361",
+ "id": 241435089,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTI5NTIxNjI1",
+ "number": 361,
+ "title": "issue #360: Add support for committing multiple files",
+ "user": {
+ "login": "siordache",
+ "id": 1158863,
+ "node_id": "MDQ6VXNlcjExNTg4NjM=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1158863?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/siordache",
+ "html_url": "https://github.com/siordache",
+ "followers_url": "https://api.github.com/users/siordache/followers",
+ "following_url": "https://api.github.com/users/siordache/following{/other_user}",
+ "gists_url": "https://api.github.com/users/siordache/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/siordache/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/siordache/subscriptions",
+ "organizations_url": "https://api.github.com/users/siordache/orgs",
+ "repos_url": "https://api.github.com/users/siordache/repos",
+ "events_url": "https://api.github.com/users/siordache/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/siordache/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2017-07-08T08:10:29Z",
+ "updated_at": "2017-09-09T18:48:49Z",
+ "closed_at": "2017-09-09T18:48:49Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/361",
+ "html_url": "https://github.com/github-api/github-api/pull/361",
+ "diff_url": "https://github.com/github-api/github-api/pull/361.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/361.patch"
+ },
+ "body": "Implement #360. New classes:\r\n- GHBlobBuilder - [create a blob](https://developer.github.com/v3/git/blobs/#create-a-blob)\r\n- GHTreeBuilder - [create a tree](https://developer.github.com/v3/git/trees/#create-a-tree)\r\n- GHCommitBuilder - [create a commit](https://developer.github.com/v3/git/commits/#create-a-commit)\r\n\r\n[This gist](https://gist.github.com/siordache/63b19f515e4db6944e2411265f89e92f) shows how to use the new classes."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/360",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/360/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/360/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/360/events",
+ "html_url": "https://github.com/github-api/github-api/issues/360",
+ "id": 241250399,
+ "node_id": "MDU6SXNzdWUyNDEyNTAzOTk=",
+ "number": 360,
+ "title": "Add support for committing multiple files.",
+ "user": {
+ "login": "siordache",
+ "id": 1158863,
+ "node_id": "MDQ6VXNlcjExNTg4NjM=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1158863?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/siordache",
+ "html_url": "https://github.com/siordache",
+ "followers_url": "https://api.github.com/users/siordache/followers",
+ "following_url": "https://api.github.com/users/siordache/following{/other_user}",
+ "gists_url": "https://api.github.com/users/siordache/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/siordache/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/siordache/subscriptions",
+ "organizations_url": "https://api.github.com/users/siordache/orgs",
+ "repos_url": "https://api.github.com/users/siordache/repos",
+ "events_url": "https://api.github.com/users/siordache/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/siordache/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-07-07T12:33:46Z",
+ "updated_at": "2017-09-09T21:07:45Z",
+ "closed_at": "2017-09-09T21:07:45Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "A single file can be committed by using one of the GHRepository.createContent() methods.\r\n\r\nIn order to commit multiple files, the following steps have to be taken:\r\n1. Get the SHA of the latest commit on the branch\r\n2. Get the tree information for that commit\r\n3. **Create a new tree for your commit**\r\n4. **Create the commit**\r\n5. Link commit to the reference\r\n\r\nThe operations in steps 3 and 4 are currently not suppported by github-api. They involve:\r\n- [creating a blob](https://developer.github.com/v3/git/blobs/#create-a-blob)\r\n- [creating a tree](https://developer.github.com/v3/git/trees/#create-a-tree)\r\n- [creating a commit](https://developer.github.com/v3/git/commits/#create-a-commit)\r\n\r\nDo you find the addition of these operations useful? If yes, I will create a PR for this.\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/359",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/359/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/359/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/359/events",
+ "html_url": "https://github.com/github-api/github-api/pull/359",
+ "id": 239298451,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTI4MDIxMDU2",
+ "number": 359,
+ "title": "[JENKINS-45142] Retry connections after getting SocketTimeoutException",
+ "user": {
+ "login": "jglick",
+ "id": 154109,
+ "node_id": "MDQ6VXNlcjE1NDEwOQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/154109?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jglick",
+ "html_url": "https://github.com/jglick",
+ "followers_url": "https://api.github.com/users/jglick/followers",
+ "following_url": "https://api.github.com/users/jglick/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jglick/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jglick/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jglick/subscriptions",
+ "organizations_url": "https://api.github.com/users/jglick/orgs",
+ "repos_url": "https://api.github.com/users/jglick/repos",
+ "events_url": "https://api.github.com/users/jglick/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jglick/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2017-06-28T21:10:42Z",
+ "updated_at": "2017-07-03T13:41:45Z",
+ "closed_at": "2017-06-29T21:13:31Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/359",
+ "html_url": "https://github.com/github-api/github-api/pull/359",
+ "diff_url": "https://github.com/github-api/github-api/pull/359.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/359.patch"
+ },
+ "body": "[JENKINS-45142](https://issues.jenkins-ci.org/browse/JENKINS-45142)\r\n\r\n@reviewbybees"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/358",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/358/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/358/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/358/events",
+ "html_url": "https://github.com/github-api/github-api/pull/358",
+ "id": 235251737,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTI1MTUwMTMy",
+ "number": 358,
+ "title": "[JENKINS-36240] /repos/:owner/:repo/collaborators/:username/permission no longer requires korra preview",
+ "user": {
+ "login": "jglick",
+ "id": 154109,
+ "node_id": "MDQ6VXNlcjE1NDEwOQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/154109?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jglick",
+ "html_url": "https://github.com/jglick",
+ "followers_url": "https://api.github.com/users/jglick/followers",
+ "following_url": "https://api.github.com/users/jglick/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jglick/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jglick/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jglick/subscriptions",
+ "organizations_url": "https://api.github.com/users/jglick/orgs",
+ "repos_url": "https://api.github.com/users/jglick/repos",
+ "events_url": "https://api.github.com/users/jglick/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jglick/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2017-06-12T14:30:15Z",
+ "updated_at": "2017-10-04T21:14:56Z",
+ "closed_at": "2017-09-08T17:33:32Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/358",
+ "html_url": "https://github.com/github-api/github-api/pull/358",
+ "diff_url": "https://github.com/github-api/github-api/pull/358.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/358.patch"
+ },
+ "body": "[JENKINS-36240](https://issues.jenkins-ci.org/browse/JENKINS-36240)\r\n\r\nAmends #324 (and its unfiled follow-ups). [This API](https://developer.github.com/v3/repos/collaborators/#review-a-users-permission-level) seems to now be official.\r\n\r\n@reviewbybees esp. @stephenc & @kohsuke"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/357",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/357/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/357/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/357/events",
+ "html_url": "https://github.com/github-api/github-api/issues/357",
+ "id": 226462677,
+ "node_id": "MDU6SXNzdWUyMjY0NjI2Nzc=",
+ "number": 357,
+ "title": "Update compiler",
+ "user": {
+ "login": "justin-wesley",
+ "id": 3708806,
+ "node_id": "MDQ6VXNlcjM3MDg4MDY=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/3708806?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/justin-wesley",
+ "html_url": "https://github.com/justin-wesley",
+ "followers_url": "https://api.github.com/users/justin-wesley/followers",
+ "following_url": "https://api.github.com/users/justin-wesley/following{/other_user}",
+ "gists_url": "https://api.github.com/users/justin-wesley/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/justin-wesley/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/justin-wesley/subscriptions",
+ "organizations_url": "https://api.github.com/users/justin-wesley/orgs",
+ "repos_url": "https://api.github.com/users/justin-wesley/repos",
+ "events_url": "https://api.github.com/users/justin-wesley/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/justin-wesley/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2017-05-05T03:16:04Z",
+ "updated_at": "2017-09-09T21:09:16Z",
+ "closed_at": "2017-09-09T21:09:16Z",
+ "author_association": "NONE",
+ "body": "With JDK 5 being end of life for many many years, it is time to move to JDK 8. I think you should create a branch for JDK 8 and even JDK 9, so contributors can use the newer JDK."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/356",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/356/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/356/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/356/events",
+ "html_url": "https://github.com/github-api/github-api/issues/356",
+ "id": 223539584,
+ "node_id": "MDU6SXNzdWUyMjM1Mzk1ODQ=",
+ "number": 356,
+ "title": "Extension mechanism?",
+ "user": {
+ "login": "vromero",
+ "id": 1119553,
+ "node_id": "MDQ6VXNlcjExMTk1NTM=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1119553?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vromero",
+ "html_url": "https://github.com/vromero",
+ "followers_url": "https://api.github.com/users/vromero/followers",
+ "following_url": "https://api.github.com/users/vromero/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vromero/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vromero/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vromero/subscriptions",
+ "organizations_url": "https://api.github.com/users/vromero/orgs",
+ "repos_url": "https://api.github.com/users/vromero/repos",
+ "events_url": "https://api.github.com/users/vromero/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vromero/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-04-22T04:37:16Z",
+ "updated_at": "2017-09-09T21:18:27Z",
+ "closed_at": "2017-09-09T21:18:27Z",
+ "author_association": "NONE",
+ "body": "I need to get direct collaborators only,\r\n\r\nhttps://developer.github.com/v3/repos/collaborators/\r\n\r\nseems the only way is to modify the library itself, privates and packages prevent me to extend"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/355",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/355/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/355/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/355/events",
+ "html_url": "https://github.com/github-api/github-api/issues/355",
+ "id": 222295800,
+ "node_id": "MDU6SXNzdWUyMjIyOTU4MDA=",
+ "number": 355,
+ "title": "Update GHPullRequest with missing properties",
+ "user": {
+ "login": "aaronjwhiteside",
+ "id": 1084153,
+ "node_id": "MDQ6VXNlcjEwODQxNTM=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1084153?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/aaronjwhiteside",
+ "html_url": "https://github.com/aaronjwhiteside",
+ "followers_url": "https://api.github.com/users/aaronjwhiteside/followers",
+ "following_url": "https://api.github.com/users/aaronjwhiteside/following{/other_user}",
+ "gists_url": "https://api.github.com/users/aaronjwhiteside/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/aaronjwhiteside/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/aaronjwhiteside/subscriptions",
+ "organizations_url": "https://api.github.com/users/aaronjwhiteside/orgs",
+ "repos_url": "https://api.github.com/users/aaronjwhiteside/repos",
+ "events_url": "https://api.github.com/users/aaronjwhiteside/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/aaronjwhiteside/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-04-18T04:06:08Z",
+ "updated_at": "2017-09-10T03:39:03Z",
+ "closed_at": "2017-09-10T03:39:03Z",
+ "author_association": "NONE",
+ "body": "As per https://developer.github.com/v3/pulls/#get-a-single-pull-request\r\n\r\n`locked` - read/write, https://developer.github.com/v3/issues/#unlock-an-issue\r\n`commits` - read only\r\n`maintainer_can_modify` - read/write, https://developer.github.com/v3/pulls/#update-a-pull-request"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/353",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/353/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/353/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/353/events",
+ "html_url": "https://github.com/github-api/github-api/issues/353",
+ "id": 218568283,
+ "node_id": "MDU6SXNzdWUyMTg1NjgyODM=",
+ "number": 353,
+ "title": "Refactor to allow for additional HTTP headers",
+ "user": {
+ "login": "cosmocracy",
+ "id": 10222432,
+ "node_id": "MDQ6VXNlcjEwMjIyNDMy",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/10222432?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/cosmocracy",
+ "html_url": "https://github.com/cosmocracy",
+ "followers_url": "https://api.github.com/users/cosmocracy/followers",
+ "following_url": "https://api.github.com/users/cosmocracy/following{/other_user}",
+ "gists_url": "https://api.github.com/users/cosmocracy/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/cosmocracy/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/cosmocracy/subscriptions",
+ "organizations_url": "https://api.github.com/users/cosmocracy/orgs",
+ "repos_url": "https://api.github.com/users/cosmocracy/repos",
+ "events_url": "https://api.github.com/users/cosmocracy/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/cosmocracy/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-03-31T17:35:07Z",
+ "updated_at": "2017-09-09T21:12:33Z",
+ "closed_at": "2017-09-09T21:12:32Z",
+ "author_association": "NONE",
+ "body": "For new/experimental functionality, the GitHub API requires the submission of an additional header to enable features (see, for example, the [API documentation note](https://developer.github.com/v3/repos/) below related to the new Topics attributes):\r\n\r\n\r\n\r\nCurrently while the HTTP mechanisms are well-factored, they are only plugable via changes to the source code of this library. To ease extensibility (and meet the needs of additional headers), please consider either: \r\n - Implementing a Factory-style improvement that would allow for us to provide a ```Requester``` that could, for examlpe include the headers within the implementation of ```buildRequest```, or\r\n - Provide a pathway for injecting headers into the ```Requester```'s ```headers``` property, possibly via a static-level \"DefaultHeaders\" that is publicly available."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/352",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/352/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/352/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/352/events",
+ "html_url": "https://github.com/github-api/github-api/pull/352",
+ "id": 218162682,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTEzNDAzNDQ0",
+ "number": 352,
+ "title": "Add support for PR reviews preview",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 9,
+ "created_at": "2017-03-30T11:14:29Z",
+ "updated_at": "2017-11-01T15:50:05Z",
+ "closed_at": "2017-09-08T17:35:59Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/352",
+ "html_url": "https://github.com/github-api/github-api/pull/352",
+ "diff_url": "https://github.com/github-api/github-api/pull/352.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/352.patch"
+ },
+ "body": "@reviewbybees"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/351",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/351/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/351/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/351/events",
+ "html_url": "https://github.com/github-api/github-api/pull/351",
+ "id": 218159611,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTEzNDAxMTgz",
+ "number": 351,
+ "title": "Add the Commit search API",
+ "user": {
+ "login": "mdeverdelhan",
+ "id": 856354,
+ "node_id": "MDQ6VXNlcjg1NjM1NA==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/856354?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mdeverdelhan",
+ "html_url": "https://github.com/mdeverdelhan",
+ "followers_url": "https://api.github.com/users/mdeverdelhan/followers",
+ "following_url": "https://api.github.com/users/mdeverdelhan/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mdeverdelhan/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mdeverdelhan/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mdeverdelhan/subscriptions",
+ "organizations_url": "https://api.github.com/users/mdeverdelhan/orgs",
+ "repos_url": "https://api.github.com/users/mdeverdelhan/repos",
+ "events_url": "https://api.github.com/users/mdeverdelhan/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mdeverdelhan/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2017-03-30T11:01:05Z",
+ "updated_at": "2017-09-08T21:17:01Z",
+ "closed_at": "2017-09-08T21:17:01Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/351",
+ "html_url": "https://github.com/github-api/github-api/pull/351",
+ "diff_url": "https://github.com/github-api/github-api/pull/351.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/351.patch"
+ },
+ "body": "Fix #345 - Add the Commit search API (still in preview in GitHub API v3)\r\n\r\nSee also: https://developer.github.com/v3/search/#search-commits"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/350",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/350/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/350/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/350/events",
+ "html_url": "https://github.com/github-api/github-api/pull/350",
+ "id": 217857146,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTEzMTgzOTQz",
+ "number": 350,
+ "title": "Add application/json header when sending json data.",
+ "user": {
+ "login": "kounoike",
+ "id": 6997928,
+ "node_id": "MDQ6VXNlcjY5OTc5Mjg=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/6997928?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kounoike",
+ "html_url": "https://github.com/kounoike",
+ "followers_url": "https://api.github.com/users/kounoike/followers",
+ "following_url": "https://api.github.com/users/kounoike/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kounoike/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kounoike/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kounoike/subscriptions",
+ "organizations_url": "https://api.github.com/users/kounoike/orgs",
+ "repos_url": "https://api.github.com/users/kounoike/repos",
+ "events_url": "https://api.github.com/users/kounoike/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kounoike/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-03-29T12:18:55Z",
+ "updated_at": "2017-09-09T18:53:10Z",
+ "closed_at": "2017-09-09T18:53:10Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/350",
+ "html_url": "https://github.com/github-api/github-api/pull/350",
+ "diff_url": "https://github.com/github-api/github-api/pull/350.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/350.patch"
+ },
+ "body": "I'm using Jenkins and SonarQube GitHub plugins with [GitBucket](https://github.com/gitbucket/gitbucket).\r\nGitBucket has GitHub-compatible API.\r\nBut it is not 100% compatible. This PR solves one of the differences between GitHub and GitBucket. And, it also solves header and body data format mismatch when sending json data.\r\n\r\nin current version's Requester.java [buildRequest](https://github.com/kohsuke/github-api/blob/2627dc5ee4ed60c0250ce5a9e99d586d480603f2/src/main/java/org/kohsuke/github/Requester.java#L385) sends json data with content-type: application/x-www-form-urlencoded.\r\nThis behavior is incorrect. data and header mismatch. Then, GitBucket was confused by how to handle data.\r\n\r\nIn GitHub API, GitHub parses this data as json (header content-type is ignored), but this behavior is not documented. In the future this behavior may change.\r\n\r\nI think that it is better to accept this modification to avoid future problems."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/346",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/346/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/346/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/346/events",
+ "html_url": "https://github.com/github-api/github-api/pull/346",
+ "id": 209753433,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTA3NjE4NjQ3",
+ "number": 346,
+ "title": "Ensure that connections are closed for error responses",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2017-02-23T12:54:15Z",
+ "updated_at": "2017-11-01T15:50:06Z",
+ "closed_at": "2017-02-27T20:33:19Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/346",
+ "html_url": "https://github.com/github-api/github-api/pull/346",
+ "diff_url": "https://github.com/github-api/github-api/pull/346.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/346.patch"
+ },
+ "body": "- This was endless fun to trace, but I found it at last. This should\r\nstop the `WARNING: A connection to https://api.github.com/ was leaked.\r\nDid you forget to close a response body?` messages in the logs when\r\nusing the OkHttpConnector.\r\n\r\n@reviewbybees"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/345",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/345/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/345/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/345/events",
+ "html_url": "https://github.com/github-api/github-api/issues/345",
+ "id": 209735152,
+ "node_id": "MDU6SXNzdWUyMDk3MzUxNTI=",
+ "number": 345,
+ "title": "Commit Search API implemented or not?",
+ "user": {
+ "login": "mdeverdelhan",
+ "id": 856354,
+ "node_id": "MDQ6VXNlcjg1NjM1NA==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/856354?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mdeverdelhan",
+ "html_url": "https://github.com/mdeverdelhan",
+ "followers_url": "https://api.github.com/users/mdeverdelhan/followers",
+ "following_url": "https://api.github.com/users/mdeverdelhan/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mdeverdelhan/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mdeverdelhan/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mdeverdelhan/subscriptions",
+ "organizations_url": "https://api.github.com/users/mdeverdelhan/orgs",
+ "repos_url": "https://api.github.com/users/mdeverdelhan/repos",
+ "events_url": "https://api.github.com/users/mdeverdelhan/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mdeverdelhan/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-02-23T11:26:52Z",
+ "updated_at": "2017-09-08T21:17:01Z",
+ "closed_at": "2017-09-08T21:17:01Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "Hello,\r\n\r\nIs the [Commit Search API](https://developer.github.com/v3/search/#search-commits) (in preview) already implemented in the library?\r\n\r\nThank you."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/344",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/344/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/344/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/344/events",
+ "html_url": "https://github.com/github-api/github-api/issues/344",
+ "id": 209519050,
+ "node_id": "MDU6SXNzdWUyMDk1MTkwNTA=",
+ "number": 344,
+ "title": "Building failing due problematic repository server",
+ "user": {
+ "login": "sergiofigueras",
+ "id": 1733227,
+ "node_id": "MDQ6VXNlcjE3MzMyMjc=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1733227?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sergiofigueras",
+ "html_url": "https://github.com/sergiofigueras",
+ "followers_url": "https://api.github.com/users/sergiofigueras/followers",
+ "following_url": "https://api.github.com/users/sergiofigueras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sergiofigueras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sergiofigueras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sergiofigueras/subscriptions",
+ "organizations_url": "https://api.github.com/users/sergiofigueras/orgs",
+ "repos_url": "https://api.github.com/users/sergiofigueras/repos",
+ "events_url": "https://api.github.com/users/sergiofigueras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sergiofigueras/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-02-22T17:08:48Z",
+ "updated_at": "2017-09-09T21:19:28Z",
+ "closed_at": "2017-09-09T21:19:28Z",
+ "author_association": "NONE",
+ "body": "Hello guys,\r\n\r\nOur build is failing due an bad repository. It started two days ago.\r\n\r\n```org.kohsuke:github-api:jar:1.77 -> com.infradna.tool:bridge-method-annotation:jar:1.14 -> org.jenkins-ci:annotation-indexer:jar:1.4: Failed to read artifact descriptor for org.jenkins-ci:annotation-indexer:jar:1.4: Could not transfer artifact org.jenkins-ci:jenkins:pom:1.26 from/to repo.jenkins-ci.org (http://repo.jenkins-ci.org/public/): Failed to transfer file: http://repo.jenkins-ci.org/public/org/jenkins-ci/jenkins/1.26/jenkins-1.26.pom. Return code is: 502 , ReasonPhrase:Bad Gateway. -> [Help 1]```\r\n\r\nI also checked https://repo.jenkins-ci.org/public/org/jenkins-ci/jenkins/1.26/jenkins-1.26.pom, but its giving 504 TIMEOUT.\r\nIs anybody facing this too?"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/343",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/343/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/343/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/343/events",
+ "html_url": "https://github.com/github-api/github-api/pull/343",
+ "id": 208729931,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2OTA4MDYw",
+ "number": 343,
+ "title": "add latest release",
+ "user": {
+ "login": "kamontat",
+ "id": 14089557,
+ "node_id": "MDQ6VXNlcjE0MDg5NTU3",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/14089557?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kamontat",
+ "html_url": "https://github.com/kamontat",
+ "followers_url": "https://api.github.com/users/kamontat/followers",
+ "following_url": "https://api.github.com/users/kamontat/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kamontat/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kamontat/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kamontat/subscriptions",
+ "organizations_url": "https://api.github.com/users/kamontat/orgs",
+ "repos_url": "https://api.github.com/users/kamontat/repos",
+ "events_url": "https://api.github.com/users/kamontat/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kamontat/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2017-02-19T17:04:31Z",
+ "updated_at": "2017-09-08T17:39:14Z",
+ "closed_at": "2017-09-08T17:39:13Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/343",
+ "html_url": "https://github.com/github-api/github-api/pull/343",
+ "diff_url": "https://github.com/github-api/github-api/pull/343.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/343.patch"
+ },
+ "body": "I already add the latest release, so please add to master and update version so that I can use in my project\r\nFix #341 \r\n\r\nPS I don't know how to push my fixed module to the maven server so, please. @emlagowski \r\n\r\n\r\nThank you"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/342",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/342/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/342/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/342/events",
+ "html_url": "https://github.com/github-api/github-api/issues/342",
+ "id": 208728508,
+ "node_id": "MDU6SXNzdWUyMDg3Mjg1MDg=",
+ "number": 342,
+ "title": "getPusher() returns null in call to getPusher()",
+ "user": {
+ "login": "golharam",
+ "id": 671079,
+ "node_id": "MDQ6VXNlcjY3MTA3OQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/671079?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/golharam",
+ "html_url": "https://github.com/golharam",
+ "followers_url": "https://api.github.com/users/golharam/followers",
+ "following_url": "https://api.github.com/users/golharam/following{/other_user}",
+ "gists_url": "https://api.github.com/users/golharam/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/golharam/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/golharam/subscriptions",
+ "organizations_url": "https://api.github.com/users/golharam/orgs",
+ "repos_url": "https://api.github.com/users/golharam/repos",
+ "events_url": "https://api.github.com/users/golharam/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/golharam/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-02-19T16:41:23Z",
+ "updated_at": "2017-02-19T16:42:54Z",
+ "closed_at": "2017-02-19T16:42:53Z",
+ "author_association": "NONE",
+ "body": "I have a github enterprise installation. I'm trying to get Jenkins connected to it. When I set up a repo and turn on 'GitHub hook trigger for GITScm polling', I see the hook get created in my repo, however it has a Red Triangle icon. Hovering over it says 'Invalid HTTP Reponse: 0'.\r\n\r\nWhen I look at the Jenkins log, I see github tried to post an event, but I see the following error:\r\n\r\njava.lang.NullPointerException\r\n\tat org.jenkinsci.plugins.github.webhook.subscriber.DefaultPushGHEventSubscriber.onEvent(DefaultPushGHEventSubscriber.java:77)\r\n\tat org.jenkinsci.plugins.github.extension.GHEventsSubscriber$4.applyNullSafe(GHEventsSubscriber.java:240)\r\n\tat org.jenkinsci.plugins.github.extension.GHEventsSubscriber$4.applyNullSafe(GHEventsSubscriber.java:236)\r\n\tat org.jenkinsci.plugins.github.util.misc.NullSafeFunction.apply(NullSafeFunction.java:18)\r\n\tat com.google.common.collect.Iterators$8.next(Iterators.java:812)\r\n\tat com.google.common.collect.Lists.newArrayList(Lists.java:139)\r\n\tat com.google.common.collect.Lists.newArrayList(Lists.java:119)\r\n\tat org.jenkinsci.plugins.github.util.FluentIterableWrapper.toList(FluentIterableWrapper.java:147)\r\n\tat com.cloudbees.jenkins.GitHubWebHook.doIndex(GitHubWebHook.java:124)\r\n\tat java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)\r\n\tat org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)\r\n\tat org.jenkinsci.plugins.github.webhook.RequirePostWithGHHookPayload$Processor.invoke(RequirePostWithGHHookPayload.java:76)\r\n\tat org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)\r\n\tat org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)\r\n\tat org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)\r\n\tat org.kohsuke.stapler.IndexDispatcher.dispatch(IndexDispatcher.java:26)\r\n\tat org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)\r\n\tat org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)\r\n\tat org.kohsuke.stapler.MetaClass$10.dispatch(MetaClass.java:374)\r\n\tat org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)\r\n\tat org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)\r\n\tat org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)\r\n\tat org.kohsuke.stapler.Stapler.service(Stapler.java:238)\r\n\tat javax.servlet.http.HttpServlet.service(HttpServlet.java:790)\r\n\tat org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669)\r\n\tat hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:135)\r\n\tat hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:126)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\r\n\tat com.cloudbees.jenkins.GitHubWebHookCrumbExclusion.process(GitHubWebHookCrumbExclusion.java:29)\r\n\tat hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:58)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\r\n\tat hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)\r\n\tat hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)\r\n\tat hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\r\n\tat jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)\r\n\tat hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\r\n\tat org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)\r\n\tat hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\r\n\tat org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135)\r\n\tat hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\r\n\tat org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)\r\n\tat hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\r\n\tat jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)\r\n\tat hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\r\n\tat org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)\r\n\tat hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)\r\n\tat hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\r\n\tat hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)\r\n\tat hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\r\n\tat org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\r\n\tat hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\r\n\tat org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)\r\n\tat org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)\r\n\tat org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)\r\n\tat org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:553)\r\n\tat org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)\r\n\tat org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)\r\n\tat org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)\r\n\tat org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)\r\n\tat org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)\r\n\tat org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\r\n\tat org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)\r\n\tat org.eclipse.jetty.server.Server.handle(Server.java:499)\r\n\tat org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)\r\n\tat org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)\r\n\tat org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)\r\n\tat winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)\r\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n\tat java.lang.Thread.run(Thread.java:745)\r\n\r\n\r\nInterestingly enough, if I take the same payload and put it in a JSON, I can post the even manually using curl:\r\n$ curl -X POST --header \"Content-Type: application/json\" --header \"X-GitHub-Event: push\" -d @data.json http://XXX.XXX.XXX.XXX:8080/github-webhook/ -v\r\n* About to connect() to proxy proxy-server port 8080 (#0)\r\n* Trying XXX.XXX.XXX.XXX... connected\r\n* Connected to proxy-server (XXX.XXX.XXX.XXX) port 8080 (#0)\r\n> POST http://XXX.XXX.XXX.XXX:8080/github-webhook/ HTTP/1.1\r\n> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.18 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2\r\n> Host: XXX.XXX.XXX.XXX:8080\r\n> Accept: */*\r\n> Proxy-Connection: Keep-Alive\r\n> Content-Type: application/json\r\n> X-GitHub-Event: push\r\n> Content-Length: 6983\r\n> Expect: 100-continue\r\n>\r\n< HTTP/1.1 100 Continue\r\n< HTTP/1.1 200 OK\r\n< Date: Sun, 19 Feb 2017 15:27:47 GMT\r\n< X-Content-Type-Options: nosniff\r\n< Content-Length: 0\r\n< Server: Jetty(9.2.z-SNAPSHOT)\r\n< Proxy-Connection: Keep-Alive\r\n< Connection: Keep-Alive\r\n<\r\n* Connection #0 to host proxy-server left intact\r\n* Closing connection #0\r\n\r\n\r\nLooking at the code in org.jenkinsci.plugins.github.webhook.subscriber.DefaultPushGHEventSubscriber.onEvent(DefaultPushGHEventSubscriber.java:77), it looks like the call to getPusher is null. \r\n\r\nIn deed, when I put the json in a unit test, getPusher returns null.\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/341",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/341/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/341/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/341/events",
+ "html_url": "https://github.com/github-api/github-api/issues/341",
+ "id": 208186510,
+ "node_id": "MDU6SXNzdWUyMDgxODY1MTA=",
+ "number": 341,
+ "title": "How can I get Latest Release of Repository?",
+ "user": {
+ "login": "kamontat",
+ "id": 14089557,
+ "node_id": "MDQ6VXNlcjE0MDg5NTU3",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/14089557?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kamontat",
+ "html_url": "https://github.com/kamontat",
+ "followers_url": "https://api.github.com/users/kamontat/followers",
+ "following_url": "https://api.github.com/users/kamontat/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kamontat/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kamontat/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kamontat/subscriptions",
+ "organizations_url": "https://api.github.com/users/kamontat/orgs",
+ "repos_url": "https://api.github.com/users/kamontat/repos",
+ "events_url": "https://api.github.com/users/kamontat/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kamontat/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2017-02-16T17:11:44Z",
+ "updated_at": "2017-09-08T17:39:13Z",
+ "closed_at": "2017-09-08T17:39:13Z",
+ "author_association": "CONTRIBUTOR",
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/340",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/340/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/340/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/340/events",
+ "html_url": "https://github.com/github-api/github-api/pull/340",
+ "id": 207699761,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTA2MjM3MzU2",
+ "number": 340,
+ "title": "improved branch protection support",
+ "user": {
+ "login": "jgangemi",
+ "id": 1831839,
+ "node_id": "MDQ6VXNlcjE4MzE4Mzk=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1831839?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jgangemi",
+ "html_url": "https://github.com/jgangemi",
+ "followers_url": "https://api.github.com/users/jgangemi/followers",
+ "following_url": "https://api.github.com/users/jgangemi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jgangemi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jgangemi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jgangemi/subscriptions",
+ "organizations_url": "https://api.github.com/users/jgangemi/orgs",
+ "repos_url": "https://api.github.com/users/jgangemi/repos",
+ "events_url": "https://api.github.com/users/jgangemi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jgangemi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-02-15T03:30:09Z",
+ "updated_at": "2017-08-08T20:37:46Z",
+ "closed_at": "2017-08-08T20:37:46Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/340",
+ "html_url": "https://github.com/github-api/github-api/pull/340",
+ "diff_url": "https://github.com/github-api/github-api/pull/340.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/340.patch"
+ },
+ "body": "this PR will improves the support around protected branches and bring it inline w/ the current api. what is currently there doesn't work (properly at least) and given how i interpreted the `@Preview` docs, this seems inline."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/339",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/339/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/339/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/339/events",
+ "html_url": "https://github.com/github-api/github-api/pull/339",
+ "id": 206673256,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1NTQ0NjI0",
+ "number": 339,
+ "title": "Expose Headers",
+ "user": {
+ "login": "KostyaSha",
+ "id": 231611,
+ "node_id": "MDQ6VXNlcjIzMTYxMQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/231611?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KostyaSha",
+ "html_url": "https://github.com/KostyaSha",
+ "followers_url": "https://api.github.com/users/KostyaSha/followers",
+ "following_url": "https://api.github.com/users/KostyaSha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KostyaSha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KostyaSha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KostyaSha/subscriptions",
+ "organizations_url": "https://api.github.com/users/KostyaSha/orgs",
+ "repos_url": "https://api.github.com/users/KostyaSha/repos",
+ "events_url": "https://api.github.com/users/KostyaSha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KostyaSha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2017-02-10T00:38:32Z",
+ "updated_at": "2017-09-10T15:06:02Z",
+ "closed_at": "2017-09-09T20:07:59Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/339",
+ "html_url": "https://github.com/github-api/github-api/pull/339",
+ "diff_url": "https://github.com/github-api/github-api/pull/339.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/339.patch"
+ },
+ "body": "Fixes #303 \r\n\r\nBit shocked with design, this info is needed for normal and failed requests, so added GHObject field injector and wrapped exceptions. Not sure only whether it possible to change throwing exception types without breaking compatibility.\r\n\r\ncc @stephenc your github-branch-org-source should be also affected if it close to non single admin token use case.\n\n\n---\nThis change is [
](https://reviewable.io/reviews/kohsuke/github-api/339)\n\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/338",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/338/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/338/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/338/events",
+ "html_url": "https://github.com/github-api/github-api/pull/338",
+ "id": 206570864,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1NDczNDQz",
+ "number": 338,
+ "title": "Ignore eclipse files",
+ "user": {
+ "login": "sebkur",
+ "id": 1633488,
+ "node_id": "MDQ6VXNlcjE2MzM0ODg=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1633488?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sebkur",
+ "html_url": "https://github.com/sebkur",
+ "followers_url": "https://api.github.com/users/sebkur/followers",
+ "following_url": "https://api.github.com/users/sebkur/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sebkur/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sebkur/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sebkur/subscriptions",
+ "organizations_url": "https://api.github.com/users/sebkur/orgs",
+ "repos_url": "https://api.github.com/users/sebkur/repos",
+ "events_url": "https://api.github.com/users/sebkur/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sebkur/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-02-09T17:20:08Z",
+ "updated_at": "2017-09-08T17:39:40Z",
+ "closed_at": "2017-09-08T17:39:40Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/338",
+ "html_url": "https://github.com/github-api/github-api/pull/338",
+ "diff_url": "https://github.com/github-api/github-api/pull/338.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/338.patch"
+ },
+ "body": "Ignore the Eclipse files (can be generated with `mvn eclipse:eclipse`)"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/337",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/337/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/337/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/337/events",
+ "html_url": "https://github.com/github-api/github-api/pull/337",
+ "id": 206570656,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1NDczMjk4",
+ "number": 337,
+ "title": "Remove unused imports",
+ "user": {
+ "login": "sebkur",
+ "id": 1633488,
+ "node_id": "MDQ6VXNlcjE2MzM0ODg=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1633488?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sebkur",
+ "html_url": "https://github.com/sebkur",
+ "followers_url": "https://api.github.com/users/sebkur/followers",
+ "following_url": "https://api.github.com/users/sebkur/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sebkur/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sebkur/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sebkur/subscriptions",
+ "organizations_url": "https://api.github.com/users/sebkur/orgs",
+ "repos_url": "https://api.github.com/users/sebkur/repos",
+ "events_url": "https://api.github.com/users/sebkur/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sebkur/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-02-09T17:19:25Z",
+ "updated_at": "2017-09-09T19:05:50Z",
+ "closed_at": "2017-09-09T19:05:50Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/337",
+ "html_url": "https://github.com/github-api/github-api/pull/337",
+ "diff_url": "https://github.com/github-api/github-api/pull/337.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/337.patch"
+ },
+ "body": "Especially also remove the unsued import of\r\n`javax.xml.bind.DatatypeConverter` from `GHContent` which is non-public API\r\nas of Java 8"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/336",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/336/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/336/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/336/events",
+ "html_url": "https://github.com/github-api/github-api/pull/336",
+ "id": 205886553,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTA1MDA0NTIz",
+ "number": 336,
+ "title": "Fix #335",
+ "user": {
+ "login": "auchri",
+ "id": 5092164,
+ "node_id": "MDQ6VXNlcjUwOTIxNjQ=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5092164?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/auchri",
+ "html_url": "https://github.com/auchri",
+ "followers_url": "https://api.github.com/users/auchri/followers",
+ "following_url": "https://api.github.com/users/auchri/following{/other_user}",
+ "gists_url": "https://api.github.com/users/auchri/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/auchri/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/auchri/subscriptions",
+ "organizations_url": "https://api.github.com/users/auchri/orgs",
+ "repos_url": "https://api.github.com/users/auchri/repos",
+ "events_url": "https://api.github.com/users/auchri/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/auchri/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-02-07T13:26:58Z",
+ "updated_at": "2017-09-09T19:12:05Z",
+ "closed_at": "2017-09-09T19:12:05Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/336",
+ "html_url": "https://github.com/github-api/github-api/pull/336",
+ "diff_url": "https://github.com/github-api/github-api/pull/336.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/336.patch"
+ },
+ "body": "Correct namespace\r\n\r\nFile: https://github.com/square/okhttp/blob/master/okhttp-urlconnection/src/main/java/okhttp3/OkUrlFactory.java\r\n\r\nFixes #335"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/335",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/335/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/335/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/335/events",
+ "html_url": "https://github.com/github-api/github-api/issues/335",
+ "id": 205885148,
+ "node_id": "MDU6SXNzdWUyMDU4ODUxNDg=",
+ "number": 335,
+ "title": "OkHttpConnector is broken",
+ "user": {
+ "login": "auchri",
+ "id": 5092164,
+ "node_id": "MDQ6VXNlcjUwOTIxNjQ=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5092164?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/auchri",
+ "html_url": "https://github.com/auchri",
+ "followers_url": "https://api.github.com/users/auchri/followers",
+ "following_url": "https://api.github.com/users/auchri/following{/other_user}",
+ "gists_url": "https://api.github.com/users/auchri/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/auchri/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/auchri/subscriptions",
+ "organizations_url": "https://api.github.com/users/auchri/orgs",
+ "repos_url": "https://api.github.com/users/auchri/repos",
+ "events_url": "https://api.github.com/users/auchri/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/auchri/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2017-02-07T13:21:05Z",
+ "updated_at": "2017-09-09T19:12:38Z",
+ "closed_at": "2017-09-09T19:12:38Z",
+ "author_association": "NONE",
+ "body": "The package was changed to `okhttp3.OkUrlFactory;`"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/333",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/333/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/333/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/333/events",
+ "html_url": "https://github.com/github-api/github-api/pull/333",
+ "id": 203787537,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTAzNjAwNzI5",
+ "number": 333,
+ "title": "Add support for MergeMethod on GHPullRequest",
+ "user": {
+ "login": "greggian",
+ "id": 107471,
+ "node_id": "MDQ6VXNlcjEwNzQ3MQ==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/107471?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/greggian",
+ "html_url": "https://github.com/greggian",
+ "followers_url": "https://api.github.com/users/greggian/followers",
+ "following_url": "https://api.github.com/users/greggian/following{/other_user}",
+ "gists_url": "https://api.github.com/users/greggian/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/greggian/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/greggian/subscriptions",
+ "organizations_url": "https://api.github.com/users/greggian/orgs",
+ "repos_url": "https://api.github.com/users/greggian/repos",
+ "events_url": "https://api.github.com/users/greggian/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/greggian/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2017-01-28T04:42:21Z",
+ "updated_at": "2017-09-09T19:17:52Z",
+ "closed_at": "2017-09-09T19:17:52Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/333",
+ "html_url": "https://github.com/github-api/github-api/pull/333",
+ "diff_url": "https://github.com/github-api/github-api/pull/333.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/333.patch"
+ },
+ "body": "- Add 'polaris' preview\r\n- Add MergeMethod Enum\r\n- Add merge method to GHPullRequest which takes a MergeMethod\r\n\r\nFixes #326"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-c9e769fc-6556-4374-b397-244843a75000.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-c9e769fc-6556-4374-b397-244843a75000.json
new file mode 100644
index 000000000..571205224
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-c9e769fc-6556-4374-b397-244843a75000.json
@@ -0,0 +1,1460 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/143",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/143/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/143/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/143/events",
+ "html_url": "https://github.com/github-api/github-api/pull/143",
+ "id": 52579692,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjY0MjIwMTc=",
+ "number": 143,
+ "title": "Complete api implementation for the new github deployment api",
+ "user": {
+ "login": "suryagaddipati",
+ "id": 64078,
+ "node_id": "MDQ6VXNlcjY0MDc4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/64078?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/suryagaddipati",
+ "html_url": "https://github.com/suryagaddipati",
+ "followers_url": "https://api.github.com/users/suryagaddipati/followers",
+ "following_url": "https://api.github.com/users/suryagaddipati/following{/other_user}",
+ "gists_url": "https://api.github.com/users/suryagaddipati/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/suryagaddipati/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/suryagaddipati/subscriptions",
+ "organizations_url": "https://api.github.com/users/suryagaddipati/orgs",
+ "repos_url": "https://api.github.com/users/suryagaddipati/repos",
+ "events_url": "https://api.github.com/users/suryagaddipati/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/suryagaddipati/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2014-12-20T23:11:46Z",
+ "updated_at": "2015-02-14T17:32:48Z",
+ "closed_at": "2015-02-14T17:32:48Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/143",
+ "html_url": "https://github.com/github-api/github-api/pull/143",
+ "diff_url": "https://github.com/github-api/github-api/pull/143.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/143.patch"
+ },
+ "body": "https://developer.github.com/v3/repos/deployments/#create-a-deployment\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/142",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/142/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/142/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/142/events",
+ "html_url": "https://github.com/github-api/github-api/pull/142",
+ "id": 52515310,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjYzOTA3NjA=",
+ "number": 142,
+ "title": "Add code for creating deployments for a repo",
+ "user": {
+ "login": "suryagaddipati",
+ "id": 64078,
+ "node_id": "MDQ6VXNlcjY0MDc4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/64078?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/suryagaddipati",
+ "html_url": "https://github.com/suryagaddipati",
+ "followers_url": "https://api.github.com/users/suryagaddipati/followers",
+ "following_url": "https://api.github.com/users/suryagaddipati/following{/other_user}",
+ "gists_url": "https://api.github.com/users/suryagaddipati/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/suryagaddipati/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/suryagaddipati/subscriptions",
+ "organizations_url": "https://api.github.com/users/suryagaddipati/orgs",
+ "repos_url": "https://api.github.com/users/suryagaddipati/repos",
+ "events_url": "https://api.github.com/users/suryagaddipati/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/suryagaddipati/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-12-19T18:47:43Z",
+ "updated_at": "2014-12-19T19:45:15Z",
+ "closed_at": "2014-12-19T19:45:15Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/142",
+ "html_url": "https://github.com/github-api/github-api/pull/142",
+ "diff_url": "https://github.com/github-api/github-api/pull/142.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/142.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/141",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/141/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/141/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/141/events",
+ "html_url": "https://github.com/github-api/github-api/pull/141",
+ "id": 52449207,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjYzNTIwMTE=",
+ "number": 141,
+ "title": "Trivial change to enable creating/updating binary content (files).",
+ "user": {
+ "login": "alvaro1728",
+ "id": 4854341,
+ "node_id": "MDQ6VXNlcjQ4NTQzNDE=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/4854341?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/alvaro1728",
+ "html_url": "https://github.com/alvaro1728",
+ "followers_url": "https://api.github.com/users/alvaro1728/followers",
+ "following_url": "https://api.github.com/users/alvaro1728/following{/other_user}",
+ "gists_url": "https://api.github.com/users/alvaro1728/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/alvaro1728/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/alvaro1728/subscriptions",
+ "organizations_url": "https://api.github.com/users/alvaro1728/orgs",
+ "repos_url": "https://api.github.com/users/alvaro1728/repos",
+ "events_url": "https://api.github.com/users/alvaro1728/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/alvaro1728/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-12-19T05:25:15Z",
+ "updated_at": "2015-02-14T14:42:55Z",
+ "closed_at": "2015-02-14T14:42:55Z",
+ "author_association": "FIRST_TIMER",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/141",
+ "html_url": "https://github.com/github-api/github-api/pull/141",
+ "diff_url": "https://github.com/github-api/github-api/pull/141.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/141.patch"
+ },
+ "body": "I need to use git as a file server for all kinds of files, including binary ones. This Java library is very nice but it's missing the ability to create or update binary files. Adding support for it was a trivial change that I would appreciate if you can merge ASAP. \n\nThanks!\nAlvaro\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/140",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/140/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/140/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/140/events",
+ "html_url": "https://github.com/github-api/github-api/pull/140",
+ "id": 49455075,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjQ3MjIxMjM=",
+ "number": 140,
+ "title": "Update mockito-all to test scope",
+ "user": {
+ "login": "aslakknutsen",
+ "id": 132158,
+ "node_id": "MDQ6VXNlcjEzMjE1OA==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/132158?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/aslakknutsen",
+ "html_url": "https://github.com/aslakknutsen",
+ "followers_url": "https://api.github.com/users/aslakknutsen/followers",
+ "following_url": "https://api.github.com/users/aslakknutsen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/aslakknutsen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/aslakknutsen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/aslakknutsen/subscriptions",
+ "organizations_url": "https://api.github.com/users/aslakknutsen/orgs",
+ "repos_url": "https://api.github.com/users/aslakknutsen/repos",
+ "events_url": "https://api.github.com/users/aslakknutsen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/aslakknutsen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2014-11-19T21:22:24Z",
+ "updated_at": "2014-12-19T19:08:54Z",
+ "closed_at": "2014-12-19T18:54:00Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/140",
+ "html_url": "https://github.com/github-api/github-api/pull/140",
+ "diff_url": "https://github.com/github-api/github-api/pull/140.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/140.patch"
+ },
+ "body": "Set scope to test for mockito-all to avoid forcing downstream projects\nto include it.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/139",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/139/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/139/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/139/events",
+ "html_url": "https://github.com/github-api/github-api/pull/139",
+ "id": 49014696,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjQ1MDY2NjU=",
+ "number": 139,
+ "title": "Put mockito in the test scope.",
+ "user": {
+ "login": "farmdawgnation",
+ "id": 620189,
+ "node_id": "MDQ6VXNlcjYyMDE4OQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/620189?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/farmdawgnation",
+ "html_url": "https://github.com/farmdawgnation",
+ "followers_url": "https://api.github.com/users/farmdawgnation/followers",
+ "following_url": "https://api.github.com/users/farmdawgnation/following{/other_user}",
+ "gists_url": "https://api.github.com/users/farmdawgnation/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/farmdawgnation/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/farmdawgnation/subscriptions",
+ "organizations_url": "https://api.github.com/users/farmdawgnation/orgs",
+ "repos_url": "https://api.github.com/users/farmdawgnation/repos",
+ "events_url": "https://api.github.com/users/farmdawgnation/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/farmdawgnation/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-11-16T20:34:22Z",
+ "updated_at": "2014-12-19T18:57:12Z",
+ "closed_at": "2014-12-19T18:53:15Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/139",
+ "html_url": "https://github.com/github-api/github-api/pull/139",
+ "diff_url": "https://github.com/github-api/github-api/pull/139.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/139.patch"
+ },
+ "body": "I was having issues in a downstream project from github-api where mockito was appearing on the classpath where it shouldn't. I ran some dependency analysis and found that the inclusion was because of its mention in github-api without the test scope designation.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/138",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/138/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/138/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/138/events",
+ "html_url": "https://github.com/github-api/github-api/issues/138",
+ "id": 48047273,
+ "node_id": "MDU6SXNzdWU0ODA0NzI3Mw==",
+ "number": 138,
+ "title": "GHRelease issue",
+ "user": {
+ "login": "fred8",
+ "id": 2894520,
+ "node_id": "MDQ6VXNlcjI4OTQ1MjA=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/2894520?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/fred8",
+ "html_url": "https://github.com/fred8",
+ "followers_url": "https://api.github.com/users/fred8/followers",
+ "following_url": "https://api.github.com/users/fred8/following{/other_user}",
+ "gists_url": "https://api.github.com/users/fred8/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/fred8/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/fred8/subscriptions",
+ "organizations_url": "https://api.github.com/users/fred8/orgs",
+ "repos_url": "https://api.github.com/users/fred8/repos",
+ "events_url": "https://api.github.com/users/fred8/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/fred8/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-11-07T04:34:53Z",
+ "updated_at": "2015-02-15T16:40:28Z",
+ "closed_at": "2015-02-15T16:40:28Z",
+ "author_association": "NONE",
+ "body": "Hey @kohsuke \n\nI'm using the api to create a tag from a commit, then I create a release from this tag, fill up the info, body and assets. When I use the release builder, I set the prerelease and draft parameter to true. I get everything set on my github account successfully. \nThat's said, when I press the button (on the github release page) to publish; all my info (title, body and files) disappear and I can just see the created tag. I'm wondering if I'm doing something wrong or if it is a bug from the library.\n\nHere is what I m basically doing : (I extracted the code in the exact same order all the library api call)\n\nGHRepository repository = api.getRepository(REPO_NAME);\nMap branches = repository.getBranches();\nGHBranch master = branches.get(RELEASE_BRANCH_NAME);\nString lastCommit = master.getSHA1();\nString refName = \"refs/tags/\" + tagName;\nGHRef ref = repository.createRef(refName, lastCommit);\n\nfinal GHReleaseBuilder releaseBuilder = repository.createRelease(refName); releaseBuilder.name(releaseName).body(body).prerelease(true).draft(true)\nfinal GHRelease release = releaseBuilder.create()\nand a bunch of release.uploadAsset(file, mimeType)\n\nThank you for your help!\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/137",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/137/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/137/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/137/events",
+ "html_url": "https://github.com/github-api/github-api/pull/137",
+ "id": 47951415,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjM5NzQwMjg=",
+ "number": 137,
+ "title": "added 'diverged' constant to GHCompare.Status enum",
+ "user": {
+ "login": "simonecarriero",
+ "id": 1140899,
+ "node_id": "MDQ6VXNlcjExNDA4OTk=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1140899?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/simonecarriero",
+ "html_url": "https://github.com/simonecarriero",
+ "followers_url": "https://api.github.com/users/simonecarriero/followers",
+ "following_url": "https://api.github.com/users/simonecarriero/following{/other_user}",
+ "gists_url": "https://api.github.com/users/simonecarriero/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/simonecarriero/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/simonecarriero/subscriptions",
+ "organizations_url": "https://api.github.com/users/simonecarriero/orgs",
+ "repos_url": "https://api.github.com/users/simonecarriero/repos",
+ "events_url": "https://api.github.com/users/simonecarriero/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/simonecarriero/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-11-06T11:22:57Z",
+ "updated_at": "2014-12-19T19:44:10Z",
+ "closed_at": "2014-12-19T19:44:10Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/137",
+ "html_url": "https://github.com/github-api/github-api/pull/137",
+ "diff_url": "https://github.com/github-api/github-api/pull/137.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/137.patch"
+ },
+ "body": "Hi, I was using using your project and I found this small issue.\n\nSimone Carriero\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/136",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/136/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/136/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/136/events",
+ "html_url": "https://github.com/github-api/github-api/pull/136",
+ "id": 47942662,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjM5NjkzMzg=",
+ "number": 136,
+ "title": "Add paging support for Team's Repositories",
+ "user": {
+ "login": "rtyley",
+ "id": 52038,
+ "node_id": "MDQ6VXNlcjUyMDM4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/52038?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rtyley",
+ "html_url": "https://github.com/rtyley",
+ "followers_url": "https://api.github.com/users/rtyley/followers",
+ "following_url": "https://api.github.com/users/rtyley/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rtyley/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rtyley/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rtyley/subscriptions",
+ "organizations_url": "https://api.github.com/users/rtyley/orgs",
+ "repos_url": "https://api.github.com/users/rtyley/repos",
+ "events_url": "https://api.github.com/users/rtyley/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rtyley/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-11-06T09:53:32Z",
+ "updated_at": "2014-12-19T19:43:56Z",
+ "closed_at": "2014-12-19T19:43:56Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/136",
+ "html_url": "https://github.com/github-api/github-api/pull/136",
+ "diff_url": "https://github.com/github-api/github-api/pull/136.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/136.patch"
+ },
+ "body": "The team repositories endpoint does do paging, so gotta support that.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/135",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/135/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/135/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/135/events",
+ "html_url": "https://github.com/github-api/github-api/issues/135",
+ "id": 47771404,
+ "node_id": "MDU6SXNzdWU0Nzc3MTQwNA==",
+ "number": 135,
+ "title": "502 Bad Gateway error from GHRelease.uploadAsset",
+ "user": {
+ "login": "rowanseymour",
+ "id": 675558,
+ "node_id": "MDQ6VXNlcjY3NTU1OA==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/675558?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rowanseymour",
+ "html_url": "https://github.com/rowanseymour",
+ "followers_url": "https://api.github.com/users/rowanseymour/followers",
+ "following_url": "https://api.github.com/users/rowanseymour/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rowanseymour/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rowanseymour/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rowanseymour/subscriptions",
+ "organizations_url": "https://api.github.com/users/rowanseymour/orgs",
+ "repos_url": "https://api.github.com/users/rowanseymour/repos",
+ "events_url": "https://api.github.com/users/rowanseymour/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rowanseymour/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-11-04T21:56:46Z",
+ "updated_at": "2015-03-21T23:24:33Z",
+ "closed_at": "2015-03-21T23:24:33Z",
+ "author_association": "NONE",
+ "body": "I'm using https://github.com/jutzig/github-release-plugin which is built on this library. Today I started getting this error anytime I try to make a release:\n\n```\n\n[INFO] [ERROR] 502 Bad Gateway\n[INFO] [ERROR] \n[INFO] [ERROR] Bad Gateway
\n[INFO] [ERROR] The proxy server received an invalid\n[INFO] [ERROR] response from an upstream server.
\n[INFO] [ERROR]
\n[INFO] [ERROR] : Server returned HTTP response code: 502 for URL: https://uploads.github.com/repos/.........\n```\n\nMight be related to http://stackoverflow.com/questions/21698009/github-api-502-error\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/134",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/134/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/134/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/134/events",
+ "html_url": "https://github.com/github-api/github-api/issues/134",
+ "id": 45954028,
+ "node_id": "MDU6SXNzdWU0NTk1NDAyOA==",
+ "number": 134,
+ "title": "GHRepository.getIssues(GHIssueState.CLOSED) also return pull requests",
+ "user": {
+ "login": "phong1990",
+ "id": 9263147,
+ "node_id": "MDQ6VXNlcjkyNjMxNDc=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/9263147?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/phong1990",
+ "html_url": "https://github.com/phong1990",
+ "followers_url": "https://api.github.com/users/phong1990/followers",
+ "following_url": "https://api.github.com/users/phong1990/following{/other_user}",
+ "gists_url": "https://api.github.com/users/phong1990/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/phong1990/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/phong1990/subscriptions",
+ "organizations_url": "https://api.github.com/users/phong1990/orgs",
+ "repos_url": "https://api.github.com/users/phong1990/repos",
+ "events_url": "https://api.github.com/users/phong1990/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/phong1990/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-10-16T06:50:01Z",
+ "updated_at": "2015-02-15T16:36:29Z",
+ "closed_at": "2015-02-15T16:36:29Z",
+ "author_association": "NONE",
+ "body": "Hi kohsuke,\n\nI was using your api, it was great but there is this bug I hope you can fix it soon:\nWhenever I call the function GHRepository.getIssues(GHIssueState.CLOSED), it returns a list of both issues and pull requests. \n\nI expect only issue though. Currently my work around is to call getPullRequests then for each issue from getIssues, I search in the whole list of pull requests to see if it is already there. Then I ignore it. But this makes my algorithm runs at O(n*m). \n\nPlease fix it soon.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/133",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/133/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/133/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/133/events",
+ "html_url": "https://github.com/github-api/github-api/pull/133",
+ "id": 45275267,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjI0NDE1NzM=",
+ "number": 133,
+ "title": "[INFRA-142] - Introduce a method, which utilizes \"add group membership\" API call",
+ "user": {
+ "login": "oleg-nenashev",
+ "id": 3000480,
+ "node_id": "MDQ6VXNlcjMwMDA0ODA=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/3000480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/oleg-nenashev",
+ "html_url": "https://github.com/oleg-nenashev",
+ "followers_url": "https://api.github.com/users/oleg-nenashev/followers",
+ "following_url": "https://api.github.com/users/oleg-nenashev/following{/other_user}",
+ "gists_url": "https://api.github.com/users/oleg-nenashev/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/oleg-nenashev/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/oleg-nenashev/subscriptions",
+ "organizations_url": "https://api.github.com/users/oleg-nenashev/orgs",
+ "repos_url": "https://api.github.com/users/oleg-nenashev/repos",
+ "events_url": "https://api.github.com/users/oleg-nenashev/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/oleg-nenashev/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-10-08T17:57:51Z",
+ "updated_at": "2014-10-08T18:29:04Z",
+ "closed_at": "2014-10-08T18:29:04Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/133",
+ "html_url": "https://github.com/github-api/github-api/pull/133",
+ "diff_url": "https://github.com/github-api/github-api/pull/133.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/133.patch"
+ },
+ "body": "This API call allows to invite users to an organization on demand\n\nSigned-off-by: Oleg Nenashev o.v.nenashev@gmail.com\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/132",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/132/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/132/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/132/events",
+ "html_url": "https://github.com/github-api/github-api/pull/132",
+ "id": 44463904,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjIwMTQzODY=",
+ "number": 132,
+ "title": "Add GHCompare.getFiles() method to be able to see the precise files chan...",
+ "user": {
+ "login": "mocleiri",
+ "id": 250942,
+ "node_id": "MDQ6VXNlcjI1MDk0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/250942?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mocleiri",
+ "html_url": "https://github.com/mocleiri",
+ "followers_url": "https://api.github.com/users/mocleiri/followers",
+ "following_url": "https://api.github.com/users/mocleiri/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mocleiri/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mocleiri/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mocleiri/subscriptions",
+ "organizations_url": "https://api.github.com/users/mocleiri/orgs",
+ "repos_url": "https://api.github.com/users/mocleiri/repos",
+ "events_url": "https://api.github.com/users/mocleiri/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mocleiri/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-09-30T15:54:05Z",
+ "updated_at": "2014-09-30T16:03:54Z",
+ "closed_at": "2014-09-30T16:03:54Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/132",
+ "html_url": "https://github.com/github-api/github-api/pull/132",
+ "diff_url": "https://github.com/github-api/github-api/pull/132.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/132.patch"
+ },
+ "body": "...ged.\n\nThere is a file field inside of GHCompare but no getter to extract the values\nfor analysis.\n\nThere are contents in that field so I've added a new get method so that they\ncan be extracted.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/131",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/131/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/131/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/131/events",
+ "html_url": "https://github.com/github-api/github-api/pull/131",
+ "id": 44311431,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjE5NDUyMjk=",
+ "number": 131,
+ "title": "Modify GitHubBuilder to resolve user credentials from the system environ...",
+ "user": {
+ "login": "mocleiri",
+ "id": 250942,
+ "node_id": "MDQ6VXNlcjI1MDk0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/250942?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mocleiri",
+ "html_url": "https://github.com/mocleiri",
+ "followers_url": "https://api.github.com/users/mocleiri/followers",
+ "following_url": "https://api.github.com/users/mocleiri/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mocleiri/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mocleiri/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mocleiri/subscriptions",
+ "organizations_url": "https://api.github.com/users/mocleiri/orgs",
+ "repos_url": "https://api.github.com/users/mocleiri/repos",
+ "events_url": "https://api.github.com/users/mocleiri/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mocleiri/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2014-09-29T16:09:42Z",
+ "updated_at": "2014-09-30T18:07:35Z",
+ "closed_at": "2014-09-30T18:07:35Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/131",
+ "html_url": "https://github.com/github-api/github-api/pull/131",
+ "diff_url": "https://github.com/github-api/github-api/pull/131.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/131.patch"
+ },
+ "body": "...ment\n\nUsing the Jenkins EnvInject or Credentials Binding Plugins its possible to\npass credentials as Environment Variables.\n\nIts useful for Github.connect() to be able to directly read the values of the\nlogin, password and oauth properties from the environment.\n\nThis commit modifies the base Github.connect() method to resolve credentials\nin two steps:\n1. ~/.github credentials file if it exists.\n2. login, password or oauth variables from the environment\n\nA further fromEnvironment() method is provided to support\nloading from non-standard variable names.\n\nThe old Github.connect() method would throw an IOException if the ~/.github file\ndid not exist. Now it will fail silently instead dropping back to the anonymous\nusers access level.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/130",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/130/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/130/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/130/events",
+ "html_url": "https://github.com/github-api/github-api/issues/130",
+ "id": 44229217,
+ "node_id": "MDU6SXNzdWU0NDIyOTIxNw==",
+ "number": 130,
+ "title": "Feature: watched Repositories",
+ "user": {
+ "login": "amencarini",
+ "id": 1100003,
+ "node_id": "MDQ6VXNlcjExMDAwMDM=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1100003?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/amencarini",
+ "html_url": "https://github.com/amencarini",
+ "followers_url": "https://api.github.com/users/amencarini/followers",
+ "following_url": "https://api.github.com/users/amencarini/following{/other_user}",
+ "gists_url": "https://api.github.com/users/amencarini/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/amencarini/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/amencarini/subscriptions",
+ "organizations_url": "https://api.github.com/users/amencarini/orgs",
+ "repos_url": "https://api.github.com/users/amencarini/repos",
+ "events_url": "https://api.github.com/users/amencarini/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/amencarini/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2014-09-28T12:23:14Z",
+ "updated_at": "2015-02-15T16:32:12Z",
+ "closed_at": "2015-02-15T16:32:12Z",
+ "author_association": "NONE",
+ "body": "Hi,\nI'm trying to tie in to the \"Watching\" API (https://developer.github.com/v3/activity/watching/) but I can't find any hook to it. \nIs it already implemented but I can't see it? If not, would it be possible to implement it? I'm doing my first project in Java now so I'm not able to contribute just yet :(\n\nThanks in advance!\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/129",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/129/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/129/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/129/events",
+ "html_url": "https://github.com/github-api/github-api/pull/129",
+ "id": 43497749,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjE1ODUxMzI=",
+ "number": 129,
+ "title": "Allow pullRequest.getHead().getRepository().getCommit(headSha1) to work",
+ "user": {
+ "login": "mocleiri",
+ "id": 250942,
+ "node_id": "MDQ6VXNlcjI1MDk0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/250942?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mocleiri",
+ "html_url": "https://github.com/mocleiri",
+ "followers_url": "https://api.github.com/users/mocleiri/followers",
+ "following_url": "https://api.github.com/users/mocleiri/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mocleiri/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mocleiri/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mocleiri/subscriptions",
+ "organizations_url": "https://api.github.com/users/mocleiri/orgs",
+ "repos_url": "https://api.github.com/users/mocleiri/repos",
+ "events_url": "https://api.github.com/users/mocleiri/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mocleiri/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-09-22T15:00:54Z",
+ "updated_at": "2014-09-26T19:14:25Z",
+ "closed_at": "2014-09-26T19:14:25Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/129",
+ "html_url": "https://github.com/github-api/github-api/pull/129",
+ "diff_url": "https://github.com/github-api/github-api/pull/129.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/129.patch"
+ },
+ "body": "The wrong .wrap method was used for pull requests initialized by state\n(GHRepository.getPullReqests).\n\nThe wrong wrap call was introduced in 9fd34aec7fe9fa1359418c92b0a14526f837a4a4\n\nThis commit sets it back to the .wrapUp method which makes sure the pull request\nsubstructure has the repo object set properly.\n\nWithout this change a NullPointerException is thrown on the last line of this\ncode because the repo object inside of the remoteRepository object is null:\n\nGHRepository repo = github.getRepository(targetRepository);\n\nList openPullRequests = repo.getPullRequests(GHIssueState.OPEN);\n\nfor (GHPullRequest pullRequest : openPullRequests) {\n\n```\nGHCommitPointer head = pullRequest.getHead();\n\nGHRepository remoteRepository = head.getRepository();\n\nString commitId = head.getSha();\n\nGHCommit headCommit = remoteRepository.getCommit(commitId);\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/128",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/128/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/128/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/128/events",
+ "html_url": "https://github.com/github-api/github-api/pull/128",
+ "id": 42671618,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjExNzk4MjA=",
+ "number": 128,
+ "title": "Update github scopes according to https://developer.github.com/v3/oauth/#scopes",
+ "user": {
+ "login": "ndeloof",
+ "id": 132757,
+ "node_id": "MDQ6VXNlcjEzMjc1Nw==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/132757?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ndeloof",
+ "html_url": "https://github.com/ndeloof",
+ "followers_url": "https://api.github.com/users/ndeloof/followers",
+ "following_url": "https://api.github.com/users/ndeloof/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ndeloof/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ndeloof/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ndeloof/subscriptions",
+ "organizations_url": "https://api.github.com/users/ndeloof/orgs",
+ "repos_url": "https://api.github.com/users/ndeloof/repos",
+ "events_url": "https://api.github.com/users/ndeloof/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ndeloof/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-09-12T21:16:58Z",
+ "updated_at": "2014-09-27T01:10:15Z",
+ "closed_at": "2014-09-27T01:10:15Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/128",
+ "html_url": "https://github.com/github-api/github-api/pull/128",
+ "diff_url": "https://github.com/github-api/github-api/pull/128.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/128.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/127",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/127/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/127/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/127/events",
+ "html_url": "https://github.com/github-api/github-api/pull/127",
+ "id": 42192172,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjA4ODY4MTk=",
+ "number": 127,
+ "title": "retrieve allUsers, allOrganizations with single API call",
+ "user": {
+ "login": "msperisen",
+ "id": 2448228,
+ "node_id": "MDQ6VXNlcjI0NDgyMjg=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/2448228?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/msperisen",
+ "html_url": "https://github.com/msperisen",
+ "followers_url": "https://api.github.com/users/msperisen/followers",
+ "following_url": "https://api.github.com/users/msperisen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/msperisen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/msperisen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/msperisen/subscriptions",
+ "organizations_url": "https://api.github.com/users/msperisen/orgs",
+ "repos_url": "https://api.github.com/users/msperisen/repos",
+ "events_url": "https://api.github.com/users/msperisen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/msperisen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2014-09-08T12:46:46Z",
+ "updated_at": "2014-09-28T10:07:53Z",
+ "closed_at": "2014-09-28T10:07:53Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/127",
+ "html_url": "https://github.com/github-api/github-api/pull/127",
+ "diff_url": "https://github.com/github-api/github-api/pull/127.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/127.patch"
+ },
+ "body": "- retrieves all users and all organisations by using the [/users api](https://developer.github.com//v3/users/#get-all-users) call.\u2028the resulting GHPerson list is available as well as the GHUser and GHOrganization list. call is used for GH enterprise integration into existing enterprise infrastructure.\n- Fix repository ownership to return GHUser or GHOrganization.\n- added suspend-at to GHUser\n- added guava dependency\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/125",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/125/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/125/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/125/events",
+ "html_url": "https://github.com/github-api/github-api/pull/125",
+ "id": 42022727,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjA3OTMwMDI=",
+ "number": 125,
+ "title": "retrieve allUsers, allOrganizations with single API call",
+ "user": {
+ "login": "msperisen",
+ "id": 2448228,
+ "node_id": "MDQ6VXNlcjI0NDgyMjg=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/2448228?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/msperisen",
+ "html_url": "https://github.com/msperisen",
+ "followers_url": "https://api.github.com/users/msperisen/followers",
+ "following_url": "https://api.github.com/users/msperisen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/msperisen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/msperisen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/msperisen/subscriptions",
+ "organizations_url": "https://api.github.com/users/msperisen/orgs",
+ "repos_url": "https://api.github.com/users/msperisen/repos",
+ "events_url": "https://api.github.com/users/msperisen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/msperisen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2014-09-05T07:55:51Z",
+ "updated_at": "2014-09-05T14:38:37Z",
+ "closed_at": "2014-09-05T14:38:37Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/125",
+ "html_url": "https://github.com/github-api/github-api/pull/125",
+ "diff_url": "https://github.com/github-api/github-api/pull/125.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/125.patch"
+ },
+ "body": "retrieves all users and all organisations by using the [/users api call](https://developer.github.com/v3/users/#get-all-users).\nthe resulting GHPerson list is available as well as the GHUser and GHOrganization list. call is used for GH enterprise integration into existing enterprise infrastructure.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/124",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/124/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/124/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/124/events",
+ "html_url": "https://github.com/github-api/github-api/pull/124",
+ "id": 41894208,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjA3MjE3NjI=",
+ "number": 124,
+ "title": "Allow to use custom HttpConnector when only OAuth token is given",
+ "user": {
+ "login": "ohtake",
+ "id": 1013655,
+ "node_id": "MDQ6VXNlcjEwMTM2NTU=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1013655?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ohtake",
+ "html_url": "https://github.com/ohtake",
+ "followers_url": "https://api.github.com/users/ohtake/followers",
+ "following_url": "https://api.github.com/users/ohtake/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ohtake/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ohtake/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ohtake/subscriptions",
+ "organizations_url": "https://api.github.com/users/ohtake/orgs",
+ "repos_url": "https://api.github.com/users/ohtake/repos",
+ "events_url": "https://api.github.com/users/ohtake/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ohtake/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-09-04T04:32:02Z",
+ "updated_at": "2014-09-25T13:07:49Z",
+ "closed_at": "2014-09-04T17:32:11Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/124",
+ "html_url": "https://github.com/github-api/github-api/pull/124",
+ "diff_url": "https://github.com/github-api/github-api/pull/124.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/124.patch"
+ },
+ "body": "The old pull request is #120.\n\nIf you use `GitHub.connectUsingOAuth(String oauthAccessToken)` or `GitHub.connectUsingOAuth(String githubServer, String oauthAccessToken)`, the constructor of `GitHub` calls `#getMyself`.\nBecause there is no way to call `#setConnector` before the construction, `#getMyself` will fail if the server is behind proxies.\nThis pull request allows library users to use custom HttpConnector when only OAuth token is given.\n\nExample usage is:\n\n``` java\nGitHub gh = new GitHubBuilder()\n .withEndpoint(serverAPIUrl)\n .withOAuthToken(accessToken)\n .withConnector(new HttpConnectorWithJenkinsProxy())\n .build();\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/123",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/123/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/123/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/123/events",
+ "html_url": "https://github.com/github-api/github-api/pull/123",
+ "id": 41876098,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjA3MTEyMzE=",
+ "number": 123,
+ "title": "Use issues endpoints for pull requests",
+ "user": {
+ "login": "rtyley",
+ "id": 52038,
+ "node_id": "MDQ6VXNlcjUyMDM4",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/52038?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rtyley",
+ "html_url": "https://github.com/rtyley",
+ "followers_url": "https://api.github.com/users/rtyley/followers",
+ "following_url": "https://api.github.com/users/rtyley/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rtyley/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rtyley/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rtyley/subscriptions",
+ "organizations_url": "https://api.github.com/users/rtyley/orgs",
+ "repos_url": "https://api.github.com/users/rtyley/repos",
+ "events_url": "https://api.github.com/users/rtyley/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rtyley/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-09-03T22:36:52Z",
+ "updated_at": "2014-09-04T17:31:25Z",
+ "closed_at": "2014-09-04T17:31:25Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/123",
+ "html_url": "https://github.com/github-api/github-api/pull/123",
+ "diff_url": "https://github.com/github-api/github-api/pull/123.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/123.patch"
+ },
+ "body": "Setting labels and assignee on Pull requests failed silently, because the API endpoint being hit contained '/pulls/' rather than '/issues/'.\n\n> \"Every pull request is an issue, but not every issue is a pull request. For this reason, “shared” actions for both features, like manipulating assignees, labels and milestones, are provided within the Issues API.\"\n\nhttps://developer.github.com/v3/pulls/#labels-assignees-and-milestones\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/122",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/122/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/122/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/122/events",
+ "html_url": "https://github.com/github-api/github-api/pull/122",
+ "id": 41859728,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjA3MDIxODI=",
+ "number": 122,
+ "title": "Add missing field browser_download_url in GHAsset",
+ "user": {
+ "login": "tbruyelle",
+ "id": 92280,
+ "node_id": "MDQ6VXNlcjkyMjgw",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/92280?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/tbruyelle",
+ "html_url": "https://github.com/tbruyelle",
+ "followers_url": "https://api.github.com/users/tbruyelle/followers",
+ "following_url": "https://api.github.com/users/tbruyelle/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tbruyelle/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tbruyelle/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tbruyelle/subscriptions",
+ "organizations_url": "https://api.github.com/users/tbruyelle/orgs",
+ "repos_url": "https://api.github.com/users/tbruyelle/repos",
+ "events_url": "https://api.github.com/users/tbruyelle/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tbruyelle/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-09-03T20:04:30Z",
+ "updated_at": "2014-09-04T17:29:24Z",
+ "closed_at": "2014-09-04T17:29:23Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/122",
+ "html_url": "https://github.com/github-api/github-api/pull/122",
+ "diff_url": "https://github.com/github-api/github-api/pull/122.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/122.patch"
+ },
+ "body": "See https://developer.github.com/v3/repos/releases/#get-a-single-release-asset\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/121",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/121/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/121/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/121/events",
+ "html_url": "https://github.com/github-api/github-api/pull/121",
+ "id": 41858982,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjA3MDE3MTc=",
+ "number": 121,
+ "title": "Add missing field browser_download_url in GHAsset",
+ "user": {
+ "login": "tbruyelle",
+ "id": 92280,
+ "node_id": "MDQ6VXNlcjkyMjgw",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/92280?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/tbruyelle",
+ "html_url": "https://github.com/tbruyelle",
+ "followers_url": "https://api.github.com/users/tbruyelle/followers",
+ "following_url": "https://api.github.com/users/tbruyelle/following{/other_user}",
+ "gists_url": "https://api.github.com/users/tbruyelle/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/tbruyelle/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/tbruyelle/subscriptions",
+ "organizations_url": "https://api.github.com/users/tbruyelle/orgs",
+ "repos_url": "https://api.github.com/users/tbruyelle/repos",
+ "events_url": "https://api.github.com/users/tbruyelle/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/tbruyelle/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-09-03T19:56:11Z",
+ "updated_at": "2014-09-03T20:03:51Z",
+ "closed_at": "2014-09-03T20:03:51Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/121",
+ "html_url": "https://github.com/github-api/github-api/pull/121",
+ "diff_url": "https://github.com/github-api/github-api/pull/121.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/121.patch"
+ },
+ "body": "See https://developer.github.com/v3/repos/releases/#get-a-single-release-asset\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/120",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/120/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/120/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/120/events",
+ "html_url": "https://github.com/github-api/github-api/pull/120",
+ "id": 41816523,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjA2NzY2ODc=",
+ "number": 120,
+ "title": "Use custom HttpConnector when authentication",
+ "user": {
+ "login": "ohtake",
+ "id": 1013655,
+ "node_id": "MDQ6VXNlcjEwMTM2NTU=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1013655?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ohtake",
+ "html_url": "https://github.com/ohtake",
+ "followers_url": "https://api.github.com/users/ohtake/followers",
+ "following_url": "https://api.github.com/users/ohtake/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ohtake/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ohtake/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ohtake/subscriptions",
+ "organizations_url": "https://api.github.com/users/ohtake/orgs",
+ "repos_url": "https://api.github.com/users/ohtake/repos",
+ "events_url": "https://api.github.com/users/ohtake/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ohtake/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-09-03T13:35:11Z",
+ "updated_at": "2014-09-05T02:17:46Z",
+ "closed_at": "2014-09-03T15:32:00Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/120",
+ "html_url": "https://github.com/github-api/github-api/pull/120",
+ "diff_url": "https://github.com/github-api/github-api/pull/120.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/120.patch"
+ },
+ "body": "I'm trying to modify ghprb-plugin so that it can work behind authentication proxies.\nI added a HttpConnector implementation to ghprb-plugin:\n\n``` java\npublic class HttpConnectorWithJenkinsProxy implements HttpConnector{\n public HttpURLConnection connect(URL url) throws IOException {\n return (HttpURLConnection)ProxyConfiguration.open(url);\n }\n}\n```\n\nSince all `GitHub` constructors are `private`, there is no way to call `#setConnector` before `GitHub(String, String, Sttring, String)` constructor calls `#getMyself`, nor to extend `GitHub` class.\nSo I added `HttpConnector` parameter to `connect*` methods, except `connectToEnterprise` which does not require proxies in most cases.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/119",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/119/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/119/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/119/events",
+ "html_url": "https://github.com/github-api/github-api/issues/119",
+ "id": 41729156,
+ "node_id": "MDU6SXNzdWU0MTcyOTE1Ng==",
+ "number": 119,
+ "title": "Support notifications api",
+ "user": {
+ "login": "GUIpsp",
+ "id": 386686,
+ "node_id": "MDQ6VXNlcjM4NjY4Ng==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/386686?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/GUIpsp",
+ "html_url": "https://github.com/GUIpsp",
+ "followers_url": "https://api.github.com/users/GUIpsp/followers",
+ "following_url": "https://api.github.com/users/GUIpsp/following{/other_user}",
+ "gists_url": "https://api.github.com/users/GUIpsp/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/GUIpsp/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/GUIpsp/subscriptions",
+ "organizations_url": "https://api.github.com/users/GUIpsp/orgs",
+ "repos_url": "https://api.github.com/users/GUIpsp/repos",
+ "events_url": "https://api.github.com/users/GUIpsp/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/GUIpsp/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-09-02T16:37:57Z",
+ "updated_at": "2015-03-23T12:46:47Z",
+ "closed_at": "2015-03-22T22:55:26Z",
+ "author_association": "NONE",
+ "body": "https://developer.github.com/v3/activity/notifications/\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/118",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/118/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/118/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/118/events",
+ "html_url": "https://github.com/github-api/github-api/issues/118",
+ "id": 41051615,
+ "node_id": "MDU6SXNzdWU0MTA1MTYxNQ==",
+ "number": 118,
+ "title": "Cannot create repository in organisation",
+ "user": {
+ "login": "Ryuinferno",
+ "id": 2844952,
+ "node_id": "MDQ6VXNlcjI4NDQ5NTI=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/2844952?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Ryuinferno",
+ "html_url": "https://github.com/Ryuinferno",
+ "followers_url": "https://api.github.com/users/Ryuinferno/followers",
+ "following_url": "https://api.github.com/users/Ryuinferno/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Ryuinferno/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Ryuinferno/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Ryuinferno/subscriptions",
+ "organizations_url": "https://api.github.com/users/Ryuinferno/orgs",
+ "repos_url": "https://api.github.com/users/Ryuinferno/repos",
+ "events_url": "https://api.github.com/users/Ryuinferno/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Ryuinferno/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-08-25T11:04:09Z",
+ "updated_at": "2015-02-15T15:18:09Z",
+ "closed_at": "2015-02-15T15:18:09Z",
+ "author_association": "NONE",
+ "body": "Got this error:\n\n```\n{\"message\":\"Validation Failed\",\"documentation_url\":\"https://developer.github.com/v3/repos/#create\",\"errors\":[{\"value\":309572,\"resource\":\"Repo\",\"field\":\"team_id\",\"code\":\"invalid\"}]}\n```\n\nIs it due to an API update? Thank you.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/117",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/117/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/117/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/117/events",
+ "html_url": "https://github.com/github-api/github-api/pull/117",
+ "id": 40966201,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjAyMDYwNDQ=",
+ "number": 117,
+ "title": "All the refs worth knowing: Implementation of ref updating and deleting.",
+ "user": {
+ "login": "farmdawgnation",
+ "id": 620189,
+ "node_id": "MDQ6VXNlcjYyMDE4OQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/620189?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/farmdawgnation",
+ "html_url": "https://github.com/farmdawgnation",
+ "followers_url": "https://api.github.com/users/farmdawgnation/followers",
+ "following_url": "https://api.github.com/users/farmdawgnation/following{/other_user}",
+ "gists_url": "https://api.github.com/users/farmdawgnation/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/farmdawgnation/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/farmdawgnation/subscriptions",
+ "organizations_url": "https://api.github.com/users/farmdawgnation/orgs",
+ "repos_url": "https://api.github.com/users/farmdawgnation/repos",
+ "events_url": "https://api.github.com/users/farmdawgnation/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/farmdawgnation/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-08-23T03:35:11Z",
+ "updated_at": "2014-08-30T21:04:00Z",
+ "closed_at": "2014-08-30T21:04:00Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/117",
+ "html_url": "https://github.com/github-api/github-api/pull/117",
+ "diff_url": "https://github.com/github-api/github-api/pull/117.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/117.patch"
+ },
+ "body": "This PR implements the updating and deleting of refs according to the specification in the GitHub API.\n\nhttps://developer.github.com/v3/git/refs/#update-a-reference\nhttps://developer.github.com/v3/git/refs/#delete-a-reference\n\nLet me know if there are any changes that need to be made! :)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/116",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/116/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/116/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/116/events",
+ "html_url": "https://github.com/github-api/github-api/pull/116",
+ "id": 40626957,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjAwMDI4NjI=",
+ "number": 116,
+ "title": "Remove getPath()",
+ "user": {
+ "login": "DavidTanner",
+ "id": 368889,
+ "node_id": "MDQ6VXNlcjM2ODg4OQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/368889?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/DavidTanner",
+ "html_url": "https://github.com/DavidTanner",
+ "followers_url": "https://api.github.com/users/DavidTanner/followers",
+ "following_url": "https://api.github.com/users/DavidTanner/following{/other_user}",
+ "gists_url": "https://api.github.com/users/DavidTanner/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/DavidTanner/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/DavidTanner/subscriptions",
+ "organizations_url": "https://api.github.com/users/DavidTanner/orgs",
+ "repos_url": "https://api.github.com/users/DavidTanner/repos",
+ "events_url": "https://api.github.com/users/DavidTanner/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/DavidTanner/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 10,
+ "created_at": "2014-08-19T19:22:33Z",
+ "updated_at": "2014-10-08T17:37:18Z",
+ "closed_at": "2014-08-30T20:54:05Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/116",
+ "html_url": "https://github.com/github-api/github-api/pull/116",
+ "diff_url": "https://github.com/github-api/github-api/pull/116.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/116.patch"
+ },
+ "body": "When getting the path and providing an enterprise url for the apiUrl, the /api/v3 portion gets duplicated. Since they will be combined on line 231 of GitHub.java there is no point just grabbing the path. See https://github.com/janinko/ghprb/issues/178, and https://issues.jenkins-ci.org/browse/JENKINS-24145?focusedCommentId=208270#comment-208270\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/115",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/115/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/115/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/115/events",
+ "html_url": "https://github.com/github-api/github-api/pull/115",
+ "id": 40496844,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTk5MjI3Njk=",
+ "number": 115,
+ "title": "Add missing GitHub event types.",
+ "user": {
+ "login": "bernd",
+ "id": 461,
+ "node_id": "MDQ6VXNlcjQ2MQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/461?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bernd",
+ "html_url": "https://github.com/bernd",
+ "followers_url": "https://api.github.com/users/bernd/followers",
+ "following_url": "https://api.github.com/users/bernd/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bernd/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bernd/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bernd/subscriptions",
+ "organizations_url": "https://api.github.com/users/bernd/orgs",
+ "repos_url": "https://api.github.com/users/bernd/repos",
+ "events_url": "https://api.github.com/users/bernd/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bernd/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2014-08-18T14:56:56Z",
+ "updated_at": "2014-08-30T20:53:24Z",
+ "closed_at": "2014-08-30T20:53:23Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/115",
+ "html_url": "https://github.com/github-api/github-api/pull/115",
+ "diff_url": "https://github.com/github-api/github-api/pull/115.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/115.patch"
+ },
+ "body": "This adds the missing GitHub `DEPLOYMENT`, `DEPLOYMENT_STATUS`, `RELEASE` and `STATUS` events.\n\nI'm running into this:\n\n```\nException in thread \"main\" java.lang.IllegalArgumentException: No enum constant org.kohsuke.github.GHEvent.RELEASE\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/114",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/114/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/114/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/114/events",
+ "html_url": "https://github.com/github-api/github-api/pull/114",
+ "id": 39584503,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTkzODE5NTA=",
+ "number": 114,
+ "title": "get repository full name (including owner)",
+ "user": {
+ "login": "ndeloof",
+ "id": 132757,
+ "node_id": "MDQ6VXNlcjEzMjc1Nw==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/132757?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ndeloof",
+ "html_url": "https://github.com/ndeloof",
+ "followers_url": "https://api.github.com/users/ndeloof/followers",
+ "following_url": "https://api.github.com/users/ndeloof/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ndeloof/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ndeloof/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ndeloof/subscriptions",
+ "organizations_url": "https://api.github.com/users/ndeloof/orgs",
+ "repos_url": "https://api.github.com/users/ndeloof/repos",
+ "events_url": "https://api.github.com/users/ndeloof/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ndeloof/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-08-06T02:32:31Z",
+ "updated_at": "2014-08-30T20:53:02Z",
+ "closed_at": "2014-08-30T20:53:02Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/114",
+ "html_url": "https://github.com/github-api/github-api/pull/114",
+ "diff_url": "https://github.com/github-api/github-api/pull/114.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/114.patch"
+ },
+ "body": "owner.login isn't set when owner is an organization\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/113",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/113/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/113/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/113/events",
+ "html_url": "https://github.com/github-api/github-api/issues/113",
+ "id": 38966208,
+ "node_id": "MDU6SXNzdWUzODk2NjIwOA==",
+ "number": 113,
+ "title": "Different ways of getting issue.getClosedby() return different results.",
+ "user": {
+ "login": "artfullyContrived",
+ "id": 445103,
+ "node_id": "MDQ6VXNlcjQ0NTEwMw==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/445103?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/artfullyContrived",
+ "html_url": "https://github.com/artfullyContrived",
+ "followers_url": "https://api.github.com/users/artfullyContrived/followers",
+ "following_url": "https://api.github.com/users/artfullyContrived/following{/other_user}",
+ "gists_url": "https://api.github.com/users/artfullyContrived/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/artfullyContrived/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/artfullyContrived/subscriptions",
+ "organizations_url": "https://api.github.com/users/artfullyContrived/orgs",
+ "repos_url": "https://api.github.com/users/artfullyContrived/repos",
+ "events_url": "https://api.github.com/users/artfullyContrived/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/artfullyContrived/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2014-07-29T08:00:39Z",
+ "updated_at": "2015-02-15T15:16:33Z",
+ "closed_at": "2015-02-15T15:16:33Z",
+ "author_association": "NONE",
+ "body": "The following test case shows that calling `issue.getRepository().getIssue(issue.getNumber()) .getClosedBy()` at times yields different results from `issue.getClosedBy().`\n\nAlso not all closed issues return the `GHuser` who closed them whereas github shows the closer of the issue.\n\n```\nimport static org.junit.Assert.assertEquals;\n\nimport java.io.IOException;\n\nimport org.junit.BeforeClass;\nimport org.junit.Test;\nimport org.kohsuke.github.GHIssue;\nimport org.kohsuke.github.GHIssueState;\nimport org.kohsuke.github.GHRepository;\nimport org.kohsuke.github.GitHub;\n\npublic class IssueTester {\n\n private static GHRepository repo;\n\n @BeforeClass\n public static void setup() {\n try {\n repo = GitHub.connectAnonymously().getRepository(\n \"kohsuke/github-api\");\n } catch (IOException e) {\n e.printStackTrace();\n }\n }\n\n // These two ways of gettting closers must return same GHUser\n @Test\n public void testGetCloser() {\n try {\n for (GHIssue issue : repo.getIssues(GHIssueState.CLOSED)) {\n assertEquals(issue.getRepository().getIssue(issue.getNumber())\n .getClosedBy(), issue.getClosedBy());\n }\n } catch (IOException e) {\n e.printStackTrace();\n }\n }\n\n // Every closed issue must have been closed by someone\n @Test\n public void testClosedIssue() {\n try {\n for (GHIssue issue : repo.getIssues(GHIssueState.CLOSED)) {\n assert (issue.getClosedBy() != null);\n assert (issue.getRepository().getIssue(issue.getNumber())\n .getClosedBy() != null);\n }\n } catch (IOException e) {\n e.printStackTrace();\n }\n }\n}\n```\n"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-d2dadb59-c855-4c32-8a98-5ed6992cf3ff.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-d2dadb59-c855-4c32-8a98-5ed6992cf3ff.json
new file mode 100644
index 000000000..6695c497b
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-d2dadb59-c855-4c32-8a98-5ed6992cf3ff.json
@@ -0,0 +1,1454 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/508",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/508/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/508/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/508/events",
+ "html_url": "https://github.com/github-api/github-api/pull/508",
+ "id": 424636064,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjYzOTIwNjUw",
+ "number": 508,
+ "title": "Update maven dependency",
+ "user": {
+ "login": "blacelle",
+ "id": 2117911,
+ "node_id": "MDQ6VXNlcjIxMTc5MTE=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/2117911?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/blacelle",
+ "html_url": "https://github.com/blacelle",
+ "followers_url": "https://api.github.com/users/blacelle/followers",
+ "following_url": "https://api.github.com/users/blacelle/following{/other_user}",
+ "gists_url": "https://api.github.com/users/blacelle/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/blacelle/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/blacelle/subscriptions",
+ "organizations_url": "https://api.github.com/users/blacelle/orgs",
+ "repos_url": "https://api.github.com/users/blacelle/repos",
+ "events_url": "https://api.github.com/users/blacelle/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/blacelle/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-03-24T17:06:29Z",
+ "updated_at": "2019-05-17T02:32:05Z",
+ "closed_at": "2019-05-17T02:32:05Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/508",
+ "html_url": "https://github.com/github-api/github-api/pull/508",
+ "diff_url": "https://github.com/github-api/github-api/pull/508.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/508.patch"
+ },
+ "body": "Update of Maven dependency versions"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/507",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/507/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/507/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/507/events",
+ "html_url": "https://github.com/github-api/github-api/pull/507",
+ "id": 422211525,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjYyMDUwNjE3",
+ "number": 507,
+ "title": "Add getTeam by id function",
+ "user": {
+ "login": "ingwarsw",
+ "id": 5390156,
+ "node_id": "MDQ6VXNlcjUzOTAxNTY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5390156?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ingwarsw",
+ "html_url": "https://github.com/ingwarsw",
+ "followers_url": "https://api.github.com/users/ingwarsw/followers",
+ "following_url": "https://api.github.com/users/ingwarsw/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ingwarsw/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ingwarsw/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ingwarsw/subscriptions",
+ "organizations_url": "https://api.github.com/users/ingwarsw/orgs",
+ "repos_url": "https://api.github.com/users/ingwarsw/repos",
+ "events_url": "https://api.github.com/users/ingwarsw/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ingwarsw/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-03-18T13:15:56Z",
+ "updated_at": "2019-05-22T22:22:25Z",
+ "closed_at": "2019-05-22T22:22:25Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/507",
+ "html_url": "https://github.com/github-api/github-api/pull/507",
+ "diff_url": "https://github.com/github-api/github-api/pull/507.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/507.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/503",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/503/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/503/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/503/events",
+ "html_url": "https://github.com/github-api/github-api/pull/503",
+ "id": 419693453,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjYwMTQzMTM5",
+ "number": 503,
+ "title": "add setPrivate functionality on repos",
+ "user": {
+ "login": "shirdoo",
+ "id": 30700223,
+ "node_id": "MDQ6VXNlcjMwNzAwMjIz",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/30700223?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/shirdoo",
+ "html_url": "https://github.com/shirdoo",
+ "followers_url": "https://api.github.com/users/shirdoo/followers",
+ "following_url": "https://api.github.com/users/shirdoo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/shirdoo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/shirdoo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/shirdoo/subscriptions",
+ "organizations_url": "https://api.github.com/users/shirdoo/orgs",
+ "repos_url": "https://api.github.com/users/shirdoo/repos",
+ "events_url": "https://api.github.com/users/shirdoo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/shirdoo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2019-03-11T21:32:05Z",
+ "updated_at": "2019-10-03T21:40:04Z",
+ "closed_at": "2019-10-03T21:40:04Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/503",
+ "html_url": "https://github.com/github-api/github-api/pull/503",
+ "diff_url": "https://github.com/github-api/github-api/pull/503.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/503.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/502",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/502/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/502/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/502/events",
+ "html_url": "https://github.com/github-api/github-api/pull/502",
+ "id": 418068956,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjU4OTI3ODgy",
+ "number": 502,
+ "title": "Added equals and hashcode",
+ "user": {
+ "login": "CodeAndChoke",
+ "id": 37987580,
+ "node_id": "MDQ6VXNlcjM3OTg3NTgw",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/37987580?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/CodeAndChoke",
+ "html_url": "https://github.com/CodeAndChoke",
+ "followers_url": "https://api.github.com/users/CodeAndChoke/followers",
+ "following_url": "https://api.github.com/users/CodeAndChoke/following{/other_user}",
+ "gists_url": "https://api.github.com/users/CodeAndChoke/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/CodeAndChoke/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/CodeAndChoke/subscriptions",
+ "organizations_url": "https://api.github.com/users/CodeAndChoke/orgs",
+ "repos_url": "https://api.github.com/users/CodeAndChoke/repos",
+ "events_url": "https://api.github.com/users/CodeAndChoke/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/CodeAndChoke/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-03-07T00:14:23Z",
+ "updated_at": "2019-09-10T05:02:23Z",
+ "closed_at": "2019-09-10T05:02:23Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/502",
+ "html_url": "https://github.com/github-api/github-api/pull/502",
+ "diff_url": "https://github.com/github-api/github-api/pull/502.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/502.patch"
+ },
+ "body": "I added the required methods from the following issue: https://github.com/kohsuke/github-api/issues/501"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/499",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/499/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/499/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/499/events",
+ "html_url": "https://github.com/github-api/github-api/pull/499",
+ "id": 412266342,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjU0NTE1NzA1",
+ "number": 499,
+ "title": "Create PR from original repo to private org fork",
+ "user": {
+ "login": "anatolyD",
+ "id": 3054650,
+ "node_id": "MDQ6VXNlcjMwNTQ2NTA=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/3054650?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/anatolyD",
+ "html_url": "https://github.com/anatolyD",
+ "followers_url": "https://api.github.com/users/anatolyD/followers",
+ "following_url": "https://api.github.com/users/anatolyD/following{/other_user}",
+ "gists_url": "https://api.github.com/users/anatolyD/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/anatolyD/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/anatolyD/subscriptions",
+ "organizations_url": "https://api.github.com/users/anatolyD/orgs",
+ "repos_url": "https://api.github.com/users/anatolyD/repos",
+ "events_url": "https://api.github.com/users/anatolyD/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/anatolyD/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2019-02-20T06:30:53Z",
+ "updated_at": "2019-05-22T21:55:53Z",
+ "closed_at": "2019-05-22T21:55:53Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/499",
+ "html_url": "https://github.com/github-api/github-api/pull/499",
+ "diff_url": "https://github.com/github-api/github-api/pull/499.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/499.patch"
+ },
+ "body": "Use case: when fork is done into private organization then the original repo maintainer can't have any access there hence this field has to be set to `false` explicitly.\r\n\r\nAdded parameter: `maintainerCanModify` to `GHRepository.createPullRequest` method. \r\n\r\n- Indicates whether maintainers can modify the pull request\r\n\r\nOriginal method is kept for backward compatibility defaulting the parameter to `true`. "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/498",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/498/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/498/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/498/events",
+ "html_url": "https://github.com/github-api/github-api/pull/498",
+ "id": 411819273,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjU0MTcwODA1",
+ "number": 498,
+ "title": "Add GHPullRequestReview.submitted_at field",
+ "user": {
+ "login": "rmetzger",
+ "id": 89049,
+ "node_id": "MDQ6VXNlcjg5MDQ5",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/89049?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/rmetzger",
+ "html_url": "https://github.com/rmetzger",
+ "followers_url": "https://api.github.com/users/rmetzger/followers",
+ "following_url": "https://api.github.com/users/rmetzger/following{/other_user}",
+ "gists_url": "https://api.github.com/users/rmetzger/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/rmetzger/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/rmetzger/subscriptions",
+ "organizations_url": "https://api.github.com/users/rmetzger/orgs",
+ "repos_url": "https://api.github.com/users/rmetzger/repos",
+ "events_url": "https://api.github.com/users/rmetzger/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/rmetzger/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2019-02-19T09:14:02Z",
+ "updated_at": "2019-07-01T18:42:17Z",
+ "closed_at": "2019-07-01T17:32:02Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/498",
+ "html_url": "https://github.com/github-api/github-api/pull/498",
+ "diff_url": "https://github.com/github-api/github-api/pull/498.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/498.patch"
+ },
+ "body": "This is a fix for https://github.com/kohsuke/github-api/issues/450"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/493",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/493/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/493/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/493/events",
+ "html_url": "https://github.com/github-api/github-api/issues/493",
+ "id": 406537811,
+ "node_id": "MDU6SXNzdWU0MDY1Mzc4MTE=",
+ "number": 493,
+ "title": "GitHub.connectUsingOAuth() suddenly taking a really long time to connect",
+ "user": {
+ "login": "POE-Addon-Launcher",
+ "id": 42203962,
+ "node_id": "MDQ6VXNlcjQyMjAzOTYy",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/42203962?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/POE-Addon-Launcher",
+ "html_url": "https://github.com/POE-Addon-Launcher",
+ "followers_url": "https://api.github.com/users/POE-Addon-Launcher/followers",
+ "following_url": "https://api.github.com/users/POE-Addon-Launcher/following{/other_user}",
+ "gists_url": "https://api.github.com/users/POE-Addon-Launcher/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/POE-Addon-Launcher/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/POE-Addon-Launcher/subscriptions",
+ "organizations_url": "https://api.github.com/users/POE-Addon-Launcher/orgs",
+ "repos_url": "https://api.github.com/users/POE-Addon-Launcher/repos",
+ "events_url": "https://api.github.com/users/POE-Addon-Launcher/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/POE-Addon-Launcher/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2019-02-04T21:57:21Z",
+ "updated_at": "2019-02-05T09:53:59Z",
+ "closed_at": "2019-02-05T09:53:59Z",
+ "author_association": "NONE",
+ "body": "Hi I've been creating a program using GitHub.connectUsingOAuth(), however, suddenly it decided to take a really long time to connect to GitHub, (well over 30seconds), however, when I use connect anonymously it will connect instantly, is this a known issue / some random hiccup?"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/492",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/492/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/492/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/492/events",
+ "html_url": "https://github.com/github-api/github-api/pull/492",
+ "id": 405797832,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjQ5Njc3OTU2",
+ "number": 492,
+ "title": "fixed membership role problem with case",
+ "user": {
+ "login": "arykov",
+ "id": 610108,
+ "node_id": "MDQ6VXNlcjYxMDEwOA==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/610108?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/arykov",
+ "html_url": "https://github.com/arykov",
+ "followers_url": "https://api.github.com/users/arykov/followers",
+ "following_url": "https://api.github.com/users/arykov/following{/other_user}",
+ "gists_url": "https://api.github.com/users/arykov/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/arykov/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/arykov/subscriptions",
+ "organizations_url": "https://api.github.com/users/arykov/orgs",
+ "repos_url": "https://api.github.com/users/arykov/repos",
+ "events_url": "https://api.github.com/users/arykov/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/arykov/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2019-02-01T17:24:48Z",
+ "updated_at": "2019-05-17T21:03:44Z",
+ "closed_at": "2019-05-17T21:03:44Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/492",
+ "html_url": "https://github.com/github-api/github-api/pull/492",
+ "diff_url": "https://github.com/github-api/github-api/pull/492.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/492.patch"
+ },
+ "body": "Fix for problem described in issue #491 "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/490",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/490/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/490/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/490/events",
+ "html_url": "https://github.com/github-api/github-api/pull/490",
+ "id": 405495246,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjQ5NDQ0Nzc1",
+ "number": 490,
+ "title": "proposed fix for GHTeam.add in issue #489",
+ "user": {
+ "login": "arykov",
+ "id": 610108,
+ "node_id": "MDQ6VXNlcjYxMDEwOA==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/610108?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/arykov",
+ "html_url": "https://github.com/arykov",
+ "followers_url": "https://api.github.com/users/arykov/followers",
+ "following_url": "https://api.github.com/users/arykov/following{/other_user}",
+ "gists_url": "https://api.github.com/users/arykov/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/arykov/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/arykov/subscriptions",
+ "organizations_url": "https://api.github.com/users/arykov/orgs",
+ "repos_url": "https://api.github.com/users/arykov/repos",
+ "events_url": "https://api.github.com/users/arykov/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/arykov/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2019-02-01T00:04:46Z",
+ "updated_at": "2019-02-01T16:53:42Z",
+ "closed_at": "2019-02-01T16:53:42Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/490",
+ "html_url": "https://github.com/github-api/github-api/pull/490",
+ "diff_url": "https://github.com/github-api/github-api/pull/490.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/490.patch"
+ },
+ "body": "This breaks library reverse compatibility for code that uses original GHTeam.Role.MEMBER and GHTeam.Role.MAINTAINER. Alternative is worse since reverse compatibility can only be preserved at expense of valueOf and using toString instead of name"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/489",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/489/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/489/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/489/events",
+ "html_url": "https://github.com/github-api/github-api/issues/489",
+ "id": 405490040,
+ "node_id": "MDU6SXNzdWU0MDU0OTAwNDA=",
+ "number": 489,
+ "title": "GHTeam.add does not due to GHTeam.Role(s) been capitalized",
+ "user": {
+ "login": "arykov",
+ "id": 610108,
+ "node_id": "MDQ6VXNlcjYxMDEwOA==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/610108?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/arykov",
+ "html_url": "https://github.com/arykov",
+ "followers_url": "https://api.github.com/users/arykov/followers",
+ "following_url": "https://api.github.com/users/arykov/following{/other_user}",
+ "gists_url": "https://api.github.com/users/arykov/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/arykov/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/arykov/subscriptions",
+ "organizations_url": "https://api.github.com/users/arykov/orgs",
+ "repos_url": "https://api.github.com/users/arykov/repos",
+ "events_url": "https://api.github.com/users/arykov/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/arykov/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2019-01-31T23:43:18Z",
+ "updated_at": "2019-02-01T16:54:34Z",
+ "closed_at": "2019-02-01T16:54:34Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "When trying to add a MAINTAINER or MEMBER to the team in GHE 2.16.1 org.kohsuke.github.HttpException: {\"message\":\"Invalid request.\\n\\nMEMBER is not a member of [\\\"member\\\", \\\"maintainer\\\"].\",\"documentation_url\":\"https://developer.github.com/enterprise/2.16/v3/teams/members/#add-or-update-team-membership\"} is thrown. It appears to be capitalization problem."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/485",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/485/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/485/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/485/events",
+ "html_url": "https://github.com/github-api/github-api/pull/485",
+ "id": 393720107,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjQwNjYzNTA2",
+ "number": 485,
+ "title": "remove system.out from listOrgs",
+ "user": {
+ "login": "scotty-g",
+ "id": 7861050,
+ "node_id": "MDQ6VXNlcjc4NjEwNTA=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/7861050?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/scotty-g",
+ "html_url": "https://github.com/scotty-g",
+ "followers_url": "https://api.github.com/users/scotty-g/followers",
+ "following_url": "https://api.github.com/users/scotty-g/following{/other_user}",
+ "gists_url": "https://api.github.com/users/scotty-g/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/scotty-g/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/scotty-g/subscriptions",
+ "organizations_url": "https://api.github.com/users/scotty-g/orgs",
+ "repos_url": "https://api.github.com/users/scotty-g/repos",
+ "events_url": "https://api.github.com/users/scotty-g/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/scotty-g/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-12-23T03:32:47Z",
+ "updated_at": "2019-06-21T14:21:02Z",
+ "closed_at": "2019-05-17T01:56:46Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/485",
+ "html_url": "https://github.com/github-api/github-api/pull/485",
+ "diff_url": "https://github.com/github-api/github-api/pull/485.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/485.patch"
+ },
+ "body": "Removal of a `System.out` usage printing the pageSize on each iteration."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/483",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/483/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/483/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/483/events",
+ "html_url": "https://github.com/github-api/github-api/pull/483",
+ "id": 391505519,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjM4OTkwNTQz",
+ "number": 483,
+ "title": "Add support for projects",
+ "user": {
+ "login": "martinvanzijl",
+ "id": 24422213,
+ "node_id": "MDQ6VXNlcjI0NDIyMjEz",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/24422213?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/martinvanzijl",
+ "html_url": "https://github.com/martinvanzijl",
+ "followers_url": "https://api.github.com/users/martinvanzijl/followers",
+ "following_url": "https://api.github.com/users/martinvanzijl/following{/other_user}",
+ "gists_url": "https://api.github.com/users/martinvanzijl/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/martinvanzijl/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/martinvanzijl/subscriptions",
+ "organizations_url": "https://api.github.com/users/martinvanzijl/orgs",
+ "repos_url": "https://api.github.com/users/martinvanzijl/repos",
+ "events_url": "https://api.github.com/users/martinvanzijl/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/martinvanzijl/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2018-12-16T21:12:17Z",
+ "updated_at": "2019-09-26T03:07:29Z",
+ "closed_at": "2019-09-25T22:51:29Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/483",
+ "html_url": "https://github.com/github-api/github-api/pull/483",
+ "diff_url": "https://github.com/github-api/github-api/pull/483.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/483.patch"
+ },
+ "body": "Fixes issue #425.\r\n\r\nAdded methods:\r\n\r\n- GitHub.getProject(int id)\r\n- GHRepository.createProject()\r\n- GHRepository.listProjects()\r\n- GHOrganization.createProject()\r\n- GHOrganization.listProjects()\r\n\r\nAdded the GHProject class.\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/480",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/480/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/480/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/480/events",
+ "html_url": "https://github.com/github-api/github-api/pull/480",
+ "id": 389070333,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjM3MTYxMTU4",
+ "number": 480,
+ "title": "Escape special characters in branch URLs",
+ "user": {
+ "login": "martinvanzijl",
+ "id": 24422213,
+ "node_id": "MDQ6VXNlcjI0NDIyMjEz",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/24422213?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/martinvanzijl",
+ "html_url": "https://github.com/martinvanzijl",
+ "followers_url": "https://api.github.com/users/martinvanzijl/followers",
+ "following_url": "https://api.github.com/users/martinvanzijl/following{/other_user}",
+ "gists_url": "https://api.github.com/users/martinvanzijl/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/martinvanzijl/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/martinvanzijl/subscriptions",
+ "organizations_url": "https://api.github.com/users/martinvanzijl/orgs",
+ "repos_url": "https://api.github.com/users/martinvanzijl/repos",
+ "events_url": "https://api.github.com/users/martinvanzijl/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/martinvanzijl/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2018-12-09T22:14:42Z",
+ "updated_at": "2019-09-26T03:02:10Z",
+ "closed_at": "2019-09-26T00:15:51Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/480",
+ "html_url": "https://github.com/github-api/github-api/pull/480",
+ "diff_url": "https://github.com/github-api/github-api/pull/480.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/480.patch"
+ },
+ "body": "Fix for issue #381."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/476",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/476/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/476/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/476/events",
+ "html_url": "https://github.com/github-api/github-api/pull/476",
+ "id": 384125477,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjMzNDA0OTM0",
+ "number": 476,
+ "title": "Provide more exception details",
+ "user": {
+ "login": "turbanoff",
+ "id": 741251,
+ "node_id": "MDQ6VXNlcjc0MTI1MQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/741251?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/turbanoff",
+ "html_url": "https://github.com/turbanoff",
+ "followers_url": "https://api.github.com/users/turbanoff/followers",
+ "following_url": "https://api.github.com/users/turbanoff/following{/other_user}",
+ "gists_url": "https://api.github.com/users/turbanoff/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/turbanoff/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/turbanoff/subscriptions",
+ "organizations_url": "https://api.github.com/users/turbanoff/orgs",
+ "repos_url": "https://api.github.com/users/turbanoff/repos",
+ "events_url": "https://api.github.com/users/turbanoff/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/turbanoff/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-11-25T22:21:37Z",
+ "updated_at": "2019-08-24T01:12:35Z",
+ "closed_at": "2019-08-24T01:12:35Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/476",
+ "html_url": "https://github.com/github-api/github-api/pull/476",
+ "diff_url": "https://github.com/github-api/github-api/pull/476.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/476.patch"
+ },
+ "body": "For now if invalid credentials used to search repositories, github-api throws following exception\r\n\r\n Exception in thread \"main\" org.kohsuke.github.GHException: Failed to retrieve https://api.github.com/search/repositories?q=vk+language%3Ajava+created%3A2015-11-26..2016-11-26\r\n\tat org.kohsuke.github.Requester$PagingIterator.fetch(Requester.java:529)\r\n\tat org.kohsuke.github.Requester$PagingIterator.hasNext(Requester.java:494)\r\n\tat org.kohsuke.github.PagedSearchIterable$1.hasNext(PagedSearchIterable.java:55)\r\n\tat org.kohsuke.github.PagedIterator.fetch(PagedIterator.java:44)\r\n\tat org.kohsuke.github.PagedIterator.hasNext(PagedIterator.java:32)\r\n\r\nThere is no mentions about credentials at all. Better to propagate exception to user to be able to deal with it."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/473",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/473/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/473/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/473/events",
+ "html_url": "https://github.com/github-api/github-api/pull/473",
+ "id": 382639279,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjMyMjk3OTgx",
+ "number": 473,
+ "title": "Implemented GitHub.doArchive",
+ "user": {
+ "login": "joaoe",
+ "id": 461983,
+ "node_id": "MDQ6VXNlcjQ2MTk4Mw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/461983?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/joaoe",
+ "html_url": "https://github.com/joaoe",
+ "followers_url": "https://api.github.com/users/joaoe/followers",
+ "following_url": "https://api.github.com/users/joaoe/following{/other_user}",
+ "gists_url": "https://api.github.com/users/joaoe/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/joaoe/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/joaoe/subscriptions",
+ "organizations_url": "https://api.github.com/users/joaoe/orgs",
+ "repos_url": "https://api.github.com/users/joaoe/repos",
+ "events_url": "https://api.github.com/users/joaoe/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/joaoe/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-11-20T12:22:45Z",
+ "updated_at": "2019-09-25T23:55:13Z",
+ "closed_at": "2019-09-25T23:55:13Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/473",
+ "html_url": "https://github.com/github-api/github-api/pull/473",
+ "diff_url": "https://github.com/github-api/github-api/pull/473.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/473.patch"
+ },
+ "body": "`doArchive()` will mark a repository as archived.\r\n\r\nIssue #472"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/472",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/472/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/472/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/472/events",
+ "html_url": "https://github.com/github-api/github-api/issues/472",
+ "id": 382623408,
+ "node_id": "MDU6SXNzdWUzODI2MjM0MDg=",
+ "number": 472,
+ "title": "Implement archive/unarchive functionality",
+ "user": {
+ "login": "joaoe",
+ "id": 461983,
+ "node_id": "MDQ6VXNlcjQ2MTk4Mw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/461983?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/joaoe",
+ "html_url": "https://github.com/joaoe",
+ "followers_url": "https://api.github.com/users/joaoe/followers",
+ "following_url": "https://api.github.com/users/joaoe/following{/other_user}",
+ "gists_url": "https://api.github.com/users/joaoe/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/joaoe/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/joaoe/subscriptions",
+ "organizations_url": "https://api.github.com/users/joaoe/orgs",
+ "repos_url": "https://api.github.com/users/joaoe/repos",
+ "events_url": "https://api.github.com/users/joaoe/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/joaoe/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 8,
+ "created_at": "2018-11-20T11:37:36Z",
+ "updated_at": "2019-09-25T23:56:24Z",
+ "closed_at": "2019-09-25T23:56:24Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "Howdy.\r\n\r\n`GHRepository` does not have an archive/unarchive feature.\r\n\r\nTo archive, a `GitHub.edit(\"archived\", \"true\")` call is enough.\r\n\r\nTo unarchive, it is not possible from the REST API and need to be done manually in the web UI.\r\n\r\nIn case someone wants to implement an unarchive API:\r\nsend a POST request to `https://github.com///settings/archive` or `https://github.com///settings/unarchive`. The POST body contains:\r\n`utf8=%E2%9C%93&authenticity_token=...&verify=`. The token `authenticity_token` is embedded in the HTML in the html form.\r\nThis will force to use a different set of URLs and scrape some HTML, so lets consider this out of scope."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/470",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/470/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/470/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/470/events",
+ "html_url": "https://github.com/github-api/github-api/pull/470",
+ "id": 373857637,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjI1Njg3ODU1",
+ "number": 470,
+ "title": "Added archived attribute in GHRepository",
+ "user": {
+ "login": "recena",
+ "id": 1021745,
+ "node_id": "MDQ6VXNlcjEwMjE3NDU=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1021745?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/recena",
+ "html_url": "https://github.com/recena",
+ "followers_url": "https://api.github.com/users/recena/followers",
+ "following_url": "https://api.github.com/users/recena/following{/other_user}",
+ "gists_url": "https://api.github.com/users/recena/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/recena/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/recena/subscriptions",
+ "organizations_url": "https://api.github.com/users/recena/orgs",
+ "repos_url": "https://api.github.com/users/recena/repos",
+ "events_url": "https://api.github.com/users/recena/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/recena/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2018-10-25T09:35:39Z",
+ "updated_at": "2018-11-06T12:29:21Z",
+ "closed_at": "2018-10-29T15:28:01Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/470",
+ "html_url": "https://github.com/github-api/github-api/pull/470",
+ "diff_url": "https://github.com/github-api/github-api/pull/470.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/470.patch"
+ },
+ "body": "- `archived` attribute was missed and can be interesting in many cases\r\n- Updated parent POM from [17 to 20](https://github.com/kohsuke/pom/compare/pom-17...pom-20)\r\n- Addressed a Apache Maven warning\r\n\r\n```\r\n[WARNING] \r\n[WARNING] Some problems were encountered while building the effective model for org.kohsuke:github-api:jar:1.95-SNAPSHOT\r\n[WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-surefire-plugin is missing. @ line 37, column 15\r\n[WARNING] \r\n[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.\r\n[WARNING] \r\n[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.\r\n[WARNING] \r\n```\r\n\r\n@kohsuke, could you take a look? Thanks."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/468",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/468/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/468/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/468/events",
+ "html_url": "https://github.com/github-api/github-api/pull/468",
+ "id": 372226450,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjI0NDgzODY1",
+ "number": 468,
+ "title": "Fix memory leak.",
+ "user": {
+ "login": "KostyaSha",
+ "id": 231611,
+ "node_id": "MDQ6VXNlcjIzMTYxMQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/231611?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KostyaSha",
+ "html_url": "https://github.com/KostyaSha",
+ "followers_url": "https://api.github.com/users/KostyaSha/followers",
+ "following_url": "https://api.github.com/users/KostyaSha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KostyaSha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KostyaSha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KostyaSha/subscriptions",
+ "organizations_url": "https://api.github.com/users/KostyaSha/orgs",
+ "repos_url": "https://api.github.com/users/KostyaSha/repos",
+ "events_url": "https://api.github.com/users/KostyaSha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KostyaSha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-10-20T16:10:20Z",
+ "updated_at": "2018-11-06T15:56:16Z",
+ "closed_at": "2018-11-06T15:56:16Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/468",
+ "html_url": "https://github.com/github-api/github-api/pull/468",
+ "diff_url": "https://github.com/github-api/github-api/pull/468.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/468.patch"
+ },
+ "body": "While repository object is active and code requests commits they are stored in Map.\r\nGHCommit.files contains huge String[]/char[] amount of data.\r\nThe same could be applied to Milestones.\n\n\n---\nThis change is [
](https://reviewable.io/reviews/kohsuke/github-api/468)\n\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/464",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/464/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/464/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/464/events",
+ "html_url": "https://github.com/github-api/github-api/pull/464",
+ "id": 369032760,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjIyMDY3Njg2",
+ "number": 464,
+ "title": "add request reviewers as attribute of GHPullRequest",
+ "user": {
+ "login": "xeric",
+ "id": 190927,
+ "node_id": "MDQ6VXNlcjE5MDkyNw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/190927?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/xeric",
+ "html_url": "https://github.com/xeric",
+ "followers_url": "https://api.github.com/users/xeric/followers",
+ "following_url": "https://api.github.com/users/xeric/following{/other_user}",
+ "gists_url": "https://api.github.com/users/xeric/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/xeric/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/xeric/subscriptions",
+ "organizations_url": "https://api.github.com/users/xeric/orgs",
+ "repos_url": "https://api.github.com/users/xeric/repos",
+ "events_url": "https://api.github.com/users/xeric/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/xeric/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-10-11T09:31:52Z",
+ "updated_at": "2018-11-06T15:49:36Z",
+ "closed_at": "2018-11-06T15:49:36Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/464",
+ "html_url": "https://github.com/github-api/github-api/pull/464",
+ "diff_url": "https://github.com/github-api/github-api/pull/464.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/464.patch"
+ },
+ "body": "There's no request reviewers in GHPullRequest object, add it."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/462",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/462/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/462/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/462/events",
+ "html_url": "https://github.com/github-api/github-api/pull/462",
+ "id": 367533312,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjIwOTM0Njg5",
+ "number": 462,
+ "title": "Add archived flag for repository",
+ "user": {
+ "login": "ingwarsw",
+ "id": 5390156,
+ "node_id": "MDQ6VXNlcjUzOTAxNTY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5390156?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ingwarsw",
+ "html_url": "https://github.com/ingwarsw",
+ "followers_url": "https://api.github.com/users/ingwarsw/followers",
+ "following_url": "https://api.github.com/users/ingwarsw/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ingwarsw/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ingwarsw/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ingwarsw/subscriptions",
+ "organizations_url": "https://api.github.com/users/ingwarsw/orgs",
+ "repos_url": "https://api.github.com/users/ingwarsw/repos",
+ "events_url": "https://api.github.com/users/ingwarsw/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ingwarsw/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2018-10-07T08:34:29Z",
+ "updated_at": "2018-11-10T11:32:32Z",
+ "closed_at": "2018-11-06T15:55:57Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/462",
+ "html_url": "https://github.com/github-api/github-api/pull/462",
+ "diff_url": "https://github.com/github-api/github-api/pull/462.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/462.patch"
+ },
+ "body": "We have many repositories in our org that are archived..\r\nThat flag will allow us to skip them in processing.."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/461",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/461/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/461/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/461/events",
+ "html_url": "https://github.com/github-api/github-api/pull/461",
+ "id": 365650610,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjE5NTIxODQ0",
+ "number": 461,
+ "title": "Add methods for adding/removing labels to GHIssue",
+ "user": {
+ "login": "evenh",
+ "id": 2701536,
+ "node_id": "MDQ6VXNlcjI3MDE1MzY=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/2701536?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/evenh",
+ "html_url": "https://github.com/evenh",
+ "followers_url": "https://api.github.com/users/evenh/followers",
+ "following_url": "https://api.github.com/users/evenh/following{/other_user}",
+ "gists_url": "https://api.github.com/users/evenh/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/evenh/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/evenh/subscriptions",
+ "organizations_url": "https://api.github.com/users/evenh/orgs",
+ "repos_url": "https://api.github.com/users/evenh/repos",
+ "events_url": "https://api.github.com/users/evenh/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/evenh/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2018-10-01T21:28:07Z",
+ "updated_at": "2018-11-06T16:18:29Z",
+ "closed_at": "2018-11-06T16:17:13Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/461",
+ "html_url": "https://github.com/github-api/github-api/pull/461",
+ "diff_url": "https://github.com/github-api/github-api/pull/461.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/461.patch"
+ },
+ "body": "This PR adds the functionality required to add/remove labels individually from a `GHIssue` (implements #456). One thing I haven't quite understood yet, is how/whether the data in this object can be refreshed (e.g. after adding a label, I want to inspect the labels present for a given issue).\r\n\r\nI've never contributed to this project before, so please let me know if I have done something horribly wrong :-)"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/456",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/456/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/456/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/456/events",
+ "html_url": "https://github.com/github-api/github-api/issues/456",
+ "id": 362916530,
+ "node_id": "MDU6SXNzdWUzNjI5MTY1MzA=",
+ "number": 456,
+ "title": "Add ability to attach/detach issue label w/o side effects to other labels",
+ "user": {
+ "login": "basejumpa",
+ "id": 8762228,
+ "node_id": "MDQ6VXNlcjg3NjIyMjg=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/8762228?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/basejumpa",
+ "html_url": "https://github.com/basejumpa",
+ "followers_url": "https://api.github.com/users/basejumpa/followers",
+ "following_url": "https://api.github.com/users/basejumpa/following{/other_user}",
+ "gists_url": "https://api.github.com/users/basejumpa/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/basejumpa/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/basejumpa/subscriptions",
+ "organizations_url": "https://api.github.com/users/basejumpa/orgs",
+ "repos_url": "https://api.github.com/users/basejumpa/repos",
+ "events_url": "https://api.github.com/users/basejumpa/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/basejumpa/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-09-23T05:58:33Z",
+ "updated_at": "2018-11-06T16:17:14Z",
+ "closed_at": "2018-11-06T16:17:13Z",
+ "author_association": "NONE",
+ "body": "Please improve usability for handling of issue labels. Current version `1.94`.\r\n\r\n### Current situation\r\nCurrently it is very tedious to attach or detach a single label and leave the other labels of the issue untouched. \r\n\r\nCurrention: Currently it is even *not possible*.\r\n\r\nIt is because `setLabels` affects the complete list of labels of the issue. \r\n\r\nThe procedure to attach a single label without side effects to possible other labels of the issue is\r\n* Use `getLabels` to retrieve collection of `GHLabel` objects\r\n* Create list of Strings from the collection\r\n* Add name of label to be attached to the list\r\n* Now `setLabels` needed to be used to apply the list to the issue. But the method offers variadic argument list only, cast not possible, data can not be conveyed.\r\n\r\nClass [`GHIssue`](http://github-api.kohsuke.org/apidocs/index.html) offers three methods for labels\r\n* `void setLabels(String... labels)`\r\n* `Collection | getLabels()`\r\n\r\n### Usecases\r\n* Attach a single label or a list of labels to an issue\r\n* Detach a single label or a list of labels to an issue\r\n\r\n\r\n\r\n### (Dirty) workaround\r\nThis is my workaround using in my groovy scripts currently:\r\n\r\n```\r\n// File kohsuke_github_workarounds.groovy\r\n// Use it with import kohsuke_github_workarounds\r\n\r\n@Grab(group='org.kohsuke', module='github-api', version='1.94')\r\nimport org.kohsuke.github.*\r\n\r\n// Works around https://github.com/kohsuke/github-api/issues/456 \r\nstatic void attachLabel (String token, GHIssue issue, String label_name) {\r\n def jsonString = \"[ \\\"$label_name\\\" ]\"\r\n def con = \"https://api.github.com${issue.getIssuesApiRoute()}/labels\".toURL().openConnection()\r\n con.setDoOutput(true)\r\n con.setDoInput(true)\r\n con.setRequestMethod(\"POST\")\r\n con.setRequestProperty(\"Authorization\", \"token $token\")\r\n con.setRequestProperty(\"Content-Type\", \"application/json\")\r\n con.outputStream.withWriter { writer ->\r\n writer << jsonString\r\n }\r\n String response = con.inputStream.withReader { Reader reader -> reader.text }\r\n}\r\n\r\n// Works around https://github.com/kohsuke/github-api/issues/456 \r\nstatic void detachLabel (String token, GHIssue issue, String label_name) {\r\n def con = \"https://api.github.com${issue.getIssuesApiRoute()}/labels/$label_name\".toURL().openConnection()\r\n con.setDoOutput(true)\r\n con.setDoInput(true)\r\n con.setRequestMethod(\"DELETE\")\r\n con.setRequestProperty(\"Authorization\", \"token $token\")\r\n con.setRequestProperty(\"Content-Type\", \"application/json\")\r\n con.connect()\r\n String response = con.inputStream.withReader { Reader reader -> reader.text }\r\n}\r\n```"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/454",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/454/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/454/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/454/events",
+ "html_url": "https://github.com/github-api/github-api/issues/454",
+ "id": 358392074,
+ "node_id": "MDU6SXNzdWUzNTgzOTIwNzQ=",
+ "number": 454,
+ "title": "[feature request] Add support to list commits that only affect a file path",
+ "user": {
+ "login": "higuaro",
+ "id": 2560573,
+ "node_id": "MDQ6VXNlcjI1NjA1NzM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/2560573?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/higuaro",
+ "html_url": "https://github.com/higuaro",
+ "followers_url": "https://api.github.com/users/higuaro/followers",
+ "following_url": "https://api.github.com/users/higuaro/following{/other_user}",
+ "gists_url": "https://api.github.com/users/higuaro/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/higuaro/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/higuaro/subscriptions",
+ "organizations_url": "https://api.github.com/users/higuaro/orgs",
+ "repos_url": "https://api.github.com/users/higuaro/repos",
+ "events_url": "https://api.github.com/users/higuaro/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/higuaro/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2018-09-09T16:37:22Z",
+ "updated_at": "2018-09-09T16:42:44Z",
+ "closed_at": "2018-09-09T16:40:45Z",
+ "author_association": "NONE",
+ "body": "## Context\r\n\r\nThe GitHub API allows listing commits that only affect a file path:\r\n\r\nhttps://developer.github.com/v3/repos/commits/#list-commits-on-a-repository \r\n\r\nThis endpoint also allows further filtering using the `since` and `until` parameters:\r\n\r\n```bash\r\ncurl --include -H \"Authorization: token \" \\\r\n \"https://api.github.com/repos/USER/REPO/commits?path=/some/path.txt&since=2018-07-0100:00:00Z\"\r\n```\r\nNone of these are yet present in the library. Currently, listing commits is done thought the `listCommits` method, defined as:\r\n```java\r\npublic PagedIterable listCommits() { ... }\r\n```\r\nAnd can be used like:\r\n```java\r\nGitHub github = ...\r\nfor (GHCommit commit : github.getRepository(\"[some-repo]\").listCommits()) {\r\n // ...\r\n}\r\n``` \r\n## Request\r\nIdeally, something similar to the following is desireable: \r\n```java\r\npublic PagedIterable listCommits(String filePath, ZonedDateTime since, ZonedDateTime until) {\r\n```\r\nThat only lists commits within the specified date range that only affect the given file path."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/451",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/451/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/451/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/451/events",
+ "html_url": "https://github.com/github-api/github-api/issues/451",
+ "id": 354016553,
+ "node_id": "MDU6SXNzdWUzNTQwMTY1NTM=",
+ "number": 451,
+ "title": "Attachment download from issues",
+ "user": {
+ "login": "c36x",
+ "id": 33650634,
+ "node_id": "MDQ6VXNlcjMzNjUwNjM0",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/33650634?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/c36x",
+ "html_url": "https://github.com/c36x",
+ "followers_url": "https://api.github.com/users/c36x/followers",
+ "following_url": "https://api.github.com/users/c36x/following{/other_user}",
+ "gists_url": "https://api.github.com/users/c36x/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/c36x/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/c36x/subscriptions",
+ "organizations_url": "https://api.github.com/users/c36x/orgs",
+ "repos_url": "https://api.github.com/users/c36x/repos",
+ "events_url": "https://api.github.com/users/c36x/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/c36x/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-08-25T14:26:53Z",
+ "updated_at": "2018-08-25T14:27:12Z",
+ "closed_at": "2018-08-25T14:27:12Z",
+ "author_association": "NONE",
+ "body": "I want to download attachments added to Github issue. \r\nUsually an attachment is added to in Issue into the body of the comment.\r\n\r\nMy problem is the GHIssueComment has a body as a String. So i can not get the attachments.\r\n\r\nI could see that the GHRepository has a method getBlob(String blobSha)\r\nBut I do not know that this is what i need, also i do not know the blobSha.\r\n\r\nHow could I get the attachments uploaded to issues?"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/449",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/449/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/449/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/449/events",
+ "html_url": "https://github.com/github-api/github-api/pull/449",
+ "id": 350162237,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjA4MDc5Mzg4",
+ "number": 449,
+ "title": "Fix for issue #426. Fix null pointer when deleting refs.",
+ "user": {
+ "login": "martinvanzijl",
+ "id": 24422213,
+ "node_id": "MDQ6VXNlcjI0NDIyMjEz",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/24422213?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/martinvanzijl",
+ "html_url": "https://github.com/martinvanzijl",
+ "followers_url": "https://api.github.com/users/martinvanzijl/followers",
+ "following_url": "https://api.github.com/users/martinvanzijl/following{/other_user}",
+ "gists_url": "https://api.github.com/users/martinvanzijl/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/martinvanzijl/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/martinvanzijl/subscriptions",
+ "organizations_url": "https://api.github.com/users/martinvanzijl/orgs",
+ "repos_url": "https://api.github.com/users/martinvanzijl/repos",
+ "events_url": "https://api.github.com/users/martinvanzijl/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/martinvanzijl/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-08-13T19:31:15Z",
+ "updated_at": "2018-11-11T18:45:11Z",
+ "closed_at": "2018-08-30T03:21:09Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/449",
+ "html_url": "https://github.com/github-api/github-api/pull/449",
+ "diff_url": "https://github.com/github-api/github-api/pull/449.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/449.patch"
+ },
+ "body": "Fix for issue #426. This assigns a root to the ref objects, avoiding the null pointer exception."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/447",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/447/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/447/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/447/events",
+ "html_url": "https://github.com/github-api/github-api/issues/447",
+ "id": 346355382,
+ "node_id": "MDU6SXNzdWUzNDYzNTUzODI=",
+ "number": 447,
+ "title": "Rate limit - catch the exception",
+ "user": {
+ "login": "pkasson",
+ "id": 3072247,
+ "node_id": "MDQ6VXNlcjMwNzIyNDc=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/3072247?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/pkasson",
+ "html_url": "https://github.com/pkasson",
+ "followers_url": "https://api.github.com/users/pkasson/followers",
+ "following_url": "https://api.github.com/users/pkasson/following{/other_user}",
+ "gists_url": "https://api.github.com/users/pkasson/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/pkasson/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/pkasson/subscriptions",
+ "organizations_url": "https://api.github.com/users/pkasson/orgs",
+ "repos_url": "https://api.github.com/users/pkasson/repos",
+ "events_url": "https://api.github.com/users/pkasson/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/pkasson/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2018-07-31T20:57:51Z",
+ "updated_at": "2018-08-30T14:56:51Z",
+ "closed_at": "2018-08-30T14:56:51Z",
+ "author_association": "NONE",
+ "body": "I don't see an obvious way to catch the process (when iterating repos from a search) to catch when a rate limit has been hit, to gracefully shutdown. Is there a way to catch this \"error\" ?\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/446",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/446/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/446/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/446/events",
+ "html_url": "https://github.com/github-api/github-api/pull/446",
+ "id": 341839698,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjAxODc5NDAz",
+ "number": 446,
+ "title": "Fix pagination for APIs that supported it ad hoc",
+ "user": {
+ "login": "daniel-beck",
+ "id": 1831569,
+ "node_id": "MDQ6VXNlcjE4MzE1Njk=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1831569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/daniel-beck",
+ "html_url": "https://github.com/daniel-beck",
+ "followers_url": "https://api.github.com/users/daniel-beck/followers",
+ "following_url": "https://api.github.com/users/daniel-beck/following{/other_user}",
+ "gists_url": "https://api.github.com/users/daniel-beck/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/daniel-beck/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/daniel-beck/subscriptions",
+ "organizations_url": "https://api.github.com/users/daniel-beck/orgs",
+ "repos_url": "https://api.github.com/users/daniel-beck/repos",
+ "events_url": "https://api.github.com/users/daniel-beck/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/daniel-beck/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-07-17T09:33:32Z",
+ "updated_at": "2018-08-30T03:20:53Z",
+ "closed_at": "2018-08-30T03:20:53Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/446",
+ "html_url": "https://github.com/github-api/github-api/pull/446",
+ "diff_url": "https://github.com/github-api/github-api/pull/446.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/446.patch"
+ },
+ "body": "This apparently broke in github-api 1.72 due to new args shadowing `final int pageSize` e.g. at https://github.com/kohsuke/github-api/commit/dbddf5b9eb500221a4c6be1e523a138de74261c4#diff-0fdf88c5f013313a4d3b752c6ed0d3d4R247, so it's always the default of 0/30.\r\n\r\nWorkaround: `listRepositories().withPageSize(…)`.\r\n\r\n100% untested. All I know is that this compiles when skipping tests.\r\n\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/443",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/443/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/443/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/443/events",
+ "html_url": "https://github.com/github-api/github-api/pull/443",
+ "id": 337280725,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTk4NTE3ODQ4",
+ "number": 443,
+ "title": "Adds the GHEventPayload.Issue class",
+ "user": {
+ "login": "Arrow768",
+ "id": 1331699,
+ "node_id": "MDQ6VXNlcjEzMzE2OTk=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1331699?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Arrow768",
+ "html_url": "https://github.com/Arrow768",
+ "followers_url": "https://api.github.com/users/Arrow768/followers",
+ "following_url": "https://api.github.com/users/Arrow768/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Arrow768/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Arrow768/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Arrow768/subscriptions",
+ "organizations_url": "https://api.github.com/users/Arrow768/orgs",
+ "repos_url": "https://api.github.com/users/Arrow768/repos",
+ "events_url": "https://api.github.com/users/Arrow768/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Arrow768/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-07-01T10:32:02Z",
+ "updated_at": "2018-08-30T03:20:27Z",
+ "closed_at": "2018-08-30T03:20:27Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/443",
+ "html_url": "https://github.com/github-api/github-api/pull/443",
+ "diff_url": "https://github.com/github-api/github-api/pull/443.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/443.patch"
+ },
+ "body": "Adds the GHEventPayload.Issue class and adds some basic tests for it (mostly the ones from IssueComment).\r\n\r\nFixes #442"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/442",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/442/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/442/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/442/events",
+ "html_url": "https://github.com/github-api/github-api/issues/442",
+ "id": 337279288,
+ "node_id": "MDU6SXNzdWUzMzcyNzkyODg=",
+ "number": 442,
+ "title": "GHEventPayload.Issue",
+ "user": {
+ "login": "Arrow768",
+ "id": 1331699,
+ "node_id": "MDQ6VXNlcjEzMzE2OTk=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1331699?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Arrow768",
+ "html_url": "https://github.com/Arrow768",
+ "followers_url": "https://api.github.com/users/Arrow768/followers",
+ "following_url": "https://api.github.com/users/Arrow768/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Arrow768/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Arrow768/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Arrow768/subscriptions",
+ "organizations_url": "https://api.github.com/users/Arrow768/orgs",
+ "repos_url": "https://api.github.com/users/Arrow768/repos",
+ "events_url": "https://api.github.com/users/Arrow768/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Arrow768/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2018-07-01T10:06:40Z",
+ "updated_at": "2018-08-30T03:20:27Z",
+ "closed_at": "2018-08-30T03:20:27Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "I am trying to process the the milestoned and unmilestoned event for pull requests.\r\nHowever I have noticed that github sends those events as issue events and not as pull request events.\r\n\r\nMy expectation would be that there is a GHEventPayload.Issue class that can process issue updates sent via the webhook."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/441",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/441/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/441/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/441/events",
+ "html_url": "https://github.com/github-api/github-api/pull/441",
+ "id": 331808914,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTk0NDQ4NzI1",
+ "number": 441,
+ "title": "support update content through createContent, passing sha of existing file",
+ "user": {
+ "login": "shirdoo",
+ "id": 30700223,
+ "node_id": "MDQ6VXNlcjMwNzAwMjIz",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/30700223?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/shirdoo",
+ "html_url": "https://github.com/shirdoo",
+ "followers_url": "https://api.github.com/users/shirdoo/followers",
+ "following_url": "https://api.github.com/users/shirdoo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/shirdoo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/shirdoo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/shirdoo/subscriptions",
+ "organizations_url": "https://api.github.com/users/shirdoo/orgs",
+ "repos_url": "https://api.github.com/users/shirdoo/repos",
+ "events_url": "https://api.github.com/users/shirdoo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/shirdoo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2018-06-13T01:28:33Z",
+ "updated_at": "2019-04-24T16:05:54Z",
+ "closed_at": "2018-08-30T02:06:39Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/441",
+ "html_url": "https://github.com/github-api/github-api/pull/441",
+ "diff_url": "https://github.com/github-api/github-api/pull/441.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/441.patch"
+ },
+ "body": "Following up from https://github.com/kohsuke/github-api/pull/424"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-ddbca5ee-6c30-447d-8667-8c29c151e6d5.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-ddbca5ee-6c30-447d-8667-8c29c151e6d5.json
new file mode 100644
index 000000000..54a533ebb
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-ddbca5ee-6c30-447d-8667-8c29c151e6d5.json
@@ -0,0 +1,1412 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/332",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/332/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/332/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/332/events",
+ "html_url": "https://github.com/github-api/github-api/pull/332",
+ "id": 202508206,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTAyNzAwMTkw",
+ "number": 332,
+ "title": "Fix a bug in the Javadocs (due to copy and paste)",
+ "user": {
+ "login": "sebkur",
+ "id": 1633488,
+ "node_id": "MDQ6VXNlcjE2MzM0ODg=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1633488?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sebkur",
+ "html_url": "https://github.com/sebkur",
+ "followers_url": "https://api.github.com/users/sebkur/followers",
+ "following_url": "https://api.github.com/users/sebkur/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sebkur/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sebkur/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sebkur/subscriptions",
+ "organizations_url": "https://api.github.com/users/sebkur/orgs",
+ "repos_url": "https://api.github.com/users/sebkur/repos",
+ "events_url": "https://api.github.com/users/sebkur/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sebkur/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-01-23T11:22:47Z",
+ "updated_at": "2017-09-08T17:39:59Z",
+ "closed_at": "2017-09-08T17:39:59Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/332",
+ "html_url": "https://github.com/github-api/github-api/pull/332",
+ "diff_url": "https://github.com/github-api/github-api/pull/332.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/332.patch"
+ },
+ "body": "I found a typo in the Javadocs (looks like the comment has been copied along with the method but has not been updated after the method itself has been adapted)"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/331",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/331/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/331/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/331/events",
+ "html_url": "https://github.com/github-api/github-api/pull/331",
+ "id": 202201305,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTAyNTA2NDA0",
+ "number": 331,
+ "title": "add ability to utilitize the \"edit a release\" api via update() method",
+ "user": {
+ "login": "jeffnelson",
+ "id": 15911380,
+ "node_id": "MDQ6VXNlcjE1OTExMzgw",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/15911380?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jeffnelson",
+ "html_url": "https://github.com/jeffnelson",
+ "followers_url": "https://api.github.com/users/jeffnelson/followers",
+ "following_url": "https://api.github.com/users/jeffnelson/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jeffnelson/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jeffnelson/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jeffnelson/subscriptions",
+ "organizations_url": "https://api.github.com/users/jeffnelson/orgs",
+ "repos_url": "https://api.github.com/users/jeffnelson/repos",
+ "events_url": "https://api.github.com/users/jeffnelson/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jeffnelson/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-01-20T17:47:12Z",
+ "updated_at": "2017-09-09T19:31:29Z",
+ "closed_at": "2017-09-09T19:31:29Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/331",
+ "html_url": "https://github.com/github-api/github-api/pull/331",
+ "diff_url": "https://github.com/github-api/github-api/pull/331.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/331.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/329",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/329/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/329/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/329/events",
+ "html_url": "https://github.com/github-api/github-api/pull/329",
+ "id": 199781219,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTAwODQ0MzM5",
+ "number": 329,
+ "title": "Correct algebra in #327",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2017-01-10T10:15:15Z",
+ "updated_at": "2017-11-01T15:50:07Z",
+ "closed_at": "2017-01-17T02:31:34Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/329",
+ "html_url": "https://github.com/github-api/github-api/pull/329",
+ "diff_url": "https://github.com/github-api/github-api/pull/329.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/329.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/328",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/328/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/328/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/328/events",
+ "html_url": "https://github.com/github-api/github-api/issues/328",
+ "id": 198980914,
+ "node_id": "MDU6SXNzdWUxOTg5ODA5MTQ=",
+ "number": 328,
+ "title": "Webhook creation response error",
+ "user": {
+ "login": "dieffrei",
+ "id": 3090010,
+ "node_id": "MDQ6VXNlcjMwOTAwMTA=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/3090010?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dieffrei",
+ "html_url": "https://github.com/dieffrei",
+ "followers_url": "https://api.github.com/users/dieffrei/followers",
+ "following_url": "https://api.github.com/users/dieffrei/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dieffrei/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dieffrei/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dieffrei/subscriptions",
+ "organizations_url": "https://api.github.com/users/dieffrei/orgs",
+ "repos_url": "https://api.github.com/users/dieffrei/repos",
+ "events_url": "https://api.github.com/users/dieffrei/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dieffrei/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-01-05T15:23:12Z",
+ "updated_at": "2017-01-08T18:45:12Z",
+ "closed_at": "2017-01-08T18:45:12Z",
+ "author_association": "NONE",
+ "body": "Executing github.getRepository(\"user/repo\").createWebHook(new URL(\"someurl...\"));\r\nWebhook was created but a exception is throwed:\r\n\r\n2017-01-05T15:17:11.974971+00:00 app[web.1]: com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'payload': was expecting ('true', 'false' or 'null')\r\n2017-01-05T15:17:11.975129+00:00 app[web.1]: at [Source: payload=%7B%22zen%22%3A%22Non-blocking+is+better+than+blocking.%22%2C%22hook_id%22%3A11405663%2C%22hook%22%3A%7B%22type%22%3A%22Repository%22%2C%22id%22%3A11405663%2C%22name%22%3A%22web%22%2C%22active%22%3Atrue%2C%22events%22%3A%5B%22push%22%5D%2C%22config%22%3A%7B%22url%22%3A%22https%3A%2F%2Fmorning-crag-16002.herokuapp.com%2Fapplication%2Fgithub%2Fwebhooks%22%7D%2C%22updated_at%22%3A%222017-01-05T15%3A17%3A11Z%22%2C%22created_at%22%3A%222017-01-05T15%3A17%3A11Z%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fhooks%2F11405663%22%2C%22test_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fhooks%2F11405663%2Ftest%22%2C%22ping_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fhooks%2F11405663%2Fpings%22%2C%22last_response%22%3A%7B%22code%22%3Anull%2C%22status%22%3A%22unused%22%2C%22message%22%3Anull%7D%7D%2C%22repository%22%3A%7B%22id%22%3A77337343%2C%22name%22%3A%22fflib-apex-common%22%2C%22full_name%22%3A%22dieffrei%2Ffflib-apex-common%22%2C%22owner%22%3A%7B%22login%22%3A%22dieffrei%22%2C%22id%22%3A3090010%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F3090010%3Fv%3D3%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fdieffrei%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%2C%22private%22%3Afalse%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fdieffrei%2Ffflib-apex-common%22%2C%22description%22%3A%22Common+Apex+Library+supporting+Apex+Enterprise+Patterns+and+much+more%21%22%2C%22fork%22%3Atrue%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%22%2C%22forks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fforks%22%2C%22keys_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fkeys%7B%2Fkey_id%7D%22%2C%22collaborators_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fcollaborators%7B%2Fcollaborator%7D%22%2C%22teams_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fteams%22%2C%22hooks_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fhooks%22%2C%22issue_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fissues%2Fevents%7B%2Fnumber%7D%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fevents%22%2C%22assignees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fassignees%7B%2Fuser%7D%22%2C%22branches_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fbranches%7B%2Fbranch%7D%22%2C%22tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Ftags%22%2C%22blobs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fgit%2Fblobs%7B%2Fsha%7D%22%2C%22git_tags_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fgit%2Ftags%7B%2Fsha%7D%22%2C%22git_refs_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fgit%2Frefs%7B%2Fsha%7D%22%2C%22trees_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fgit%2Ftrees%7B%2Fsha%7D%22%2C%22statuses_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fstatuses%2F%7Bsha%7D%22%2C%22languages_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Flanguages%22%2C%22stargazers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fstargazers%22%2C%22contributors_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fcontributors%22%2C%22subscribers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fsubscribers%22%2C%22subscription_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fsubscription%22%2C%22commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fcommits%7B%2Fsha%7D%22%2C%22git_commits_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fgit%2Fcommits%7B%2Fsha%7D%22%2C%22comments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fcomments%7B%2Fnumber%7D%22%2C%22issue_comment_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fissues%2Fcomments%7B%2Fnumber%7D%22%2C%22contents_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fcontents%2F%7B%2Bpath%7D%22%2C%22compare_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fcompare%2F%7Bbase%7D...%7Bhead%7D%22%2C%22merges_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fmerges%22%2C%22archive_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2F%7Barchive_format%7D%7B%2Fref%7D%22%2C%22downloads_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fdownloads%22%2C%22issues_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fissues%7B%2Fnumber%7D%22%2C%22pulls_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fpulls%7B%2Fnumber%7D%22%2C%22milestones_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fmilestones%7B%2Fnumber%7D%22%2C%22notifications_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fnotifications%7B%3Fsince%2Call%2Cparticipating%7D%22%2C%22labels_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Flabels%7B%2Fname%7D%22%2C%22releases_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Freleases%7B%2Fid%7D%22%2C%22deployments_url%22%3A%22https%3A%2F%2Fapi.github.com%2Frepos%2Fdieffrei%2Ffflib-apex-common%2Fdeployments%22%2C%22created_at%22%3A%222016-12-25T18%3A07%3A36Z%22%2C%22updated_at%22%3A%222016-12-25T18%3A07%3A39Z%22%2C%22pushed_at%22%3A%222016-12-26T12%3A28%3A45Z%22%2C%22git_url%22%3A%22git%3A%2F%2Fgithub.com%2Fdieffrei%2Ffflib-apex-common.git%22%2C%22ssh_url%22%3A%22git%40github.com%3Adieffrei%2Ffflib-apex-common.git%22%2C%22clone_url%22%3A%22https%3A%2F%2Fgithub.com%2Fdieffrei%2Ffflib-apex-common.git%22%2C%22svn_url%22%3A%22https%3A%2F%2Fgithub.com%2Fdieffrei%2Ffflib-apex-common%22%2C%22homepage%22%3A%22%22%2C%22size%22%3A19892%2C%22stargazers_count%22%3A0%2C%22watchers_count%22%3A0%2C%22language%22%3A%22Apex%22%2C%22has_issues%22%3Afalse%2C%22has_downloads%22%3Atrue%2C%22has_wiki%22%3Atrue%2C%22has_pages%22%3Afalse%2C%22forks_count%22%3A0%2C%22mirror_url%22%3Anull%2C%22open_issues_count%22%3A1%2C%22forks%22%3A0%2C%22open_issues%22%3A1%2C%22watchers%22%3A0%2C%22default_branch%22%3A%22master%22%7D%2C%22sender%22%3A%7B%22login%22%3A%22dieffrei%22%2C%22id%22%3A3090010%2C%22avatar_url%22%3A%22https%3A%2F%2Favatars.githubusercontent.com%2Fu%2F3090010%3Fv%3D3%22%2C%22gravatar_id%22%3A%22%22%2C%22url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%22%2C%22html_url%22%3A%22https%3A%2F%2Fgithub.com%2Fdieffrei%22%2C%22followers_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Ffollowers%22%2C%22following_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Ffollowing%7B%2Fother_user%7D%22%2C%22gists_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Fgists%7B%2Fgist_id%7D%22%2C%22starred_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Fstarred%7B%2Fowner%7D%7B%2Frepo%7D%22%2C%22subscriptions_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Fsubscriptions%22%2C%22organizations_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Forgs%22%2C%22repos_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Frepos%22%2C%22events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Fevents%7B%2Fprivacy%7D%22%2C%22received_events_url%22%3A%22https%3A%2F%2Fapi.github.com%2Fusers%2Fdieffrei%2Freceived_events%22%2C%22type%22%3A%22User%22%2C%22site_admin%22%3Afalse%7D%7D; line: 1, column: 8]\r\n2017-01-05T15:17:11.975376+00:00 app[web.1]: \tat com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1702)\r\n2017-01-05T15:17:11.975497+00:00 app[web.1]: \tat com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:558)\r\n2017-01-05T15:17:11.975595+00:00 app[web.1]: \tat com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2836)\r\n2017-01-05T15:17:11.975651+00:00 app[web.1]: \tat com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1899)\r\n2017-01-05T15:17:11.975717+00:00 app[web.1]: \tat com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:749)\r\n2017-01-05T15:17:11.975791+00:00 app[web.1]: \tat com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3825)\r\n2017-01-05T15:17:11.975843+00:00 app[web.1]: \tat com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3774)\r\n2017-01-05T15:17:11.975926+00:00 app[web.1]: \tat com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2833)\r\n2017-01-05T15:17:11.975981+00:00 app[web.1]: \tat com.heroku.devcenter.GithubWebhookController.greeting(GithubWebhookController.java:26)\r\n2017-01-05T15:17:11.976065+00:00 app[web.1]: \tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n2017-01-05T15:17:11.976126+00:00 app[web.1]: \tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n2017-01-05T15:17:11.976184+00:00 app[web.1]: \tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n2017-01-05T15:17:11.976265+00:00 app[web.1]: \tat java.lang.reflect.Method.invoke(Method.java:498)\r\n2017-01-05T15:17:11.976337+00:00 app[web.1]: \tat org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:220)\r\n2017-01-05T15:17:11.976422+00:00 app[web.1]: \tat org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:134)\r\n2017-01-05T15:17:11.976483+00:00 app[web.1]: \tat org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:116)\r\n2017-01-05T15:17:11.976537+00:00 app[web.1]: \tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)\r\n2017-01-05T15:17:11.976623+00:00 app[web.1]: \tat org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)\r\n2017-01-05T15:17:11.976688+00:00 app[web.1]: \tat org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)\r\n2017-01-05T15:17:11.976787+00:00 app[web.1]: \tat org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)\r\n2017-01-05T15:17:11.976853+00:00 app[web.1]: \tat org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)\r\n2017-01-05T15:17:11.976957+00:00 app[web.1]: \tat org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)\r\n2017-01-05T15:17:11.977108+00:00 app[web.1]: \tat org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)\r\n2017-01-05T15:17:11.977153+00:00 app[web.1]: \tat javax.servlet.http.HttpServlet.service(HttpServlet.java:646)\r\n2017-01-05T15:17:11.977205+00:00 app[web.1]: \tat org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)\r\n2017-01-05T15:17:11.977311+00:00 app[web.1]: \tat javax.servlet.http.HttpServlet.service(HttpServlet.java:727)\r\n2017-01-05T15:17:11.977361+00:00 app[web.1]: \tat org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)\r\n2017-01-05T15:17:11.977449+00:00 app[web.1]: \tat org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)\r\n2017-01-05T15:17:11.977504+00:00 app[web.1]: \tat org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)\r\n2017-01-05T15:17:11.977592+00:00 app[web.1]: \tat org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)\r\n2017-01-05T15:17:11.977659+00:00 app[web.1]: \tat org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)\r\n2017-01-05T15:17:11.977706+00:00 app[web.1]: \tat org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)\r\n2017-01-05T15:17:11.977792+00:00 app[web.1]: \tat org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)\r\n2017-01-05T15:17:11.977836+00:00 app[web.1]: \tat org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)\r\n2017-01-05T15:17:11.977927+00:00 app[web.1]: \tat org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)\r\n2017-01-05T15:17:11.977984+00:00 app[web.1]: \tat org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)\r\n2017-01-05T15:17:11.978051+00:00 app[web.1]: \tat org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)\r\n2017-01-05T15:17:11.978136+00:00 app[web.1]: \tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)\r\n2017-01-05T15:17:11.978289+00:00 app[web.1]: \tat org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1695)\r\n2017-01-05T15:17:11.978353+00:00 app[web.1]: \tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n2017-01-05T15:17:11.978551+00:00 app[web.1]: \tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n2017-01-05T15:17:11.978708+00:00 app[web.1]: \tat org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n2017-01-05T15:17:11.978863+00:00 app[web.1]: \tat java.lang.Thread.run(Thread.java:745)"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/327",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/327/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/327/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/327/events",
+ "html_url": "https://github.com/github-api/github-api/pull/327",
+ "id": 198909518,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTAwMjU2ODc3",
+ "number": 327,
+ "title": "Expose Rate Limit Headers",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2017-01-05T09:22:06Z",
+ "updated_at": "2017-01-09T23:57:08Z",
+ "closed_at": "2017-01-09T23:57:08Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/327",
+ "html_url": "https://github.com/github-api/github-api/pull/327",
+ "diff_url": "https://github.com/github-api/github-api/pull/327.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/327.patch"
+ },
+ "body": "Exposes the rate limit header responses so that consumers of the API can proactively tune their usage.\r\n\r\n@reviewbybees"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/326",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/326/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/326/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/326/events",
+ "html_url": "https://github.com/github-api/github-api/issues/326",
+ "id": 198777006,
+ "node_id": "MDU6SXNzdWUxOTg3NzcwMDY=",
+ "number": 326,
+ "title": "Support new merge methods (squash/rebase) for Github Pull Requests",
+ "user": {
+ "login": "NicholasBoll",
+ "id": 338257,
+ "node_id": "MDQ6VXNlcjMzODI1Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/338257?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/NicholasBoll",
+ "html_url": "https://github.com/NicholasBoll",
+ "followers_url": "https://api.github.com/users/NicholasBoll/followers",
+ "following_url": "https://api.github.com/users/NicholasBoll/following{/other_user}",
+ "gists_url": "https://api.github.com/users/NicholasBoll/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/NicholasBoll/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/NicholasBoll/subscriptions",
+ "organizations_url": "https://api.github.com/users/NicholasBoll/orgs",
+ "repos_url": "https://api.github.com/users/NicholasBoll/repos",
+ "events_url": "https://api.github.com/users/NicholasBoll/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/NicholasBoll/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-01-04T18:28:26Z",
+ "updated_at": "2017-09-09T19:17:52Z",
+ "closed_at": "2017-09-09T19:17:52Z",
+ "author_association": "NONE",
+ "body": "**Note:** This is part of a developer preview, so it might be too early to implement.\r\n\r\nAccording the version 3 of the github API, new merge methods (`squash` and `rebase`) have been added, `merge` being the default: https://developer.github.com/v3/pulls/#merge-a-pull-request-merge-button\r\n\r\nIn [GHPullRequest#L294](https://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/GHPullRequest.java#L294), `merge_method` could be added to support different merge methods. Either the `merge` method could be overloaded to support different merge methods or methods for squashing and rebasing could be added."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/325",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/325/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/325/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/325/events",
+ "html_url": "https://github.com/github-api/github-api/pull/325",
+ "id": 197230642,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTkxNDUyNTg=",
+ "number": 325,
+ "title": "Branch protection attrs",
+ "user": {
+ "login": "jeffnelson",
+ "id": 15911380,
+ "node_id": "MDQ6VXNlcjE1OTExMzgw",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/15911380?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jeffnelson",
+ "html_url": "https://github.com/jeffnelson",
+ "followers_url": "https://api.github.com/users/jeffnelson/followers",
+ "following_url": "https://api.github.com/users/jeffnelson/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jeffnelson/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jeffnelson/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jeffnelson/subscriptions",
+ "organizations_url": "https://api.github.com/users/jeffnelson/orgs",
+ "repos_url": "https://api.github.com/users/jeffnelson/repos",
+ "events_url": "https://api.github.com/users/jeffnelson/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jeffnelson/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-12-22T17:55:51Z",
+ "updated_at": "2017-01-10T00:06:33Z",
+ "closed_at": "2017-01-10T00:06:33Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/325",
+ "html_url": "https://github.com/github-api/github-api/pull/325",
+ "diff_url": "https://github.com/github-api/github-api/pull/325.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/325.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/324",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/324/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/324/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/324/events",
+ "html_url": "https://github.com/github-api/github-api/pull/324",
+ "id": 196173589,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTg0MTc1MDk=",
+ "number": 324,
+ "title": "[JENKINS-36240] Added GHRepository.getPermission(String)",
+ "user": {
+ "login": "jglick",
+ "id": 154109,
+ "node_id": "MDQ6VXNlcjE1NDEwOQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/154109?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jglick",
+ "html_url": "https://github.com/jglick",
+ "followers_url": "https://api.github.com/users/jglick/followers",
+ "following_url": "https://api.github.com/users/jglick/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jglick/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jglick/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jglick/subscriptions",
+ "organizations_url": "https://api.github.com/users/jglick/orgs",
+ "repos_url": "https://api.github.com/users/jglick/repos",
+ "events_url": "https://api.github.com/users/jglick/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jglick/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2016-12-16T23:04:20Z",
+ "updated_at": "2017-01-19T18:40:21Z",
+ "closed_at": "2017-01-10T00:19:06Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/324",
+ "html_url": "https://github.com/github-api/github-api/pull/324",
+ "diff_url": "https://github.com/github-api/github-api/pull/324.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/324.patch"
+ },
+ "body": "[JENKINS-36240](https://issues.jenkins-ci.org/browse/JENKINS-36240)\r\n\r\nUsing a new API (currently still in preview) that fixes a longstanding issue.\r\n\r\n@reviewbybees"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/323",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/323/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/323/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/323/events",
+ "html_url": "https://github.com/github-api/github-api/pull/323",
+ "id": 196143348,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTgzOTQ5Njc=",
+ "number": 323,
+ "title": "Fix syntactically malformed test JSON",
+ "user": {
+ "login": "jglick",
+ "id": 154109,
+ "node_id": "MDQ6VXNlcjE1NDEwOQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/154109?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jglick",
+ "html_url": "https://github.com/jglick",
+ "followers_url": "https://api.github.com/users/jglick/followers",
+ "following_url": "https://api.github.com/users/jglick/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jglick/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jglick/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jglick/subscriptions",
+ "organizations_url": "https://api.github.com/users/jglick/orgs",
+ "repos_url": "https://api.github.com/users/jglick/repos",
+ "events_url": "https://api.github.com/users/jglick/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jglick/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-12-16T20:05:53Z",
+ "updated_at": "2016-12-17T14:24:44Z",
+ "closed_at": "2016-12-17T14:24:44Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/323",
+ "html_url": "https://github.com/github-api/github-api/pull/323",
+ "diff_url": "https://github.com/github-api/github-api/pull/323.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/323.patch"
+ },
+ "body": "Fixes some bogus files added by @stephenc in #306.\r\n\r\n@reviewbybees"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/322",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/322/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/322/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/322/events",
+ "html_url": "https://github.com/github-api/github-api/issues/322",
+ "id": 195534561,
+ "node_id": "MDU6SXNzdWUxOTU1MzQ1NjE=",
+ "number": 322,
+ "title": "API response time",
+ "user": {
+ "login": "sergiofigueras",
+ "id": 1733227,
+ "node_id": "MDQ6VXNlcjE3MzMyMjc=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/1733227?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sergiofigueras",
+ "html_url": "https://github.com/sergiofigueras",
+ "followers_url": "https://api.github.com/users/sergiofigueras/followers",
+ "following_url": "https://api.github.com/users/sergiofigueras/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sergiofigueras/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sergiofigueras/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sergiofigueras/subscriptions",
+ "organizations_url": "https://api.github.com/users/sergiofigueras/orgs",
+ "repos_url": "https://api.github.com/users/sergiofigueras/repos",
+ "events_url": "https://api.github.com/users/sergiofigueras/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sergiofigueras/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-12-14T13:46:20Z",
+ "updated_at": "2016-12-17T15:24:07Z",
+ "closed_at": "2016-12-17T15:24:07Z",
+ "author_association": "NONE",
+ "body": "Hello guys,\r\n\r\nI'm in a trouble here and I would like to know if some of you guys have passed through the same or if its something new.\r\n\r\nBasically after using some calls on GHRepository, with this operation:\r\n\r\n```\r\nfinal PagedSearchIterable list = githubClient.searchIssues()\r\n .q(\"type:pr\")\r\n .q(String.format(\"repo:%s\", githubRepoName(repoName)))\r\n .q(commitId)\r\n .list();\r\n```\r\n\r\nit seems that by some reason my request is queued, and it might take >10min to take the results, which is bringing me several timeout operations.\r\n\r\nDoes it happened with you before? Is that something that I must configure on github-api?"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/320",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/320/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/320/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/320/events",
+ "html_url": "https://github.com/github-api/github-api/pull/320",
+ "id": 195133678,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTc2NjkxNjk=",
+ "number": 320,
+ "title": "Added ghRepo.getBlob(String) method",
+ "user": {
+ "login": "KostyaSha",
+ "id": 231611,
+ "node_id": "MDQ6VXNlcjIzMTYxMQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/231611?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KostyaSha",
+ "html_url": "https://github.com/KostyaSha",
+ "followers_url": "https://api.github.com/users/KostyaSha/followers",
+ "following_url": "https://api.github.com/users/KostyaSha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KostyaSha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KostyaSha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KostyaSha/subscriptions",
+ "organizations_url": "https://api.github.com/users/KostyaSha/orgs",
+ "repos_url": "https://api.github.com/users/KostyaSha/repos",
+ "events_url": "https://api.github.com/users/KostyaSha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KostyaSha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2016-12-13T01:18:40Z",
+ "updated_at": "2016-12-17T14:56:58Z",
+ "closed_at": "2016-12-17T14:56:58Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/320",
+ "html_url": "https://github.com/github-api/github-api/pull/320",
+ "diff_url": "https://github.com/github-api/github-api/pull/320.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/320.patch"
+ },
+ "body": "This method is called only when somebody really needs data, so no need/way with lazy InputStream reads.\r\n\r\nCC For review @stephenc @oleg-nenashev @atanasenko\r\n\r\n\r\n---\r\nThis change is [
](https://reviewable.io/reviews/kohsuke/github-api/320)\r\n\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/319",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/319/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/319/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/319/events",
+ "html_url": "https://github.com/github-api/github-api/issues/319",
+ "id": 193406480,
+ "node_id": "MDU6SXNzdWUxOTM0MDY0ODA=",
+ "number": 319,
+ "title": "getLabels() call for a pull request results in downstream 404s",
+ "user": {
+ "login": "benpatterson",
+ "id": 2004678,
+ "node_id": "MDQ6VXNlcjIwMDQ2Nzg=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/2004678?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/benpatterson",
+ "html_url": "https://github.com/benpatterson",
+ "followers_url": "https://api.github.com/users/benpatterson/followers",
+ "following_url": "https://api.github.com/users/benpatterson/following{/other_user}",
+ "gists_url": "https://api.github.com/users/benpatterson/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/benpatterson/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/benpatterson/subscriptions",
+ "organizations_url": "https://api.github.com/users/benpatterson/orgs",
+ "repos_url": "https://api.github.com/users/benpatterson/repos",
+ "events_url": "https://api.github.com/users/benpatterson/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/benpatterson/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2016-12-05T03:53:49Z",
+ "updated_at": "2016-12-19T12:19:43Z",
+ "closed_at": "2016-12-17T15:28:58Z",
+ "author_association": "NONE",
+ "body": "When calling `.getLabels()` with a pull request object, the pull request object's url is overridden to include `/issues/` in the path, rather than `/pulls/`. This can cause subsequent 404s when attempting to access pull request-specific API endpoints, like `getCommits()`, which require a pull request url.\r\n\r\nSee https://github.com/jenkinsci/ghprb-plugin/issues/441 for some backstory.\r\n\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/318",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/318/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/318/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/318/events",
+ "html_url": "https://github.com/github-api/github-api/issues/318",
+ "id": 193373986,
+ "node_id": "MDU6SXNzdWUxOTMzNzM5ODY=",
+ "number": 318,
+ "title": "Gist Searching",
+ "user": {
+ "login": "srepollock",
+ "id": 8965444,
+ "node_id": "MDQ6VXNlcjg5NjU0NDQ=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/8965444?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/srepollock",
+ "html_url": "https://github.com/srepollock",
+ "followers_url": "https://api.github.com/users/srepollock/followers",
+ "following_url": "https://api.github.com/users/srepollock/following{/other_user}",
+ "gists_url": "https://api.github.com/users/srepollock/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/srepollock/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/srepollock/subscriptions",
+ "organizations_url": "https://api.github.com/users/srepollock/orgs",
+ "repos_url": "https://api.github.com/users/srepollock/repos",
+ "events_url": "https://api.github.com/users/srepollock/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/srepollock/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-12-04T20:38:37Z",
+ "updated_at": "2016-12-04T20:54:19Z",
+ "closed_at": "2016-12-04T20:54:19Z",
+ "author_association": "NONE",
+ "body": "Is there a way to use the API to search Gist's for keywords?\r\n\r\ni.e: keyword: `P45$w0rD` should find some results from @srsavage.\r\n\r\nI'm looking through the API and it looks like Gists are the same sort of search that GitHub is, but looking at the files on the repo here, you pass in the string `http://api.github.com/` as the main retriever."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/317",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/317/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/317/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/317/events",
+ "html_url": "https://github.com/github-api/github-api/issues/317",
+ "id": 193057010,
+ "node_id": "MDU6SXNzdWUxOTMwNTcwMTA=",
+ "number": 317,
+ "title": "Adding users to organization-owned repos not possible",
+ "user": {
+ "login": "ToWi87",
+ "id": 19682656,
+ "node_id": "MDQ6VXNlcjE5NjgyNjU2",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/19682656?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ToWi87",
+ "html_url": "https://github.com/ToWi87",
+ "followers_url": "https://api.github.com/users/ToWi87/followers",
+ "following_url": "https://api.github.com/users/ToWi87/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ToWi87/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ToWi87/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ToWi87/subscriptions",
+ "organizations_url": "https://api.github.com/users/ToWi87/orgs",
+ "repos_url": "https://api.github.com/users/ToWi87/repos",
+ "events_url": "https://api.github.com/users/ToWi87/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ToWi87/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-12-02T08:07:42Z",
+ "updated_at": "2016-12-17T15:31:08Z",
+ "closed_at": "2016-12-17T15:31:08Z",
+ "author_association": "NONE",
+ "body": "Adding users to organization-owned repositories fails for me due to GHRepository#verifyMine() saying \"Operation not applicable to a repository owned by someone else\" which is quite correct, still not OK if the logged in user has respective privileges on the repository.\r\n\r\nProposal: remove this check and wait for GitHub to return HTTP 401/403."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/315",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/315/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/315/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/315/events",
+ "html_url": "https://github.com/github-api/github-api/pull/315",
+ "id": 191788664,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTUzNjIxNDg=",
+ "number": 315,
+ "title": "Fix typos in javadocs",
+ "user": {
+ "login": "davidxia",
+ "id": 480621,
+ "node_id": "MDQ6VXNlcjQ4MDYyMQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/480621?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/davidxia",
+ "html_url": "https://github.com/davidxia",
+ "followers_url": "https://api.github.com/users/davidxia/followers",
+ "following_url": "https://api.github.com/users/davidxia/following{/other_user}",
+ "gists_url": "https://api.github.com/users/davidxia/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/davidxia/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/davidxia/subscriptions",
+ "organizations_url": "https://api.github.com/users/davidxia/orgs",
+ "repos_url": "https://api.github.com/users/davidxia/repos",
+ "events_url": "https://api.github.com/users/davidxia/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/davidxia/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2016-11-26T05:46:38Z",
+ "updated_at": "2016-11-26T22:38:49Z",
+ "closed_at": "2016-11-26T22:38:45Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/315",
+ "html_url": "https://github.com/github-api/github-api/pull/315",
+ "diff_url": "https://github.com/github-api/github-api/pull/315.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/315.patch"
+ },
+ "body": "Replace \"pagenated\" with \"paginated\"."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/314",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/314/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/314/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/314/events",
+ "html_url": "https://github.com/github-api/github-api/issues/314",
+ "id": 191765030,
+ "node_id": "MDU6SXNzdWUxOTE3NjUwMzA=",
+ "number": 314,
+ "title": "GHSearchBuilder terms are cumulative when I expected them to overwrite previous one",
+ "user": {
+ "login": "davidxia",
+ "id": 480621,
+ "node_id": "MDQ6VXNlcjQ4MDYyMQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/480621?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/davidxia",
+ "html_url": "https://github.com/davidxia",
+ "followers_url": "https://api.github.com/users/davidxia/followers",
+ "following_url": "https://api.github.com/users/davidxia/following{/other_user}",
+ "gists_url": "https://api.github.com/users/davidxia/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/davidxia/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/davidxia/subscriptions",
+ "organizations_url": "https://api.github.com/users/davidxia/orgs",
+ "repos_url": "https://api.github.com/users/davidxia/repos",
+ "events_url": "https://api.github.com/users/davidxia/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/davidxia/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2016-11-25T21:05:44Z",
+ "updated_at": "2016-11-26T23:00:56Z",
+ "closed_at": "2016-11-26T22:52:03Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "This isn't a huge deal, but I thought I'd point out something I didn't expect as a user.\r\n\r\nI thought that if I reused `GHContentSearchBuilder` which extends `GHSearchBuilder`, it's `repo()` method would overwrite previous calls of `repo()`. I was confused when my search results from the second call below was the same as the first.\r\n\r\n```java\r\nfinal GHContentSearchBuilder searcher;\r\nsearcher.repo(\"foo\").q(\"query1\").list(); // terms are repo:foo, query1\r\nsearcher.repo(\"bar\").q(\"query2\").list(); // terms are repo:foo, query1, repo:bar, query2\r\n```\r\n\r\nThe reason is because calling `repo()` (and other methods like `in()`, etc) add terms instead of overwriting previous ones. See above comments.\r\n\r\nConsider overwriting as that seems more intuitive?"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/313",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/313/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/313/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/313/events",
+ "html_url": "https://github.com/github-api/github-api/issues/313",
+ "id": 191752990,
+ "node_id": "MDU6SXNzdWUxOTE3NTI5OTA=",
+ "number": 313,
+ "title": "Support ordering in searches",
+ "user": {
+ "login": "davidxia",
+ "id": 480621,
+ "node_id": "MDQ6VXNlcjQ4MDYyMQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/480621?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/davidxia",
+ "html_url": "https://github.com/davidxia",
+ "followers_url": "https://api.github.com/users/davidxia/followers",
+ "following_url": "https://api.github.com/users/davidxia/following{/other_user}",
+ "gists_url": "https://api.github.com/users/davidxia/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/davidxia/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/davidxia/subscriptions",
+ "organizations_url": "https://api.github.com/users/davidxia/orgs",
+ "repos_url": "https://api.github.com/users/davidxia/repos",
+ "events_url": "https://api.github.com/users/davidxia/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/davidxia/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-11-25T18:45:56Z",
+ "updated_at": "2016-11-26T22:45:40Z",
+ "closed_at": "2016-11-26T22:45:40Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "As far as I can tell, there's no way to specify the `order` for a `sort` parameter in a search. See for example https://developer.github.com/enterprise/2.6/v3/search/#search-repositories. \r\n\r\nConsider supporting `order` for all the types of searches in the link above."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/312",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/312/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/312/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/312/events",
+ "html_url": "https://github.com/github-api/github-api/issues/312",
+ "id": 190879419,
+ "node_id": "MDU6SXNzdWUxOTA4Nzk0MTk=",
+ "number": 312,
+ "title": "Update OkHttp usage",
+ "user": {
+ "login": "ScottPierce",
+ "id": 871169,
+ "node_id": "MDQ6VXNlcjg3MTE2OQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/871169?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ScottPierce",
+ "html_url": "https://github.com/ScottPierce",
+ "followers_url": "https://api.github.com/users/ScottPierce/followers",
+ "following_url": "https://api.github.com/users/ScottPierce/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ScottPierce/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ScottPierce/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ScottPierce/subscriptions",
+ "organizations_url": "https://api.github.com/users/ScottPierce/orgs",
+ "repos_url": "https://api.github.com/users/ScottPierce/repos",
+ "events_url": "https://api.github.com/users/ScottPierce/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ScottPierce/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2016-11-22T00:56:55Z",
+ "updated_at": "2019-02-07T11:45:03Z",
+ "closed_at": "2016-11-26T23:13:39Z",
+ "author_association": "NONE",
+ "body": "`OkUrlFactory` is deprecated and will be removed in a newer version. It also seems you are using an old version of OkHttp in your `OkHttpConnector`, so it's not compatible."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/311",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/311/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/311/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/311/events",
+ "html_url": "https://github.com/github-api/github-api/issues/311",
+ "id": 189918501,
+ "node_id": "MDU6SXNzdWUxODk5MTg1MDE=",
+ "number": 311,
+ "title": "Testing reaction",
+ "user": {
+ "login": "kohsuke",
+ "id": 50003,
+ "node_id": "MDQ6VXNlcjUwMDAz",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/50003?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kohsuke",
+ "html_url": "https://github.com/kohsuke",
+ "followers_url": "https://api.github.com/users/kohsuke/followers",
+ "following_url": "https://api.github.com/users/kohsuke/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kohsuke/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kohsuke/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kohsuke/subscriptions",
+ "organizations_url": "https://api.github.com/users/kohsuke/orgs",
+ "repos_url": "https://api.github.com/users/kohsuke/repos",
+ "events_url": "https://api.github.com/users/kohsuke/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kohsuke/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-11-17T02:40:08Z",
+ "updated_at": "2016-11-17T02:40:11Z",
+ "closed_at": "2016-11-17T02:40:11Z",
+ "author_association": "MEMBER",
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/310",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/310/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/310/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/310/events",
+ "html_url": "https://github.com/github-api/github-api/issues/310",
+ "id": 189440232,
+ "node_id": "MDU6SXNzdWUxODk0NDAyMzI=",
+ "number": 310,
+ "title": "Is there a way to update contents in bulk?",
+ "user": {
+ "login": "qinfchen",
+ "id": 8294715,
+ "node_id": "MDQ6VXNlcjgyOTQ3MTU=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/8294715?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/qinfchen",
+ "html_url": "https://github.com/qinfchen",
+ "followers_url": "https://api.github.com/users/qinfchen/followers",
+ "following_url": "https://api.github.com/users/qinfchen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/qinfchen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/qinfchen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/qinfchen/subscriptions",
+ "organizations_url": "https://api.github.com/users/qinfchen/orgs",
+ "repos_url": "https://api.github.com/users/qinfchen/repos",
+ "events_url": "https://api.github.com/users/qinfchen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/qinfchen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-11-15T16:30:13Z",
+ "updated_at": "2016-11-17T02:21:15Z",
+ "closed_at": "2016-11-17T02:21:15Z",
+ "author_association": "NONE",
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/309",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/309/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/309/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/309/events",
+ "html_url": "https://github.com/github-api/github-api/issues/309",
+ "id": 189359869,
+ "node_id": "MDU6SXNzdWUxODkzNTk4Njk=",
+ "number": 309,
+ "title": "GitHub#listAllUsers() demanded (enterprise use-case)",
+ "user": {
+ "login": "ToWi87",
+ "id": 19682656,
+ "node_id": "MDQ6VXNlcjE5NjgyNjU2",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/19682656?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ToWi87",
+ "html_url": "https://github.com/ToWi87",
+ "followers_url": "https://api.github.com/users/ToWi87/followers",
+ "following_url": "https://api.github.com/users/ToWi87/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ToWi87/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ToWi87/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ToWi87/subscriptions",
+ "organizations_url": "https://api.github.com/users/ToWi87/orgs",
+ "repos_url": "https://api.github.com/users/ToWi87/repos",
+ "events_url": "https://api.github.com/users/ToWi87/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ToWi87/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-11-15T10:54:26Z",
+ "updated_at": "2016-11-17T02:27:09Z",
+ "closed_at": "2016-11-17T02:27:09Z",
+ "author_association": "NONE",
+ "body": "I looked for a way to retrieve all users on our GitHub enterprise installation but could not find it where I looked for it first `GitHub.listAllUsers()`.\r\n\r\nSo I had to work around it like\r\n`GitHub.searchUsers().type(\"user\").list()`\r\nmaybe the same scenario is encountered by others and might be addressed in a general way."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/308",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/308/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/308/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/308/events",
+ "html_url": "https://github.com/github-api/github-api/issues/308",
+ "id": 189320915,
+ "node_id": "MDU6SXNzdWUxODkzMjA5MTU=",
+ "number": 308,
+ "title": "Delete OAuth Token",
+ "user": {
+ "login": "srepollock",
+ "id": 8965444,
+ "node_id": "MDQ6VXNlcjg5NjU0NDQ=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/8965444?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/srepollock",
+ "html_url": "https://github.com/srepollock",
+ "followers_url": "https://api.github.com/users/srepollock/followers",
+ "following_url": "https://api.github.com/users/srepollock/following{/other_user}",
+ "gists_url": "https://api.github.com/users/srepollock/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/srepollock/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/srepollock/subscriptions",
+ "organizations_url": "https://api.github.com/users/srepollock/orgs",
+ "repos_url": "https://api.github.com/users/srepollock/repos",
+ "events_url": "https://api.github.com/users/srepollock/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/srepollock/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2016-11-15T07:41:17Z",
+ "updated_at": "2016-11-25T02:27:18Z",
+ "closed_at": "2016-11-17T02:29:29Z",
+ "author_association": "NONE",
+ "body": "I'm creating a Gist manager Android application [GoodGists](https://github.com/srepollock/GoodGists) and I'm trying to get something working where I log out and delete the file where the OAuth key was saved. When I delete this and try to sign in again it's not allowing me to. Where do I delete the token created in the API?"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/307",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/307/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/307/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/307/events",
+ "html_url": "https://github.com/github-api/github-api/pull/307",
+ "id": 188261842,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTI5NzM3MDI=",
+ "number": 307,
+ "title": "Add portion of auth/application API.",
+ "user": {
+ "login": "KostyaSha",
+ "id": 231611,
+ "node_id": "MDQ6VXNlcjIzMTYxMQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/231611?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KostyaSha",
+ "html_url": "https://github.com/KostyaSha",
+ "followers_url": "https://api.github.com/users/KostyaSha/followers",
+ "following_url": "https://api.github.com/users/KostyaSha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KostyaSha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KostyaSha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KostyaSha/subscriptions",
+ "organizations_url": "https://api.github.com/users/KostyaSha/orgs",
+ "repos_url": "https://api.github.com/users/KostyaSha/repos",
+ "events_url": "https://api.github.com/users/KostyaSha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KostyaSha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2016-11-09T14:35:14Z",
+ "updated_at": "2016-11-11T14:58:47Z",
+ "closed_at": "2016-11-11T14:56:03Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/307",
+ "html_url": "https://github.com/github-api/github-api/pull/307",
+ "diff_url": "https://github.com/github-api/github-api/pull/307.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/307.patch"
+ },
+ "body": "\n\n\nThis change is [
](https://reviewable.io/reviews/kohsuke/github-api/307)\n\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/306",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/306/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/306/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/306/events",
+ "html_url": "https://github.com/github-api/github-api/pull/306",
+ "id": 187985258,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTI3NzI4NTA=",
+ "number": 306,
+ "title": "Add offline support to the API to make parsing events easier",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-11-08T12:58:01Z",
+ "updated_at": "2017-11-01T15:50:21Z",
+ "closed_at": "2016-11-17T02:12:39Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/306",
+ "html_url": "https://github.com/github-api/github-api/pull/306",
+ "diff_url": "https://github.com/github-api/github-api/pull/306.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/306.patch"
+ },
+ "body": "- When we receive events from a webhook, it is non-trivial to determine which GitHub instance the event came from\r\n or for that matter even if the event actually came from GitHub or GitHub Enterprise.\r\n- In order to ensure that the logic for parsing events does not get replicated in clients, we need to be\r\n able to call `GitHub.parseEventPayload(Reader,Class)` without knowing which `GitHub` the event originates from\r\n and without the resulting objects triggering API calls back to a GitHub\r\n- Thus we add `GitHub.offline()` to provide an off-line connection\r\n- Thus we modify some of the object classes to return best-effort objects when off-line\r\n- Add support for more of the event types into `GHEventPayload`\r\n- Add tests of the event payload and accessing critical fields when using `GitHub.offline()`\r\n\r\n@reviewbybees"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/305",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/305/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/305/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/305/events",
+ "html_url": "https://github.com/github-api/github-api/issues/305",
+ "id": 187472945,
+ "node_id": "MDU6SXNzdWUxODc0NzI5NDU=",
+ "number": 305,
+ "title": "Pull Request Reviews API",
+ "user": {
+ "login": "masud-technope",
+ "id": 1852836,
+ "node_id": "MDQ6VXNlcjE4NTI4MzY=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1852836?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/masud-technope",
+ "html_url": "https://github.com/masud-technope",
+ "followers_url": "https://api.github.com/users/masud-technope/followers",
+ "following_url": "https://api.github.com/users/masud-technope/following{/other_user}",
+ "gists_url": "https://api.github.com/users/masud-technope/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/masud-technope/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/masud-technope/subscriptions",
+ "organizations_url": "https://api.github.com/users/masud-technope/orgs",
+ "repos_url": "https://api.github.com/users/masud-technope/repos",
+ "events_url": "https://api.github.com/users/masud-technope/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/masud-technope/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2016-11-05T03:01:44Z",
+ "updated_at": "2017-09-09T21:18:59Z",
+ "closed_at": "2017-09-09T21:18:59Z",
+ "author_association": "NONE",
+ "body": "Each PR review has three outcomes according to the documentation.\r\nhttps://help.github.com/articles/about-pull-request-reviews/\r\n- Comment:\r\n\r\n- Approve:\r\n\r\n- Request changes\r\n\r\nRight now, I can only see the review comments using this code with your API\r\n`request.listReviewComments().iterator();`\r\nCan I see the \"Approve\" and \"Request changes\" as well? Do you have a plan to add them?\r\n@kohsuke "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/304",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/304/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/304/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/304/events",
+ "html_url": "https://github.com/github-api/github-api/pull/304",
+ "id": 187123932,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTIxOTI3MDA=",
+ "number": 304,
+ "title": "Fix fields of GHRepository",
+ "user": {
+ "login": "wolfogre",
+ "id": 9418365,
+ "node_id": "MDQ6VXNlcjk0MTgzNjU=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/9418365?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/wolfogre",
+ "html_url": "https://github.com/wolfogre",
+ "followers_url": "https://api.github.com/users/wolfogre/followers",
+ "following_url": "https://api.github.com/users/wolfogre/following{/other_user}",
+ "gists_url": "https://api.github.com/users/wolfogre/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/wolfogre/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/wolfogre/subscriptions",
+ "organizations_url": "https://api.github.com/users/wolfogre/orgs",
+ "repos_url": "https://api.github.com/users/wolfogre/repos",
+ "events_url": "https://api.github.com/users/wolfogre/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/wolfogre/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-11-03T16:39:29Z",
+ "updated_at": "2016-11-17T02:19:38Z",
+ "closed_at": "2016-11-17T02:19:38Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/304",
+ "html_url": "https://github.com/github-api/github-api/pull/304",
+ "diff_url": "https://github.com/github-api/github-api/pull/304.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/304.patch"
+ },
+ "body": "According to the lasted version of [https://developer.github.com/v3/repos/#get](https://developer.github.com/v3/repos/#get) , the fields of GHRepository need be fixed:\r\n\r\n- Add new field `has_pages` ;\r\n- Add new field `stargazers_count`, **Be careful, Pull request #301 did the same thing**\r\n- Rename `forks` to `forks_count`, `forks` still works, but you can't see it in the newest docs;\r\n- Rename `watchers` to `watchers_count`, `watchers` still works, but you can't see it in the newest docs;\r\n- Rename `open_issues` to `open_issues_count`, `open_issues` still works, but you can't see it in the newest docs;\r\n- Delete `network_count`, I am not sure what it means, but it is always same as forks_count, and of coursed you can't see it in the newest docs;\r\n\r\nI did some basic tests, this is the result:\r\n\r\n```\r\nkohsuke/github-api:\r\nhasPages:true\r\ngetForksCount:241\r\ngetStargazersCount:307\r\ngetWatchersCount:307\r\ngetOpenIssueCount:17\r\n```\r\n\r\nYou may notice that the `watchers_count` is same as `stargazers_count`, it is not a bug in my code, you can see the same situation in the docs, and the `subscribers_count` is the real watcher count."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/303",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/303/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/303/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/303/events",
+ "html_url": "https://github.com/github-api/github-api/issues/303",
+ "id": 187055079,
+ "node_id": "MDU6SXNzdWUxODcwNTUwNzk=",
+ "number": 303,
+ "title": "Expose OAuth headers",
+ "user": {
+ "login": "KostyaSha",
+ "id": 231611,
+ "node_id": "MDQ6VXNlcjIzMTYxMQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/231611?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KostyaSha",
+ "html_url": "https://github.com/KostyaSha",
+ "followers_url": "https://api.github.com/users/KostyaSha/followers",
+ "following_url": "https://api.github.com/users/KostyaSha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KostyaSha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KostyaSha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KostyaSha/subscriptions",
+ "organizations_url": "https://api.github.com/users/KostyaSha/orgs",
+ "repos_url": "https://api.github.com/users/KostyaSha/repos",
+ "events_url": "https://api.github.com/users/KostyaSha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KostyaSha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2016-11-03T13:09:07Z",
+ "updated_at": "2017-09-09T20:07:59Z",
+ "closed_at": "2017-09-09T20:07:59Z",
+ "author_association": "CONTRIBUTOR",
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/302",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/302/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/302/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/302/events",
+ "html_url": "https://github.com/github-api/github-api/pull/302",
+ "id": 185434969,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTEwMzM2MzM=",
+ "number": 302,
+ "title": "Add support to check permissions (admin, push & pull) over a repository",
+ "user": {
+ "login": "david26",
+ "id": 4146110,
+ "node_id": "MDQ6VXNlcjQxNDYxMTA=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/4146110?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/david26",
+ "html_url": "https://github.com/david26",
+ "followers_url": "https://api.github.com/users/david26/followers",
+ "following_url": "https://api.github.com/users/david26/following{/other_user}",
+ "gists_url": "https://api.github.com/users/david26/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/david26/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/david26/subscriptions",
+ "organizations_url": "https://api.github.com/users/david26/orgs",
+ "repos_url": "https://api.github.com/users/david26/repos",
+ "events_url": "https://api.github.com/users/david26/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/david26/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2016-10-26T15:52:19Z",
+ "updated_at": "2016-12-17T15:22:50Z",
+ "closed_at": "2016-12-17T15:22:50Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/302",
+ "html_url": "https://github.com/github-api/github-api/pull/302",
+ "diff_url": "https://github.com/github-api/github-api/pull/302.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/302.patch"
+ },
+ "body": "Now its possible to know if an user is admin, can push or pull over a\nrepository\n\n`.getPermissions().isAdmin();`\n`.getPermissions().isPush();`\n`.getPermissions().isPush();`\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/301",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/301/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/301/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/301/events",
+ "html_url": "https://github.com/github-api/github-api/pull/301",
+ "id": 185259472,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTA5MTA1NjY=",
+ "number": 301,
+ "title": "Add stargarzer field to GHRepository",
+ "user": {
+ "login": "goneall",
+ "id": 378172,
+ "node_id": "MDQ6VXNlcjM3ODE3Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/378172?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/goneall",
+ "html_url": "https://github.com/goneall",
+ "followers_url": "https://api.github.com/users/goneall/followers",
+ "following_url": "https://api.github.com/users/goneall/following{/other_user}",
+ "gists_url": "https://api.github.com/users/goneall/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/goneall/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/goneall/subscriptions",
+ "organizations_url": "https://api.github.com/users/goneall/orgs",
+ "repos_url": "https://api.github.com/users/goneall/repos",
+ "events_url": "https://api.github.com/users/goneall/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/goneall/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-10-25T23:24:12Z",
+ "updated_at": "2016-11-17T02:20:06Z",
+ "closed_at": "2016-11-17T02:20:06Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/301",
+ "html_url": "https://github.com/github-api/github-api/pull/301",
+ "diff_url": "https://github.com/github-api/github-api/pull/301.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/301.patch"
+ },
+ "body": "Signed-off-by: Gary O'Neall gary@sourceauditor.com\n\nPull request to add the stargazers field to the HGRepository object.\n\nLet me know if you have any questions on the request.\n\nThanks,\nGary\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/300",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/300/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/300/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/300/events",
+ "html_url": "https://github.com/github-api/github-api/pull/300",
+ "id": 184942594,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0OTA2ODM4MzU=",
+ "number": 300,
+ "title": "Expose the commit dates",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2016-10-24T20:13:33Z",
+ "updated_at": "2017-11-01T15:50:22Z",
+ "closed_at": "2016-10-24T21:03:14Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/300",
+ "html_url": "https://github.com/github-api/github-api/pull/300",
+ "diff_url": "https://github.com/github-api/github-api/pull/300.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/300.patch"
+ },
+ "body": "I need this for SCM API stuff\n"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-e04b8865-9ace-405a-b8d9-f8bcacb9bfa8.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-e04b8865-9ace-405a-b8d9-f8bcacb9bfa8.json
new file mode 100644
index 000000000..e6f6f286f
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-e04b8865-9ace-405a-b8d9-f8bcacb9bfa8.json
@@ -0,0 +1,1394 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/267",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/267/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/267/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/267/events",
+ "html_url": "https://github.com/github-api/github-api/pull/267",
+ "id": 145607499,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjUxMDUwNTc=",
+ "number": 267,
+ "title": "'uploadAsset()' method call for Github Enterprise",
+ "user": {
+ "login": "lwiechec",
+ "id": 376537,
+ "node_id": "MDQ6VXNlcjM3NjUzNw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/376537?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lwiechec",
+ "html_url": "https://github.com/lwiechec",
+ "followers_url": "https://api.github.com/users/lwiechec/followers",
+ "following_url": "https://api.github.com/users/lwiechec/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lwiechec/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lwiechec/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lwiechec/subscriptions",
+ "organizations_url": "https://api.github.com/users/lwiechec/orgs",
+ "repos_url": "https://api.github.com/users/lwiechec/repos",
+ "events_url": "https://api.github.com/users/lwiechec/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lwiechec/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 11,
+ "created_at": "2016-04-04T07:30:21Z",
+ "updated_at": "2019-01-11T03:03:38Z",
+ "closed_at": "2017-09-09T19:33:01Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/267",
+ "html_url": "https://github.com/github-api/github-api/pull/267",
+ "diff_url": "https://github.com/github-api/github-api/pull/267.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/267.patch"
+ },
+ "body": "I am not sure if it is possible to 'ask' the GitHub API for the default\nupload URL; that would be great but if not, we need to pass it somehow.\n\nrefs #266\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/265",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/265/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/265/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/265/events",
+ "html_url": "https://github.com/github-api/github-api/issues/265",
+ "id": 144923178,
+ "node_id": "MDU6SXNzdWUxNDQ5MjMxNzg=",
+ "number": 265,
+ "title": "java.lang.IllegalArgumentException: byteString == null",
+ "user": {
+ "login": "ligi",
+ "id": 111600,
+ "node_id": "MDQ6VXNlcjExMTYwMA==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/111600?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ligi",
+ "html_url": "https://github.com/ligi",
+ "followers_url": "https://api.github.com/users/ligi/followers",
+ "following_url": "https://api.github.com/users/ligi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ligi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ligi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ligi/subscriptions",
+ "organizations_url": "https://api.github.com/users/ligi/orgs",
+ "repos_url": "https://api.github.com/users/ligi/repos",
+ "events_url": "https://api.github.com/users/ligi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ligi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 15,
+ "created_at": "2016-03-31T14:47:24Z",
+ "updated_at": "2017-03-22T20:18:21Z",
+ "closed_at": "2016-06-04T03:43:53Z",
+ "author_association": "NONE",
+ "body": "I hope this is the right repo for this bug:\n\n```\nBranch Indexing Log\n\nStarted by timer\nFATAL: Failed to recompute children of PassAndroid\njava.lang.IllegalArgumentException: byteString == null\n at okio.Buffer.write(Buffer.java:787)\n at com.squareup.okhttp.Cache$Entry.readCertificateList(Cache.java:628)\n at com.squareup.okhttp.Cache$Entry.(Cache.java:555)\n at com.squareup.okhttp.Cache.get(Cache.java:194)\n at com.squareup.okhttp.Cache$1.get(Cache.java:139)\n at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:226)\n at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:438)\n at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:389)\n at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:502)\n at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)\n at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:25)\n at org.kohsuke.github.Requester.parse(Requester.java:479)\n at org.kohsuke.github.Requester._to(Requester.java:236)\n at org.kohsuke.github.Requester.to(Requester.java:203)\n at org.kohsuke.github.GitHub.isCredentialValid(GitHub.java:447)\n at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource.retrieve(GitHubSCMSource.java:224)\n at jenkins.scm.api.SCMSource.fetch(SCMSource.java:146)\n at jenkins.branch.MultiBranchProject.computeChildren(MultiBranchProject.java:296)\n at com.cloudbees.hudson.plugins.folder.computed.ComputedFolder.updateChildren(ComputedFolder.java:151)\n at com.cloudbees.hudson.plugins.folder.computed.FolderComputation.run(FolderComputation.java:122)\n at hudson.model.ResourceController.execute(ResourceController.java:98)\n at hudson.model.Executor.run(Executor.java:410)\nFinished: FAILURE\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/264",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/264/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/264/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/264/events",
+ "html_url": "https://github.com/github-api/github-api/issues/264",
+ "id": 144798110,
+ "node_id": "MDU6SXNzdWUxNDQ3OTgxMTA=",
+ "number": 264,
+ "title": "GHRepository.fork() does not block on the async operation until it's complete",
+ "user": {
+ "login": "ALRubinger",
+ "id": 199891,
+ "node_id": "MDQ6VXNlcjE5OTg5MQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/199891?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ALRubinger",
+ "html_url": "https://github.com/ALRubinger",
+ "followers_url": "https://api.github.com/users/ALRubinger/followers",
+ "following_url": "https://api.github.com/users/ALRubinger/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ALRubinger/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ALRubinger/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ALRubinger/subscriptions",
+ "organizations_url": "https://api.github.com/users/ALRubinger/orgs",
+ "repos_url": "https://api.github.com/users/ALRubinger/repos",
+ "events_url": "https://api.github.com/users/ALRubinger/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ALRubinger/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-03-31T05:59:15Z",
+ "updated_at": "2016-06-03T06:50:17Z",
+ "closed_at": "2016-06-03T06:50:17Z",
+ "author_association": "NONE",
+ "body": "https://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/GHRepository.java#L589\n\nThe \"forkTo\" method, however, does have some nice blocking in place.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/263",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/263/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/263/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/263/events",
+ "html_url": "https://github.com/github-api/github-api/issues/263",
+ "id": 144734475,
+ "node_id": "MDU6SXNzdWUxNDQ3MzQ0NzU=",
+ "number": 263,
+ "title": "github.getRepository does not work for Enterprise github instance",
+ "user": {
+ "login": "ram-bakthavachalam",
+ "id": 7400573,
+ "node_id": "MDQ6VXNlcjc0MDA1NzM=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/7400573?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ram-bakthavachalam",
+ "html_url": "https://github.com/ram-bakthavachalam",
+ "followers_url": "https://api.github.com/users/ram-bakthavachalam/followers",
+ "following_url": "https://api.github.com/users/ram-bakthavachalam/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ram-bakthavachalam/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ram-bakthavachalam/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ram-bakthavachalam/subscriptions",
+ "organizations_url": "https://api.github.com/users/ram-bakthavachalam/orgs",
+ "repos_url": "https://api.github.com/users/ram-bakthavachalam/repos",
+ "events_url": "https://api.github.com/users/ram-bakthavachalam/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ram-bakthavachalam/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2016-03-30T22:07:53Z",
+ "updated_at": "2016-11-26T23:14:39Z",
+ "closed_at": "2016-11-26T23:14:39Z",
+ "author_association": "NONE",
+ "body": "github.getRepository method appends /repos/ to the url which does not work for Enterprise github instance.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/262",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/262/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/262/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/262/events",
+ "html_url": "https://github.com/github-api/github-api/issues/262",
+ "id": 143538004,
+ "node_id": "MDU6SXNzdWUxNDM1MzgwMDQ=",
+ "number": 262,
+ "title": "Add Support for the Protected Branches API",
+ "user": {
+ "login": "kmadel",
+ "id": 983526,
+ "node_id": "MDQ6VXNlcjk4MzUyNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/983526?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kmadel",
+ "html_url": "https://github.com/kmadel",
+ "followers_url": "https://api.github.com/users/kmadel/followers",
+ "following_url": "https://api.github.com/users/kmadel/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kmadel/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kmadel/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kmadel/subscriptions",
+ "organizations_url": "https://api.github.com/users/kmadel/orgs",
+ "repos_url": "https://api.github.com/users/kmadel/repos",
+ "events_url": "https://api.github.com/users/kmadel/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kmadel/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-03-25T16:38:50Z",
+ "updated_at": "2016-06-03T06:40:46Z",
+ "closed_at": "2016-06-03T06:40:46Z",
+ "author_association": "NONE",
+ "body": "See https://developer.github.com/changes/2015-11-11-protected-branches-api/\nand\nhttps://developer.github.com/v3/repos/#enabling-and-disabling-branch-protection\n\nAdmittedly, this is a beta feature, but would certainly be nice to modify the protected status and protection context automatically from, say, a Jenkins job.\n\nThis is also available for GHE as of v2.5\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/261",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/261/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/261/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/261/events",
+ "html_url": "https://github.com/github-api/github-api/issues/261",
+ "id": 141710751,
+ "node_id": "MDU6SXNzdWUxNDE3MTA3NTE=",
+ "number": 261,
+ "title": "Failed to deserialize list of contributors when repo is empty",
+ "user": {
+ "login": "ctubbsii",
+ "id": 1280725,
+ "node_id": "MDQ6VXNlcjEyODA3MjU=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1280725?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ctubbsii",
+ "html_url": "https://github.com/ctubbsii",
+ "followers_url": "https://api.github.com/users/ctubbsii/followers",
+ "following_url": "https://api.github.com/users/ctubbsii/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ctubbsii/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ctubbsii/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ctubbsii/subscriptions",
+ "organizations_url": "https://api.github.com/users/ctubbsii/orgs",
+ "repos_url": "https://api.github.com/users/ctubbsii/repos",
+ "events_url": "https://api.github.com/users/ctubbsii/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ctubbsii/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-03-17T21:26:11Z",
+ "updated_at": "2016-06-04T03:27:30Z",
+ "closed_at": "2016-06-04T03:27:30Z",
+ "author_association": "NONE",
+ "body": "Saw the following error when iterating over a list of contributors on a repository. My guess is that there's a user whose username isn't compatible with whatever encoding is being used here, because it's 100% reproducible at the exact same point in the iteration.\n\n```\nException in thread \"main\" java.lang.Error: java.io.IOException: Failed to deserialize \n at org.kohsuke.github.Requester$PagingIterator.fetch(Requester.java:422)\n at org.kohsuke.github.Requester$PagingIterator.hasNext(Requester.java:389)\n at org.kohsuke.github.PagedIterator.fetch(PagedIterator.java:44)\n at org.kohsuke.github.PagedIterator.hasNext(PagedIterator.java:32)\n at java.lang.Iterable.forEach(Iterable.java:74)\n ...\nCaused by: java.io.IOException: Failed to deserialize \n at org.kohsuke.github.Requester.parse(Requester.java:489)\n at org.kohsuke.github.Requester.access$200(Requester.java:65)\n at org.kohsuke.github.Requester$PagingIterator.fetch(Requester.java:413)\n ... 7 more\nCaused by: com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input\n at [Source: java.io.StringReader@4f51b3e0; line: 1, column: 1]\n at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)\n at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:2931)\n at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2873)\n at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2034)\n at org.kohsuke.github.Requester.parse(Requester.java:487)\n ... 9 more\n```\n\nIt looks like the problem is when the `PagedIterator.hasNext()` is called when the repo is empty and you try to list its contributors.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/260",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/260/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/260/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/260/events",
+ "html_url": "https://github.com/github-api/github-api/issues/260",
+ "id": 141111049,
+ "node_id": "MDU6SXNzdWUxNDExMTEwNDk=",
+ "number": 260,
+ "title": "github-api does not distinguish between user and organisation",
+ "user": {
+ "login": "luizkowalski",
+ "id": 112706,
+ "node_id": "MDQ6VXNlcjExMjcwNg==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/112706?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/luizkowalski",
+ "html_url": "https://github.com/luizkowalski",
+ "followers_url": "https://api.github.com/users/luizkowalski/followers",
+ "following_url": "https://api.github.com/users/luizkowalski/following{/other_user}",
+ "gists_url": "https://api.github.com/users/luizkowalski/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/luizkowalski/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/luizkowalski/subscriptions",
+ "organizations_url": "https://api.github.com/users/luizkowalski/orgs",
+ "repos_url": "https://api.github.com/users/luizkowalski/repos",
+ "events_url": "https://api.github.com/users/luizkowalski/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/luizkowalski/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2016-03-15T21:56:37Z",
+ "updated_at": "2016-06-04T03:28:16Z",
+ "closed_at": "2016-06-04T03:28:16Z",
+ "author_association": "NONE",
+ "body": "if you for example, call the API giving an user instead an organization login, the API can't distinguish between them and will return an \"empty\" organization with some user data\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/259",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/259/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/259/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/259/events",
+ "html_url": "https://github.com/github-api/github-api/pull/259",
+ "id": 140417082,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjI2NTIzMTM=",
+ "number": 259,
+ "title": "Animal sniffer",
+ "user": {
+ "login": "Shredder121",
+ "id": 4105066,
+ "node_id": "MDQ6VXNlcjQxMDUwNjY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/4105066?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Shredder121",
+ "html_url": "https://github.com/Shredder121",
+ "followers_url": "https://api.github.com/users/Shredder121/followers",
+ "following_url": "https://api.github.com/users/Shredder121/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Shredder121/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Shredder121/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Shredder121/subscriptions",
+ "organizations_url": "https://api.github.com/users/Shredder121/orgs",
+ "repos_url": "https://api.github.com/users/Shredder121/repos",
+ "events_url": "https://api.github.com/users/Shredder121/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Shredder121/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-03-12T21:05:22Z",
+ "updated_at": "2016-03-19T01:27:22Z",
+ "closed_at": "2016-03-19T01:27:22Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/259",
+ "html_url": "https://github.com/github-api/github-api/pull/259",
+ "diff_url": "https://github.com/github-api/github-api/pull/259.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/259.patch"
+ },
+ "body": "Hello @kohsuke.\n\nSeeing as you recently set the compiler target back to 5, I wanted to help you maintain this compatibility.\nThere is still one unresolved issue:\n\n```\n--- animal-sniffer-maven-plugin:1.15:check (ensure-java-1.5-class-library) @ github-api ---\nChecking unresolved references to org.codehaus.mojo.signature:java15:1.0\nX:\\Git\\github\\github-api\\src\\main\\java\\org\\kohsuke\\github\\GHContent.java:81: Undefined reference: byte[] javax.xml.bind.DatatypeConverter.parseBase64Binary(String)\nX:\\Git\\github\\github-api\\src\\main\\java\\org\\kohsuke\\github\\GHContent.java:182: Undefined reference: String javax.xml.bind.DatatypeConverter.printBase64Binary(byte[])\nX:\\Git\\github\\github-api\\src\\main\\java\\org\\kohsuke\\github\\GHRepository.java:1165: Undefined reference: String javax.xml.bind.DatatypeConverter.printBase64Binary(byte[])\n```\n\nHope that you can integrate this.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/258",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/258/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/258/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/258/events",
+ "html_url": "https://github.com/github-api/github-api/issues/258",
+ "id": 140008036,
+ "node_id": "MDU6SXNzdWUxNDAwMDgwMzY=",
+ "number": 258,
+ "title": "API Rate Limit Exceeding",
+ "user": {
+ "login": "sbhaktha",
+ "id": 5631150,
+ "node_id": "MDQ6VXNlcjU2MzExNTA=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5631150?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sbhaktha",
+ "html_url": "https://github.com/sbhaktha",
+ "followers_url": "https://api.github.com/users/sbhaktha/followers",
+ "following_url": "https://api.github.com/users/sbhaktha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sbhaktha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sbhaktha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sbhaktha/subscriptions",
+ "organizations_url": "https://api.github.com/users/sbhaktha/orgs",
+ "repos_url": "https://api.github.com/users/sbhaktha/repos",
+ "events_url": "https://api.github.com/users/sbhaktha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sbhaktha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2016-03-10T21:02:05Z",
+ "updated_at": "2016-06-04T06:34:28Z",
+ "closed_at": "2016-06-04T03:31:19Z",
+ "author_association": "NONE",
+ "body": "Hi @kohsuke,\n\nI would appreciate your help on this.\n\nI have used the `HttpConnector` and have specified a cache directory in my server. I am using OAuth and it looks like my quota is 5000 requests, based on this sample cache file:\n\n```\nhttps://api.github.com/repos/allenai/aristo-tables/contents/tables/weather_terms?ref=master\nGET\n2\nAuthorization: token e381d0427927aef5e2858ac06b6cb01a34b0a603\nAccept-Encoding: gzip\nHTTP/1.1 200 OK\n30\nServer: GitHub.com\nDate: Thu, 10 Mar 2016 20:57:33 GMT\nContent-Type: application/json; charset=utf-8\nTransfer-Encoding: chunked\nStatus: 200 OK\n**X-RateLimit-Limit: 5000**\nX-RateLimit-Remaining: 4689\nX-RateLimit-Reset: 1457646852\nCache-Control: private, max-age=60, s-maxage=60\nVary: Accept, Authorization, Cookie, X-GitHub-OTP\nETag: W/\"c2dc693298f7806038e984d1ac857ffb\"\nLast-Modified: Tue, 08 Mar 2016 23:54:00 GMT\nX-OAuth-Scopes: read:repo_hook, repo\nX-Accepted-OAuth-Scopes:\nX-OAuth-Client-Id: 47355241bdf02ac9122d\nX-GitHub-Media-Type: github.v3; format=json\nAccess-Control-Expose-Headers: ETag, Link, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval\nAccess-Control-Allow-Origin: *\nContent-Security-Policy: default-src 'none'\nStrict-Transport-Security: max-age=31536000; includeSubdomains; preload\nX-Content-Type-Options: nosniff\nX-Frame-Options: deny\nX-XSS-Protection: 1; mode=block\nVary: Accept-Encoding\nX-Served-By: 01d096e6cfe28f8aea352e988c332cd3\nContent-Encoding: gzip\nX-GitHub-Request-Id: 36D5C9C0:101B5:A516A26:56E1DFBD\nOkHttp-Selected-Protocol: http/1.1\nOkHttp-Sent-Millis: 1457643453839\nOkHttp-Received-Millis: 1457643453959\n```\n\nMy client refreshes periodically to be in sync with the repo, however, even though there has been no change in the repo, I run out of API rate limit every now and then. I thought it should just be reading from the cache. \n\nThe following call gets executed on every refresh:\n\n```\n private def getTableDirs(\n oauthAccessToken: String,\n repo: GitRepoInfo,\n tableNamesFilter: Option[Seq[String]]\n ): Seq[GHContent] = {\n blocking {\n // Create a GitHubBuilder to be able to build a GitHub object with required\n // RateLimitHandler strategy and OAuth parameters. Instead of waiting, this will\n // throw an exception immediately if the request limit is exceeded.\n val gitHubBuilder =\n new GitHubBuilder()\n .withRateLimitHandler(RateLimitHandler.FAIL)\n .withOAuthToken(oauthAccessToken)\n .withConnector(\n new OkHttpConnector(\n new OkUrlFactory(\n new OkHttpClient().setCache(cache))))\n val github = gitHubBuilder.build()\n\n // Get the requested repo.\n val repoName = repo.fork + \"/\" + repo.repo\n val repository = github.getRepository(repoName)\n // Get all directories (expected to be Table directories) from the top level of the repo.\n val allTableDirs =\n repository.getDirectoryContent(\"tables\", repo.branch).asScala.filter(_.isDirectory)\n // If there is a filter, restrict returned table directories to that set, if not return all.\n tableNamesFilter match {\n case Some(filter) =>\n val tableSet = filter.map(_.toLowerCase).toSet\n allTableDirs.filter(d => tableSet.contains(d.getName.toLowerCase))\n case None =>\n allTableDirs\n }\n }\n }\n```\n\nFurther, there are other calls like `ghContent.read` -- is each of these a separate request to Git? Even so, I wouldn't think they would be called every time but just looked up from the cache.\n\nAny ideas?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/257",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/257/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/257/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/257/events",
+ "html_url": "https://github.com/github-api/github-api/issues/257",
+ "id": 139401088,
+ "node_id": "MDU6SXNzdWUxMzk0MDEwODg=",
+ "number": 257,
+ "title": "missing maven central dependencies in 1.72",
+ "user": {
+ "login": "cvogt",
+ "id": 274947,
+ "node_id": "MDQ6VXNlcjI3NDk0Nw==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/274947?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/cvogt",
+ "html_url": "https://github.com/cvogt",
+ "followers_url": "https://api.github.com/users/cvogt/followers",
+ "following_url": "https://api.github.com/users/cvogt/following{/other_user}",
+ "gists_url": "https://api.github.com/users/cvogt/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/cvogt/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/cvogt/subscriptions",
+ "organizations_url": "https://api.github.com/users/cvogt/orgs",
+ "repos_url": "https://api.github.com/users/cvogt/repos",
+ "events_url": "https://api.github.com/users/cvogt/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/cvogt/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 7,
+ "created_at": "2016-03-08T21:38:27Z",
+ "updated_at": "2018-01-04T16:29:51Z",
+ "closed_at": "2016-03-08T23:01:24Z",
+ "author_association": "NONE",
+ "body": "also see #167\n\nsome jenkins packages aren't on maven central, so resolving from maven fails\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/256",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/256/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/256/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/256/events",
+ "html_url": "https://github.com/github-api/github-api/issues/256",
+ "id": 138918972,
+ "node_id": "MDU6SXNzdWUxMzg5MTg5NzI=",
+ "number": 256,
+ "title": "Not able to specify client Id and client secret to connect using OAuth",
+ "user": {
+ "login": "sbhaktha",
+ "id": 5631150,
+ "node_id": "MDQ6VXNlcjU2MzExNTA=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5631150?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sbhaktha",
+ "html_url": "https://github.com/sbhaktha",
+ "followers_url": "https://api.github.com/users/sbhaktha/followers",
+ "following_url": "https://api.github.com/users/sbhaktha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sbhaktha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sbhaktha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sbhaktha/subscriptions",
+ "organizations_url": "https://api.github.com/users/sbhaktha/orgs",
+ "repos_url": "https://api.github.com/users/sbhaktha/repos",
+ "events_url": "https://api.github.com/users/sbhaktha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sbhaktha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2016-03-07T08:34:15Z",
+ "updated_at": "2016-03-12T07:21:29Z",
+ "closed_at": "2016-03-12T07:21:29Z",
+ "author_association": "NONE",
+ "body": "Hi,\n\nI would like the 5000 requests rate limit / hour offered by GitHub for authenticated requests-- to do this if you're using OAuth you need to send the client Id and secret. Please see : https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications . But I don't see a way to do that via your API. Looks like they take only the OAuth Access token. Is there a way to pass these? Or I am stuck with the 60 requests / hour limit.\n\nAppreciate your help!\nThanks,\nSumithra\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/255",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/255/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/255/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/255/events",
+ "html_url": "https://github.com/github-api/github-api/issues/255",
+ "id": 138903807,
+ "node_id": "MDU6SXNzdWUxMzg5MDM4MDc=",
+ "number": 255,
+ "title": "Stuck in Github connect",
+ "user": {
+ "login": "sbhaktha",
+ "id": 5631150,
+ "node_id": "MDQ6VXNlcjU2MzExNTA=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/5631150?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sbhaktha",
+ "html_url": "https://github.com/sbhaktha",
+ "followers_url": "https://api.github.com/users/sbhaktha/followers",
+ "following_url": "https://api.github.com/users/sbhaktha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sbhaktha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sbhaktha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sbhaktha/subscriptions",
+ "organizations_url": "https://api.github.com/users/sbhaktha/orgs",
+ "repos_url": "https://api.github.com/users/sbhaktha/repos",
+ "events_url": "https://api.github.com/users/sbhaktha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sbhaktha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-03-07T06:56:28Z",
+ "updated_at": "2016-03-12T07:21:51Z",
+ "closed_at": "2016-03-12T07:21:51Z",
+ "author_association": "NONE",
+ "body": "Hello,\n\nEvery once in a while my call to `GitHub.connectUsingOAuth` gets stuck and won't come out. I have a web client that eventually times out, but this is an issue because this is a blocking call and I don't see a way to specify a timeout so it gets out and then the web client, could issue retries.\n\nAny idea what might be going on?\n\nThanks,\nSumithra\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/254",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/254/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/254/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/254/events",
+ "html_url": "https://github.com/github-api/github-api/pull/254",
+ "id": 138814521,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjE4NDg5MjA=",
+ "number": 254,
+ "title": "Better error messages",
+ "user": {
+ "login": "cyrille-leclerc",
+ "id": 459691,
+ "node_id": "MDQ6VXNlcjQ1OTY5MQ==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/459691?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/cyrille-leclerc",
+ "html_url": "https://github.com/cyrille-leclerc",
+ "followers_url": "https://api.github.com/users/cyrille-leclerc/followers",
+ "following_url": "https://api.github.com/users/cyrille-leclerc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/cyrille-leclerc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/cyrille-leclerc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/cyrille-leclerc/subscriptions",
+ "organizations_url": "https://api.github.com/users/cyrille-leclerc/orgs",
+ "repos_url": "https://api.github.com/users/cyrille-leclerc/repos",
+ "events_url": "https://api.github.com/users/cyrille-leclerc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/cyrille-leclerc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2016-03-06T17:36:54Z",
+ "updated_at": "2016-03-12T06:56:44Z",
+ "closed_at": "2016-03-12T06:56:44Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/254",
+ "html_url": "https://github.com/github-api/github-api/pull/254",
+ "diff_url": "https://github.com/github-api/github-api/pull/254.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/254.patch"
+ },
+ "body": "Better error message: \n- Introduce HttpException, subclass of IOException with url, http responseCode and http responseMessage to help exception handling.\n- Add a `FINEST` log message in `GitHub.isCredentialsValid()` in case of exception as we silently swallow this exception.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/253",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/253/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/253/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/253/events",
+ "html_url": "https://github.com/github-api/github-api/pull/253",
+ "id": 138813542,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjE4NDg2Nzc=",
+ "number": 253,
+ "title": "Fix #252: infinite loop because the \"hypertext engine\" generates invalid URLs",
+ "user": {
+ "login": "cyrille-leclerc",
+ "id": 459691,
+ "node_id": "MDQ6VXNlcjQ1OTY5MQ==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/459691?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/cyrille-leclerc",
+ "html_url": "https://github.com/cyrille-leclerc",
+ "followers_url": "https://api.github.com/users/cyrille-leclerc/followers",
+ "following_url": "https://api.github.com/users/cyrille-leclerc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/cyrille-leclerc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/cyrille-leclerc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/cyrille-leclerc/subscriptions",
+ "organizations_url": "https://api.github.com/users/cyrille-leclerc/orgs",
+ "repos_url": "https://api.github.com/users/cyrille-leclerc/repos",
+ "events_url": "https://api.github.com/users/cyrille-leclerc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/cyrille-leclerc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2016-03-06T17:28:50Z",
+ "updated_at": "2016-03-12T06:59:01Z",
+ "closed_at": "2016-03-12T06:59:01Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/253",
+ "html_url": "https://github.com/github-api/github-api/pull/253",
+ "diff_url": "https://github.com/github-api/github-api/pull/253.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/253.patch"
+ },
+ "body": "Fix #252: infinite loop because the \"hypertext engine\" may duplicate the `?` char generating invalid `https://api.github.com/notifications?all=true&page=2?all=true` instead of `https://api.github.com/notifications?all=true&page=2&all=true`. \n\nA better fix will be to prevent duplication of parameters (`all=true` in this case).\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/252",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/252/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/252/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/252/events",
+ "html_url": "https://github.com/github-api/github-api/issues/252",
+ "id": 138804642,
+ "node_id": "MDU6SXNzdWUxMzg4MDQ2NDI=",
+ "number": 252,
+ "title": "Infinite loop in `GHNotificationStream$1.fetch()`",
+ "user": {
+ "login": "cyrille-leclerc",
+ "id": 459691,
+ "node_id": "MDQ6VXNlcjQ1OTY5MQ==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/459691?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/cyrille-leclerc",
+ "html_url": "https://github.com/cyrille-leclerc",
+ "followers_url": "https://api.github.com/users/cyrille-leclerc/followers",
+ "following_url": "https://api.github.com/users/cyrille-leclerc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/cyrille-leclerc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/cyrille-leclerc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/cyrille-leclerc/subscriptions",
+ "organizations_url": "https://api.github.com/users/cyrille-leclerc/orgs",
+ "repos_url": "https://api.github.com/users/cyrille-leclerc/repos",
+ "events_url": "https://api.github.com/users/cyrille-leclerc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/cyrille-leclerc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-03-06T15:54:54Z",
+ "updated_at": "2016-03-12T06:59:00Z",
+ "closed_at": "2016-03-12T06:59:00Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "When I run `mvn clean verify` I often get an infinite loop of `org.kohsuke.github.Requester._to(Requester.java:244)` in `org.kohsuke.github.GHNotificationStream$1.fetch(GHNotificationStream.java:161)`.\n\nThe `tailApiUrl` is invalid with 2 occurrences of `?`:\n\n```\n\n_to (\n tailApiUrl: \"https://api.github.com/notifications?all=true&page=2?all=true\", \n type: \"GHTThread\") {\n\n links= ; rel=\"next\", ; rel=\"last\"\n\n link=https://api.github.com/notifications?all=true&page=2?all=true\n}\n```\n\nStacktrace\n\n```\n\"main\" #1 prio=5 os_prio=31 tid=0x00007f9524000000 nid=0x1703 runnable [0x00007000001ff000]\n\n java.lang.Thread.State: RUNNABLE\n at java.net.SocketInputStream.socketRead0(Native Method)\n at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)\n at java.net.SocketInputStream.read(SocketInputStream.java:170)\n at java.net.SocketInputStream.read(SocketInputStream.java:141)\n at sun.security.ssl.InputRecord.readFully(InputRecord.java:465)\n at sun.security.ssl.InputRecord.read(InputRecord.java:503)\n at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)\n - locked <0x0000000795a7ea90> (a java.lang.Object)\n at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:930)\n at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)\n - locked <0x0000000795a9cea0> (a sun.security.ssl.AppInputStream)\n at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)\n at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)\n at java.io.BufferedInputStream.read(BufferedInputStream.java:345)\n - locked <0x00000007963e8ae8> (a java.io.BufferedInputStream)\n at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:704)\n at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)\n at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)\n - locked <0x00000007963e6548> (a sun.net.www.protocol.https.DelegateHttpsURLConnection)\n at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)\n - locked <0x00000007963e6548> (a sun.net.www.protocol.https.DelegateHttpsURLConnection)\n at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)\n at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:338)\n at org.kohsuke.github.Requester.parse(Requester.java:478)\n at org.kohsuke.github.Requester._to(Requester.java:236)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester._to(Requester.java:244)\n at org.kohsuke.github.Requester.to(Requester.java:203)\n at org.kohsuke.github.GHNotificationStream$1.fetch(GHNotificationStream.java:161)\n at org.kohsuke.github.GHNotificationStream$1.hasNext(GHNotificationStream.java:130)\n at org.kohsuke.github.AppTest.notifications(AppTest.java:831)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:497)\n at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)\n at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)\n at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)\n at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)\n at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)\n at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)\n at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)\n at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)\n at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)\n at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)\n at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)\n at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)\n at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)\n at org.junit.runners.ParentRunner.run(ParentRunner.java:309)\n at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)\n at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)\n at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\n at java.lang.reflect.Method.invoke(Method.java:497)\n at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)\n at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)\n at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)\n at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)\n at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)\n\n Locked ownable synchronizers:\n - None\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/251",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/251/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/251/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/251/events",
+ "html_url": "https://github.com/github-api/github-api/pull/251",
+ "id": 138696823,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjE4MTY5NzQ=",
+ "number": 251,
+ "title": "Improve checkApiUrlValidity() method ",
+ "user": {
+ "login": "recena",
+ "id": 1021745,
+ "node_id": "MDQ6VXNlcjEwMjE3NDU=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1021745?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/recena",
+ "html_url": "https://github.com/recena",
+ "followers_url": "https://api.github.com/users/recena/followers",
+ "following_url": "https://api.github.com/users/recena/following{/other_user}",
+ "gists_url": "https://api.github.com/users/recena/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/recena/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/recena/subscriptions",
+ "organizations_url": "https://api.github.com/users/recena/orgs",
+ "repos_url": "https://api.github.com/users/recena/repos",
+ "events_url": "https://api.github.com/users/recena/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/recena/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-03-05T16:46:13Z",
+ "updated_at": "2016-03-12T07:16:44Z",
+ "closed_at": "2016-03-12T07:16:44Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/251",
+ "html_url": "https://github.com/github-api/github-api/pull/251",
+ "diff_url": "https://github.com/github-api/github-api/pull/251.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/251.patch"
+ },
+ "body": "Part of [JENKINS-33318](https://issues.jenkins-ci.org/browse/JENKINS-33318)\n\n@reviewbybees, specially @kohsuke and @cyrille-leclerc\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/250",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/250/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/250/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/250/events",
+ "html_url": "https://github.com/github-api/github-api/issues/250",
+ "id": 137319260,
+ "node_id": "MDU6SXNzdWUxMzczMTkyNjA=",
+ "number": 250,
+ "title": "traceback if webhook set to \"send me everything\".",
+ "user": {
+ "login": "kad",
+ "id": 41858,
+ "node_id": "MDQ6VXNlcjQxODU4",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/41858?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/kad",
+ "html_url": "https://github.com/kad",
+ "followers_url": "https://api.github.com/users/kad/followers",
+ "following_url": "https://api.github.com/users/kad/following{/other_user}",
+ "gists_url": "https://api.github.com/users/kad/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/kad/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/kad/subscriptions",
+ "organizations_url": "https://api.github.com/users/kad/orgs",
+ "repos_url": "https://api.github.com/users/kad/repos",
+ "events_url": "https://api.github.com/users/kad/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/kad/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-02-29T17:31:05Z",
+ "updated_at": "2016-03-01T04:56:48Z",
+ "closed_at": "2016-03-01T04:56:48Z",
+ "author_association": "NONE",
+ "body": "If webhook is set to \"send me everything\" instead of just push events, then github-api would crash with something similar to this: \n\n```\nWARNING: Failed to add GitHub webhook for GitHubRepositoryName[host=github.com,username=xxxx,repository=zzzzzz]\njava.lang.IllegalArgumentException: No enum constant org.kohsuke.github.GHEvent.*\n at java.lang.Enum.valueOf(Enum.java:238)\n at org.kohsuke.github.GHHook.getEvents(GHHook.java:30)\n at org.jenkinsci.plugins.github.webhook.WebhookManager$7.applyNullSafe(WebhookManager.java:258)\n at org.jenkinsci.plugins.github.webhook.WebhookManager$7.applyNullSafe(WebhookManager.java:255)\n at org.jenkinsci.plugins.github.util.misc.NullSafeFunction.apply(NullSafeFunction.java:18)\n\n\n```\n\n``` json\n \"events\": [\n \"*\"\n ],\n```\n\nin theory, org.kohsuke.github.GHHook.getEvents should be able to see if \"e\" == \"*\", and skip it or add all known enums to return set... not sure about logic/usage of that function in different places.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/249",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/249/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/249/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/249/events",
+ "html_url": "https://github.com/github-api/github-api/pull/249",
+ "id": 136320347,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjA2NDM3OTM=",
+ "number": 249,
+ "title": "Added getHtmlUrl() to GHCommit",
+ "user": {
+ "login": "zapelin",
+ "id": 1540766,
+ "node_id": "MDQ6VXNlcjE1NDA3NjY=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1540766?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/zapelin",
+ "html_url": "https://github.com/zapelin",
+ "followers_url": "https://api.github.com/users/zapelin/followers",
+ "following_url": "https://api.github.com/users/zapelin/following{/other_user}",
+ "gists_url": "https://api.github.com/users/zapelin/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/zapelin/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/zapelin/subscriptions",
+ "organizations_url": "https://api.github.com/users/zapelin/orgs",
+ "repos_url": "https://api.github.com/users/zapelin/repos",
+ "events_url": "https://api.github.com/users/zapelin/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/zapelin/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2016-02-25T08:48:04Z",
+ "updated_at": "2016-03-01T04:48:19Z",
+ "closed_at": "2016-03-01T04:48:19Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/249",
+ "html_url": "https://github.com/github-api/github-api/pull/249",
+ "diff_url": "https://github.com/github-api/github-api/pull/249.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/249.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/248",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/248/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/248/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/248/events",
+ "html_url": "https://github.com/github-api/github-api/pull/248",
+ "id": 135138155,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjAwNjYwODM=",
+ "number": 248,
+ "title": "Populate commit with data for getCommitShortInfo",
+ "user": {
+ "login": "daniel-beck",
+ "id": 1831569,
+ "node_id": "MDQ6VXNlcjE4MzE1Njk=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1831569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/daniel-beck",
+ "html_url": "https://github.com/daniel-beck",
+ "followers_url": "https://api.github.com/users/daniel-beck/followers",
+ "following_url": "https://api.github.com/users/daniel-beck/following{/other_user}",
+ "gists_url": "https://api.github.com/users/daniel-beck/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/daniel-beck/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/daniel-beck/subscriptions",
+ "organizations_url": "https://api.github.com/users/daniel-beck/orgs",
+ "repos_url": "https://api.github.com/users/daniel-beck/repos",
+ "events_url": "https://api.github.com/users/daniel-beck/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/daniel-beck/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2016-02-21T00:27:43Z",
+ "updated_at": "2016-03-01T04:47:53Z",
+ "closed_at": "2016-03-01T04:47:53Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/248",
+ "html_url": "https://github.com/github-api/github-api/pull/248",
+ "diff_url": "https://github.com/github-api/github-api/pull/248.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/248.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/247",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/247/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/247/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/247/events",
+ "html_url": "https://github.com/github-api/github-api/pull/247",
+ "id": 132937659,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTkwMTI4NjQ=",
+ "number": 247,
+ "title": "Use GET method to fetch the GHontent's content",
+ "user": {
+ "login": "Shredder121",
+ "id": 4105066,
+ "node_id": "MDQ6VXNlcjQxMDUwNjY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/4105066?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Shredder121",
+ "html_url": "https://github.com/Shredder121",
+ "followers_url": "https://api.github.com/users/Shredder121/followers",
+ "following_url": "https://api.github.com/users/Shredder121/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Shredder121/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Shredder121/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Shredder121/subscriptions",
+ "organizations_url": "https://api.github.com/users/Shredder121/orgs",
+ "repos_url": "https://api.github.com/users/Shredder121/repos",
+ "events_url": "https://api.github.com/users/Shredder121/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Shredder121/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2016-02-11T10:36:48Z",
+ "updated_at": "2016-04-01T07:43:13Z",
+ "closed_at": "2016-03-12T07:17:43Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/247",
+ "html_url": "https://github.com/github-api/github-api/pull/247",
+ "diff_url": "https://github.com/github-api/github-api/pull/247.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/247.patch"
+ },
+ "body": "This is a little more cache-friendly.\n\nLet me know what you think.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/246",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/246/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/246/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/246/events",
+ "html_url": "https://github.com/github-api/github-api/issues/246",
+ "id": 130609372,
+ "node_id": "MDU6SXNzdWUxMzA2MDkzNzI=",
+ "number": 246,
+ "title": "Error on github pull request populate",
+ "user": {
+ "login": "glebk",
+ "id": 4512057,
+ "node_id": "MDQ6VXNlcjQ1MTIwNTc=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/4512057?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/glebk",
+ "html_url": "https://github.com/glebk",
+ "followers_url": "https://api.github.com/users/glebk/followers",
+ "following_url": "https://api.github.com/users/glebk/following{/other_user}",
+ "gists_url": "https://api.github.com/users/glebk/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/glebk/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/glebk/subscriptions",
+ "organizations_url": "https://api.github.com/users/glebk/orgs",
+ "repos_url": "https://api.github.com/users/glebk/repos",
+ "events_url": "https://api.github.com/users/glebk/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/glebk/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-02-02T08:20:15Z",
+ "updated_at": "2016-02-02T12:04:53Z",
+ "closed_at": "2016-02-02T12:04:53Z",
+ "author_association": "NONE",
+ "body": "Hi,\n\nWhile trying to use GitHub Pull Request Builder v1.30 with GitHub API Plugin v1.72 we are seeing the following error:\n\n```\nFeb 02, 2016 9:13:02 AM FINEST org.jenkinsci.plugins.ghprb.GhprbPullRequest Running the build\nFeb 02, 2016 9:13:02 AM FINEST org.jenkinsci.plugins.ghprb.GhprbPullRequest PR is not null, checking if mergable\nFeb 02, 2016 9:13:02 AM SEVERE org.jenkinsci.plugins.ghprb.GhprbPullRequest checkMergeable Couldn't obtain mergeable status.\n\ncom.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input\n at [Source: java.io.StringReader@3a506e2d; line: 1, column: 1]\n at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)\n at com.fasterxml.jackson.databind.ObjectReader._initForReading(ObjectReader.java:1298)\n at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1199)\n at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:830)\n at org.kohsuke.github.Requester.parse(Requester.java:492)\n at org.kohsuke.github.Requester._to(Requester.java:236)\n at org.kohsuke.github.Requester.to(Requester.java:210)\n at org.kohsuke.github.GHPullRequest.populate(GHPullRequest.java:205)\n at org.kohsuke.github.GHPullRequest.getMergeable(GHPullRequest.java:170)\n at org.jenkinsci.plugins.ghprb.GhprbPullRequest.checkMergeable(GhprbPullRequest.java:396)\n at org.jenkinsci.plugins.ghprb.GhprbPullRequest.tryBuild(GhprbPullRequest.java:274)\n at org.jenkinsci.plugins.ghprb.GhprbPullRequest.check(GhprbPullRequest.java:150)\n at org.jenkinsci.plugins.ghprb.GhprbRepository.check(GhprbRepository.java:142)\n at org.jenkinsci.plugins.ghprb.GhprbRepository.check(GhprbRepository.java:126)\n at org.jenkinsci.plugins.ghprb.Ghprb.run(Ghprb.java:119)\n```\n\nWe are able to verify that the plugins have connectivity and permissions to the pull requests.\n\nPlease let me know what additional information I can provide to help debug this.\n\nThanks!\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/245",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/245/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/245/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/245/events",
+ "html_url": "https://github.com/github-api/github-api/pull/245",
+ "id": 127800177,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTY2Nzc5NDA=",
+ "number": 245,
+ "title": "Fix error when creating email service hook",
+ "user": {
+ "login": "daniel-beck",
+ "id": 1831569,
+ "node_id": "MDQ6VXNlcjE4MzE1Njk=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1831569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/daniel-beck",
+ "html_url": "https://github.com/daniel-beck",
+ "followers_url": "https://api.github.com/users/daniel-beck/followers",
+ "following_url": "https://api.github.com/users/daniel-beck/following{/other_user}",
+ "gists_url": "https://api.github.com/users/daniel-beck/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/daniel-beck/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/daniel-beck/subscriptions",
+ "organizations_url": "https://api.github.com/users/daniel-beck/orgs",
+ "repos_url": "https://api.github.com/users/daniel-beck/repos",
+ "events_url": "https://api.github.com/users/daniel-beck/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/daniel-beck/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-01-20T22:34:46Z",
+ "updated_at": "2016-04-04T22:12:41Z",
+ "closed_at": "2016-03-01T04:45:40Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/245",
+ "html_url": "https://github.com/github-api/github-api/pull/245",
+ "diff_url": "https://github.com/github-api/github-api/pull/245.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/245.patch"
+ },
+ "body": "The Jenkins IRC bot started throwing \n\n`{\"message\":\"Invalid request.\\n\\nFor 'properties/active', \\\"true\\\" is not a boolean.\",\"documentation_url\":\"https://developer.github.com/v3/repos/hooks/#create-a-hook\"}`\n\nUntested.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/244",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/244/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/244/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/244/events",
+ "html_url": "https://github.com/github-api/github-api/pull/244",
+ "id": 127320704,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTYzOTcyNTE=",
+ "number": 244,
+ "title": "Minor amendment to the documentation",
+ "user": {
+ "login": "benbek",
+ "id": 6597271,
+ "node_id": "MDQ6VXNlcjY1OTcyNzE=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6597271?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/benbek",
+ "html_url": "https://github.com/benbek",
+ "followers_url": "https://api.github.com/users/benbek/followers",
+ "following_url": "https://api.github.com/users/benbek/following{/other_user}",
+ "gists_url": "https://api.github.com/users/benbek/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/benbek/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/benbek/subscriptions",
+ "organizations_url": "https://api.github.com/users/benbek/orgs",
+ "repos_url": "https://api.github.com/users/benbek/repos",
+ "events_url": "https://api.github.com/users/benbek/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/benbek/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2016-01-18T22:08:40Z",
+ "updated_at": "2016-03-01T03:57:47Z",
+ "closed_at": "2016-03-01T03:57:47Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/244",
+ "html_url": "https://github.com/github-api/github-api/pull/244",
+ "diff_url": "https://github.com/github-api/github-api/pull/244.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/244.patch"
+ },
+ "body": "The status reported by GitHub for deleting a file is actually \"removed\", not \"deleted\".\nCan be see here:\n\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/243",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/243/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/243/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/243/events",
+ "html_url": "https://github.com/github-api/github-api/issues/243",
+ "id": 125329450,
+ "node_id": "MDU6SXNzdWUxMjUzMjk0NTA=",
+ "number": 243,
+ "title": "How to avoid connection timeout while using github.listallpublicrepositories ",
+ "user": {
+ "login": "arjunvijayvargiya",
+ "id": 7685777,
+ "node_id": "MDQ6VXNlcjc2ODU3Nzc=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/7685777?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/arjunvijayvargiya",
+ "html_url": "https://github.com/arjunvijayvargiya",
+ "followers_url": "https://api.github.com/users/arjunvijayvargiya/followers",
+ "following_url": "https://api.github.com/users/arjunvijayvargiya/following{/other_user}",
+ "gists_url": "https://api.github.com/users/arjunvijayvargiya/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/arjunvijayvargiya/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/arjunvijayvargiya/subscriptions",
+ "organizations_url": "https://api.github.com/users/arjunvijayvargiya/orgs",
+ "repos_url": "https://api.github.com/users/arjunvijayvargiya/repos",
+ "events_url": "https://api.github.com/users/arjunvijayvargiya/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/arjunvijayvargiya/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-01-07T06:04:15Z",
+ "updated_at": "2016-03-01T04:49:48Z",
+ "closed_at": "2016-03-01T04:49:48Z",
+ "author_association": "NONE",
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/242",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/242/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/242/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/242/events",
+ "html_url": "https://github.com/github-api/github-api/issues/242",
+ "id": 125151547,
+ "node_id": "MDU6SXNzdWUxMjUxNTE1NDc=",
+ "number": 242,
+ "title": "myissues",
+ "user": {
+ "login": "lokies",
+ "id": 14835338,
+ "node_id": "MDQ6VXNlcjE0ODM1MzM4",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/14835338?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lokies",
+ "html_url": "https://github.com/lokies",
+ "followers_url": "https://api.github.com/users/lokies/followers",
+ "following_url": "https://api.github.com/users/lokies/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lokies/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lokies/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lokies/subscriptions",
+ "organizations_url": "https://api.github.com/users/lokies/orgs",
+ "repos_url": "https://api.github.com/users/lokies/repos",
+ "events_url": "https://api.github.com/users/lokies/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lokies/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2016-01-06T10:34:05Z",
+ "updated_at": "2016-03-01T04:48:31Z",
+ "closed_at": "2016-03-01T04:48:31Z",
+ "author_association": "NONE",
+ "body": "myissues\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/241",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/241/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/241/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/241/events",
+ "html_url": "https://github.com/github-api/github-api/issues/241",
+ "id": 124748917,
+ "node_id": "MDU6SXNzdWUxMjQ3NDg5MTc=",
+ "number": 241,
+ "title": "How to get statistics using this library",
+ "user": {
+ "login": "arjunvijayvargiya",
+ "id": 7685777,
+ "node_id": "MDQ6VXNlcjc2ODU3Nzc=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/7685777?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/arjunvijayvargiya",
+ "html_url": "https://github.com/arjunvijayvargiya",
+ "followers_url": "https://api.github.com/users/arjunvijayvargiya/followers",
+ "following_url": "https://api.github.com/users/arjunvijayvargiya/following{/other_user}",
+ "gists_url": "https://api.github.com/users/arjunvijayvargiya/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/arjunvijayvargiya/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/arjunvijayvargiya/subscriptions",
+ "organizations_url": "https://api.github.com/users/arjunvijayvargiya/orgs",
+ "repos_url": "https://api.github.com/users/arjunvijayvargiya/repos",
+ "events_url": "https://api.github.com/users/arjunvijayvargiya/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/arjunvijayvargiya/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2016-01-04T12:13:36Z",
+ "updated_at": "2016-03-12T07:22:15Z",
+ "closed_at": "2016-03-12T07:22:15Z",
+ "author_association": "NONE",
+ "body": "Hi @kohsuke ,\n I am using this library for long in implementing many of my projects. I am facing an issue as I am not able to get statistics of a particular user in a repo? How to do that?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/240",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/240/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/240/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/240/events",
+ "html_url": "https://github.com/github-api/github-api/pull/240",
+ "id": 121940825,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTM1MDgzNjA=",
+ "number": 240,
+ "title": "Support for auto_init",
+ "user": {
+ "login": "dlovera",
+ "id": 4728774,
+ "node_id": "MDQ6VXNlcjQ3Mjg3NzQ=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/4728774?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dlovera",
+ "html_url": "https://github.com/dlovera",
+ "followers_url": "https://api.github.com/users/dlovera/followers",
+ "following_url": "https://api.github.com/users/dlovera/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dlovera/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dlovera/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dlovera/subscriptions",
+ "organizations_url": "https://api.github.com/users/dlovera/orgs",
+ "repos_url": "https://api.github.com/users/dlovera/repos",
+ "events_url": "https://api.github.com/users/dlovera/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dlovera/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2015-12-13T20:13:49Z",
+ "updated_at": "2016-03-01T03:57:31Z",
+ "closed_at": "2016-03-01T03:57:31Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/240",
+ "html_url": "https://github.com/github-api/github-api/pull/240",
+ "diff_url": "https://github.com/github-api/github-api/pull/240.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/240.patch"
+ },
+ "body": "Add support for auto_init parameter in repository creation\nhttps://developer.github.com/changes/2012-09-28-auto-init-for-repositories/\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/239",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/239/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/239/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/239/events",
+ "html_url": "https://github.com/github-api/github-api/issues/239",
+ "id": 120577245,
+ "node_id": "MDU6SXNzdWUxMjA1NzcyNDU=",
+ "number": 239,
+ "title": "Question - Stargazers and stars release.",
+ "user": {
+ "login": "pedrovgs",
+ "id": 4030704,
+ "node_id": "MDQ6VXNlcjQwMzA3MDQ=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/4030704?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/pedrovgs",
+ "html_url": "https://github.com/pedrovgs",
+ "followers_url": "https://api.github.com/users/pedrovgs/followers",
+ "following_url": "https://api.github.com/users/pedrovgs/following{/other_user}",
+ "gists_url": "https://api.github.com/users/pedrovgs/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/pedrovgs/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/pedrovgs/subscriptions",
+ "organizations_url": "https://api.github.com/users/pedrovgs/orgs",
+ "repos_url": "https://api.github.com/users/pedrovgs/repos",
+ "events_url": "https://api.github.com/users/pedrovgs/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/pedrovgs/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-12-05T18:13:51Z",
+ "updated_at": "2015-12-10T15:27:31Z",
+ "closed_at": "2015-12-10T15:27:31Z",
+ "author_association": "NONE",
+ "body": "Hi @kohsuke! First of all, thanks for this library it's really easy to use and really useful :)\n\nI'd like to know when you are going to publish [the last functionality you've added to the project](https://github.com/kohsuke/github-api/commit/2603b5a402a3f0669f5828c316c4d589cf1d1e1b). I'm working on a project where I need this awesome feature :).\n\nThanks!\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/238",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/238/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/238/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/238/events",
+ "html_url": "https://github.com/github-api/github-api/issues/238",
+ "id": 120195524,
+ "node_id": "MDU6SXNzdWUxMjAxOTU1MjQ=",
+ "number": 238,
+ "title": "GHEventInfo getPayload",
+ "user": {
+ "login": "dsafaric",
+ "id": 8641151,
+ "node_id": "MDQ6VXNlcjg2NDExNTE=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/8641151?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dsafaric",
+ "html_url": "https://github.com/dsafaric",
+ "followers_url": "https://api.github.com/users/dsafaric/followers",
+ "following_url": "https://api.github.com/users/dsafaric/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dsafaric/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dsafaric/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dsafaric/subscriptions",
+ "organizations_url": "https://api.github.com/users/dsafaric/orgs",
+ "repos_url": "https://api.github.com/users/dsafaric/repos",
+ "events_url": "https://api.github.com/users/dsafaric/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dsafaric/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-12-03T15:24:17Z",
+ "updated_at": "2016-03-01T04:50:11Z",
+ "closed_at": "2016-03-01T04:50:11Z",
+ "author_association": "NONE",
+ "body": "The problem in the getPayload method when used in Scala e.g. is when we want to pattern match against a type.\n\nAs by definition, getPayload returns a derivate of a GHEventPayload abstract class. This derivates can either be of type Push, IssueComment or PullRequest.\n\nWhile in order to get the payload of an event we must provide the type of the derivate class such as Push, meaning that we cannot pattern match for the PushEvent type in order to extract the payload of the event. \n\nFor example:\n\n```\noverride def onNext(e : GHEventInfo) = e.getType match {\n case GHEvent.PUSH => PushEvent.handle(e)\n case _ => // All cases not supported yet\n}\n```\n\npattern matches against a type, in our case it can be an event of type Push. Once it is matched against this type, we cannot refer to getPayload because we do not know the type of it, hence we are unable to pattern match against it.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/237",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/237/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/237/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/237/events",
+ "html_url": "https://github.com/github-api/github-api/pull/237",
+ "id": 119722892,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTIyNjA4NDM=",
+ "number": 237,
+ "title": "Use default timeouts for URLConnections",
+ "user": {
+ "login": "olivergondza",
+ "id": 206841,
+ "node_id": "MDQ6VXNlcjIwNjg0MQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/206841?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/olivergondza",
+ "html_url": "https://github.com/olivergondza",
+ "followers_url": "https://api.github.com/users/olivergondza/followers",
+ "following_url": "https://api.github.com/users/olivergondza/following{/other_user}",
+ "gists_url": "https://api.github.com/users/olivergondza/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/olivergondza/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/olivergondza/subscriptions",
+ "organizations_url": "https://api.github.com/users/olivergondza/orgs",
+ "repos_url": "https://api.github.com/users/olivergondza/repos",
+ "events_url": "https://api.github.com/users/olivergondza/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/olivergondza/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2015-12-01T14:00:29Z",
+ "updated_at": "2015-12-01T14:18:29Z",
+ "closed_at": "2015-12-01T14:18:29Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/237",
+ "html_url": "https://github.com/github-api/github-api/pull/237",
+ "diff_url": "https://github.com/github-api/github-api/pull/237.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/237.patch"
+ },
+ "body": "[JENKINS-31827](https://issues.jenkins-ci.org/browse/JENKINS-31827)\n\nI suggest to fix it in github-api so all clients will be reasonably safe and it seems like the best place to maintain reasonable defaults for the service.\n"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-e084b859-6ef7-4657-ad19-0c0b1a5f9e4d.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-e084b859-6ef7-4657-ad19-0c0b1a5f9e4d.json
new file mode 100644
index 000000000..37afd142c
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-e084b859-6ef7-4657-ad19-0c0b1a5f9e4d.json
@@ -0,0 +1,1436 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/403",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/403/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/403/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/403/events",
+ "html_url": "https://github.com/github-api/github-api/issues/403",
+ "id": 279706121,
+ "node_id": "MDU6SXNzdWUyNzk3MDYxMjE=",
+ "number": 403,
+ "title": "gitHttpTransportUrl Rename",
+ "user": {
+ "login": "mhohmeier",
+ "id": 18189053,
+ "node_id": "MDQ6VXNlcjE4MTg5MDUz",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/18189053?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mhohmeier",
+ "html_url": "https://github.com/mhohmeier",
+ "followers_url": "https://api.github.com/users/mhohmeier/followers",
+ "following_url": "https://api.github.com/users/mhohmeier/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mhohmeier/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mhohmeier/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mhohmeier/subscriptions",
+ "organizations_url": "https://api.github.com/users/mhohmeier/orgs",
+ "repos_url": "https://api.github.com/users/mhohmeier/repos",
+ "events_url": "https://api.github.com/users/mhohmeier/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mhohmeier/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-12-06T10:45:34Z",
+ "updated_at": "2018-01-13T05:29:05Z",
+ "closed_at": "2018-01-13T05:29:05Z",
+ "author_association": "NONE",
+ "body": "Just wanted to mention that in GHRepository in line 176, the method is named \"gitHttpTransportUrl\" which is quite confusing given the other methods are named like \"getSvnUrl\", \"getGitTransportUrl\" etc.\r\nIf this is just a typo, i would recommend adding \"getHttpTransportUrl\" since i looked quite some time for that method..."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/402",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/402/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/402/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/402/events",
+ "html_url": "https://github.com/github-api/github-api/pull/402",
+ "id": 279055786,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTU2MjQxMDA2",
+ "number": 402,
+ "title": "tune for sonarsource fork",
+ "user": {
+ "login": "sns-seb",
+ "id": 11717580,
+ "node_id": "MDQ6VXNlcjExNzE3NTgw",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/11717580?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sns-seb",
+ "html_url": "https://github.com/sns-seb",
+ "followers_url": "https://api.github.com/users/sns-seb/followers",
+ "following_url": "https://api.github.com/users/sns-seb/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sns-seb/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sns-seb/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sns-seb/subscriptions",
+ "organizations_url": "https://api.github.com/users/sns-seb/orgs",
+ "repos_url": "https://api.github.com/users/sns-seb/repos",
+ "events_url": "https://api.github.com/users/sns-seb/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sns-seb/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-12-04T16:20:29Z",
+ "updated_at": "2017-12-04T16:40:46Z",
+ "closed_at": "2017-12-04T16:40:46Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/402",
+ "html_url": "https://github.com/github-api/github-api/pull/402",
+ "diff_url": "https://github.com/github-api/github-api/pull/402.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/402.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/401",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/401/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/401/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/401/events",
+ "html_url": "https://github.com/github-api/github-api/pull/401",
+ "id": 275491005,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTUzNzI4NDg4",
+ "number": 401,
+ "title": "Replace \"new Error\" with GHException",
+ "user": {
+ "login": "bjoernhaeuser",
+ "id": 1449155,
+ "node_id": "MDQ6VXNlcjE0NDkxNTU=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1449155?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bjoernhaeuser",
+ "html_url": "https://github.com/bjoernhaeuser",
+ "followers_url": "https://api.github.com/users/bjoernhaeuser/followers",
+ "following_url": "https://api.github.com/users/bjoernhaeuser/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bjoernhaeuser/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bjoernhaeuser/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bjoernhaeuser/subscriptions",
+ "organizations_url": "https://api.github.com/users/bjoernhaeuser/orgs",
+ "repos_url": "https://api.github.com/users/bjoernhaeuser/repos",
+ "events_url": "https://api.github.com/users/bjoernhaeuser/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bjoernhaeuser/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-11-20T20:37:58Z",
+ "updated_at": "2018-01-13T09:50:35Z",
+ "closed_at": "2018-01-13T05:02:00Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/401",
+ "html_url": "https://github.com/github-api/github-api/pull/401",
+ "diff_url": "https://github.com/github-api/github-api/pull/401.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/401.patch"
+ },
+ "body": "This is a possible fix for #400\r\n\r\nReasoning:\r\n\r\n`GHException` is used in other places for similar purposes, therefore I went down that road. Does the changes make sense?\r\n\r\nCloses #400"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/400",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/400/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/400/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/400/events",
+ "html_url": "https://github.com/github-api/github-api/issues/400",
+ "id": 275274520,
+ "node_id": "MDU6SXNzdWUyNzUyNzQ1MjA=",
+ "number": 400,
+ "title": "Do not throw new Error()",
+ "user": {
+ "login": "samrocketman",
+ "id": 875669,
+ "node_id": "MDQ6VXNlcjg3NTY2OQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/875669?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/samrocketman",
+ "html_url": "https://github.com/samrocketman",
+ "followers_url": "https://api.github.com/users/samrocketman/followers",
+ "following_url": "https://api.github.com/users/samrocketman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/samrocketman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/samrocketman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/samrocketman/subscriptions",
+ "organizations_url": "https://api.github.com/users/samrocketman/orgs",
+ "repos_url": "https://api.github.com/users/samrocketman/repos",
+ "events_url": "https://api.github.com/users/samrocketman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/samrocketman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2017-11-20T08:38:20Z",
+ "updated_at": "2018-01-13T05:02:28Z",
+ "closed_at": "2018-01-13T05:02:28Z",
+ "author_association": "NONE",
+ "body": "https://github.com/kohsuke/github-api/search?utf8=%E2%9C%93&q=%22new+Error%22&type=\r\n\r\nIn general, this seems to be a bad idea. See also comments in https://github.com/jenkinsci/ghprb-plugin/pull/570. This PR for the GHPRB plugin is left with the dilemma of catching throwable because there's no other choice since this API throws `java.lang.Error`.\r\n\r\nA quote from `java.lang.Error` javadoc:\r\n\r\n> An `Error` is a subclass of `Throwable` that indicates serious problems that a reasonable application should not try to catch.\r\n\r\nInstead, consider throwing `IllegalStateException`."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/399",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/399/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/399/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/399/events",
+ "html_url": "https://github.com/github-api/github-api/issues/399",
+ "id": 274607892,
+ "node_id": "MDU6SXNzdWUyNzQ2MDc4OTI=",
+ "number": 399,
+ "title": "GHPullRequest.getMergeable() never returns True",
+ "user": {
+ "login": "jamesdh",
+ "id": 1085322,
+ "node_id": "MDQ6VXNlcjEwODUzMjI=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1085322?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jamesdh",
+ "html_url": "https://github.com/jamesdh",
+ "followers_url": "https://api.github.com/users/jamesdh/followers",
+ "following_url": "https://api.github.com/users/jamesdh/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jamesdh/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jamesdh/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jamesdh/subscriptions",
+ "organizations_url": "https://api.github.com/users/jamesdh/orgs",
+ "repos_url": "https://api.github.com/users/jamesdh/repos",
+ "events_url": "https://api.github.com/users/jamesdh/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jamesdh/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2017-11-16T17:56:44Z",
+ "updated_at": "2018-02-07T08:40:41Z",
+ "closed_at": "2018-01-13T05:33:14Z",
+ "author_association": "NONE",
+ "body": "This used to work, but a change in the last couple months seems to have broken this for us. \r\n\r\nWe have some Jenkins Pipeline code that does some automatic PR creation + merging for specific use cases. Initially when creating the PR, GitHub isn't always immediately able to act on it, so we would check if it were mergeable before actually attempting to merge:\r\n\r\n```\r\nGHPullRequest pull = repo.createPullRequest(\"Release $version\", \"master\", \"production\", body)\r\nwhile(!pull.getMergeable()) {\r\n echo \"PR not yet mergeable, retrying...\"\r\n}\r\npull.merge(\"Merged & released via [${env.BUILD_NUMBER}](${env.BUILD_URL})\", pull.getHead().getSha())\r\n```\r\n\r\nNow however, pull.getMergeable() never returns true if it returns false the first time it is called (which is basically every time), so it just sits in that loop, retrying. \r\n\r\nAgain, this only broke after we recently updated all of our plugins on our Jenkins instance, so it seems a recent change is causing this but I've been unable to identify what it might be in the recent history. "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/398",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/398/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/398/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/398/events",
+ "html_url": "https://github.com/github-api/github-api/pull/398",
+ "id": 274393782,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTUyOTUwNzEw",
+ "number": 398,
+ "title": "Fix: state for REQUEST_CHANGES is CHANGES_REQUESTED",
+ "user": {
+ "login": "ubolonton",
+ "id": 198359,
+ "node_id": "MDQ6VXNlcjE5ODM1OQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/198359?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ubolonton",
+ "html_url": "https://github.com/ubolonton",
+ "followers_url": "https://api.github.com/users/ubolonton/followers",
+ "following_url": "https://api.github.com/users/ubolonton/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ubolonton/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ubolonton/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ubolonton/subscriptions",
+ "organizations_url": "https://api.github.com/users/ubolonton/orgs",
+ "repos_url": "https://api.github.com/users/ubolonton/repos",
+ "events_url": "https://api.github.com/users/ubolonton/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ubolonton/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2017-11-16T04:48:57Z",
+ "updated_at": "2018-01-13T18:03:41Z",
+ "closed_at": "2018-01-13T18:03:41Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/398",
+ "html_url": "https://github.com/github-api/github-api/pull/398",
+ "diff_url": "https://github.com/github-api/github-api/pull/398.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/398.patch"
+ },
+ "body": "https://developer.github.com/v3/pulls/reviews/"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/397",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/397/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/397/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/397/events",
+ "html_url": "https://github.com/github-api/github-api/pull/397",
+ "id": 274385542,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTUyOTQ0ODk5",
+ "number": 397,
+ "title": "Add GHIssue#setMilestone",
+ "user": {
+ "login": "mizoguche",
+ "id": 1318463,
+ "node_id": "MDQ6VXNlcjEzMTg0NjM=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1318463?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mizoguche",
+ "html_url": "https://github.com/mizoguche",
+ "followers_url": "https://api.github.com/users/mizoguche/followers",
+ "following_url": "https://api.github.com/users/mizoguche/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mizoguche/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mizoguche/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mizoguche/subscriptions",
+ "organizations_url": "https://api.github.com/users/mizoguche/orgs",
+ "repos_url": "https://api.github.com/users/mizoguche/repos",
+ "events_url": "https://api.github.com/users/mizoguche/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mizoguche/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2017-11-16T03:46:36Z",
+ "updated_at": "2018-01-13T05:04:19Z",
+ "closed_at": "2018-01-13T05:04:19Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/397",
+ "html_url": "https://github.com/github-api/github-api/pull/397",
+ "diff_url": "https://github.com/github-api/github-api/pull/397.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/397.patch"
+ },
+ "body": "Add setMilestone method to GHIssue class.\r\n\r\nIt seems that there is no method to update the milestone of an issue."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/396",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/396/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/396/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/396/events",
+ "html_url": "https://github.com/github-api/github-api/pull/396",
+ "id": 272734975,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTUxNzcwODE4",
+ "number": 396,
+ "title": "[fix] GHPerson: check if root is null",
+ "user": {
+ "login": "Rechi",
+ "id": 5367567,
+ "node_id": "MDQ6VXNlcjUzNjc1Njc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/5367567?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Rechi",
+ "html_url": "https://github.com/Rechi",
+ "followers_url": "https://api.github.com/users/Rechi/followers",
+ "following_url": "https://api.github.com/users/Rechi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Rechi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Rechi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Rechi/subscriptions",
+ "organizations_url": "https://api.github.com/users/Rechi/orgs",
+ "repos_url": "https://api.github.com/users/Rechi/repos",
+ "events_url": "https://api.github.com/users/Rechi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Rechi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 9,
+ "created_at": "2017-11-09T21:45:14Z",
+ "updated_at": "2018-04-14T04:20:22Z",
+ "closed_at": "2018-01-12T16:45:03Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/396",
+ "html_url": "https://github.com/github-api/github-api/pull/396",
+ "diff_url": "https://github.com/github-api/github-api/pull/396.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/396.patch"
+ },
+ "body": "This might fix the issue I reported at https://issues.jenkins-ci.org/browse/JENKINS-47848"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/395",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/395/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/395/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/395/events",
+ "html_url": "https://github.com/github-api/github-api/issues/395",
+ "id": 271819106,
+ "node_id": "MDU6SXNzdWUyNzE4MTkxMDY=",
+ "number": 395,
+ "title": "NPE in GHPerson.populate",
+ "user": {
+ "login": "liborbitala",
+ "id": 17720012,
+ "node_id": "MDQ6VXNlcjE3NzIwMDEy",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/17720012?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/liborbitala",
+ "html_url": "https://github.com/liborbitala",
+ "followers_url": "https://api.github.com/users/liborbitala/followers",
+ "following_url": "https://api.github.com/users/liborbitala/following{/other_user}",
+ "gists_url": "https://api.github.com/users/liborbitala/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/liborbitala/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/liborbitala/subscriptions",
+ "organizations_url": "https://api.github.com/users/liborbitala/orgs",
+ "repos_url": "https://api.github.com/users/liborbitala/repos",
+ "events_url": "https://api.github.com/users/liborbitala/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/liborbitala/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2017-11-07T12:46:22Z",
+ "updated_at": "2018-01-13T05:34:34Z",
+ "closed_at": "2018-01-13T05:34:34Z",
+ "author_association": "NONE",
+ "body": "Hi, \r\n\r\nafter updating to version 1.90 of GitHub API in our Jenkins, we have a problem when getting info about author of PullRequest for some users. It is blocking our automation of Jenkins builds using Github Pull Request Builder plugin. Interesting thing is that the issue is happening only for some users' Pull Requests. For others everything works fine. We haven't found any suspicious pattern in users' settings.\r\n\r\nThe error looks as follows:\r\n\r\nUnable to handle comment for PR# 266904472, repo: xxx/xxx-xxx\r\njava.lang.NullPointerException\r\n at org.kohsuke.github.GHPerson.populate(GHPerson.java:44)\r\n at org.kohsuke.github.GHPerson.getEmail(GHPerson.java:231)\r\n at org.jenkinsci.plugins.ghprb.GhprbPullRequest.getAuthorEmail(GhprbPullRequest.java:726)\r\n at org.jenkinsci.plugins.ghprb.GhprbBuilds.build(GhprbBuilds.java:54)\r\n at org.jenkinsci.plugins.ghprb.GhprbPullRequest.build(GhprbPullRequest.java:417)\r\n at org.jenkinsci.plugins.ghprb.GhprbPullRequest.tryBuild(GhprbPullRequest.java:410)\r\n at org.jenkinsci.plugins.ghprb.GhprbPullRequest.check(GhprbPullRequest.java:244)\r\n at org.jenkinsci.plugins.ghprb.GhprbRepository.onIssueCommentHook(GhprbRepository.java:342)\r\n at org.jenkinsci.plugins.ghprb.GhprbTrigger.handleComment(GhprbTrigger.java:637)\r\n at org.jenkinsci.plugins.ghprb.GhprbRootAction$1.run(GhprbRootAction.java:233)\r\n\r\nAccording to report in Jenkins Jira (https://issues.jenkins-ci.org/browse/JENKINS-47848) it seems that downgrade to 1.86 should help, but we need to use 1.90 because of other issues.\r\n\r\nCould you look onto it or provide some workaround?\r\n\r\nThank you."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/394",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/394/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/394/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/394/events",
+ "html_url": "https://github.com/github-api/github-api/pull/394",
+ "id": 271489685,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTUwODYyODM1",
+ "number": 394,
+ "title": "Populate the GHPullRequest if 'mergeable' is null",
+ "user": {
+ "login": "psiroky",
+ "id": 670547,
+ "node_id": "MDQ6VXNlcjY3MDU0Nw==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/670547?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/psiroky",
+ "html_url": "https://github.com/psiroky",
+ "followers_url": "https://api.github.com/users/psiroky/followers",
+ "following_url": "https://api.github.com/users/psiroky/following{/other_user}",
+ "gists_url": "https://api.github.com/users/psiroky/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/psiroky/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/psiroky/subscriptions",
+ "organizations_url": "https://api.github.com/users/psiroky/orgs",
+ "repos_url": "https://api.github.com/users/psiroky/repos",
+ "events_url": "https://api.github.com/users/psiroky/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/psiroky/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-11-06T14:16:25Z",
+ "updated_at": "2018-01-13T13:14:06Z",
+ "closed_at": "2018-01-13T05:27:13Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/394",
+ "html_url": "https://github.com/github-api/github-api/pull/394",
+ "diff_url": "https://github.com/github-api/github-api/pull/394.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/394.patch"
+ },
+ "body": "GitHub sometimes returns a response which has the 'mergeable_state' set\r\nto 'unknown' (ant thus non-null) and the 'mergable' is 'null'. 'isMergable()'\r\nthen returns 'null' instead of 'boolean'. This can to unexpected issues for\r\nthe caller.\r\n\r\nI am by far not sure that this is a good approach. It can definitely lead to more API calls, which may not be desired. Please let me know if you see a better alternative for this."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/393",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/393/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/393/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/393/events",
+ "html_url": "https://github.com/github-api/github-api/issues/393",
+ "id": 270736846,
+ "node_id": "MDU6SXNzdWUyNzA3MzY4NDY=",
+ "number": 393,
+ "title": "64-bit id support",
+ "user": {
+ "login": "Raimmaster",
+ "id": 6061123,
+ "node_id": "MDQ6VXNlcjYwNjExMjM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6061123?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Raimmaster",
+ "html_url": "https://github.com/Raimmaster",
+ "followers_url": "https://api.github.com/users/Raimmaster/followers",
+ "following_url": "https://api.github.com/users/Raimmaster/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Raimmaster/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Raimmaster/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Raimmaster/subscriptions",
+ "organizations_url": "https://api.github.com/users/Raimmaster/orgs",
+ "repos_url": "https://api.github.com/users/Raimmaster/repos",
+ "events_url": "https://api.github.com/users/Raimmaster/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Raimmaster/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 7,
+ "created_at": "2017-11-02T17:17:57Z",
+ "updated_at": "2017-11-02T17:48:56Z",
+ "closed_at": "2017-11-02T17:48:55Z",
+ "author_association": "NONE",
+ "body": "When working with the GitHub statuses API, it appears that IDs that surpass the 32-bit mark it throws the following exception: \r\n`com.fasterxml.jackson.core.JsonParseException: Numeric value (x) out of range of int`. \r\nI haven't checked if it goes all the way to the [jackson-core](https://github.com/FasterXML/jackson-core) project, but the status IDs now generated have gone past 4294967295, which is the maximum uint value.\r\n\r\nIt'd be great if we could fix this, and I'd be happy to do the pull request if given some pointers and pairing. Thanks beforehand."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/392",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/392/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/392/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/392/events",
+ "html_url": "https://github.com/github-api/github-api/pull/392",
+ "id": 270354129,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTUwMDcyNzQx",
+ "number": 392,
+ "title": "Now that getUser throws IOException, provide alternative for people who just want the username",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2017-11-01T15:49:21Z",
+ "updated_at": "2018-11-16T11:34:44Z",
+ "closed_at": "2018-11-16T11:34:44Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/392",
+ "html_url": "https://github.com/github-api/github-api/pull/392",
+ "diff_url": "https://github.com/github-api/github-api/pull/392.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/392.patch"
+ },
+ "body": null
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/391",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/391/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/391/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/391/events",
+ "html_url": "https://github.com/github-api/github-api/pull/391",
+ "id": 269745298,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQ5NjMxMDEw",
+ "number": 391,
+ "title": "Add get for all organizations",
+ "user": {
+ "login": "scotty-g",
+ "id": 7861050,
+ "node_id": "MDQ6VXNlcjc4NjEwNTA=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/7861050?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/scotty-g",
+ "html_url": "https://github.com/scotty-g",
+ "followers_url": "https://api.github.com/users/scotty-g/followers",
+ "following_url": "https://api.github.com/users/scotty-g/following{/other_user}",
+ "gists_url": "https://api.github.com/users/scotty-g/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/scotty-g/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/scotty-g/subscriptions",
+ "organizations_url": "https://api.github.com/users/scotty-g/orgs",
+ "repos_url": "https://api.github.com/users/scotty-g/repos",
+ "events_url": "https://api.github.com/users/scotty-g/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/scotty-g/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-10-30T20:36:48Z",
+ "updated_at": "2018-01-13T05:07:21Z",
+ "closed_at": "2018-01-13T05:07:21Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/391",
+ "html_url": "https://github.com/github-api/github-api/pull/391",
+ "diff_url": "https://github.com/github-api/github-api/pull/391.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/391.patch"
+ },
+ "body": "Add support for fetching all organizations using the [`/organizations`](https://developer.github.com/v3/orgs/#list-all-organizations) endpoint. Supports paging and allows for the page size to be specified."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/390",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/390/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/390/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/390/events",
+ "html_url": "https://github.com/github-api/github-api/pull/390",
+ "id": 268372550,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQ4NjQ4NjY4",
+ "number": 390,
+ "title": "Labels: add method to update color",
+ "user": {
+ "login": "batmat",
+ "id": 223853,
+ "node_id": "MDQ6VXNlcjIyMzg1Mw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/223853?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/batmat",
+ "html_url": "https://github.com/batmat",
+ "followers_url": "https://api.github.com/users/batmat/followers",
+ "following_url": "https://api.github.com/users/batmat/following{/other_user}",
+ "gists_url": "https://api.github.com/users/batmat/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/batmat/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/batmat/subscriptions",
+ "organizations_url": "https://api.github.com/users/batmat/orgs",
+ "repos_url": "https://api.github.com/users/batmat/repos",
+ "events_url": "https://api.github.com/users/batmat/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/batmat/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2017-10-25T12:08:04Z",
+ "updated_at": "2017-10-31T15:45:04Z",
+ "closed_at": "2017-10-28T14:45:37Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/390",
+ "html_url": "https://github.com/github-api/github-api/pull/390",
+ "diff_url": "https://github.com/github-api/github-api/pull/390.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/390.patch"
+ },
+ "body": "Currently impossible to update a label, this PR adds this support.\r\n\r\n@kohsuke "
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/389",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/389/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/389/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/389/events",
+ "html_url": "https://github.com/github-api/github-api/pull/389",
+ "id": 268193269,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQ4NTE4Njg1",
+ "number": 389,
+ "title": "Fixed OAuth connection to enterprise API",
+ "user": {
+ "login": "dorian808080",
+ "id": 9301649,
+ "node_id": "MDQ6VXNlcjkzMDE2NDk=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/9301649?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dorian808080",
+ "html_url": "https://github.com/dorian808080",
+ "followers_url": "https://api.github.com/users/dorian808080/followers",
+ "following_url": "https://api.github.com/users/dorian808080/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dorian808080/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dorian808080/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dorian808080/subscriptions",
+ "organizations_url": "https://api.github.com/users/dorian808080/orgs",
+ "repos_url": "https://api.github.com/users/dorian808080/repos",
+ "events_url": "https://api.github.com/users/dorian808080/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dorian808080/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2017-10-24T21:32:21Z",
+ "updated_at": "2017-10-28T14:55:00Z",
+ "closed_at": "2017-10-28T14:55:00Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/389",
+ "html_url": "https://github.com/github-api/github-api/pull/389",
+ "diff_url": "https://github.com/github-api/github-api/pull/389.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/389.patch"
+ },
+ "body": "I see that the change to OAuth was made a long time ago. I just started using this library at work, and we use GitHub Enterprise. \r\n\r\nWhen connecting with OAuth, I was getting a failure on the connection when using `GitHub.connectToEnterprise(apiUrl, oauthAccessToken)` I noticed that there was no option to use login. I thought this was strange and tried to get to the bottom of it. \r\n\r\nThe reason I have proposed the fix in this way was so that I didn't break the existing functionality (I don't think it was functioning as intended, but if it has gone this long without fixing I have to assume it is working for someone). That is why I didn't touch the existing method.\r\n\r\nI am new to this project, so if there is more that I need to do for this to meet your requirements, please let me know."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/388",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/388/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/388/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/388/events",
+ "html_url": "https://github.com/github-api/github-api/pull/388",
+ "id": 267704660,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQ4MTU3NzEw",
+ "number": 388,
+ "title": "Fix for #387: numeric value out of range of int",
+ "user": {
+ "login": "aburmeis",
+ "id": 5594071,
+ "node_id": "MDQ6VXNlcjU1OTQwNzE=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/5594071?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/aburmeis",
+ "html_url": "https://github.com/aburmeis",
+ "followers_url": "https://api.github.com/users/aburmeis/followers",
+ "following_url": "https://api.github.com/users/aburmeis/following{/other_user}",
+ "gists_url": "https://api.github.com/users/aburmeis/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/aburmeis/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/aburmeis/subscriptions",
+ "organizations_url": "https://api.github.com/users/aburmeis/orgs",
+ "repos_url": "https://api.github.com/users/aburmeis/repos",
+ "events_url": "https://api.github.com/users/aburmeis/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/aburmeis/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 24,
+ "created_at": "2017-10-23T15:06:34Z",
+ "updated_at": "2017-11-27T06:15:13Z",
+ "closed_at": "2017-10-28T16:01:16Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/388",
+ "html_url": "https://github.com/github-api/github-api/pull/388",
+ "diff_url": "https://github.com/github-api/github-api/pull/388.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/388.patch"
+ },
+ "body": "fix for #387:\r\n* migrated int id to long\r\n* updated dependencies"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/387",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/387/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/387/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/387/events",
+ "html_url": "https://github.com/github-api/github-api/issues/387",
+ "id": 266555652,
+ "node_id": "MDU6SXNzdWUyNjY1NTU2NTI=",
+ "number": 387,
+ "title": "Numeric value out of range of int",
+ "user": {
+ "login": "ievgen-kolomiiets",
+ "id": 3626323,
+ "node_id": "MDQ6VXNlcjM2MjYzMjM=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/3626323?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ievgen-kolomiiets",
+ "html_url": "https://github.com/ievgen-kolomiiets",
+ "followers_url": "https://api.github.com/users/ievgen-kolomiiets/followers",
+ "following_url": "https://api.github.com/users/ievgen-kolomiiets/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ievgen-kolomiiets/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ievgen-kolomiiets/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ievgen-kolomiiets/subscriptions",
+ "organizations_url": "https://api.github.com/users/ievgen-kolomiiets/orgs",
+ "repos_url": "https://api.github.com/users/ievgen-kolomiiets/repos",
+ "events_url": "https://api.github.com/users/ievgen-kolomiiets/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ievgen-kolomiiets/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 13,
+ "created_at": "2017-10-18T16:21:50Z",
+ "updated_at": "2017-11-09T14:38:14Z",
+ "closed_at": "2017-11-02T08:24:04Z",
+ "author_association": "NONE",
+ "body": "I use GitHub commit status plugin to set commit status at the end of the build and get next error:\r\n```\r\ncom.fasterxml.jackson.core.JsonParseException: Numeric value (4295001555) out of range of int\r\n at [Source: {\"url\":\"https://api.github.com/repos/organiztion/repo/statuses/120ba5d2a8719c59a8c5b28b116049330121349e\",\"id\":4295001555,\"state\":\"success\",\"description\":\"Build #4 succeeded in 1 min 8 sec\",\"target_url\":\"target_url\",\"context\":\"context\",\"created_at\":\"2017-10-18T14:36:05Z\",\"updated_at\":\"2017-10-18T14:36:05Z\"}; line: 1, column: 134]\r\n\tat com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1702)\r\n\tat com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:558)\r\n\tat com.fasterxml.jackson.core.base.ParserBase.convertNumberToInt(ParserBase.java:928)\r\n\tat com.fasterxml.jackson.core.base.ParserBase._parseIntValue(ParserBase.java:866)\r\n\tat com.fasterxml.jackson.core.base.ParserBase.getIntValue(ParserBase.java:694)\r\n\tat com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:306)\r\n\tat com.fasterxml.jackson.databind.deser.std.NumberDeserializers$IntegerDeserializer.deserialize(NumberDeserializers.java:286)\r\n\tat com.fasterxml.jackson.databind.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:504)\r\n\tat com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:108)\r\n\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:276)\r\nCaused: com.fasterxml.jackson.databind.JsonMappingException: Numeric value (4295001555) out of range of int\r\n at [Source: {\"url\":\"https://api.github.com/repos/organization/repo/statuses/120ba5d2a8719c59a8c5b28b116049330121349e\",\"id\":4295001555,\"state\":\"success\",\"description\":\"Build #4 succeeded in 1 min 8 sec\",\"target_url\":\"target_url\",\"context\":\"context\"}; line: 1, column: 134]\r\n at [Source: {\"url\":\"https://api.github.com/repos/organization/repo/statuses/120ba5d2a8719c59a8c5b28b116049330121349e\",\"id\":4295001555,\"state\":\"success\",\"description\":\"Build #4 succeeded in 1 min 8 sec\",\"target_url\":\"target_url\",\"context\":\"context\",\"created_at\":\"2017-10-18T14:36:05Z\",\"updated_at\":\"2017-10-18T14:36:05Z\"}; line: 1, column: 124] (through reference chain: org.kohsuke.github.GHCommitStatus[\"id\"])\r\n\tat com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:388)\r\n\tat com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:348)\r\n\tat com.fasterxml.jackson.databind.deser.BeanDeserializerBase.wrapAndThrow(BeanDeserializerBase.java:1607)\r\n\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:278)\r\n\tat com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:140)\r\n\tat com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3798)\r\n\tat com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2842)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:616)\r\nCaused: java.io.IOException: Failed to deserialize {\"url\":\"https://api.github.com/repos/organization/repo/statuses/120ba5d2a8719c59a8c5b28b116049330121349e\",\"id\":4295001555,\"state\":\"success\",\"description\":\"Build #4 succeeded in 1 min 8 sec\",\"target_url\":\"target_url\",\"context\":\"context\",\"created_at\":\"2017-10-18T14:36:05Z\",\"updated_at\":\"2017-10-18T14:36:05Z\"}\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:618)\r\nCaused: org.kohsuke.github.HttpException: Server returned HTTP response code: 201, message: 'Created' for URL: https://api.github.com/repos/organization/repo/statuses/120ba5d2a8719c59a8c5b28b116049330121349e\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:633)\r\n\tat org.kohsuke.github.Requester.parse(Requester.java:594)\r\n\tat org.kohsuke.github.Requester._to(Requester.java:272)\r\n\tat org.kohsuke.github.Requester.to(Requester.java:234)\r\n\tat org.kohsuke.github.GHRepository.createCommitStatus(GHRepository.java:1071)\r\n\tat org.jenkinsci.plugins.github.status.GitHubCommitStatusSetter.perform(GitHubCommitStatusSetter.java:160)\r\nCaused: org.jenkinsci.plugins.github.common.CombineErrorHandler$ErrorHandlingException\r\n\tat org.jenkinsci.plugins.github.common.CombineErrorHandler.handle(CombineErrorHandler.java:74)\r\n\tat org.jenkinsci.plugins.github.status.GitHubCommitStatusSetter.perform(GitHubCommitStatusSetter.java:164)\r\n\tat hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:81)\r\n\tat hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)\r\n\tat hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:736)\r\n\tat hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:682)\r\n\tat hudson.model.Build$BuildExecution.post2(Build.java:186)\r\n\tat hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:627)\r\n\tat hudson.model.Run.execute(Run.java:1762)\r\n\tat hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)\r\n\tat hudson.model.ResourceController.execute(ResourceController.java:97)\r\n\tat hudson.model.Executor.run(Executor.java:421)\r\n```\r\n\r\nIt looks like response from GitHub API contains `id` value `4295001555` that is bigger than `int`."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/386",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/386/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/386/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/386/events",
+ "html_url": "https://github.com/github-api/github-api/issues/386",
+ "id": 264225277,
+ "node_id": "MDU6SXNzdWUyNjQyMjUyNzc=",
+ "number": 386,
+ "title": "Diff URL with auth",
+ "user": {
+ "login": "lwis",
+ "id": 873275,
+ "node_id": "MDQ6VXNlcjg3MzI3NQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/873275?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lwis",
+ "html_url": "https://github.com/lwis",
+ "followers_url": "https://api.github.com/users/lwis/followers",
+ "following_url": "https://api.github.com/users/lwis/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lwis/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lwis/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lwis/subscriptions",
+ "organizations_url": "https://api.github.com/users/lwis/orgs",
+ "repos_url": "https://api.github.com/users/lwis/repos",
+ "events_url": "https://api.github.com/users/lwis/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lwis/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-10-10T13:20:44Z",
+ "updated_at": "2018-01-13T05:33:52Z",
+ "closed_at": "2018-01-13T05:33:52Z",
+ "author_association": "NONE",
+ "body": "Hi,\r\n\r\nDoes the current API offer any way of retrieving a diff with auth? Diffs are currently represented as a URL within the API to my knowledge?"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/385",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/385/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/385/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/385/events",
+ "html_url": "https://github.com/github-api/github-api/pull/385",
+ "id": 263315104,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQ1MDU3MzY2",
+ "number": 385,
+ "title": "Addressing issue #348. This will allow skipping to a page number for",
+ "user": {
+ "login": "nodoze",
+ "id": 2439314,
+ "node_id": "MDQ6VXNlcjI0MzkzMTQ=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/2439314?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/nodoze",
+ "html_url": "https://github.com/nodoze",
+ "followers_url": "https://api.github.com/users/nodoze/followers",
+ "following_url": "https://api.github.com/users/nodoze/following{/other_user}",
+ "gists_url": "https://api.github.com/users/nodoze/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/nodoze/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/nodoze/subscriptions",
+ "organizations_url": "https://api.github.com/users/nodoze/orgs",
+ "repos_url": "https://api.github.com/users/nodoze/repos",
+ "events_url": "https://api.github.com/users/nodoze/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/nodoze/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-10-06T01:47:26Z",
+ "updated_at": "2018-01-13T05:10:30Z",
+ "closed_at": "2018-01-13T05:10:30Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/385",
+ "html_url": "https://github.com/github-api/github-api/pull/385",
+ "diff_url": "https://github.com/github-api/github-api/pull/385.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/385.patch"
+ },
+ "body": "the all the search builders . The alternative is to implement it at the page\r\nPagedIterable level which will require changes throughout all the\r\nclasses that reference it. Since this is primarily a search issue this\r\nsolution might suffice.\r\n\r\nAlso added support for the repository search parameter \"topic\""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/384",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/384/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/384/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/384/events",
+ "html_url": "https://github.com/github-api/github-api/pull/384",
+ "id": 263295203,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQ1MDQyODI0",
+ "number": 384,
+ "title": "Add support for pr review/review comment events",
+ "user": {
+ "login": "mattnelson",
+ "id": 1894657,
+ "node_id": "MDQ6VXNlcjE4OTQ2NTc=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1894657?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mattnelson",
+ "html_url": "https://github.com/mattnelson",
+ "followers_url": "https://api.github.com/users/mattnelson/followers",
+ "following_url": "https://api.github.com/users/mattnelson/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mattnelson/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mattnelson/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mattnelson/subscriptions",
+ "organizations_url": "https://api.github.com/users/mattnelson/orgs",
+ "repos_url": "https://api.github.com/users/mattnelson/repos",
+ "events_url": "https://api.github.com/users/mattnelson/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mattnelson/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-10-05T23:17:15Z",
+ "updated_at": "2018-01-15T20:36:09Z",
+ "closed_at": "2018-01-13T18:31:39Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/384",
+ "html_url": "https://github.com/github-api/github-api/pull/384",
+ "diff_url": "https://github.com/github-api/github-api/pull/384.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/384.patch"
+ },
+ "body": "Add support for pr review/review comment events building on #352 \r\n\r\nThere was one non-passive change with `GHPullRequestReviewState` the enum value did not match the value returned from the github API. I verified this on github.com and an enterprise instance."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/381",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/381/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/381/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/381/events",
+ "html_url": "https://github.com/github-api/github-api/issues/381",
+ "id": 260249716,
+ "node_id": "MDU6SXNzdWUyNjAyNDk3MTY=",
+ "number": 381,
+ "title": "Branch name is not being correctly URL encoded",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2017-09-25T11:59:12Z",
+ "updated_at": "2019-09-26T00:29:27Z",
+ "closed_at": "2019-09-26T00:29:27Z",
+ "author_association": "CONTRIBUTOR",
+ "body": "See https://issues.jenkins-ci.org/browse/JENKINS-46898\r\n\r\nSeems `#` is a valid character in a branch name but the URLs are not being correctly constructed causing it to be interpreted by GitHub as a document fragment identifier"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/380",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/380/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/380/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/380/events",
+ "html_url": "https://github.com/github-api/github-api/issues/380",
+ "id": 260080783,
+ "node_id": "MDU6SXNzdWUyNjAwODA3ODM=",
+ "number": 380,
+ "title": "add a comment to a pull Request",
+ "user": {
+ "login": "sbuisson",
+ "id": 10981701,
+ "node_id": "MDQ6VXNlcjEwOTgxNzAx",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/10981701?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/sbuisson",
+ "html_url": "https://github.com/sbuisson",
+ "followers_url": "https://api.github.com/users/sbuisson/followers",
+ "following_url": "https://api.github.com/users/sbuisson/following{/other_user}",
+ "gists_url": "https://api.github.com/users/sbuisson/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/sbuisson/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/sbuisson/subscriptions",
+ "organizations_url": "https://api.github.com/users/sbuisson/orgs",
+ "repos_url": "https://api.github.com/users/sbuisson/repos",
+ "events_url": "https://api.github.com/users/sbuisson/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/sbuisson/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2017-09-24T12:32:33Z",
+ "updated_at": "2018-01-21T19:57:52Z",
+ "closed_at": "2018-01-21T19:57:52Z",
+ "author_association": "NONE",
+ "body": "Hello,\r\nIt's seem that your api don't implement the creation of a comment for a pullRequest:\r\nPOST /repos/:owner/:repo/pulls/:number/comments\r\n\r\nthe doc here:\r\nhttps://developer.github.com/v3/pulls/comments/#create-a-comment"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/379",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/379/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/379/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/379/events",
+ "html_url": "https://github.com/github-api/github-api/pull/379",
+ "id": 259160221,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQyMDk3Mzk3",
+ "number": 379,
+ "title": "Roles for team members",
+ "user": {
+ "login": "amberovsky",
+ "id": 477339,
+ "node_id": "MDQ6VXNlcjQ3NzMzOQ==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/477339?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/amberovsky",
+ "html_url": "https://github.com/amberovsky",
+ "followers_url": "https://api.github.com/users/amberovsky/followers",
+ "following_url": "https://api.github.com/users/amberovsky/following{/other_user}",
+ "gists_url": "https://api.github.com/users/amberovsky/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/amberovsky/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/amberovsky/subscriptions",
+ "organizations_url": "https://api.github.com/users/amberovsky/orgs",
+ "repos_url": "https://api.github.com/users/amberovsky/repos",
+ "events_url": "https://api.github.com/users/amberovsky/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/amberovsky/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-09-20T13:19:40Z",
+ "updated_at": "2018-01-13T05:13:01Z",
+ "closed_at": "2018-01-13T05:13:01Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/379",
+ "html_url": "https://github.com/github-api/github-api/pull/379",
+ "diff_url": "https://github.com/github-api/github-api/pull/379.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/379.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/378",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/378/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/378/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/378/events",
+ "html_url": "https://github.com/github-api/github-api/pull/378",
+ "id": 257490943,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTQwOTA3NDM2",
+ "number": 378,
+ "title": "bridge-method-annotation should be an optional dep",
+ "user": {
+ "login": "jglick",
+ "id": 154109,
+ "node_id": "MDQ6VXNlcjE1NDEwOQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/154109?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jglick",
+ "html_url": "https://github.com/jglick",
+ "followers_url": "https://api.github.com/users/jglick/followers",
+ "following_url": "https://api.github.com/users/jglick/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jglick/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jglick/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jglick/subscriptions",
+ "organizations_url": "https://api.github.com/users/jglick/orgs",
+ "repos_url": "https://api.github.com/users/jglick/repos",
+ "events_url": "https://api.github.com/users/jglick/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jglick/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2017-09-13T19:15:59Z",
+ "updated_at": "2018-01-17T16:49:26Z",
+ "closed_at": "2018-01-13T05:15:54Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/378",
+ "html_url": "https://github.com/github-api/github-api/pull/378",
+ "diff_url": "https://github.com/github-api/github-api/pull/378.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/378.patch"
+ },
+ "body": "b6e48cc4f9c7b13895673a7b4aa6399b7e236b1f introduced a hard dep on a lib which is newer than that currently bundled in core, causing problems for `requireUpperBoundDeps`.\r\n\r\n@reviewbybees"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/375",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/375/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/375/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/375/events",
+ "html_url": "https://github.com/github-api/github-api/pull/375",
+ "id": 254618332,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTM4ODc0MzQy",
+ "number": 375,
+ "title": "Add basic support for tag objects",
+ "user": {
+ "login": "stephenc",
+ "id": 209336,
+ "node_id": "MDQ6VXNlcjIwOTMzNg==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/209336?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/stephenc",
+ "html_url": "https://github.com/stephenc",
+ "followers_url": "https://api.github.com/users/stephenc/followers",
+ "following_url": "https://api.github.com/users/stephenc/following{/other_user}",
+ "gists_url": "https://api.github.com/users/stephenc/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/stephenc/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/stephenc/subscriptions",
+ "organizations_url": "https://api.github.com/users/stephenc/orgs",
+ "repos_url": "https://api.github.com/users/stephenc/repos",
+ "events_url": "https://api.github.com/users/stephenc/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/stephenc/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-09-01T11:53:04Z",
+ "updated_at": "2017-11-01T15:50:03Z",
+ "closed_at": "2017-09-08T22:49:34Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/375",
+ "html_url": "https://github.com/github-api/github-api/pull/375",
+ "diff_url": "https://github.com/github-api/github-api/pull/375.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/375.patch"
+ },
+ "body": "@reviewbybees"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/374",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/374/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/374/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/374/events",
+ "html_url": "https://github.com/github-api/github-api/issues/374",
+ "id": 252585243,
+ "node_id": "MDU6SXNzdWUyNTI1ODUyNDM=",
+ "number": 374,
+ "title": "Implement the new invitations API",
+ "user": {
+ "login": "jdubois",
+ "id": 316835,
+ "node_id": "MDQ6VXNlcjMxNjgzNQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/316835?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jdubois",
+ "html_url": "https://github.com/jdubois",
+ "followers_url": "https://api.github.com/users/jdubois/followers",
+ "following_url": "https://api.github.com/users/jdubois/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jdubois/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jdubois/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jdubois/subscriptions",
+ "organizations_url": "https://api.github.com/users/jdubois/orgs",
+ "repos_url": "https://api.github.com/users/jdubois/repos",
+ "events_url": "https://api.github.com/users/jdubois/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jdubois/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-08-24T12:27:31Z",
+ "updated_at": "2018-08-30T03:19:28Z",
+ "closed_at": "2018-08-30T03:19:28Z",
+ "author_association": "NONE",
+ "body": "Since yesterday the new invitations API is live:\r\nhttps://developer.github.com/changes/2017-08-23-repository-invitation-api/\r\n\r\nImplementing this API is necessary in order to be able to accept repository invitations."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/373",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/373/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/373/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/373/events",
+ "html_url": "https://github.com/github-api/github-api/pull/373",
+ "id": 252322218,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTM3MjQ3NTc4",
+ "number": 373,
+ "title": "Retry all HttpException & SocketException in to methods (workaround http -1)",
+ "user": {
+ "login": "borgstrom",
+ "id": 1594130,
+ "node_id": "MDQ6VXNlcjE1OTQxMzA=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1594130?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/borgstrom",
+ "html_url": "https://github.com/borgstrom",
+ "followers_url": "https://api.github.com/users/borgstrom/followers",
+ "following_url": "https://api.github.com/users/borgstrom/following{/other_user}",
+ "gists_url": "https://api.github.com/users/borgstrom/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/borgstrom/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/borgstrom/subscriptions",
+ "organizations_url": "https://api.github.com/users/borgstrom/orgs",
+ "repos_url": "https://api.github.com/users/borgstrom/repos",
+ "events_url": "https://api.github.com/users/borgstrom/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/borgstrom/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 9,
+ "created_at": "2017-08-23T15:22:51Z",
+ "updated_at": "2019-06-25T18:56:08Z",
+ "closed_at": "2019-06-25T14:27:07Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/373",
+ "html_url": "https://github.com/github-api/github-api/pull/373",
+ "diff_url": "https://github.com/github-api/github-api/pull/373.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/373.patch"
+ },
+ "body": "This PR is the result of needing to work around https://issues.jenkins-ci.org/browse/JENKINS-45142\r\n\r\nWe were seeing the following error quite frequently when scanning all repos in our github org:\r\n\r\n```\r\nERROR: Server returned HTTP response code: -1, message: 'null' for URL: https://api.github.com\r\njava.net.SocketException: Socket closed\r\n```\r\n\r\nThe retry code in parse was not working as expected, so this moves the retry code directly into the `to` methods."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/372",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/372/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/372/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/372/events",
+ "html_url": "https://github.com/github-api/github-api/issues/372",
+ "id": 251837836,
+ "node_id": "MDU6SXNzdWUyNTE4Mzc4MzY=",
+ "number": 372,
+ "title": " fields yeld NPE on getX operations.",
+ "user": {
+ "login": "baranowb",
+ "id": 574886,
+ "node_id": "MDQ6VXNlcjU3NDg4Ng==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/574886?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/baranowb",
+ "html_url": "https://github.com/baranowb",
+ "followers_url": "https://api.github.com/users/baranowb/followers",
+ "following_url": "https://api.github.com/users/baranowb/following{/other_user}",
+ "gists_url": "https://api.github.com/users/baranowb/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/baranowb/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/baranowb/subscriptions",
+ "organizations_url": "https://api.github.com/users/baranowb/orgs",
+ "repos_url": "https://api.github.com/users/baranowb/repos",
+ "events_url": "https://api.github.com/users/baranowb/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/baranowb/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2017-08-22T04:54:33Z",
+ "updated_at": "2017-11-23T10:16:36Z",
+ "closed_at": "2017-09-09T21:07:27Z",
+ "author_association": "NONE",
+ "body": "GHPullRequest@645aa696[base=org.kohsuke.github.GHCommitPointer@7ce026d3,head=org.kohsuke.github.GHCommitPointer@7ce69770,additions=1,merged=false,mergeable=,deletions=1,assignee=,state=open,number=1903,comments=2,labels=,title=XXXXX,milestone=,url=PR_URL,id=122473208]\r\n\r\n\r\nWill throw NPE on .getMergeable()\r\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/369",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/369/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/369/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/369/events",
+ "html_url": "https://github.com/github-api/github-api/pull/369",
+ "id": 248840471,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTM0NzU0MjE2",
+ "number": 369,
+ "title": "- improve branch protection support",
+ "user": {
+ "login": "jgangemi",
+ "id": 1831839,
+ "node_id": "MDQ6VXNlcjE4MzE4Mzk=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1831839?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jgangemi",
+ "html_url": "https://github.com/jgangemi",
+ "followers_url": "https://api.github.com/users/jgangemi/followers",
+ "following_url": "https://api.github.com/users/jgangemi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jgangemi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jgangemi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jgangemi/subscriptions",
+ "organizations_url": "https://api.github.com/users/jgangemi/orgs",
+ "repos_url": "https://api.github.com/users/jgangemi/repos",
+ "events_url": "https://api.github.com/users/jgangemi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jgangemi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2017-08-08T20:43:36Z",
+ "updated_at": "2017-09-08T21:13:42Z",
+ "closed_at": "2017-09-08T21:13:41Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/369",
+ "html_url": "https://github.com/github-api/github-api/pull/369",
+ "diff_url": "https://github.com/github-api/github-api/pull/369.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/369.patch"
+ },
+ "body": "this is a re-submission of #340. i'd like to see this get some traction and thought this the best way to grab attention.\r\n\r\nthe PR will improves the support around protected branches and bring it inline w/ the current experimental api. the current implementation doesn't work (properly at least) and given how i interpreted the @Preview docs, it did not seem i was bound to maintain existing method signatures.\r\n\r\ni'd like to be able to add some user/team restriction tests, but that requires a repository in an organization."
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/368",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/368/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/368/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/368/events",
+ "html_url": "https://github.com/github-api/github-api/pull/368",
+ "id": 246956376,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTMzMzg5MzA1",
+ "number": 368,
+ "title": "Added support for traffic statistics (number of views and clones)",
+ "user": {
+ "login": "adw1n",
+ "id": 8993001,
+ "node_id": "MDQ6VXNlcjg5OTMwMDE=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/8993001?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/adw1n",
+ "html_url": "https://github.com/adw1n",
+ "followers_url": "https://api.github.com/users/adw1n/followers",
+ "following_url": "https://api.github.com/users/adw1n/following{/other_user}",
+ "gists_url": "https://api.github.com/users/adw1n/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/adw1n/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/adw1n/subscriptions",
+ "organizations_url": "https://api.github.com/users/adw1n/orgs",
+ "repos_url": "https://api.github.com/users/adw1n/repos",
+ "events_url": "https://api.github.com/users/adw1n/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/adw1n/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2017-08-01T05:08:45Z",
+ "updated_at": "2017-09-09T18:40:59Z",
+ "closed_at": "2017-09-09T18:40:59Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/368",
+ "html_url": "https://github.com/github-api/github-api/pull/368",
+ "diff_url": "https://github.com/github-api/github-api/pull/368.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/368.patch"
+ },
+ "body": "Added support for:\r\n* https://developer.github.com/v3/repos/traffic/#views\r\n* https://developer.github.com/v3/repos/traffic/#clones\r\n\r\nby adding to the GHRepository class public methods:\r\n* getViews\r\n* getClones\r\n\r\nAlso introduced new public classes:\r\n* GHRepositoryViews\r\n* GHRepositoryClones\r\n* GHRepositoryTrafficInfo (do you want this one to be public?)"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-e22232e4-eb5c-4657-b485-171936f6174e.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-e22232e4-eb5c-4657-b485-171936f6174e.json
new file mode 100644
index 000000000..0ccbcc2dc
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-e22232e4-eb5c-4657-b485-171936f6174e.json
@@ -0,0 +1,1004 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/21",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/21/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/21/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/21/events",
+ "html_url": "https://github.com/github-api/github-api/pull/21",
+ "id": 7135183,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjQ1MDAzMQ==",
+ "number": 21,
+ "title": "tweaks to enable access to github enterprise instances",
+ "user": {
+ "login": "toddtomkinson",
+ "id": 279614,
+ "node_id": "MDQ6VXNlcjI3OTYxNA==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/279614?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/toddtomkinson",
+ "html_url": "https://github.com/toddtomkinson",
+ "followers_url": "https://api.github.com/users/toddtomkinson/followers",
+ "following_url": "https://api.github.com/users/toddtomkinson/following{/other_user}",
+ "gists_url": "https://api.github.com/users/toddtomkinson/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/toddtomkinson/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/toddtomkinson/subscriptions",
+ "organizations_url": "https://api.github.com/users/toddtomkinson/orgs",
+ "repos_url": "https://api.github.com/users/toddtomkinson/repos",
+ "events_url": "https://api.github.com/users/toddtomkinson/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/toddtomkinson/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 5,
+ "created_at": "2012-09-25T21:43:39Z",
+ "updated_at": "2014-07-01T17:26:23Z",
+ "closed_at": "2013-01-06T01:12:33Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/21",
+ "html_url": "https://github.com/github-api/github-api/pull/21",
+ "diff_url": "https://github.com/github-api/github-api/pull/21.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/21.patch"
+ },
+ "body": "The api on github enterprise instances is available at /api/v3. This change looks at the githubServer parameter and sets the 'ApiURL' accordingly.\n\nAlso added another constructor that takes the githubServer as a parameter along with login, password, and apiToken.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/20",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/20/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/20/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/20/events",
+ "html_url": "https://github.com/github-api/github-api/issues/20",
+ "id": 6760891,
+ "node_id": "MDU6SXNzdWU2NzYwODkx",
+ "number": 20,
+ "title": "GHIssue.getComments() throws NoSuchElementException when there are no comments",
+ "user": {
+ "login": "janinko",
+ "id": 644267,
+ "node_id": "MDQ6VXNlcjY0NDI2Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/644267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/janinko",
+ "html_url": "https://github.com/janinko",
+ "followers_url": "https://api.github.com/users/janinko/followers",
+ "following_url": "https://api.github.com/users/janinko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/janinko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/janinko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/janinko/subscriptions",
+ "organizations_url": "https://api.github.com/users/janinko/orgs",
+ "repos_url": "https://api.github.com/users/janinko/repos",
+ "events_url": "https://api.github.com/users/janinko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/janinko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2012-09-10T12:48:54Z",
+ "updated_at": "2012-09-13T22:46:52Z",
+ "closed_at": "2012-09-13T22:46:52Z",
+ "author_association": "COLLABORATOR",
+ "body": "When trying to get comments for pull requests with no comments `NoSuchElementException` is thrown. \nI would except empty list instead.\n\n```\njava.util.NoSuchElementException\n at org.kohsuke.github.Requester$1.next(Requester.java:212)\n at org.kohsuke.github.PagedIterator.fetch(PagedIterator.java:42)\n at org.kohsuke.github.PagedIterator.nextPage(PagedIterator.java:57)\n at org.kohsuke.github.PagedIterable.asList(PagedIterable.java:20)\n at org.kohsuke.github.GHIssue.getComments(GHIssue.java:184)\n```\n\n---\n\n API response for `/repos/janinko/test/issues/7/comments` with no comments - there are no `Link` header and returns empty array:\n\n```\nHTTP/1.1 200 OK\nServer: nginx\nDate: Mon, 10 Sep 2012 12:11:37 GMT\nContent-Type: application/json; charset=utf-8\nConnection: keep-alive\nStatus: 200 OK\nCache-Control: max-age=0, private, must-revalidate\nX-Content-Type-Options: nosniff\nETag: \"a00049ba79152d03380c34652f2cb612\"\nContent-Length: 5\nX-RateLimit-Limit: 5000\nX-GitHub-Media-Type: github.beta\nX-RateLimit-Remaining: 4957\n\n[\n\n]\n```\n\nSo IMHO in `PagedIterable.asList()` `i.hasNext()` returns true because it has next (but empty) array. \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/19",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/19/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/19/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/19/events",
+ "html_url": "https://github.com/github-api/github-api/pull/19",
+ "id": 6713330,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjMyMDQyOA==",
+ "number": 19,
+ "title": "PagedIterable dosn't use authentication",
+ "user": {
+ "login": "janinko",
+ "id": 644267,
+ "node_id": "MDQ6VXNlcjY0NDI2Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/644267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/janinko",
+ "html_url": "https://github.com/janinko",
+ "followers_url": "https://api.github.com/users/janinko/followers",
+ "following_url": "https://api.github.com/users/janinko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/janinko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/janinko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/janinko/subscriptions",
+ "organizations_url": "https://api.github.com/users/janinko/orgs",
+ "repos_url": "https://api.github.com/users/janinko/repos",
+ "events_url": "https://api.github.com/users/janinko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/janinko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2012-09-07T12:54:08Z",
+ "updated_at": "2014-06-17T16:32:24Z",
+ "closed_at": "2012-09-13T22:32:57Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/19",
+ "html_url": "https://github.com/github-api/github-api/pull/19",
+ "diff_url": "https://github.com/github-api/github-api/pull/19.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/19.patch"
+ },
+ "body": "When retrieving eg. pull requests or comments, authentication isn't used. For public repositories it's ok, but for private it ends up with `java.io.FileNotFoundException`\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/18",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/18/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/18/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/18/events",
+ "html_url": "https://github.com/github-api/github-api/pull/18",
+ "id": 6685445,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjI2MzA4MQ==",
+ "number": 18,
+ "title": "When using lazy population, this is not deprecated",
+ "user": {
+ "login": "janinko",
+ "id": 644267,
+ "node_id": "MDQ6VXNlcjY0NDI2Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/644267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/janinko",
+ "html_url": "https://github.com/janinko",
+ "followers_url": "https://api.github.com/users/janinko/followers",
+ "following_url": "https://api.github.com/users/janinko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/janinko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/janinko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/janinko/subscriptions",
+ "organizations_url": "https://api.github.com/users/janinko/orgs",
+ "repos_url": "https://api.github.com/users/janinko/repos",
+ "events_url": "https://api.github.com/users/janinko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/janinko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2012-09-06T11:24:02Z",
+ "updated_at": "2014-07-01T17:26:24Z",
+ "closed_at": "2012-09-07T16:52:12Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/18",
+ "html_url": "https://github.com/github-api/github-api/pull/18",
+ "diff_url": "https://github.com/github-api/github-api/pull/18.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/18.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/17",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/17/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/17/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/17/events",
+ "html_url": "https://github.com/github-api/github-api/pull/17",
+ "id": 6579724,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjIxNzc4Mg==",
+ "number": 17,
+ "title": "Issues pull requests apiv3",
+ "user": {
+ "login": "janinko",
+ "id": 644267,
+ "node_id": "MDQ6VXNlcjY0NDI2Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/644267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/janinko",
+ "html_url": "https://github.com/janinko",
+ "followers_url": "https://api.github.com/users/janinko/followers",
+ "following_url": "https://api.github.com/users/janinko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/janinko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/janinko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/janinko/subscriptions",
+ "organizations_url": "https://api.github.com/users/janinko/orgs",
+ "repos_url": "https://api.github.com/users/janinko/repos",
+ "events_url": "https://api.github.com/users/janinko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/janinko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2012-08-31T14:11:53Z",
+ "updated_at": "2014-06-13T15:22:06Z",
+ "closed_at": "2012-09-06T02:27:56Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/17",
+ "html_url": "https://github.com/github-api/github-api/pull/17",
+ "diff_url": "https://github.com/github-api/github-api/pull/17.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/17.patch"
+ },
+ "body": "**Overview**\nI cleaned up GHIssue and GHPullRequest and make them relevant to api v3\n\nAdded SmallUser representing reference to user. In api this user is represented by: \n\n```\n \"user\": {\n \"login\": \"janinko\",\n \"avatar_url\": \"https://secure.gravatar.com/avatar/bf8425ee432f7e9748f9e1c540a125ed?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png\",\n \"url\": \"https://api.github.com/users/janinko\",\n \"gravatar_id\": \"bf8425ee432f7e9748f9e1c540a125ed\",\n \"id\": 644267\n },\n```\n\nAdded DetailedPullRequest - when retrieving pull request by id, it has more attributes then pull requests obtained by GHRepository.getPullRequests(). The attributes are:\n\n```\nmerged_by - SmallUser\nreview_comments - int\nadditions - int\nmerged - boolean\nmergeable - Boolean\ndeletions - int\nmergeable_state - String (\"unknown\", \"dirty\", \"clean\")\nchanged_files - int\n```\n\n**Possible issues**\nI'm not sure if change in b40677a3ca5fe8f614c55e53ee12d1305e227352 is OK. I changed return value of GHRepository.getPullRequest(int) from `GHPullRequest` to its subclass `GHDetailedPullRequest`. IMO it shouldn't be causing any problems.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/16",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/16/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/16/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/16/events",
+ "html_url": "https://github.com/github-api/github-api/pull/16",
+ "id": 6504839,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjE4MzEyMg==",
+ "number": 16,
+ "title": "Fixes for github api v3",
+ "user": {
+ "login": "janinko",
+ "id": 644267,
+ "node_id": "MDQ6VXNlcjY0NDI2Nw==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/644267?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/janinko",
+ "html_url": "https://github.com/janinko",
+ "followers_url": "https://api.github.com/users/janinko/followers",
+ "following_url": "https://api.github.com/users/janinko/following{/other_user}",
+ "gists_url": "https://api.github.com/users/janinko/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/janinko/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/janinko/subscriptions",
+ "organizations_url": "https://api.github.com/users/janinko/orgs",
+ "repos_url": "https://api.github.com/users/janinko/repos",
+ "events_url": "https://api.github.com/users/janinko/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/janinko/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2012-08-28T17:22:13Z",
+ "updated_at": "2014-07-01T17:26:25Z",
+ "closed_at": "2012-08-28T18:02:11Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/16",
+ "html_url": "https://github.com/github-api/github-api/pull/16",
+ "diff_url": "https://github.com/github-api/github-api/pull/16.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/16.patch"
+ },
+ "body": "I've made some fixes of problems I ran across.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/15",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/15/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/15/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/15/events",
+ "html_url": "https://github.com/github-api/github-api/pull/15",
+ "id": 6176432,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjAzNjExOA==",
+ "number": 15,
+ "title": "Using pagination when getting Pull Requests from a repository",
+ "user": {
+ "login": "athieriot",
+ "id": 661901,
+ "node_id": "MDQ6VXNlcjY2MTkwMQ==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/661901?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/athieriot",
+ "html_url": "https://github.com/athieriot",
+ "followers_url": "https://api.github.com/users/athieriot/followers",
+ "following_url": "https://api.github.com/users/athieriot/following{/other_user}",
+ "gists_url": "https://api.github.com/users/athieriot/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/athieriot/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/athieriot/subscriptions",
+ "organizations_url": "https://api.github.com/users/athieriot/orgs",
+ "repos_url": "https://api.github.com/users/athieriot/repos",
+ "events_url": "https://api.github.com/users/athieriot/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/athieriot/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2012-08-12T11:06:37Z",
+ "updated_at": "2014-07-01T17:26:25Z",
+ "closed_at": "2012-08-28T16:42:14Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/15",
+ "html_url": "https://github.com/github-api/github-api/pull/15",
+ "diff_url": "https://github.com/github-api/github-api/pull/15.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/15.patch"
+ },
+ "body": "Hi,\n\n As Pull Request API is paginate in the Github API v3, I propose to modify the GHPullRequest getter to return a PagedIterator instead of a simple List.\n\n I didn't knew if I need to maintain the List signature so, instead, I write a new method in PagedIterator that allow to fetch all items at once.\n\nI'll be happy if you can look a it :)\n\nThanks\n\nAurélien\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/14",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/14/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/14/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/14/events",
+ "html_url": "https://github.com/github-api/github-api/issues/14",
+ "id": 6027956,
+ "node_id": "MDU6SXNzdWU2MDI3OTU2",
+ "number": 14,
+ "title": "scm in pom.xml is incorrect",
+ "user": {
+ "login": "ianatha",
+ "id": 38443,
+ "node_id": "MDQ6VXNlcjM4NDQz",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/38443?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ianatha",
+ "html_url": "https://github.com/ianatha",
+ "followers_url": "https://api.github.com/users/ianatha/followers",
+ "following_url": "https://api.github.com/users/ianatha/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ianatha/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ianatha/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ianatha/subscriptions",
+ "organizations_url": "https://api.github.com/users/ianatha/orgs",
+ "repos_url": "https://api.github.com/users/ianatha/repos",
+ "events_url": "https://api.github.com/users/ianatha/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ianatha/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2012-08-04T04:21:24Z",
+ "updated_at": "2014-01-17T09:40:55Z",
+ "closed_at": "2012-09-13T22:47:16Z",
+ "author_association": "NONE",
+ "body": "It should be \"git@github.com:kohsuke/github-api.git\", it is \"git@github.com/kohsuke/github-api.git\".\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/13",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/13/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/13/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/13/events",
+ "html_url": "https://github.com/github-api/github-api/issues/13",
+ "id": 5757177,
+ "node_id": "MDU6SXNzdWU1NzU3MTc3",
+ "number": 13,
+ "title": "support for: Create an issue POST /repos/:user/:repo/issues",
+ "user": {
+ "login": "maciek-l",
+ "id": 2019014,
+ "node_id": "MDQ6VXNlcjIwMTkwMTQ=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/2019014?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/maciek-l",
+ "html_url": "https://github.com/maciek-l",
+ "followers_url": "https://api.github.com/users/maciek-l/followers",
+ "following_url": "https://api.github.com/users/maciek-l/following{/other_user}",
+ "gists_url": "https://api.github.com/users/maciek-l/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/maciek-l/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/maciek-l/subscriptions",
+ "organizations_url": "https://api.github.com/users/maciek-l/orgs",
+ "repos_url": "https://api.github.com/users/maciek-l/repos",
+ "events_url": "https://api.github.com/users/maciek-l/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/maciek-l/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2012-07-21T23:50:57Z",
+ "updated_at": "2012-09-13T23:24:20Z",
+ "closed_at": "2012-09-13T23:24:20Z",
+ "author_association": "NONE",
+ "body": "hi,\n\nI`ve noticed that there is no support for:\n\"Create an issue\"\n\"POST /repos/:user/:repo/issues\"\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/12",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/12/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/12/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/12/events",
+ "html_url": "https://github.com/github-api/github-api/issues/12",
+ "id": 5660479,
+ "node_id": "MDU6SXNzdWU1NjYwNDc5",
+ "number": 12,
+ "title": "Enterprise Github without HTTPS not supported",
+ "user": {
+ "login": "next2you",
+ "id": 20007,
+ "node_id": "MDQ6VXNlcjIwMDA3",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/20007?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/next2you",
+ "html_url": "https://github.com/next2you",
+ "followers_url": "https://api.github.com/users/next2you/followers",
+ "following_url": "https://api.github.com/users/next2you/following{/other_user}",
+ "gists_url": "https://api.github.com/users/next2you/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/next2you/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/next2you/subscriptions",
+ "organizations_url": "https://api.github.com/users/next2you/orgs",
+ "repos_url": "https://api.github.com/users/next2you/repos",
+ "events_url": "https://api.github.com/users/next2you/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/next2you/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2012-07-17T10:17:14Z",
+ "updated_at": "2013-01-06T01:13:18Z",
+ "closed_at": "2013-01-06T01:13:18Z",
+ "author_association": "NONE",
+ "body": "Hi,\n\njust tried your plugin on jenkins with our internal enterprise github. This is only accessible via http (not https). The code to access the api always adds the \"https://api\" prefix in front of it. \n\nGithub-api plugin: 1.28\nOauth plugin: 0.12\n\nIf I have time I'll try to find a workaround... Maybe someone knows quickly how this could be fixed :-)\n\nChristian\n\nBtw, the stacktrace says \"plain\" connection because I've entered the URL to github in jenkins to be http://github.internal.net:80\n\nStack trace is attached, \n\n\njavax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?\n at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(InputRecord.java:523)\n at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:355)\n at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:798)\n at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1138)\n at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1165)\n at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1149)\n at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434)\n at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166)\n at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1177)\n at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234)\n at org.kohsuke.github.GitHub.parse(GitHub.java:300)\n at org.kohsuke.github.GitHub._retrieve(GitHub.java:186)\n at org.kohsuke.github.GitHub.retrieveWithAuth(GitHub.java:175)\n at org.kohsuke.github.GitHub.getMyself(GitHub.java:365)\n at org.kohsuke.github.GitHub.(GitHub.java:114)\n at org.kohsuke.github.GitHub.connectUsingOAuth(GitHub.java:145)\n at org.jenkinsci.plugins.GithubAuthenticationToken.(GithubAuthenticationToken.java:68)\n at org.jenkinsci.plugins.GithubSecurityRealm.doFinishLogin(GithubSecurityRealm.java:315)\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n at java.lang.reflect.Method.invoke(Method.java:597)\n at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)\n at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)\n at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)\n at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)\n at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)\n at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)\n at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:203)\n at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)\n at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:574)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:659)\n at org.kohsuke.stapler.Stapler.invoke(Stapler.java:488)\n at org.kohsuke.stapler.Stapler.service(Stapler.java:162)\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)\n at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)\n at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)\n at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)\n at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)\n
\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/11",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/11/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/11/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/11/events",
+ "html_url": "https://github.com/github-api/github-api/issues/11",
+ "id": 5039181,
+ "node_id": "MDU6SXNzdWU1MDM5MTgx",
+ "number": 11,
+ "title": "NPE Crash on 1.27",
+ "user": {
+ "login": "jcollas",
+ "id": 164569,
+ "node_id": "MDQ6VXNlcjE2NDU2OQ==",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/164569?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jcollas",
+ "html_url": "https://github.com/jcollas",
+ "followers_url": "https://api.github.com/users/jcollas/followers",
+ "following_url": "https://api.github.com/users/jcollas/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jcollas/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jcollas/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jcollas/subscriptions",
+ "organizations_url": "https://api.github.com/users/jcollas/orgs",
+ "repos_url": "https://api.github.com/users/jcollas/repos",
+ "events_url": "https://api.github.com/users/jcollas/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jcollas/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2012-06-13T02:22:59Z",
+ "updated_at": "2012-06-14T16:25:59Z",
+ "closed_at": "2012-06-14T16:25:59Z",
+ "author_association": "NONE",
+ "body": "Just installed the latest version of the plugin from Jenkins to deal with v1 and v2 github going away, and got this:\n\njava.lang.NullPointerException\n at org.acegisecurity.GrantedAuthorityImpl.hashCode(GrantedAuthorityImpl.java:62)\n at org.acegisecurity.providers.AbstractAuthenticationToken.hashCode(AbstractAuthenticationToken.java:146)\n at hudson.security.NotSerilizableSecurityContext.hashCode(NotSerilizableSecurityContext.java:80)\n at org.acegisecurity.context.HttpSessionContextIntegrationFilter.storeSecurityContextInSession(HttpSessionContextIntegrationFilter.java:407)\n at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:264)\n at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)\n at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)\n at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)\n at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)\n at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)\n at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)\n at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)\n at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)\n at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)\n at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)\n at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215)\n at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138)\n at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)\n at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)\n at java.util.concurrent.FutureTask.run(FutureTask.java:138)\n at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)\n at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)\n at java.lang.Thread.run(Thread.java:680)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/10",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/10/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/10/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/10/events",
+ "html_url": "https://github.com/github-api/github-api/pull/10",
+ "id": 5035378,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTU1MDIzOA==",
+ "number": 10,
+ "title": "Fix getMyOrganizations to build hash on `login` instead of `name`",
+ "user": {
+ "login": "ryanbrainard",
+ "id": 966764,
+ "node_id": "MDQ6VXNlcjk2Njc2NA==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/966764?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ryanbrainard",
+ "html_url": "https://github.com/ryanbrainard",
+ "followers_url": "https://api.github.com/users/ryanbrainard/followers",
+ "following_url": "https://api.github.com/users/ryanbrainard/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ryanbrainard/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ryanbrainard/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ryanbrainard/subscriptions",
+ "organizations_url": "https://api.github.com/users/ryanbrainard/orgs",
+ "repos_url": "https://api.github.com/users/ryanbrainard/repos",
+ "events_url": "https://api.github.com/users/ryanbrainard/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ryanbrainard/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2012-06-12T22:25:52Z",
+ "updated_at": "2014-07-01T17:26:25Z",
+ "closed_at": "2012-06-13T16:06:30Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/10",
+ "html_url": "https://github.com/github-api/github-api/pull/10",
+ "diff_url": "https://github.com/github-api/github-api/pull/10.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/10.patch"
+ },
+ "body": "In v3, orgs always have a `login`, but the `name` is only returned on the detailed call. `getMyOrganizations()` was keying on `name`, but was always `null`. This is to change it to `login` as the unique id for orgs.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/9",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/9/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/9/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/9/events",
+ "html_url": "https://github.com/github-api/github-api/pull/9",
+ "id": 5034613,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTU0OTk1Ng==",
+ "number": 9,
+ "title": "Using v3 for Organizations",
+ "user": {
+ "login": "johnnyhalife",
+ "id": 92490,
+ "node_id": "MDQ6VXNlcjkyNDkw",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/92490?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/johnnyhalife",
+ "html_url": "https://github.com/johnnyhalife",
+ "followers_url": "https://api.github.com/users/johnnyhalife/followers",
+ "following_url": "https://api.github.com/users/johnnyhalife/following{/other_user}",
+ "gists_url": "https://api.github.com/users/johnnyhalife/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/johnnyhalife/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/johnnyhalife/subscriptions",
+ "organizations_url": "https://api.github.com/users/johnnyhalife/orgs",
+ "repos_url": "https://api.github.com/users/johnnyhalife/repos",
+ "events_url": "https://api.github.com/users/johnnyhalife/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/johnnyhalife/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2012-06-12T21:57:00Z",
+ "updated_at": "2014-07-01T17:26:26Z",
+ "closed_at": "2012-06-13T16:07:28Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/9",
+ "html_url": "https://github.com/github-api/github-api/pull/9",
+ "diff_url": "https://github.com/github-api/github-api/pull/9.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/9.patch"
+ },
+ "body": "Hi @kohsuke, \n\nWe're using your plugin on our Jenkins, we found that it's no longer working (since today v2 was deprecated). I don't know how to go through the hassel of creating a Jenkins plugin, so if you want to merge it and publish we'll be more than welcomed.\n\nthanks,\n~johnny (from Tactivos)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/8",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/8/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/8/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/8/events",
+ "html_url": "https://github.com/github-api/github-api/issues/8",
+ "id": 5031458,
+ "node_id": "MDU6SXNzdWU1MDMxNDU4",
+ "number": 8,
+ "title": "Github API V2 shuts down",
+ "user": {
+ "login": "ywen",
+ "id": 22895,
+ "node_id": "MDQ6VXNlcjIyODk1",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/22895?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/ywen",
+ "html_url": "https://github.com/ywen",
+ "followers_url": "https://api.github.com/users/ywen/followers",
+ "following_url": "https://api.github.com/users/ywen/following{/other_user}",
+ "gists_url": "https://api.github.com/users/ywen/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/ywen/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/ywen/subscriptions",
+ "organizations_url": "https://api.github.com/users/ywen/orgs",
+ "repos_url": "https://api.github.com/users/ywen/repos",
+ "events_url": "https://api.github.com/users/ywen/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/ywen/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 8,
+ "created_at": "2012-06-12T19:30:40Z",
+ "updated_at": "2012-06-14T08:26:37Z",
+ "closed_at": "2012-06-13T16:08:43Z",
+ "author_association": "NONE",
+ "body": "https://github.com/blog/1160-github-api-v2-end-of-life\n\nIt means a lot of stuff in the API using V2 are broken. :(\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/7",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/7/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/7/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/7/events",
+ "html_url": "https://github.com/github-api/github-api/pull/7",
+ "id": 3988943,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MTExMjUzNQ==",
+ "number": 7,
+ "title": "Listing of branches in a repository",
+ "user": {
+ "login": "derfred",
+ "id": 24133,
+ "node_id": "MDQ6VXNlcjI0MTMz",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/24133?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/derfred",
+ "html_url": "https://github.com/derfred",
+ "followers_url": "https://api.github.com/users/derfred/followers",
+ "following_url": "https://api.github.com/users/derfred/following{/other_user}",
+ "gists_url": "https://api.github.com/users/derfred/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/derfred/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/derfred/subscriptions",
+ "organizations_url": "https://api.github.com/users/derfred/orgs",
+ "repos_url": "https://api.github.com/users/derfred/repos",
+ "events_url": "https://api.github.com/users/derfred/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/derfred/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2012-04-05T14:23:46Z",
+ "updated_at": "2014-07-01T17:26:27Z",
+ "closed_at": "2012-04-06T15:25:00Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/7",
+ "html_url": "https://github.com/github-api/github-api/pull/7",
+ "diff_url": "https://github.com/github-api/github-api/pull/7.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/7.patch"
+ },
+ "body": "I've implemented listing the branches in a repository like so:\n\n``` java\nList b = gitHub.getUser(\"jenkinsci\").getRepository(\"jenkins\").getBranches();\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/6",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/6/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/6/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/6/events",
+ "html_url": "https://github.com/github-api/github-api/pull/6",
+ "id": 2827735,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0Njg1NDQ3",
+ "number": 6,
+ "title": "milestone api via v3",
+ "user": {
+ "login": "YusukeKokubo",
+ "id": 74654,
+ "node_id": "MDQ6VXNlcjc0NjU0",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/74654?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/YusukeKokubo",
+ "html_url": "https://github.com/YusukeKokubo",
+ "followers_url": "https://api.github.com/users/YusukeKokubo/followers",
+ "following_url": "https://api.github.com/users/YusukeKokubo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/YusukeKokubo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/YusukeKokubo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/YusukeKokubo/subscriptions",
+ "organizations_url": "https://api.github.com/users/YusukeKokubo/orgs",
+ "repos_url": "https://api.github.com/users/YusukeKokubo/repos",
+ "events_url": "https://api.github.com/users/YusukeKokubo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/YusukeKokubo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2012-01-13T05:39:08Z",
+ "updated_at": "2014-06-14T12:21:06Z",
+ "closed_at": "2012-03-08T20:50:19Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/6",
+ "html_url": "https://github.com/github-api/github-api/pull/6",
+ "diff_url": "https://github.com/github-api/github-api/pull/6.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/6.patch"
+ },
+ "body": "please review my patch.\n\nthanks.\n### \n\nテストコードも書いた方が良いと思うのですがどう書くのが適切なのかちょっとわからないでいます…。\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/5",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/5/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/5/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/5/events",
+ "html_url": "https://github.com/github-api/github-api/issues/5",
+ "id": 2766701,
+ "node_id": "MDU6SXNzdWUyNzY2NzAx",
+ "number": 5,
+ "title": "error on getRepositories()",
+ "user": {
+ "login": "YusukeKokubo",
+ "id": 74654,
+ "node_id": "MDQ6VXNlcjc0NjU0",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/74654?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/YusukeKokubo",
+ "html_url": "https://github.com/YusukeKokubo",
+ "followers_url": "https://api.github.com/users/YusukeKokubo/followers",
+ "following_url": "https://api.github.com/users/YusukeKokubo/following{/other_user}",
+ "gists_url": "https://api.github.com/users/YusukeKokubo/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/YusukeKokubo/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/YusukeKokubo/subscriptions",
+ "organizations_url": "https://api.github.com/users/YusukeKokubo/orgs",
+ "repos_url": "https://api.github.com/users/YusukeKokubo/repos",
+ "events_url": "https://api.github.com/users/YusukeKokubo/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/YusukeKokubo/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2012-01-09T09:39:57Z",
+ "updated_at": "2012-01-10T02:21:42Z",
+ "closed_at": "2012-01-10T02:21:42Z",
+ "author_association": "COLLABORATOR",
+ "body": "I written like below;\n\nGitHub gh = GitHub.connect(\"YusukeKokubo\", \"xxx\", \"xxx\");\nGHUser user = gh.getMyself();\nuser.getRepositories();\n\nand got exception\n\nException in thread \"main\" java.io.FileNotFoundException: https://api.github.com/user/YusukeKokubo/repos?per_page=100&page=1\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/4",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/4/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/4/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/4/events",
+ "html_url": "https://github.com/github-api/github-api/issues/4",
+ "id": 2733631,
+ "node_id": "MDU6SXNzdWUyNzMzNjMx",
+ "number": 4,
+ "title": "Link to Javadoc incorrect at http://github-api.kohsuke.org/",
+ "user": {
+ "login": "andrewrjones",
+ "id": 140817,
+ "node_id": "MDQ6VXNlcjE0MDgxNw==",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/140817?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/andrewrjones",
+ "html_url": "https://github.com/andrewrjones",
+ "followers_url": "https://api.github.com/users/andrewrjones/followers",
+ "following_url": "https://api.github.com/users/andrewrjones/following{/other_user}",
+ "gists_url": "https://api.github.com/users/andrewrjones/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/andrewrjones/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/andrewrjones/subscriptions",
+ "organizations_url": "https://api.github.com/users/andrewrjones/orgs",
+ "repos_url": "https://api.github.com/users/andrewrjones/repos",
+ "events_url": "https://api.github.com/users/andrewrjones/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/andrewrjones/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2012-01-05T10:25:21Z",
+ "updated_at": "2012-04-11T17:04:51Z",
+ "closed_at": "2012-04-11T17:04:51Z",
+ "author_association": "NONE",
+ "body": "The link to Javadoc currently points at http://github-api.kohsuke.org/apidocs/index.html, which seems incorrect.\n\nThanks.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/3",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/3/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/3/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/3/events",
+ "html_url": "https://github.com/github-api/github-api/pull/3",
+ "id": 2706585,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NjQ1NDI4",
+ "number": 3,
+ "title": "Fix for finding private repos on organizations",
+ "user": {
+ "login": "jkrall",
+ "id": 11402,
+ "node_id": "MDQ6VXNlcjExNDAy",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/11402?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jkrall",
+ "html_url": "https://github.com/jkrall",
+ "followers_url": "https://api.github.com/users/jkrall/followers",
+ "following_url": "https://api.github.com/users/jkrall/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jkrall/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jkrall/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jkrall/subscriptions",
+ "organizations_url": "https://api.github.com/users/jkrall/orgs",
+ "repos_url": "https://api.github.com/users/jkrall/repos",
+ "events_url": "https://api.github.com/users/jkrall/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jkrall/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2012-01-03T01:52:26Z",
+ "updated_at": "2014-07-01T17:26:27Z",
+ "closed_at": "2012-01-03T19:12:31Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/3",
+ "html_url": "https://github.com/github-api/github-api/pull/3",
+ "diff_url": "https://github.com/github-api/github-api/pull/3.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/3.patch"
+ },
+ "body": "If you have a private repo on an organization, you need to access it via an authenticated API call. \n\nThis adds support for querying organization repos to GHOrganization.\n\n(I needed this for a fix to the jenkins github plugin... pull request for that one coming momentarily.)\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/2",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/2/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/2/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/2/events",
+ "html_url": "https://github.com/github-api/github-api/pull/2",
+ "id": 1576990,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MzExMTA0",
+ "number": 2,
+ "title": "expose issue_updated_at. It looks like a better representation of update ",
+ "user": {
+ "login": "lacostej",
+ "id": 24282,
+ "node_id": "MDQ6VXNlcjI0Mjgy",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/24282?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/lacostej",
+ "html_url": "https://github.com/lacostej",
+ "followers_url": "https://api.github.com/users/lacostej/followers",
+ "following_url": "https://api.github.com/users/lacostej/following{/other_user}",
+ "gists_url": "https://api.github.com/users/lacostej/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/lacostej/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/lacostej/subscriptions",
+ "organizations_url": "https://api.github.com/users/lacostej/orgs",
+ "repos_url": "https://api.github.com/users/lacostej/repos",
+ "events_url": "https://api.github.com/users/lacostej/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/lacostej/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2011-09-06T11:21:44Z",
+ "updated_at": "2014-07-01T17:26:28Z",
+ "closed_at": "2011-09-06T20:28:30Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/2",
+ "html_url": "https://github.com/github-api/github-api/pull/2",
+ "diff_url": "https://github.com/github-api/github-api/pull/2.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/2.patch"
+ },
+ "body": "expose issue_updated_at.\n\nIt looks like a better representation of update time for an pull request than updated_at\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/1",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/1/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/1/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/1/events",
+ "html_url": "https://github.com/github-api/github-api/pull/1",
+ "id": 1198638,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0MjE2OTYy",
+ "number": 1,
+ "title": "Add support for oauth token and a way to see my organizations",
+ "user": {
+ "login": "mocleiri",
+ "id": 250942,
+ "node_id": "MDQ6VXNlcjI1MDk0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/250942?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/mocleiri",
+ "html_url": "https://github.com/mocleiri",
+ "followers_url": "https://api.github.com/users/mocleiri/followers",
+ "following_url": "https://api.github.com/users/mocleiri/following{/other_user}",
+ "gists_url": "https://api.github.com/users/mocleiri/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/mocleiri/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/mocleiri/subscriptions",
+ "organizations_url": "https://api.github.com/users/mocleiri/orgs",
+ "repos_url": "https://api.github.com/users/mocleiri/repos",
+ "events_url": "https://api.github.com/users/mocleiri/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/mocleiri/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2011-07-10T21:16:33Z",
+ "updated_at": "2014-07-01T17:26:28Z",
+ "closed_at": "2011-07-11T18:20:33Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/1",
+ "html_url": "https://github.com/github-api/github-api/pull/1",
+ "diff_url": "https://github.com/github-api/github-api/pull/1.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/1.patch"
+ },
+ "body": "I've written a github oauth authentication plugin for jenkins and I used github-api for the interactions with github once I have the token.\n\nMy first pass implementation of the plugin works so I want to contribute the github-api changes back.\n\nChanges:\n1. setup the Github class using the oauth token.\n2. get a list of organizations that the **current** user belongs to.\n"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-fe625e7c-4b31-4b30-bc77-a763a3774fdc.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-fe625e7c-4b31-4b30-bc77-a763a3774fdc.json
new file mode 100644
index 000000000..94ac43d1e
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/repositories_617210_issues-fe625e7c-4b31-4b30-bc77-a763a3774fdc.json
@@ -0,0 +1,1465 @@
+[
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/236",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/236/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/236/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/236/events",
+ "html_url": "https://github.com/github-api/github-api/pull/236",
+ "id": 118345436,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTE1MDEzOTE=",
+ "number": 236,
+ "title": "Findbugs plugin has been upgraded",
+ "user": {
+ "login": "recena",
+ "id": 1021745,
+ "node_id": "MDQ6VXNlcjEwMjE3NDU=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1021745?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/recena",
+ "html_url": "https://github.com/recena",
+ "followers_url": "https://api.github.com/users/recena/followers",
+ "following_url": "https://api.github.com/users/recena/following{/other_user}",
+ "gists_url": "https://api.github.com/users/recena/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/recena/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/recena/subscriptions",
+ "organizations_url": "https://api.github.com/users/recena/orgs",
+ "repos_url": "https://api.github.com/users/recena/repos",
+ "events_url": "https://api.github.com/users/recena/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/recena/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-11-23T09:32:40Z",
+ "updated_at": "2015-11-25T22:06:57Z",
+ "closed_at": "2015-11-25T22:06:57Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/236",
+ "html_url": "https://github.com/github-api/github-api/pull/236",
+ "diff_url": "https://github.com/github-api/github-api/pull/236.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/236.patch"
+ },
+ "body": "@reviewbybees /cc @KostyaSha \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/235",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/235/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/235/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/235/events",
+ "html_url": "https://github.com/github-api/github-api/issues/235",
+ "id": 118269610,
+ "node_id": "MDU6SXNzdWUxMTgyNjk2MTA=",
+ "number": 235,
+ "title": "Access to raw JSON for issues?",
+ "user": {
+ "login": "io7m",
+ "id": 612494,
+ "node_id": "MDQ6VXNlcjYxMjQ5NA==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/612494?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/io7m",
+ "html_url": "https://github.com/io7m",
+ "followers_url": "https://api.github.com/users/io7m/followers",
+ "following_url": "https://api.github.com/users/io7m/following{/other_user}",
+ "gists_url": "https://api.github.com/users/io7m/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/io7m/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/io7m/subscriptions",
+ "organizations_url": "https://api.github.com/users/io7m/orgs",
+ "repos_url": "https://api.github.com/users/io7m/repos",
+ "events_url": "https://api.github.com/users/io7m/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/io7m/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-11-22T15:38:07Z",
+ "updated_at": "2015-12-02T15:14:46Z",
+ "closed_at": "2015-12-01T15:55:45Z",
+ "author_association": "NONE",
+ "body": "Hello.\n\nI currently use the `github-api` package to maintain a local mirror of my repositories. I would like to be able to maintain a local copy of all issues, open or closed. Right now, I could use the API to pull a list of GHIssue objects and then manually serialize them all. However, this suffers from two problems: It's a maintenance burden, and I'd need to constantly check the API to ensure that new fields haven't been added that my manual serialization would otherwise miss. The `github-api` package obviously has access to the raw JSON, so is there any way that it could expose it so that I could write it directly to disk?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/234",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/234/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/234/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/234/events",
+ "html_url": "https://github.com/github-api/github-api/issues/234",
+ "id": 117996897,
+ "node_id": "MDU6SXNzdWUxMTc5OTY4OTc=",
+ "number": 234,
+ "title": "GHRepository.getPullRequests() / listPullRequests() does not support the sort parameter",
+ "user": {
+ "login": "jglazner",
+ "id": 1048033,
+ "node_id": "MDQ6VXNlcjEwNDgwMzM=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1048033?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jglazner",
+ "html_url": "https://github.com/jglazner",
+ "followers_url": "https://api.github.com/users/jglazner/followers",
+ "following_url": "https://api.github.com/users/jglazner/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jglazner/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jglazner/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jglazner/subscriptions",
+ "organizations_url": "https://api.github.com/users/jglazner/orgs",
+ "repos_url": "https://api.github.com/users/jglazner/repos",
+ "events_url": "https://api.github.com/users/jglazner/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jglazner/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-11-20T09:05:51Z",
+ "updated_at": "2015-12-10T14:34:25Z",
+ "closed_at": "2015-12-10T14:34:25Z",
+ "author_association": "NONE",
+ "body": "The github api allows for a sort parameter when iterating over pull requests, however the library does not support it.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/233",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/233/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/233/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/233/events",
+ "html_url": "https://github.com/github-api/github-api/pull/233",
+ "id": 117781378,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTEyMDI0MjM=",
+ "number": 233,
+ "title": "Add information about mirror url if it exist.",
+ "user": {
+ "login": "vparfonov",
+ "id": 1636592,
+ "node_id": "MDQ6VXNlcjE2MzY1OTI=",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1636592?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/vparfonov",
+ "html_url": "https://github.com/vparfonov",
+ "followers_url": "https://api.github.com/users/vparfonov/followers",
+ "following_url": "https://api.github.com/users/vparfonov/following{/other_user}",
+ "gists_url": "https://api.github.com/users/vparfonov/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/vparfonov/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/vparfonov/subscriptions",
+ "organizations_url": "https://api.github.com/users/vparfonov/orgs",
+ "repos_url": "https://api.github.com/users/vparfonov/repos",
+ "events_url": "https://api.github.com/users/vparfonov/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/vparfonov/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2015-11-19T10:10:03Z",
+ "updated_at": "2015-11-30T15:18:45Z",
+ "closed_at": "2015-11-30T15:18:44Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/233",
+ "html_url": "https://github.com/github-api/github-api/pull/233",
+ "diff_url": "https://github.com/github-api/github-api/pull/233.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/233.patch"
+ },
+ "body": " Like https://github.com/apache/tomee\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/232",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/232/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/232/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/232/events",
+ "html_url": "https://github.com/github-api/github-api/pull/232",
+ "id": 116998367,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTA3NDg5MTc=",
+ "number": 232,
+ "title": "Added a new method to validate the GitHub API URL",
+ "user": {
+ "login": "recena",
+ "id": 1021745,
+ "node_id": "MDQ6VXNlcjEwMjE3NDU=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1021745?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/recena",
+ "html_url": "https://github.com/recena",
+ "followers_url": "https://api.github.com/users/recena/followers",
+ "following_url": "https://api.github.com/users/recena/following{/other_user}",
+ "gists_url": "https://api.github.com/users/recena/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/recena/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/recena/subscriptions",
+ "organizations_url": "https://api.github.com/users/recena/orgs",
+ "repos_url": "https://api.github.com/users/recena/repos",
+ "events_url": "https://api.github.com/users/recena/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/recena/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 265902955,
+ "node_id": "MDU6TGFiZWwyNjU5MDI5NTU=",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/new%20feature",
+ "name": "new feature",
+ "color": "009800",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 6,
+ "created_at": "2015-11-15T15:37:18Z",
+ "updated_at": "2015-12-03T09:24:28Z",
+ "closed_at": "2015-12-01T15:06:12Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/232",
+ "html_url": "https://github.com/github-api/github-api/pull/232",
+ "diff_url": "https://github.com/github-api/github-api/pull/232.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/232.patch"
+ },
+ "body": "@reviewbybees specially, @oleg-nenashev \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/231",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/231/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/231/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/231/events",
+ "html_url": "https://github.com/github-api/github-api/pull/231",
+ "id": 116986700,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NTA3NDQzNTc=",
+ "number": 231,
+ "title": "Support for merge_commit_sha",
+ "user": {
+ "login": "recena",
+ "id": 1021745,
+ "node_id": "MDQ6VXNlcjEwMjE3NDU=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1021745?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/recena",
+ "html_url": "https://github.com/recena",
+ "followers_url": "https://api.github.com/users/recena/followers",
+ "following_url": "https://api.github.com/users/recena/following{/other_user}",
+ "gists_url": "https://api.github.com/users/recena/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/recena/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/recena/subscriptions",
+ "organizations_url": "https://api.github.com/users/recena/orgs",
+ "repos_url": "https://api.github.com/users/recena/repos",
+ "events_url": "https://api.github.com/users/recena/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/recena/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 265902955,
+ "node_id": "MDU6TGFiZWwyNjU5MDI5NTU=",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/new%20feature",
+ "name": "new feature",
+ "color": "009800",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 19,
+ "created_at": "2015-11-15T10:58:05Z",
+ "updated_at": "2016-02-25T22:02:28Z",
+ "closed_at": "2015-11-25T22:22:10Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/231",
+ "html_url": "https://github.com/github-api/github-api/pull/231",
+ "diff_url": "https://github.com/github-api/github-api/pull/231.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/231.patch"
+ },
+ "body": "`GHPullRequest` object now includes `merge_commit_sha`\n\n@reviewbybees specially, @oleg-nenashev\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/230",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/230/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/230/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/230/events",
+ "html_url": "https://github.com/github-api/github-api/issues/230",
+ "id": 115517224,
+ "node_id": "MDU6SXNzdWUxMTU1MTcyMjQ=",
+ "number": 230,
+ "title": "Commit obtained by queryCommits does not contain files",
+ "user": {
+ "login": "SaintDubious",
+ "id": 14866211,
+ "node_id": "MDQ6VXNlcjE0ODY2MjEx",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/14866211?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/SaintDubious",
+ "html_url": "https://github.com/SaintDubious",
+ "followers_url": "https://api.github.com/users/SaintDubious/followers",
+ "following_url": "https://api.github.com/users/SaintDubious/following{/other_user}",
+ "gists_url": "https://api.github.com/users/SaintDubious/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/SaintDubious/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/SaintDubious/subscriptions",
+ "organizations_url": "https://api.github.com/users/SaintDubious/orgs",
+ "repos_url": "https://api.github.com/users/SaintDubious/repos",
+ "events_url": "https://api.github.com/users/SaintDubious/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/SaintDubious/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-11-06T14:41:24Z",
+ "updated_at": "2015-12-10T13:56:27Z",
+ "closed_at": "2015-12-10T13:56:27Z",
+ "author_association": "NONE",
+ "body": "If I use queryCommits to get a list of commits and then call getFiles() on any of the commits in the list, it will return 0 files. However if I instead directly get a commit by sha1 and then call getFiles() it will return the appropriate file count. Both commit objects represent the same commit, they should have the same file count:\n\n```\nPagedIterable commits = ghRepo.queryCommits().path( fullPath + \"/\" + fileName ).list();\nfor (GHCommit commit : commits) {\n GHCommit testing = ghRepo.getCommit( commit.getSHA1() );\n System.out.println( \"FileCount = \" + commit.getFiles().size() );\n System.out.println( \"FileCount = \" + testing.getFiles().size() );\n}\n```\n\nThis will print out:\n\n```\nFileCount = 0\nFileCount = 1\n```\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/229",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/229/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/229/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/229/events",
+ "html_url": "https://github.com/github-api/github-api/issues/229",
+ "id": 113329702,
+ "node_id": "MDU6SXNzdWUxMTMzMjk3MDI=",
+ "number": 229,
+ "title": "Push to repo",
+ "user": {
+ "login": "to2raja",
+ "id": 14906704,
+ "node_id": "MDQ6VXNlcjE0OTA2NzA0",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/14906704?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/to2raja",
+ "html_url": "https://github.com/to2raja",
+ "followers_url": "https://api.github.com/users/to2raja/followers",
+ "following_url": "https://api.github.com/users/to2raja/following{/other_user}",
+ "gists_url": "https://api.github.com/users/to2raja/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/to2raja/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/to2raja/subscriptions",
+ "organizations_url": "https://api.github.com/users/to2raja/orgs",
+ "repos_url": "https://api.github.com/users/to2raja/repos",
+ "events_url": "https://api.github.com/users/to2raja/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/to2raja/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-10-26T10:48:36Z",
+ "updated_at": "2015-10-26T11:33:43Z",
+ "closed_at": "2015-10-26T11:33:43Z",
+ "author_association": "NONE",
+ "body": "I am able to create repository in GitHub. it s going good.\n\nNow I want to push my local folder to this created repo. Is it possible to do using this library? I m using JGit to push now, which took too much time to push to the repo. I am able to push in 3 minutes via terminal, but JGit tooks 25 minutes to push the same folder.\n\nThanks in advance\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/228",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/228/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/228/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/228/events",
+ "html_url": "https://github.com/github-api/github-api/issues/228",
+ "id": 112212313,
+ "node_id": "MDU6SXNzdWUxMTIyMTIzMTM=",
+ "number": 228,
+ "title": "get starred projects by the user",
+ "user": {
+ "login": "anandasubedi",
+ "id": 7812091,
+ "node_id": "MDQ6VXNlcjc4MTIwOTE=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/7812091?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/anandasubedi",
+ "html_url": "https://github.com/anandasubedi",
+ "followers_url": "https://api.github.com/users/anandasubedi/followers",
+ "following_url": "https://api.github.com/users/anandasubedi/following{/other_user}",
+ "gists_url": "https://api.github.com/users/anandasubedi/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/anandasubedi/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/anandasubedi/subscriptions",
+ "organizations_url": "https://api.github.com/users/anandasubedi/orgs",
+ "repos_url": "https://api.github.com/users/anandasubedi/repos",
+ "events_url": "https://api.github.com/users/anandasubedi/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/anandasubedi/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-10-19T19:13:28Z",
+ "updated_at": "2015-12-03T16:55:39Z",
+ "closed_at": "2015-12-03T16:55:39Z",
+ "author_association": "NONE",
+ "body": "There is not any api available to get a user's starred projects. \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/227",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/227/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/227/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/227/events",
+ "html_url": "https://github.com/github-api/github-api/issues/227",
+ "id": 111772512,
+ "node_id": "MDU6SXNzdWUxMTE3NzI1MTI=",
+ "number": 227,
+ "title": "update of file in github",
+ "user": {
+ "login": "iody",
+ "id": 4899483,
+ "node_id": "MDQ6VXNlcjQ4OTk0ODM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/4899483?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/iody",
+ "html_url": "https://github.com/iody",
+ "followers_url": "https://api.github.com/users/iody/followers",
+ "following_url": "https://api.github.com/users/iody/following{/other_user}",
+ "gists_url": "https://api.github.com/users/iody/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/iody/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/iody/subscriptions",
+ "organizations_url": "https://api.github.com/users/iody/orgs",
+ "repos_url": "https://api.github.com/users/iody/repos",
+ "events_url": "https://api.github.com/users/iody/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/iody/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-10-16T06:53:07Z",
+ "updated_at": "2015-12-03T16:47:17Z",
+ "closed_at": "2015-12-03T16:47:17Z",
+ "author_association": "NONE",
+ "body": "missing sha to update content.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/226",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/226/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/226/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/226/events",
+ "html_url": "https://github.com/github-api/github-api/pull/226",
+ "id": 110685198,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDcyODc4MzA=",
+ "number": 226,
+ "title": "Check builder result to either be a token or a user",
+ "user": {
+ "login": "Shredder121",
+ "id": 4105066,
+ "node_id": "MDQ6VXNlcjQxMDUwNjY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/4105066?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Shredder121",
+ "html_url": "https://github.com/Shredder121",
+ "followers_url": "https://api.github.com/users/Shredder121/followers",
+ "following_url": "https://api.github.com/users/Shredder121/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Shredder121/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Shredder121/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Shredder121/subscriptions",
+ "organizations_url": "https://api.github.com/users/Shredder121/orgs",
+ "repos_url": "https://api.github.com/users/Shredder121/repos",
+ "events_url": "https://api.github.com/users/Shredder121/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Shredder121/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-10-09T15:47:12Z",
+ "updated_at": "2015-12-01T14:21:54Z",
+ "closed_at": "2015-12-01T13:54:35Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/226",
+ "html_url": "https://github.com/github-api/github-api/pull/226",
+ "diff_url": "https://github.com/github-api/github-api/pull/226.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/226.patch"
+ },
+ "body": "Currently, a `user` property is always required (it not having content is also fine).\n\nThis adds support for only having the `oauth` key in the property file/environment.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/225",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/225/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/225/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/225/events",
+ "html_url": "https://github.com/github-api/github-api/pull/225",
+ "id": 110500112,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDcxNzk5MzE=",
+ "number": 225,
+ "title": "Overzealous FindBugs changes.",
+ "user": {
+ "login": "Shredder121",
+ "id": 4105066,
+ "node_id": "MDQ6VXNlcjQxMDUwNjY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/4105066?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Shredder121",
+ "html_url": "https://github.com/Shredder121",
+ "followers_url": "https://api.github.com/users/Shredder121/followers",
+ "following_url": "https://api.github.com/users/Shredder121/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Shredder121/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Shredder121/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Shredder121/subscriptions",
+ "organizations_url": "https://api.github.com/users/Shredder121/orgs",
+ "repos_url": "https://api.github.com/users/Shredder121/repos",
+ "events_url": "https://api.github.com/users/Shredder121/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Shredder121/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-10-08T17:08:49Z",
+ "updated_at": "2015-12-01T13:55:13Z",
+ "closed_at": "2015-12-01T13:51:53Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/225",
+ "html_url": "https://github.com/github-api/github-api/pull/225",
+ "diff_url": "https://github.com/github-api/github-api/pull/225.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/225.patch"
+ },
+ "body": "Charsets that are standard on the JRE are try-lookuped,\nbridge methods were removed and a stream that would be closed later is closed explicitly\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/224",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/224/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/224/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/224/events",
+ "html_url": "https://github.com/github-api/github-api/pull/224",
+ "id": 109951571,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDY4NzA3MzI=",
+ "number": 224,
+ "title": "Remove trailing slash when requesting directory content",
+ "user": {
+ "login": "Shredder121",
+ "id": 4105066,
+ "node_id": "MDQ6VXNlcjQxMDUwNjY=",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/4105066?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/Shredder121",
+ "html_url": "https://github.com/Shredder121",
+ "followers_url": "https://api.github.com/users/Shredder121/followers",
+ "following_url": "https://api.github.com/users/Shredder121/following{/other_user}",
+ "gists_url": "https://api.github.com/users/Shredder121/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/Shredder121/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/Shredder121/subscriptions",
+ "organizations_url": "https://api.github.com/users/Shredder121/orgs",
+ "repos_url": "https://api.github.com/users/Shredder121/repos",
+ "events_url": "https://api.github.com/users/Shredder121/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/Shredder121/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 8,
+ "created_at": "2015-10-06T07:40:09Z",
+ "updated_at": "2015-12-01T13:54:59Z",
+ "closed_at": "2015-12-01T13:53:56Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/224",
+ "html_url": "https://github.com/github-api/github-api/pull/224",
+ "diff_url": "https://github.com/github-api/github-api/pull/224.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/224.patch"
+ },
+ "body": "I noticed something strange on GitHub's end.\n\nWhen requesting content from a directory (with a specific ref), you get [ref-specific content](https://api.github.com/repos/github/developer.github.com/contents/lib/webhooks?ref=21295b477e6727ae09c6691e78fca7a33d28b54d).\n\nNow look closely what happens when you [add a trailing slash](https://api.github.com/repos/github/developer.github.com/contents/lib/webhooks/?ref=21295b477e6727ae09c6691e78fca7a33d28b54d).\n\nWhat is your view on this?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/223",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/223/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/223/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/223/events",
+ "html_url": "https://github.com/github-api/github-api/issues/223",
+ "id": 109078490,
+ "node_id": "MDU6SXNzdWUxMDkwNzg0OTA=",
+ "number": 223,
+ "title": "Can not find the .github file",
+ "user": {
+ "login": "to2raja",
+ "id": 14906704,
+ "node_id": "MDQ6VXNlcjE0OTA2NzA0",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/14906704?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/to2raja",
+ "html_url": "https://github.com/to2raja",
+ "followers_url": "https://api.github.com/users/to2raja/followers",
+ "following_url": "https://api.github.com/users/to2raja/following{/other_user}",
+ "gists_url": "https://api.github.com/users/to2raja/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/to2raja/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/to2raja/subscriptions",
+ "organizations_url": "https://api.github.com/users/to2raja/orgs",
+ "repos_url": "https://api.github.com/users/to2raja/repos",
+ "events_url": "https://api.github.com/users/to2raja/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/to2raja/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 3,
+ "created_at": "2015-09-30T12:40:47Z",
+ "updated_at": "2015-10-04T04:13:00Z",
+ "closed_at": "2015-10-04T04:13:00Z",
+ "author_association": "NONE",
+ "body": "Hi,\n\nI am using this jar in my project. Happy to know that possible to create repo from java in GitHub. Thanks for your efforts..\n\nI just added jars and tried to test as a java application, but I got an error, which says .github folder is not available.\n\nHere is my code,\n\n```\npublic static void main(String[] args) throws IOException {\n // TODO Auto-generated method stub\n String name = \"name - new-repo\";\n String description = \"description - this is my new repository\";\n String homepage = \"homepage - http://www.kohsuke.org/\";\n boolean isPublic = true;\n\n GitHub github = GitHub.connectUsingPassword(\"myUserName\", \"password\");\n GHRepository repo = github.createRepository(name, description, homepage, isPublic);\n\n System.out.println(repo.getOwner());\n System.out.println(repo.getLanguage());\n\n}\n```\n\nAnd the exception is as follows,\n\nException in thread \"main\" java.io.FileNotFoundException: C:\\Users\\user\\ .github (The system cannot find the file specified)\n at java.io.FileInputStream.open(Native Method)\n at java.io.FileInputStream.(Unknown Source)\n at org.kohsuke.github.GitHub.connect(GitHub.java:144)\n at com.votsh.repository.GitRepo.main(GitRepo.java:28)\n\nThanks in advance\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/222",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/222/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/222/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/222/events",
+ "html_url": "https://github.com/github-api/github-api/issues/222",
+ "id": 109076410,
+ "node_id": "MDU6SXNzdWUxMDkwNzY0MTA=",
+ "number": 222,
+ "title": "Can not find the .github file",
+ "user": {
+ "login": "desingraj",
+ "id": 4374605,
+ "node_id": "MDQ6VXNlcjQzNzQ2MDU=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/4374605?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/desingraj",
+ "html_url": "https://github.com/desingraj",
+ "followers_url": "https://api.github.com/users/desingraj/followers",
+ "following_url": "https://api.github.com/users/desingraj/following{/other_user}",
+ "gists_url": "https://api.github.com/users/desingraj/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/desingraj/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/desingraj/subscriptions",
+ "organizations_url": "https://api.github.com/users/desingraj/orgs",
+ "repos_url": "https://api.github.com/users/desingraj/repos",
+ "events_url": "https://api.github.com/users/desingraj/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/desingraj/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2015-09-30T12:27:02Z",
+ "updated_at": "2015-09-30T12:40:54Z",
+ "closed_at": "2015-09-30T12:40:54Z",
+ "author_association": "NONE",
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/221",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/221/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/221/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/221/events",
+ "html_url": "https://github.com/github-api/github-api/issues/221",
+ "id": 108832355,
+ "node_id": "MDU6SXNzdWUxMDg4MzIzNTU=",
+ "number": 221,
+ "title": "Add per_page paramter to the search builders",
+ "user": {
+ "login": "anschwar",
+ "id": 10230934,
+ "node_id": "MDQ6VXNlcjEwMjMwOTM0",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/10230934?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/anschwar",
+ "html_url": "https://github.com/anschwar",
+ "followers_url": "https://api.github.com/users/anschwar/followers",
+ "following_url": "https://api.github.com/users/anschwar/following{/other_user}",
+ "gists_url": "https://api.github.com/users/anschwar/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/anschwar/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/anschwar/subscriptions",
+ "organizations_url": "https://api.github.com/users/anschwar/orgs",
+ "repos_url": "https://api.github.com/users/anschwar/repos",
+ "events_url": "https://api.github.com/users/anschwar/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/anschwar/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-09-29T09:38:58Z",
+ "updated_at": "2015-12-03T16:42:28Z",
+ "closed_at": "2015-12-03T16:42:28Z",
+ "author_association": "NONE",
+ "body": "would it be possible to provide a per_page parameter like the github api does?\n\nExample:\nhttps://api.github.com/search/code?q=in:file+language:js+repo:jquery/jquery&per_page=100\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/220",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/220/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/220/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/220/events",
+ "html_url": "https://github.com/github-api/github-api/issues/220",
+ "id": 108831491,
+ "node_id": "MDU6SXNzdWUxMDg4MzE0OTE=",
+ "number": 220,
+ "title": "RateLimitHandler Bug",
+ "user": {
+ "login": "anschwar",
+ "id": 10230934,
+ "node_id": "MDQ6VXNlcjEwMjMwOTM0",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/10230934?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/anschwar",
+ "html_url": "https://github.com/anschwar",
+ "followers_url": "https://api.github.com/users/anschwar/followers",
+ "following_url": "https://api.github.com/users/anschwar/following{/other_user}",
+ "gists_url": "https://api.github.com/users/anschwar/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/anschwar/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/anschwar/subscriptions",
+ "organizations_url": "https://api.github.com/users/anschwar/orgs",
+ "repos_url": "https://api.github.com/users/anschwar/repos",
+ "events_url": "https://api.github.com/users/anschwar/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/anschwar/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 11,
+ "created_at": "2015-09-29T09:32:51Z",
+ "updated_at": "2015-12-02T11:05:03Z",
+ "closed_at": "2015-12-02T11:05:03Z",
+ "author_association": "NONE",
+ "body": "Hi,\n\nthe RateLimitHandler does not to work as intended. \nIf using the WAIT implementation the API will still throw an exception and terminate.\n\nThe reason therefore is that there is no return statement after the handler execute its onError method.\nThe problem is allocated in the handleApiError method of the Requester.\n\nhttps://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/Requester.java\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/219",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/219/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/219/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/219/events",
+ "html_url": "https://github.com/github-api/github-api/pull/219",
+ "id": 107443954,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDU1MTQxNjM=",
+ "number": 219,
+ "title": "#218 enable cross fork compare",
+ "user": {
+ "login": "if6was9",
+ "id": 463742,
+ "node_id": "MDQ6VXNlcjQ2Mzc0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/463742?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/if6was9",
+ "html_url": "https://github.com/if6was9",
+ "followers_url": "https://api.github.com/users/if6was9/followers",
+ "following_url": "https://api.github.com/users/if6was9/following{/other_user}",
+ "gists_url": "https://api.github.com/users/if6was9/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/if6was9/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/if6was9/subscriptions",
+ "organizations_url": "https://api.github.com/users/if6was9/orgs",
+ "repos_url": "https://api.github.com/users/if6was9/repos",
+ "events_url": "https://api.github.com/users/if6was9/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/if6was9/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 265902919,
+ "node_id": "MDU6TGFiZWwyNjU5MDI5MTk=",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/bug",
+ "name": "bug",
+ "color": "e11d21",
+ "default": true
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 7,
+ "created_at": "2015-09-21T04:46:46Z",
+ "updated_at": "2015-12-01T14:04:50Z",
+ "closed_at": "2015-12-01T14:04:50Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/219",
+ "html_url": "https://github.com/github-api/github-api/pull/219",
+ "diff_url": "https://github.com/github-api/github-api/pull/219.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/219.patch"
+ },
+ "body": "this addresses #218 \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/218",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/218/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/218/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/218/events",
+ "html_url": "https://github.com/github-api/github-api/issues/218",
+ "id": 107440149,
+ "node_id": "MDU6SXNzdWUxMDc0NDAxNDk=",
+ "number": 218,
+ "title": "GHRepository.getCompare(GHBranch, GHBranch) does not allow for cross-fork compares",
+ "user": {
+ "login": "if6was9",
+ "id": 463742,
+ "node_id": "MDQ6VXNlcjQ2Mzc0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/463742?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/if6was9",
+ "html_url": "https://github.com/if6was9",
+ "followers_url": "https://api.github.com/users/if6was9/followers",
+ "following_url": "https://api.github.com/users/if6was9/following{/other_user}",
+ "gists_url": "https://api.github.com/users/if6was9/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/if6was9/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/if6was9/subscriptions",
+ "organizations_url": "https://api.github.com/users/if6was9/orgs",
+ "repos_url": "https://api.github.com/users/if6was9/repos",
+ "events_url": "https://api.github.com/users/if6was9/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/if6was9/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 265902919,
+ "node_id": "MDU6TGFiZWwyNjU5MDI5MTk=",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/bug",
+ "name": "bug",
+ "color": "e11d21",
+ "default": true
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-09-21T03:59:13Z",
+ "updated_at": "2015-12-03T16:42:58Z",
+ "closed_at": "2015-12-03T16:42:58Z",
+ "author_association": "NONE",
+ "body": "GHRepository.getCompare(String,String) supports cross-fork comparisons, but this does not:\n\nhttps://github.com/kohsuke/github-api/blob/master/src/main/java/org/kohsuke/github/GHRepository.java#L684-L686\n\nThis is a simple fix.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/217",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/217/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/217/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/217/events",
+ "html_url": "https://github.com/github-api/github-api/pull/217",
+ "id": 106395338,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDQ5NjAzMDE=",
+ "number": 217,
+ "title": "Support Milestone closed_at date",
+ "user": {
+ "login": "dblevins",
+ "id": 94926,
+ "node_id": "MDQ6VXNlcjk0OTI2",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/94926?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/dblevins",
+ "html_url": "https://github.com/dblevins",
+ "followers_url": "https://api.github.com/users/dblevins/followers",
+ "following_url": "https://api.github.com/users/dblevins/following{/other_user}",
+ "gists_url": "https://api.github.com/users/dblevins/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/dblevins/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/dblevins/subscriptions",
+ "organizations_url": "https://api.github.com/users/dblevins/orgs",
+ "repos_url": "https://api.github.com/users/dblevins/repos",
+ "events_url": "https://api.github.com/users/dblevins/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/dblevins/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-09-14T17:56:10Z",
+ "updated_at": "2015-09-18T02:23:00Z",
+ "closed_at": "2015-09-18T02:23:00Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/217",
+ "html_url": "https://github.com/github-api/github-api/pull/217",
+ "diff_url": "https://github.com/github-api/github-api/pull/217.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/217.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/216",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/216/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/216/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/216/events",
+ "html_url": "https://github.com/github-api/github-api/pull/216",
+ "id": 104200497,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDM4NDM0NDU=",
+ "number": 216,
+ "title": "#215 fix read() failure with private repos",
+ "user": {
+ "login": "if6was9",
+ "id": 463742,
+ "node_id": "MDQ6VXNlcjQ2Mzc0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/463742?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/if6was9",
+ "html_url": "https://github.com/if6was9",
+ "followers_url": "https://api.github.com/users/if6was9/followers",
+ "following_url": "https://api.github.com/users/if6was9/following{/other_user}",
+ "gists_url": "https://api.github.com/users/if6was9/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/if6was9/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/if6was9/subscriptions",
+ "organizations_url": "https://api.github.com/users/if6was9/orgs",
+ "repos_url": "https://api.github.com/users/if6was9/repos",
+ "events_url": "https://api.github.com/users/if6was9/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/if6was9/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [
+ {
+ "id": 265902919,
+ "node_id": "MDU6TGFiZWwyNjU5MDI5MTk=",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/bug",
+ "name": "bug",
+ "color": "e11d21",
+ "default": true
+ },
+ {
+ "id": 265903461,
+ "node_id": "MDU6TGFiZWwyNjU5MDM0NjE=",
+ "url": "https://api.github.com/repos/github-api/github-api/labels/work-in-progress",
+ "name": "work-in-progress",
+ "color": "d4c5f9",
+ "default": false
+ }
+ ],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 8,
+ "created_at": "2015-09-01T07:02:08Z",
+ "updated_at": "2015-12-01T13:56:49Z",
+ "closed_at": "2015-12-01T13:56:49Z",
+ "author_association": "NONE",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/216",
+ "html_url": "https://github.com/github-api/github-api/pull/216",
+ "diff_url": "https://github.com/github-api/github-api/pull/216.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/216.patch"
+ },
+ "body": "This fixes #215\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/215",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/215/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/215/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/215/events",
+ "html_url": "https://github.com/github-api/github-api/issues/215",
+ "id": 104197916,
+ "node_id": "MDU6SXNzdWUxMDQxOTc5MTY=",
+ "number": 215,
+ "title": "GHContent.read() is broken due to incorrect HTTP Method",
+ "user": {
+ "login": "if6was9",
+ "id": 463742,
+ "node_id": "MDQ6VXNlcjQ2Mzc0Mg==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/463742?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/if6was9",
+ "html_url": "https://github.com/if6was9",
+ "followers_url": "https://api.github.com/users/if6was9/followers",
+ "following_url": "https://api.github.com/users/if6was9/following{/other_user}",
+ "gists_url": "https://api.github.com/users/if6was9/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/if6was9/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/if6was9/subscriptions",
+ "organizations_url": "https://api.github.com/users/if6was9/orgs",
+ "repos_url": "https://api.github.com/users/if6was9/repos",
+ "events_url": "https://api.github.com/users/if6was9/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/if6was9/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 0,
+ "created_at": "2015-09-01T06:47:37Z",
+ "updated_at": "2015-12-01T13:56:49Z",
+ "closed_at": "2015-12-01T13:56:49Z",
+ "author_association": "NONE",
+ "body": "`GHContent.read()` issues the request as POST rather than GET. This is fine for URLs that do not\nrequire authentication. However, when `download_url` links are returned that have tokens in the query string, the corresponding POST fails.\n\nPresumably it fails because on the remote end, the query string parameters of the POST request are not honored.\n\nThis issue would never be detected if testing happens against a public GitHub URL.\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/214",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/214/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/214/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/214/events",
+ "html_url": "https://github.com/github-api/github-api/pull/214",
+ "id": 102871801,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDMyMTE1NjY=",
+ "number": 214,
+ "title": "Making Javadoc clarify a perhaps surprising behavior",
+ "user": {
+ "login": "jglick",
+ "id": 154109,
+ "node_id": "MDQ6VXNlcjE1NDEwOQ==",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/154109?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/jglick",
+ "html_url": "https://github.com/jglick",
+ "followers_url": "https://api.github.com/users/jglick/followers",
+ "following_url": "https://api.github.com/users/jglick/following{/other_user}",
+ "gists_url": "https://api.github.com/users/jglick/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/jglick/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/jglick/subscriptions",
+ "organizations_url": "https://api.github.com/users/jglick/orgs",
+ "repos_url": "https://api.github.com/users/jglick/repos",
+ "events_url": "https://api.github.com/users/jglick/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/jglick/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 9,
+ "created_at": "2015-08-24T19:24:25Z",
+ "updated_at": "2015-09-16T22:33:35Z",
+ "closed_at": "2015-09-16T22:33:31Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/214",
+ "html_url": "https://github.com/github-api/github-api/pull/214",
+ "diff_url": "https://github.com/github-api/github-api/pull/214.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/214.patch"
+ },
+ "body": "Was the cause of hours of confusion. Changing the behavior now might break existing clients, so just noting the better alternative.\n\n@reviewbybees\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/213",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/213/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/213/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/213/events",
+ "html_url": "https://github.com/github-api/github-api/issues/213",
+ "id": 100344664,
+ "node_id": "MDU6SXNzdWUxMDAzNDQ2NjQ=",
+ "number": 213,
+ "title": "Followers and following pagination",
+ "user": {
+ "login": "cezarykluczynski",
+ "id": 798827,
+ "node_id": "MDQ6VXNlcjc5ODgyNw==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/798827?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/cezarykluczynski",
+ "html_url": "https://github.com/cezarykluczynski",
+ "followers_url": "https://api.github.com/users/cezarykluczynski/followers",
+ "following_url": "https://api.github.com/users/cezarykluczynski/following{/other_user}",
+ "gists_url": "https://api.github.com/users/cezarykluczynski/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/cezarykluczynski/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/cezarykluczynski/subscriptions",
+ "organizations_url": "https://api.github.com/users/cezarykluczynski/orgs",
+ "repos_url": "https://api.github.com/users/cezarykluczynski/repos",
+ "events_url": "https://api.github.com/users/cezarykluczynski/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/cezarykluczynski/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 4,
+ "created_at": "2015-08-11T15:52:59Z",
+ "updated_at": "2015-12-02T10:54:58Z",
+ "closed_at": "2015-12-02T10:50:29Z",
+ "author_association": "NONE",
+ "body": "Is there any way to paginate over followers and following of a user?\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/212",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/212/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/212/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/212/events",
+ "html_url": "https://github.com/github-api/github-api/pull/212",
+ "id": 99436968,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDE3ODg4MDA=",
+ "number": 212,
+ "title": "Added option to edit GitHub release once it is created",
+ "user": {
+ "login": "umajeric",
+ "id": 5724024,
+ "node_id": "MDQ6VXNlcjU3MjQwMjQ=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/5724024?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/umajeric",
+ "html_url": "https://github.com/umajeric",
+ "followers_url": "https://api.github.com/users/umajeric/followers",
+ "following_url": "https://api.github.com/users/umajeric/following{/other_user}",
+ "gists_url": "https://api.github.com/users/umajeric/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/umajeric/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/umajeric/subscriptions",
+ "organizations_url": "https://api.github.com/users/umajeric/orgs",
+ "repos_url": "https://api.github.com/users/umajeric/repos",
+ "events_url": "https://api.github.com/users/umajeric/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/umajeric/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-08-06T13:43:24Z",
+ "updated_at": "2015-08-12T00:01:08Z",
+ "closed_at": "2015-08-11T07:24:30Z",
+ "author_association": "CONTRIBUTOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/212",
+ "html_url": "https://github.com/github-api/github-api/pull/212",
+ "diff_url": "https://github.com/github-api/github-api/pull/212.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/212.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/211",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/211/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/211/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/211/events",
+ "html_url": "https://github.com/github-api/github-api/issues/211",
+ "id": 96043529,
+ "node_id": "MDU6SXNzdWU5NjA0MzUyOQ==",
+ "number": 211,
+ "title": "How to search all repos based on a keyword?",
+ "user": {
+ "login": "KPRATIK",
+ "id": 4166562,
+ "node_id": "MDQ6VXNlcjQxNjY1NjI=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/4166562?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/KPRATIK",
+ "html_url": "https://github.com/KPRATIK",
+ "followers_url": "https://api.github.com/users/KPRATIK/followers",
+ "following_url": "https://api.github.com/users/KPRATIK/following{/other_user}",
+ "gists_url": "https://api.github.com/users/KPRATIK/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/KPRATIK/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/KPRATIK/subscriptions",
+ "organizations_url": "https://api.github.com/users/KPRATIK/orgs",
+ "repos_url": "https://api.github.com/users/KPRATIK/repos",
+ "events_url": "https://api.github.com/users/KPRATIK/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/KPRATIK/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-07-20T11:24:20Z",
+ "updated_at": "2015-07-20T11:43:49Z",
+ "closed_at": "2015-07-20T11:43:49Z",
+ "author_association": "NONE",
+ "body": "I am trying to do something like this: \nhttps://api.github.com/search/repositories?q=tetris\n\nThis is the code I have now:\nGitHub github = GitHub.connectToEnterprise(\"https://github.corp..com/api/v3\", \"\", \"\");\nGHRepositorySearchBuilder search = github.searchRepositories();\nGHRepositorySearchBuilder s = search.q(\"audit\");\n\nPagedSearchIterable res = s.list();\n\nfor (GHRepository ghRepository : res) {\n System.out.println(ghRepository.getFullName());;\n}\n\nAnd I get this error:\nException in thread \"main\" java.lang.Error: java.net.ConnectException: Operation timed out\n at org.kohsuke.github.Requester$1.fetch(Requester.java:396)\n at org.kohsuke.github.Requester$1.hasNext(Requester.java:363)\n at org.kohsuke.github.PagedSearchIterable$1.hasNext(PagedSearchIterable.java:46)\n at org.kohsuke.github.PagedIterator.fetch(PagedIterator.java:44)\n at org.kohsuke.github.PagedIterator.hasNext(PagedIterator.java:32)\n at com.inmobi.pratik.AppTest.main(AppTest.java:71)\n\nThanks,\nPratik\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/210",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/210/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/210/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/210/events",
+ "html_url": "https://github.com/github-api/github-api/pull/210",
+ "id": 95950080,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDAzMTUyOTA=",
+ "number": 210,
+ "title": "Cleanup issues discovered by FindBugs",
+ "user": {
+ "login": "oleg-nenashev",
+ "id": 3000480,
+ "node_id": "MDQ6VXNlcjMwMDA0ODA=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/3000480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/oleg-nenashev",
+ "html_url": "https://github.com/oleg-nenashev",
+ "followers_url": "https://api.github.com/users/oleg-nenashev/followers",
+ "following_url": "https://api.github.com/users/oleg-nenashev/following{/other_user}",
+ "gists_url": "https://api.github.com/users/oleg-nenashev/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/oleg-nenashev/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/oleg-nenashev/subscriptions",
+ "organizations_url": "https://api.github.com/users/oleg-nenashev/orgs",
+ "repos_url": "https://api.github.com/users/oleg-nenashev/repos",
+ "events_url": "https://api.github.com/users/oleg-nenashev/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/oleg-nenashev/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 8,
+ "created_at": "2015-07-19T21:21:56Z",
+ "updated_at": "2015-10-06T09:22:42Z",
+ "closed_at": "2015-07-24T12:57:31Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/210",
+ "html_url": "https://github.com/github-api/github-api/pull/210",
+ "diff_url": "https://github.com/github-api/github-api/pull/210.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/210.patch"
+ },
+ "body": "The change closes about 100 issues (mostly API ones), but there're also several changes for encodings and file streams\n\n@reviewbybees @lanwen @KostyaSha \n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/209",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/209/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/209/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/209/events",
+ "html_url": "https://github.com/github-api/github-api/issues/209",
+ "id": 95940471,
+ "node_id": "MDU6SXNzdWU5NTk0MDQ3MQ==",
+ "number": 209,
+ "title": "Missing: List private organizations a user belongs",
+ "user": {
+ "login": "samrocketman",
+ "id": 875669,
+ "node_id": "MDQ6VXNlcjg3NTY2OQ==",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/875669?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/samrocketman",
+ "html_url": "https://github.com/samrocketman",
+ "followers_url": "https://api.github.com/users/samrocketman/followers",
+ "following_url": "https://api.github.com/users/samrocketman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/samrocketman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/samrocketman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/samrocketman/subscriptions",
+ "organizations_url": "https://api.github.com/users/samrocketman/orgs",
+ "repos_url": "https://api.github.com/users/samrocketman/repos",
+ "events_url": "https://api.github.com/users/samrocketman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/samrocketman/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 2,
+ "created_at": "2015-07-19T19:04:43Z",
+ "updated_at": "2015-07-21T02:52:59Z",
+ "closed_at": "2015-07-21T02:52:59Z",
+ "author_association": "NONE",
+ "body": "There's no way in this API to list private organization membership. Currently, one can [only fetch public membership](https://github.com/kohsuke/github-api/blob/2d45ac51efb4ad5f9121b328825e27067b7bad3c/src/main/java/org/kohsuke/github/GHUser.java#L121-L129) in this library. This is making use of the GitHub API to [list public organization memberships](https://developer.github.com/v3/orgs/#list-user-organizations).\n\nSolution: Make use of the GitHub API to [list my organization membership](https://developer.github.com/v3/orgs/#list-your-organizations).\n"
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/208",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/208/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/208/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/208/events",
+ "html_url": "https://github.com/github-api/github-api/pull/208",
+ "id": 95638866,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDAyMjIxNDg=",
+ "number": 208,
+ "title": "Fix potential NPE in the code",
+ "user": {
+ "login": "oleg-nenashev",
+ "id": 3000480,
+ "node_id": "MDQ6VXNlcjMwMDA0ODA=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/3000480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/oleg-nenashev",
+ "html_url": "https://github.com/oleg-nenashev",
+ "followers_url": "https://api.github.com/users/oleg-nenashev/followers",
+ "following_url": "https://api.github.com/users/oleg-nenashev/following{/other_user}",
+ "gists_url": "https://api.github.com/users/oleg-nenashev/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/oleg-nenashev/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/oleg-nenashev/subscriptions",
+ "organizations_url": "https://api.github.com/users/oleg-nenashev/orgs",
+ "repos_url": "https://api.github.com/users/oleg-nenashev/repos",
+ "events_url": "https://api.github.com/users/oleg-nenashev/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/oleg-nenashev/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-07-17T11:22:24Z",
+ "updated_at": "2015-07-17T11:31:44Z",
+ "closed_at": "2015-07-17T11:24:14Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/208",
+ "html_url": "https://github.com/github-api/github-api/pull/208",
+ "diff_url": "https://github.com/github-api/github-api/pull/208.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/208.patch"
+ },
+ "body": ""
+ },
+ {
+ "url": "https://api.github.com/repos/github-api/github-api/issues/207",
+ "repository_url": "https://api.github.com/repos/github-api/github-api",
+ "labels_url": "https://api.github.com/repos/github-api/github-api/issues/207/labels{/name}",
+ "comments_url": "https://api.github.com/repos/github-api/github-api/issues/207/comments",
+ "events_url": "https://api.github.com/repos/github-api/github-api/issues/207/events",
+ "html_url": "https://github.com/github-api/github-api/pull/207",
+ "id": 95438991,
+ "node_id": "MDExOlB1bGxSZXF1ZXN0NDAxMzE3MTQ=",
+ "number": 207,
+ "title": "Enable FindBugs in the repo",
+ "user": {
+ "login": "oleg-nenashev",
+ "id": 3000480,
+ "node_id": "MDQ6VXNlcjMwMDA0ODA=",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/3000480?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/oleg-nenashev",
+ "html_url": "https://github.com/oleg-nenashev",
+ "followers_url": "https://api.github.com/users/oleg-nenashev/followers",
+ "following_url": "https://api.github.com/users/oleg-nenashev/following{/other_user}",
+ "gists_url": "https://api.github.com/users/oleg-nenashev/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/oleg-nenashev/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/oleg-nenashev/subscriptions",
+ "organizations_url": "https://api.github.com/users/oleg-nenashev/orgs",
+ "repos_url": "https://api.github.com/users/oleg-nenashev/repos",
+ "events_url": "https://api.github.com/users/oleg-nenashev/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/oleg-nenashev/received_events",
+ "type": "User",
+ "site_admin": false
+ },
+ "labels": [],
+ "state": "closed",
+ "locked": false,
+ "assignee": null,
+ "assignees": [],
+ "milestone": null,
+ "comments": 1,
+ "created_at": "2015-07-16T13:56:56Z",
+ "updated_at": "2015-07-17T10:13:23Z",
+ "closed_at": "2015-07-17T10:13:23Z",
+ "author_association": "COLLABORATOR",
+ "pull_request": {
+ "url": "https://api.github.com/repos/github-api/github-api/pulls/207",
+ "html_url": "https://github.com/github-api/github-api/pull/207",
+ "diff_url": "https://github.com/github-api/github-api/pull/207.diff",
+ "patch_url": "https://github.com/github-api/github-api/pull/207.patch"
+ },
+ "body": "Intention - get automatic builds on https://buildhive.cloudbees.com/job/kohsuke/job/github-api\n"
+ }
+]
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/user-7741e4f6-c93e-4760-bb92-070e61f5a475.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/user-7741e4f6-c93e-4760-bb92-070e61f5a475.json
new file mode 100644
index 000000000..41fc9e3d0
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/__files/user-7741e4f6-c93e-4760-bb92-070e61f5a475.json
@@ -0,0 +1,45 @@
+{
+ "login": "bitwiseman",
+ "id": 1958953,
+ "node_id": "MDQ6VXNlcjE5NTg5NTM=",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1958953?v=4",
+ "gravatar_id": "",
+ "url": "https://api.github.com/users/bitwiseman",
+ "html_url": "https://github.com/bitwiseman",
+ "followers_url": "https://api.github.com/users/bitwiseman/followers",
+ "following_url": "https://api.github.com/users/bitwiseman/following{/other_user}",
+ "gists_url": "https://api.github.com/users/bitwiseman/gists{/gist_id}",
+ "starred_url": "https://api.github.com/users/bitwiseman/starred{/owner}{/repo}",
+ "subscriptions_url": "https://api.github.com/users/bitwiseman/subscriptions",
+ "organizations_url": "https://api.github.com/users/bitwiseman/orgs",
+ "repos_url": "https://api.github.com/users/bitwiseman/repos",
+ "events_url": "https://api.github.com/users/bitwiseman/events{/privacy}",
+ "received_events_url": "https://api.github.com/users/bitwiseman/received_events",
+ "type": "User",
+ "site_admin": false,
+ "name": "Liam Newman",
+ "company": "Cloudbees, Inc.",
+ "blog": "",
+ "location": "Seattle, WA, USA",
+ "email": "bitwiseman@gmail.com",
+ "hireable": null,
+ "bio": "https://twitter.com/bitwiseman",
+ "public_repos": 168,
+ "public_gists": 4,
+ "followers": 136,
+ "following": 9,
+ "created_at": "2012-07-11T20:38:33Z",
+ "updated_at": "2019-09-24T19:32:29Z",
+ "private_gists": 7,
+ "total_private_repos": 9,
+ "owned_private_repos": 0,
+ "disk_usage": 33697,
+ "collaborators": 0,
+ "two_factor_authentication": true,
+ "plan": {
+ "name": "free",
+ "space": 976562499,
+ "collaborators": 0,
+ "private_repos": 10000
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/orgs_github-api-2-baecb5.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/orgs_github-api-2-baecb5.json
new file mode 100644
index 000000000..8ba4bf842
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/orgs_github-api-2-baecb5.json
@@ -0,0 +1,43 @@
+{
+ "id": "baecb5db-6e9c-441b-8414-c8070d9bc0c2",
+ "name": "orgs_github-api",
+ "request": {
+ "url": "/orgs/github-api",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "orgs_github-api-baecb5db-6e9c-441b-8414-c8070d9bc0c2.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:11 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4936",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"a6ed96e50f24e7f2a58b04f0c4b657aa\"",
+ "Last-Modified": "Wed, 04 Sep 2019 18:12:34 GMT",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "admin:org, read:org, repo, user, write:org",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188E875:1D03B18:5D968F87"
+ }
+ },
+ "uuid": "baecb5db-6e9c-441b-8414-c8070d9bc0c2",
+ "persistent": true,
+ "insertionIndex": 2
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repos_github-api_github-api-3-891820.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repos_github-api_github-api-3-891820.json
new file mode 100644
index 000000000..e1bfc7dcb
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repos_github-api_github-api-3-891820.json
@@ -0,0 +1,43 @@
+{
+ "id": "891820f6-7cd7-437a-8ec1-16c3e76c53ec",
+ "name": "repos_github-api_github-api",
+ "request": {
+ "url": "/repos/github-api/github-api",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_github-api_github-api-891820f6-7cd7-437a-8ec1-16c3e76c53ec.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:12 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4935",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"8cc495660ca67962319f24f12c386311\"",
+ "Last-Modified": "Thu, 03 Oct 2019 21:38:52 GMT",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188E889:1D03B86:5D968F87"
+ }
+ },
+ "uuid": "891820f6-7cd7-437a-8ec1-16c3e76c53ec",
+ "persistent": true,
+ "insertionIndex": 3
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repos_github-api_github-api_issues-4-a70d05.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repos_github-api_github-api_issues-4-a70d05.json
new file mode 100644
index 000000000..dba789cda
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repos_github-api_github-api_issues-4-a70d05.json
@@ -0,0 +1,43 @@
+{
+ "id": "a70d05ac-5820-4749-8318-e422f0f6eaf5",
+ "name": "repos_github-api_github-api_issues",
+ "request": {
+ "url": "/repos/github-api/github-api/issues?state=closed",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repos_github-api_github-api_issues-a70d05ac-5820-4749-8318-e422f0f6eaf5.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:12 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4934",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"855067f1626a8814f2a51a24a505205e\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188E8DF:1D03BD4:5D968F88",
+ "Link": "; rel=\"next\", ; rel=\"last\""
+ }
+ },
+ "uuid": "a70d05ac-5820-4749-8318-e422f0f6eaf5",
+ "persistent": true,
+ "insertionIndex": 4
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-10-5a770b.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-10-5a770b.json
new file mode 100644
index 000000000..66bb51e22
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-10-5a770b.json
@@ -0,0 +1,43 @@
+{
+ "id": "5a770b70-ca92-478e-8bb5-c713553ddefb",
+ "name": "repositories_617210_issues",
+ "request": {
+ "url": "/repositories/617210/issues?state=closed&page=7",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repositories_617210_issues-5a770b70-ca92-478e-8bb5-c713553ddefb.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:16 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4928",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"21a365f7b4f8cdc2266c724c1edbdcc1\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188EACA:1D03E31:5D968F8B",
+ "Link": "; rel=\"prev\", ; rel=\"next\", ; rel=\"last\", ; rel=\"first\""
+ }
+ },
+ "uuid": "5a770b70-ca92-478e-8bb5-c713553ddefb",
+ "persistent": true,
+ "insertionIndex": 10
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-11-e04b88.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-11-e04b88.json
new file mode 100644
index 000000000..a184aab9a
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-11-e04b88.json
@@ -0,0 +1,43 @@
+{
+ "id": "e04b8865-9ace-405a-b8d9-f8bcacb9bfa8",
+ "name": "repositories_617210_issues",
+ "request": {
+ "url": "/repositories/617210/issues?state=closed&page=8",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repositories_617210_issues-e04b8865-9ace-405a-b8d9-f8bcacb9bfa8.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:16 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4927",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"6289958dc2a2cf6746b7d52c991da514\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188EB0E:1D03E6F:5D968F8C",
+ "Link": "; rel=\"prev\", ; rel=\"next\", ; rel=\"last\", ; rel=\"first\""
+ }
+ },
+ "uuid": "e04b8865-9ace-405a-b8d9-f8bcacb9bfa8",
+ "persistent": true,
+ "insertionIndex": 11
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-12-fe625e.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-12-fe625e.json
new file mode 100644
index 000000000..1eee1e690
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-12-fe625e.json
@@ -0,0 +1,43 @@
+{
+ "id": "fe625e7c-4b31-4b30-bc77-a763a3774fdc",
+ "name": "repositories_617210_issues",
+ "request": {
+ "url": "/repositories/617210/issues?state=closed&page=9",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repositories_617210_issues-fe625e7c-4b31-4b30-bc77-a763a3774fdc.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:17 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4926",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"89ba1bade058980eaa351f6cbc20e34b\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188EB42:1D03EC2:5D968F8C",
+ "Link": "; rel=\"prev\", ; rel=\"next\", ; rel=\"last\", ; rel=\"first\""
+ }
+ },
+ "uuid": "fe625e7c-4b31-4b30-bc77-a763a3774fdc",
+ "persistent": true,
+ "insertionIndex": 12
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-13-ab2693.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-13-ab2693.json
new file mode 100644
index 000000000..d54c0c089
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-13-ab2693.json
@@ -0,0 +1,43 @@
+{
+ "id": "ab269330-3eb7-4ec1-9211-ecc8d0d70701",
+ "name": "repositories_617210_issues",
+ "request": {
+ "url": "/repositories/617210/issues?state=closed&page=10",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repositories_617210_issues-ab269330-3eb7-4ec1-9211-ecc8d0d70701.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:17 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4925",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"0aab7458ec8b4a34267a9a02dcf45257\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188EB78:1D03EFD:5D968F8D",
+ "Link": "; rel=\"prev\", ; rel=\"next\", ; rel=\"last\", ; rel=\"first\""
+ }
+ },
+ "uuid": "ab269330-3eb7-4ec1-9211-ecc8d0d70701",
+ "persistent": true,
+ "insertionIndex": 13
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-14-9486f6.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-14-9486f6.json
new file mode 100644
index 000000000..d851eaac6
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-14-9486f6.json
@@ -0,0 +1,43 @@
+{
+ "id": "9486f660-2139-4f84-ae0f-898d0369d061",
+ "name": "repositories_617210_issues",
+ "request": {
+ "url": "/repositories/617210/issues?state=closed&page=11",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repositories_617210_issues-9486f660-2139-4f84-ae0f-898d0369d061.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:18 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4924",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"1b595e98c0433d4a7bf72b76b2651c5a\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188EBC5:1D03F4F:5D968F8D",
+ "Link": "; rel=\"prev\", ; rel=\"next\", ; rel=\"last\", ; rel=\"first\""
+ }
+ },
+ "uuid": "9486f660-2139-4f84-ae0f-898d0369d061",
+ "persistent": true,
+ "insertionIndex": 14
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-15-c9e769.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-15-c9e769.json
new file mode 100644
index 000000000..d0d9ac391
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-15-c9e769.json
@@ -0,0 +1,43 @@
+{
+ "id": "c9e769fc-6556-4374-b397-244843a75000",
+ "name": "repositories_617210_issues",
+ "request": {
+ "url": "/repositories/617210/issues?state=closed&page=12",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repositories_617210_issues-c9e769fc-6556-4374-b397-244843a75000.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:18 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4923",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"2a137f52035a2a50858378f4f431c7fa\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188EC16:1D03F9E:5D968F8E",
+ "Link": "; rel=\"prev\", ; rel=\"next\", ; rel=\"last\", ; rel=\"first\""
+ }
+ },
+ "uuid": "c9e769fc-6556-4374-b397-244843a75000",
+ "persistent": true,
+ "insertionIndex": 15
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-16-46f0ca.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-16-46f0ca.json
new file mode 100644
index 000000000..a27236737
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-16-46f0ca.json
@@ -0,0 +1,43 @@
+{
+ "id": "46f0ca81-080b-419a-b494-df00573bd9aa",
+ "name": "repositories_617210_issues",
+ "request": {
+ "url": "/repositories/617210/issues?state=closed&page=13",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repositories_617210_issues-46f0ca81-080b-419a-b494-df00573bd9aa.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:19 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4922",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"fca0e2c550900871b46d35b9a7986ebd\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188EC6C:1D04000:5D968F8E",
+ "Link": "; rel=\"prev\", ; rel=\"next\", ; rel=\"last\", ; rel=\"first\""
+ }
+ },
+ "uuid": "46f0ca81-080b-419a-b494-df00573bd9aa",
+ "persistent": true,
+ "insertionIndex": 16
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-17-b2fa4e.json b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-17-b2fa4e.json
new file mode 100644
index 000000000..6569b11db
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/AppTest/wiremock/testGetIssues/mappings/repositories_617210_issues-17-b2fa4e.json
@@ -0,0 +1,43 @@
+{
+ "id": "b2fa4ec1-c691-4d0a-a3b2-13e129aa1dea",
+ "name": "repositories_617210_issues",
+ "request": {
+ "url": "/repositories/617210/issues?state=closed&page=14",
+ "method": "GET"
+ },
+ "response": {
+ "status": 200,
+ "bodyFileName": "repositories_617210_issues-b2fa4ec1-c691-4d0a-a3b2-13e129aa1dea.json",
+ "headers": {
+ "Date": "Fri, 04 Oct 2019 00:17:20 GMT",
+ "Content-Type": "application/json; charset=utf-8",
+ "Server": "GitHub.com",
+ "Status": "200 OK",
+ "X-RateLimit-Limit": "5000",
+ "X-RateLimit-Remaining": "4921",
+ "X-RateLimit-Reset": "1570151182",
+ "Cache-Control": "private, max-age=60, s-maxage=60",
+ "Vary": [
+ "Accept, Authorization, Cookie, X-GitHub-OTP",
+ "Accept-Encoding"
+ ],
+ "ETag": "W/\"d913f1e895a7f1d9cec68d859ecfb154\"",
+ "X-OAuth-Scopes": "admin:org, admin:org_hook, admin:public_key, admin:repo_hook, delete_repo, gist, notifications, repo, user, write:discussion",
+ "X-Accepted-OAuth-Scopes": "repo",
+ "X-GitHub-Media-Type": "unknown, github.v3",
+ "Access-Control-Expose-Headers": "ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type",
+ "Access-Control-Allow-Origin": "*",
+ "Strict-Transport-Security": "max-age=31536000; includeSubdomains; preload",
+ "X-Frame-Options": "deny",
+ "X-Content-Type-Options": "nosniff",
+ "X-XSS-Protection": "1; mode=block",
+ "Referrer-Policy": "origin-when-cross-origin, strict-origin-when-cross-origin",
+ "Content-Security-Policy": "default-src 'none'",
+ "X-GitHub-Request-Id": "D5B9:6B2E:188ECBC:1D0405F:5D968F8F",
+ "Link": "; rel=\"prev\", ; rel=\"next\",