{"action":"created","comment":{"url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/comments/63655593","id":63655593,"diff_hunk":"@@ -177,6 +177,13 @@ public static long getSerialVersionUID() {\n      * Gets the corresponding {@link hudson.model.User} object.\n      */\n     public hudson.model.User getJenkinsUser() {\n+        try { // TODO 1.651.2+ remove reflection\n+            return (hudson.model.User) hudson.model.User.class.getMethod(\"getById\", String.class, boolean.class).invoke(getUsername(), true);\n+        } catch (NoSuchMethodException x) {\n+            // fine, older baseline\n+        } catch (Exception e) { // unexpected\n+            LOGGER.log(Level.WARNING, String.format(\"There was a problem obtaining the Jenkins user %s by Id\", getUsername()), e);\n+        }","path":"src/main/java/hudson/plugins/active_directory/ActiveDirectoryUserDetail.java","position":10,"original_position":10,"commit_id":"f18741b15ab249665f6ed7987def4b3494ad39ac","original_commit_id":"13e6676620bc3a21490af85bce3d9dec97ef6529","user":{"login":"fbelzunc","id":3898648,"avatar_url":"https://avatars.githubusercontent.com/u/3898648?v=3","gravatar_id":"","url":"https://api.github.com/users/fbelzunc","html_url":"https://github.com/fbelzunc","followers_url":"https://api.github.com/users/fbelzunc/followers","following_url":"https://api.github.com/users/fbelzunc/following{/other_user}","gists_url":"https://api.github.com/users/fbelzunc/gists{/gist_id}","starred_url":"https://api.github.com/users/fbelzunc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fbelzunc/subscriptions","organizations_url":"https://api.github.com/users/fbelzunc/orgs","repos_url":"https://api.github.com/users/fbelzunc/repos","events_url":"https://api.github.com/users/fbelzunc/events{/privacy}","received_events_url":"https://api.github.com/users/fbelzunc/received_events","type":"User","site_admin":false},"body":"@andresrc Are you sure it is necessary? `getById` should not throw any exception. So if `.invoke` fails you will just go tot the catch of `Exception` to record it. Is it not fine?","created_at":"2016-05-18T07:14:06Z","updated_at":"2016-05-18T07:14:06Z","html_url":"https://github.com/jenkinsci/active-directory-plugin/pull/34#discussion_r63655593","pull_request_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/34","_links":{"self":{"href":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/comments/63655593"},"html":{"href":"https://github.com/jenkinsci/active-directory-plugin/pull/34#discussion_r63655593"},"pull_request":{"href":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/34"}}},"pull_request":{"url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/34","id":70337193,"html_url":"https://github.com/jenkinsci/active-directory-plugin/pull/34","diff_url":"https://github.com/jenkinsci/active-directory-plugin/pull/34.diff","patch_url":"https://github.com/jenkinsci/active-directory-plugin/pull/34.patch","issue_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/issues/34","number":34,"state":"open","locked":false,"title":"[JENKINS-34426] Fix to handle SECURITY-243","user":{"login":"fbelzunc","id":3898648,"avatar_url":"https://avatars.githubusercontent.com/u/3898648?v=3","gravatar_id":"","url":"https://api.github.com/users/fbelzunc","html_url":"https://github.com/fbelzunc","followers_url":"https://api.github.com/users/fbelzunc/followers","following_url":"https://api.github.com/users/fbelzunc/following{/other_user}","gists_url":"https://api.github.com/users/fbelzunc/gists{/gist_id}","starred_url":"https://api.github.com/users/fbelzunc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fbelzunc/subscriptions","organizations_url":"https://api.github.com/users/fbelzunc/orgs","repos_url":"https://api.github.com/users/fbelzunc/repos","events_url":"https://api.github.com/users/fbelzunc/events{/privacy}","received_events_url":"https://api.github.com/users/fbelzunc/received_events","type":"User","site_admin":false},"body":"# Stacktrace\r\n\r\n```\r\nFailed to retrieve user <user>\r\nhudson.plugins.active_directory.CacheAuthenticationException: Authentication failed because there was a problem caching user <user>; nested exception is com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Recursive load\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:340)\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:199)\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:141)\r\n\tat org.acegisecurity.providers.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:122)\r\n\tat org.acegisecurity.providers.ProviderManager.doAuthentication(ProviderManager.java:200)\r\n\tat org.acegisecurity.AbstractAuthenticationManager.authenticate(AbstractAuthenticationManager.java:47)\r\n\tat org.acegisecurity.ui.webapp.AuthenticationProcessingFilter.attemptAuthentication(AuthenticationProcessingFilter.java:74)\r\n\tat org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:252)\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:81)\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\nCaused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Recursive load\r\n\tat com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2234)\r\n\tat com.google.common.cache.LocalCache.get(LocalCache.java:3965)\r\n\tat com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4764)\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:232)\r\n\t... 40 more\r\nCaused by: java.lang.IllegalStateException: Recursive load\r\n\tat com.google.common.base.Preconditions.checkState(Preconditions.java:145)\r\n\tat com.google.common.cache.LocalCache$Segment.waitForLoadingValue(LocalCache.java:2330)\r\n\tat com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2320)\r\n\tat com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228)\r\n\tat com.google.common.cache.LocalCache.get(LocalCache.java:3965)\r\n\tat com.google.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4764)\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:232)\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:199)\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider.retrieveUser(ActiveDirectoryUnixAuthenticationProvider.java:141)\r\n\tat hudson.plugins.active_directory.AbstractActiveDirectoryAuthenticationProvider.loadUserByUsername(AbstractActiveDirectoryAuthenticationProvider.java:54)\r\n\tat hudson.plugins.active_directory.ActiveDirectorySecurityRealm.loadUserByUsername(ActiveDirectorySecurityRealm.java:731)\r\n\tat hudson.model.User$UserIDCanonicalIdResolver.resolveCanonicalId(User.java:1048)\r\n\tat hudson.model.User.get(User.java:394)\r\n\tat hudson.model.User.get(User.java:363)\r\n\tat hudson.model.User.get(User.java:483)\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUserDetail.getJenkinsUser(ActiveDirectoryUserDetail.java:177)\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUserDetail.updateUserInfo(ActiveDirectoryUserDetail.java:188)\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider$1.call(ActiveDirectoryUnixAuthenticationProvider.java:315)\r\n\tat hudson.plugins.active_directory.ActiveDirectoryUnixAuthenticationProvider$1.call(ActiveDirectoryUnixAuthenticationProvider.java:232)\r\n\tat com.google.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4767)\r\n\tat com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3568)\r\n\tat com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2350)\r\n\tat com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2313)\r\n\tat com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2228)\r\n\t... 43 more\r\n```\r\n\r\nand it is produced because of SECURITY-243 - https://github.com/jenkinsci/jenkins/blob/jenkins-2.3/core/src/main/java/hudson/model/User.java#L1048 - Which is producing a recursive load.\r\n\r\n@reviewbybees @andresrc @jtnord ","created_at":"2016-05-17T10:58:03Z","updated_at":"2016-05-18T07:14:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0325762bb94210e79ed9afff5bd093d7a29f9d4e","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/34/commits","review_comments_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/34/comments","review_comment_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/issues/34/comments","statuses_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/statuses/f18741b15ab249665f6ed7987def4b3494ad39ac","head":{"label":"fbelzunc:JENKINS-34426-v3","ref":"JENKINS-34426-v3","sha":"f18741b15ab249665f6ed7987def4b3494ad39ac","user":{"login":"fbelzunc","id":3898648,"avatar_url":"https://avatars.githubusercontent.com/u/3898648?v=3","gravatar_id":"","url":"https://api.github.com/users/fbelzunc","html_url":"https://github.com/fbelzunc","followers_url":"https://api.github.com/users/fbelzunc/followers","following_url":"https://api.github.com/users/fbelzunc/following{/other_user}","gists_url":"https://api.github.com/users/fbelzunc/gists{/gist_id}","starred_url":"https://api.github.com/users/fbelzunc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fbelzunc/subscriptions","organizations_url":"https://api.github.com/users/fbelzunc/orgs","repos_url":"https://api.github.com/users/fbelzunc/repos","events_url":"https://api.github.com/users/fbelzunc/events{/privacy}","received_events_url":"https://api.github.com/users/fbelzunc/received_events","type":"User","site_admin":false},"repo":{"id":50431523,"name":"active-directory-plugin","full_name":"fbelzunc/active-directory-plugin","owner":{"login":"fbelzunc","id":3898648,"avatar_url":"https://avatars.githubusercontent.com/u/3898648?v=3","gravatar_id":"","url":"https://api.github.com/users/fbelzunc","html_url":"https://github.com/fbelzunc","followers_url":"https://api.github.com/users/fbelzunc/followers","following_url":"https://api.github.com/users/fbelzunc/following{/other_user}","gists_url":"https://api.github.com/users/fbelzunc/gists{/gist_id}","starred_url":"https://api.github.com/users/fbelzunc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fbelzunc/subscriptions","organizations_url":"https://api.github.com/users/fbelzunc/orgs","repos_url":"https://api.github.com/users/fbelzunc/repos","events_url":"https://api.github.com/users/fbelzunc/events{/privacy}","received_events_url":"https://api.github.com/users/fbelzunc/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/fbelzunc/active-directory-plugin","description":"Jenkins active-directory plugin","fork":true,"url":"https://api.github.com/repos/fbelzunc/active-directory-plugin","forks_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/forks","keys_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/teams","hooks_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/hooks","issue_events_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/events","assignees_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/tags","blobs_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/languages","stargazers_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/stargazers","contributors_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/contributors","subscribers_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/subscribers","subscription_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/subscription","commits_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/merges","archive_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/downloads","issues_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/labels{/name}","releases_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/releases{/id}","deployments_url":"https://api.github.com/repos/fbelzunc/active-directory-plugin/deployments","created_at":"2016-01-26T13:49:55Z","updated_at":"2016-01-26T13:49:56Z","pushed_at":"2016-05-18T07:11:28Z","git_url":"git://github.com/fbelzunc/active-directory-plugin.git","ssh_url":"git@github.com:fbelzunc/active-directory-plugin.git","clone_url":"https://github.com/fbelzunc/active-directory-plugin.git","svn_url":"https://github.com/fbelzunc/active-directory-plugin","homepage":"http://jenkins-ci.org/","size":429,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"jenkinsci:master","ref":"master","sha":"3862baf8bcd3a88703c9ea98b7b947d9ee34d16d","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":1163445,"name":"active-directory-plugin","full_name":"jenkinsci/active-directory-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/active-directory-plugin","description":"Jenkins active-directory plugin","fork":false,"url":"https://api.github.com/repos/jenkinsci/active-directory-plugin","forks_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/forks","keys_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/teams","hooks_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/hooks","issue_events_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/events","assignees_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/tags","blobs_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/languages","stargazers_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/stargazers","contributors_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/contributors","subscribers_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/subscribers","subscription_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/subscription","commits_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/merges","archive_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/downloads","issues_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/labels{/name}","releases_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/releases{/id}","deployments_url":"https://api.github.com/repos/jenkinsci/active-directory-plugin/deployments","created_at":"2010-12-13T05:26:01Z","updated_at":"2016-04-05T19:58:38Z","pushed_at":"2016-05-18T07:11:29Z","git_url":"git://github.com/jenkinsci/active-directory-plugin.git","ssh_url":"git@github.com:jenkinsci/active-directory-plugin.git","clone_url":"https://github.com/jenkinsci/active-directory-plugin.git","svn_url":"https://github.com/jenkinsci/active-directory-plugin","homepage":"http://jenkins-ci.org/","size":650,"stargazers_count":28,"watchers_count":28,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":43,"mirror_url":null,"open_issues_count":2,"forks":43,"open_issues":2,"watchers":28,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/34"},"html":{"href":"https://github.com/jenkinsci/active-directory-plugin/pull/34"},"issue":{"href":"https://api.github.com/repos/jenkinsci/active-directory-plugin/issues/34"},"comments":{"href":"https://api.github.com/repos/jenkinsci/active-directory-plugin/issues/34/comments"},"review_comments":{"href":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/34/comments"},"review_comment":{"href":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jenkinsci/active-directory-plugin/pulls/34/commits"},"statuses":{"href":"https://api.github.com/repos/jenkinsci/active-directory-plugin/statuses/f18741b15ab249665f6ed7987def4b3494ad39ac"}}}}