From 6c7b8913976aeebb057d68562eee04be2d7b3a31 Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Thu, 16 Jun 2011 22:03:47 -0700 Subject: [PATCH] added a page-scraping based method of listing up all the pull requests --- .../java/org/kohsuke/github/GHOrganization.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/org/kohsuke/github/GHOrganization.java b/src/main/java/org/kohsuke/github/GHOrganization.java index 8f0887786..ab8b55bd3 100644 --- a/src/main/java/org/kohsuke/github/GHOrganization.java +++ b/src/main/java/org/kohsuke/github/GHOrganization.java @@ -1,12 +1,15 @@ package org.kohsuke.github; import com.gargoylesoftware.htmlunit.WebClient; +import com.gargoylesoftware.htmlunit.html.HtmlAnchor; import com.gargoylesoftware.htmlunit.html.HtmlForm; import com.gargoylesoftware.htmlunit.html.HtmlPage; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.List; import java.util.Map; /** @@ -63,4 +66,18 @@ public class GHOrganization extends GHPerson { return createTeam(name,p, Arrays.asList(repositories)); } + /** + * List up repositories that has some open pull requests. + */ + public List getRepositoriesWithOpenPullRequests() throws IOException { + WebClient wc = root.createWebClient(); + HtmlPage pg = (HtmlPage)wc.getPage("https://github.com/organizations/"+login+"/dashboard/pulls"); + List r = new ArrayList(); + for (HtmlAnchor e : pg.getElementById("js-issue-list").selectNodes(".//UL[@class='smallnav']/LI[not(@class='zeroed')]/A")) { + String a = e.getHrefAttribute(); + String name = a.substring(a.lastIndexOf('/')+1); + r.add(getRepository(name)); + } + return r; + } }