{"action":"created","comment":{"url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/comments/55214855","id":55214855,"diff_hunk":"@@ -0,0 +1,204 @@\n+package org.jenkinsci.plugins.orgfolder.github;\n+\n+import com.cloudbees.plugins.credentials.common.StandardCredentials;\n+import hudson.BulkChange;\n+import hudson.Extension;\n+import hudson.model.AbstractItem;\n+import hudson.model.AllView;\n+import hudson.model.Descriptor;\n+import hudson.model.Item;\n+import hudson.model.ListView;\n+import hudson.model.listeners.ItemListener;\n+import hudson.util.DescribableList;\n+import hudson.views.JobColumn;\n+import hudson.views.ListViewColumn;\n+import hudson.views.StatusColumn;\n+import hudson.views.WeatherColumn;\n+import jenkins.branch.Branch;\n+import jenkins.branch.OrganizationFolder;\n+import jenkins.model.Jenkins;\n+import jenkins.scm.api.SCMSourceOwner;\n+import jenkins.util.io.FileBoolean;\n+import org.jenkinsci.plugins.github_branch_source.Connector;\n+import org.jenkinsci.plugins.github_branch_source.GitHubSCMNavigator;\n+import org.jenkinsci.plugins.workflow.job.WorkflowJob;\n+import org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject;\n+import org.kohsuke.github.GHEvent;\n+import org.kohsuke.github.GHHook;\n+import org.kohsuke.github.GHOrganization;\n+import org.kohsuke.github.GHRepository;\n+import org.kohsuke.github.GHUser;\n+import org.kohsuke.github.GitHub;\n+\n+import java.io.File;\n+import java.io.IOException;\n+import java.net.URL;\n+import java.util.Arrays;\n+import java.util.HashSet;\n+import java.util.Set;\n+import java.util.logging.Level;\n+import java.util.logging.Logger;\n+\n+import static java.util.Arrays.*;\n+\n+/**\n+ * Main logic of UI customization.\n+ *\n+ * @author Kohsuke Kawaguchi\n+ */\n+@Extension\n+public class MainLogic {\n+    /**\n+     * Applies UI customizations to {@link OrganizationFolder} for GitHub\n+     */\n+    public void applyOrg(OrganizationFolder of, GitHubSCMNavigator scm) throws IOException {\n+        if (UPDATING.get().add(of)) {\n+            BulkChange bc = new BulkChange(of);\n+            try {\n+                GitHub hub = connect(of, scm);\n+                GHUser u = hub.getUser(scm.getRepoOwner());\n+\n+                of.setIcon(new GitHubOrgIcon());\n+                of.getProperties().replace(new GitHubOrgProperty(u));\n+                of.replaceAction(new GitHubLink(\"logo\",u.getHtmlUrl()));\n+                if (of.getDisplayNameOrNull()==null)\n+                    of.setDisplayName(u.getName());\n+                if (of.getView(\"Repositories\")==null && of.getView(\"All\") instanceof AllView) {\n+                    // need to set the default view\n+                    ListView lv = new ListView(\"Repositories\");\n+                    lv.getColumns().replaceBy(asList(\n+                        new StatusColumn(),\n+                        new WeatherColumn(),\n+                        new CustomNameJobColumn(Messages.class,Messages._ListViewColumn_Repository()),\n+                        new RepositoryDescriptionColumn()\n+                    ));\n+                    lv.setIncludeRegex(\".*\");   // show all\n+                    of.addView(lv);\n+                    of.deleteView(of.getView(\"All\"));\n+                    of.setPrimaryView(lv);\n+                }\n+\n+                FileBoolean orghook = new FileBoolean(new File(of.getRootDir(),\"GitHubOrgHook.\"+scm.getRepoOwner()));\n+                if (orghook.isOff()) {\n+                    try {\n+                        GHOrganization org = hub.getOrganization(scm.getRepoOwner());\n+                        String url = Jenkins.getActiveInstance().getRootUrl() + \"github-webhook/\";\n+                        if (!existsHook(org, url)) {\n+                            org.createWebHook(new URL(url), Arrays.asList(GHEvent.REPOSITORY,GHEvent.PUSH));\n+                            LOGGER.log(Level.INFO, \"A webhook was registered for the organization {0}\", org.getHtmlUrl());\n+                        }\n+                        // keep trying until the hook gets successfully installed\n+                        // if the user doesn't have the proper permission, this will cause\n+                        // a repeated failure, but this code doesn't execute too often.\n+                        orghook.on();\n+                    } catch (IOException e) {\n+                        LOGGER.log(Level.WARNING, \"Failed to register GitHub Org hook to \"+u.getHtmlUrl(), e);\n+                    }\n+                }\n+\n+\n+                bc.commit();\n+            } finally {\n+                bc.abort();\n+                UPDATING.get().remove(of);\n+            }\n+        }\n+    }\n+\n+    /**\n+     * Applies UI customizations to a level below {@link OrganizationFolder}, which maps to a repository.\n+     */\n+    public void applyRepo(WorkflowMultiBranchProject item, GitHubSCMNavigator scm) throws IOException {\n+        if (UPDATING.get().add(item)) {\n+            GitHub hub = connect(item, scm);\n+            GHRepository repo = hub.getRepository(scm.getRepoOwner() + '/' + item.getName());\n+\n+            BulkChange bc = new BulkChange(item);\n+            try {\n+                item.setIcon(new GitHubRepoIcon());\n+                item.getProperties().replace(new GitHubRepoProperty(repo));\n+                item.replaceAction(new GitHubLink(\"repo\",repo.getHtmlUrl()));\n+                if (item.getView(\"Branches\")==null && item.getView(\"All\") instanceof AllView) {\n+                    // create initial views\n+                    ListView bv = new ListView(\"Branches\");\n+                    DescribableList<ListViewColumn, Descriptor<ListViewColumn>> cols = bv.getColumns();\n+                    JobColumn name = cols.get(JobColumn.class);\n+                    if (name!=null)\n+                        cols.replace(name,new CustomNameJobColumn(Messages.class, Messages._ListViewColumn_Branch()));\n+                    bv.getJobFilters().add(new BranchJobFilter());\n+\n+                    ListView pv = new ListView(\"Pull Requests\");\n+                    cols = pv.getColumns();\n+                    name = cols.get(JobColumn.class);\n+                    if (name!=null)\n+                        cols.replace(name,new CustomNameJobColumn(Messages.class, Messages._ListViewColumn_PullRequest()));\n+                    bv.getJobFilters().add(new PullRequestJobFilter());\n+\n+                    item.addView(bv);\n+                    item.addView(pv);\n+                    item.deleteView(item.getView(\"All\"));\n+                    item.setPrimaryView(bv);\n+                }\n+\n+                bc.commit();\n+            } finally {\n+                bc.abort();\n+                UPDATING.get().remove(item);\n+            }\n+        }\n+    }\n+\n+    /**\n+     * Applies UI customizations to two levels below {@link OrganizationFolder}, which maps to a branch.\n+     */\n+    public void applyBranch(WorkflowJob branch, WorkflowMultiBranchProject repo, GitHubSCMNavigator scm) throws IOException {\n+        if (UPDATING.get().add(branch)) {\n+            Branch b = repo.getProjectFactory().getBranch(branch);\n+            GitHubLink repoLink = repo.getAction(GitHubLink.class);\n+            if (repoLink!=null) {\n+                BulkChange bc = new BulkChange(branch);\n+                try {\n+                    branch.replaceAction(new GitHubLink(\"branch\",repoLink.getUrl()+\"/tree/\"+b.getName()));\n+                    bc.commit();\n+                } finally {\n+                    bc.abort();\n+                    UPDATING.get().remove(branch);\n+                }\n+            }\n+        }\n+    }\n+\n+    GitHub connect(SCMSourceOwner of, GitHubSCMNavigator n) throws IOException {\n+        StandardCredentials credentials = Connector.lookupScanCredentials(of, n.getApiUri(), n.getScanCredentialsId());\n+        return Connector.connect(n.getApiUri(), credentials);\n+    }\n+\n+    /**\n+     * Verify if exists a webhook by its URL.\n+     */\n+    private boolean existsHook(GHOrganization org, String url) throws IOException {\n+        for (GHHook hook : org.getHooks()) {\n+            if (hook.getConfig().get(\"url\").equals(url)) {\n+                return true;\n+            }\n+        }\n+        return false;\n+    }\n+\n+    public static MainLogic get() {\n+        return Jenkins.getActiveInstance().getInjector().getInstance(MainLogic.class);","path":"src/main/java/org/jenkinsci/plugins/orgfolder/github/MainLogic.java","position":189,"original_position":189,"commit_id":"fb6549fb7e4a1e98cc097004826b2d66da5892f5","original_commit_id":"fb6549fb7e4a1e98cc097004826b2d66da5892f5","user":{"login":"jglick","id":154109,"avatar_url":"https://avatars.githubusercontent.com/u/154109?v=3","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},"body":"Seems overly complex for this to be an `@Extension`. Just use `static` methods.","created_at":"2016-03-07T15:03:36Z","updated_at":"2016-03-07T15:03:36Z","html_url":"https://github.com/jenkinsci/github-organization-folder-plugin/pull/1#discussion_r55214855","pull_request_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/comments/55214855"},"html":{"href":"https://github.com/jenkinsci/github-organization-folder-plugin/pull/1#discussion_r55214855"},"pull_request":{"href":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/1","id":61747248,"html_url":"https://github.com/jenkinsci/github-organization-folder-plugin/pull/1","diff_url":"https://github.com/jenkinsci/github-organization-folder-plugin/pull/1.diff","patch_url":"https://github.com/jenkinsci/github-organization-folder-plugin/pull/1.patch","issue_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/issues/1","number":1,"state":"open","locked":false,"title":"Initial work","user":{"login":"kohsuke","id":50003,"avatar_url":"https://avatars.githubusercontent.com/u/50003?v=3","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},"body":"Various misc. UI improvements.\r\n\r\nSee [the document](https://docs.google.com/document/d/1YqB-UcI5Po4LiXCqWcHB-psoEXR9TSCiqlRRGQLzqus/edit#) for the list of initial features.","created_at":"2016-03-04T17:54:06Z","updated_at":"2016-03-07T15:03:36Z","closed_at":null,"merged_at":null,"merge_commit_sha":"135ed2fae61a63496a7e4a62969a9986483fef5a","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/1/commits","review_comments_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/1/comments","review_comment_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/issues/1/comments","statuses_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/statuses/fb6549fb7e4a1e98cc097004826b2d66da5892f5","head":{"label":"jenkinsci:initial-work","ref":"initial-work","sha":"fb6549fb7e4a1e98cc097004826b2d66da5892f5","user":{"login":"jenkinsci","id":107424,"avatar_url":"https://avatars.githubusercontent.com/u/107424?v=3","gravatar_id":"","url":"https://api.github.com/users/jenkinsci","html_url":"https://github.com/jenkinsci","followers_url":"https://api.github.com/users/jenkinsci/followers","following_url":"https://api.github.com/users/jenkinsci/following{/other_user}","gists_url":"https://api.github.com/users/jenkinsci/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkinsci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkinsci/subscriptions","organizations_url":"https://api.github.com/users/jenkinsci/orgs","repos_url":"https://api.github.com/users/jenkinsci/repos","events_url":"https://api.github.com/users/jenkinsci/events{/privacy}","received_events_url":"https://api.github.com/users/jenkinsci/received_events","type":"Organization","site_admin":false},"repo":{"id":53154390,"name":"github-organization-folder-plugin","full_name":"jenkinsci/github-organization-folder-plugin","owner":{"login":"jenkinsci","id":107424,"avatar_url":"https://avatars.githubusercontent.com/u/107424?v=3","gravatar_id":"","url":"https://api.github.com/users/jenkinsci","html_url":"https://github.com/jenkinsci","followers_url":"https://api.github.com/users/jenkinsci/followers","following_url":"https://api.github.com/users/jenkinsci/following{/other_user}","gists_url":"https://api.github.com/users/jenkinsci/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkinsci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkinsci/subscriptions","organizations_url":"https://api.github.com/users/jenkinsci/orgs","repos_url":"https://api.github.com/users/jenkinsci/repos","events_url":"https://api.github.com/users/jenkinsci/events{/privacy}","received_events_url":"https://api.github.com/users/jenkinsci/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jenkinsci/github-organization-folder-plugin","description":"","fork":false,"url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin","forks_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/forks","keys_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/teams","hooks_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/hooks","issue_events_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/events","assignees_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/tags","blobs_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/languages","stargazers_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/stargazers","contributors_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/contributors","subscribers_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/subscribers","subscription_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/subscription","commits_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/merges","archive_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/downloads","issues_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/labels{/name}","releases_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/releases{/id}","deployments_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/deployments","created_at":"2016-03-04T17:46:11Z","updated_at":"2016-03-04T17:46:11Z","pushed_at":"2016-03-04T22:19:46Z","git_url":"git://github.com/jenkinsci/github-organization-folder-plugin.git","ssh_url":"git@github.com:jenkinsci/github-organization-folder-plugin.git","clone_url":"https://github.com/jenkinsci/github-organization-folder-plugin.git","svn_url":"https://github.com/jenkinsci/github-organization-folder-plugin","homepage":"","size":69,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"jenkinsci:master","ref":"master","sha":"fdfad6be4db6f96faea1f153fb447b479a7a9cb7","user":{"login":"jenkinsci","id":107424,"avatar_url":"https://avatars.githubusercontent.com/u/107424?v=3","gravatar_id":"","url":"https://api.github.com/users/jenkinsci","html_url":"https://github.com/jenkinsci","followers_url":"https://api.github.com/users/jenkinsci/followers","following_url":"https://api.github.com/users/jenkinsci/following{/other_user}","gists_url":"https://api.github.com/users/jenkinsci/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkinsci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkinsci/subscriptions","organizations_url":"https://api.github.com/users/jenkinsci/orgs","repos_url":"https://api.github.com/users/jenkinsci/repos","events_url":"https://api.github.com/users/jenkinsci/events{/privacy}","received_events_url":"https://api.github.com/users/jenkinsci/received_events","type":"Organization","site_admin":false},"repo":{"id":53154390,"name":"github-organization-folder-plugin","full_name":"jenkinsci/github-organization-folder-plugin","owner":{"login":"jenkinsci","id":107424,"avatar_url":"https://avatars.githubusercontent.com/u/107424?v=3","gravatar_id":"","url":"https://api.github.com/users/jenkinsci","html_url":"https://github.com/jenkinsci","followers_url":"https://api.github.com/users/jenkinsci/followers","following_url":"https://api.github.com/users/jenkinsci/following{/other_user}","gists_url":"https://api.github.com/users/jenkinsci/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkinsci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkinsci/subscriptions","organizations_url":"https://api.github.com/users/jenkinsci/orgs","repos_url":"https://api.github.com/users/jenkinsci/repos","events_url":"https://api.github.com/users/jenkinsci/events{/privacy}","received_events_url":"https://api.github.com/users/jenkinsci/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jenkinsci/github-organization-folder-plugin","description":"","fork":false,"url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin","forks_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/forks","keys_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/teams","hooks_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/hooks","issue_events_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/events","assignees_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/tags","blobs_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/languages","stargazers_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/stargazers","contributors_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/contributors","subscribers_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/subscribers","subscription_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/subscription","commits_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/merges","archive_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/downloads","issues_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/labels{/name}","releases_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/releases{/id}","deployments_url":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/deployments","created_at":"2016-03-04T17:46:11Z","updated_at":"2016-03-04T17:46:11Z","pushed_at":"2016-03-04T22:19:46Z","git_url":"git://github.com/jenkinsci/github-organization-folder-plugin.git","ssh_url":"git@github.com:jenkinsci/github-organization-folder-plugin.git","clone_url":"https://github.com/jenkinsci/github-organization-folder-plugin.git","svn_url":"https://github.com/jenkinsci/github-organization-folder-plugin","homepage":"","size":69,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/1"},"html":{"href":"https://github.com/jenkinsci/github-organization-folder-plugin/pull/1"},"issue":{"href":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/issues/1"},"comments":{"href":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/jenkinsci/github-organization-folder-plugin/statuses/fb6549fb7e4a1e98cc097004826b2d66da5892f5"}}}}