diff --git a/pom.xml b/pom.xml
index d89670607b..9ada1d503b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,11 +3,11 @@
org.kohsuke
pom
- 4
+ 6
github-api
- 1.42
+ 1.43
GitHub API for Java
http://github-api.kohsuke.org/
GitHub API for Java
diff --git a/src/main/java/org/kohsuke/github/GHOrganization.java b/src/main/java/org/kohsuke/github/GHOrganization.java
index d8f8cfe036..e02eccd6ee 100644
--- a/src/main/java/org/kohsuke/github/GHOrganization.java
+++ b/src/main/java/org/kohsuke/github/GHOrganization.java
@@ -130,10 +130,13 @@ public GHTeam createTeam(String name, Permission p, GHRepository... repositories
/**
* List up repositories that has some open pull requests.
+ *
+ * This used to be an efficient method that didn't involve traversing every repository, but now
+ * it doesn't do any optimization.
*/
public List getRepositoriesWithOpenPullRequests() throws IOException {
List r = new ArrayList();
- for (GHRepository repository : root.retrieve().to("/orgs/" + login + "/repos", GHRepository[].class)) {
+ for (GHRepository repository : listRepositories()) {
repository.wrap(root);
List pullRequests = repository.getPullRequests(GHIssueState.OPEN);
if (pullRequests.size() > 0) {
diff --git a/src/main/java/org/kohsuke/github/GHPerson.java b/src/main/java/org/kohsuke/github/GHPerson.java
index 7f65277f4f..721eeb2257 100644
--- a/src/main/java/org/kohsuke/github/GHPerson.java
+++ b/src/main/java/org/kohsuke/github/GHPerson.java
@@ -54,6 +54,25 @@ public synchronized Map getRepositories() throws IOExceptio
return Collections.unmodifiableMap(repositories);
}
+ /**
+ * Lists up all the repositories.
+ *
+ * Unlike {@link #getRepositories()}, this does not wait until all the repositories are returned.
+ */
+ public PagedIterable listRepositories() {
+ return new PagedIterable() {
+ public PagedIterator iterator() {
+ return new PagedIterator(root.retrieve().asIterator("/users/" + login + "/repos", GHRepository[].class)) {
+ @Override
+ protected void wrapUp(GHRepository[] page) {
+ for (GHRepository c : page)
+ c.wrap(root);
+ }
+ };
+ }
+ };
+ }
+
/**
* Loads repository list in a pagenated fashion.
*
@@ -63,6 +82,9 @@ public synchronized Map getRepositories() throws IOExceptio
*
* Every {@link Iterator#next()} call results in I/O. Exceptions that occur during the processing is wrapped
* into {@link Error}.
+ *
+ * @deprecated
+ * Use {@link #listRepositories()}
*/
public synchronized Iterable> iterateRepositories(final int pageSize) {
return new Iterable>() {
diff --git a/src/main/java/org/kohsuke/github/GitHub.java b/src/main/java/org/kohsuke/github/GitHub.java
index 8adf7e352f..7cebf53765 100644
--- a/src/main/java/org/kohsuke/github/GitHub.java
+++ b/src/main/java/org/kohsuke/github/GitHub.java
@@ -123,7 +123,7 @@ private GitHub(String apiUrl, String login, String oauthAccessToken, String pass
}
}
- if (login==null)
+ if (login==null && encodedAuthorization!=null)
login = getMyself().getLogin();
this.login = login;
}