{"action":"created","comment":{"url":"https://api.github.com/repos/edx/jenkins-configuration/pulls/comments/202144940","pull_request_review_id":136786653,"id":202144940,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwMjE0NDk0MA==","diff_hunk":"@@ -0,0 +1,154 @@\n+// configure the email-ext plugin\n+// this script should be run AFTER the mailer plugin in order to inherit system values\n+// set by that script\n+\n+// NOTE: this does not configure the following fields within the plugin:\n+// > additional accounts\n+// > additional groovy classpath\n+\n+import java.util.logging.Logger\n+import net.sf.json.JSONObject;\n+import net.sf.json.JSONException;\n+\n+import jenkins.model.*;\n+import org.kohsuke.stapler.StaplerRequest;\n+import hudson.plugins.emailext.ExtendedEmailPublisherDescriptor;\n+\n+\n+@Grapes([\n+    @Grab(group='org.yaml', module='snakeyaml', version='1.17')\n+])\n+import org.yaml.snakeyaml.Yaml;\n+\n+Logger logger = Logger.getLogger(\"\")\n+Jenkins jenkins = Jenkins.getInstance()\n+Yaml yaml = new Yaml()\n+\n+String configPath = System.getenv(\"JENKINS_CONFIG_PATH\")\n+try {\n+    configText = new File(\"${configPath}/email_ext_config.yml\").text\n+} catch (FileNotFoundException e) {\n+    logger.severe(\"Cannot find config file path @ ${configPath}/email_ext_config.yml\")\n+    jenkins.doSafeExit(null)\n+    System.exit(1)\n+}\n+\n+Map emailConfig = yaml.load(configText)\n+\n+def descriptor = jenkins.getDescriptorByType(\n+                    hudson.plugins.emailext.ExtendedEmailPublisherDescriptor.class\n+                 )\n+\n+// create a mocked stapler request\n+// the following values will be inherited from the mailer plugin (assuming the plugin\n+// is installed and configured) and therefore do not need to be added to the stapler\n+// request\n+//      \"ext_mailer_smtp_server\"\n+//      \"ext_mailer_default_suffix\"\n+//      \"ext_mailer_use_smtp_auth\"\n+//      \"ext_mailer_smtp_username\"\n+//      \"ext_mailer_smtp_password\"\n+//      \"ext_mailer_smtp_use_ssl\"\n+//      \"ext_mailer_smtp_port\"\n+//      \"ext_mailer_charset\"\n+params = [\n+    \"ext_mailer_adv_properties\": emailConfig.ADV_PROPERTIES,\n+    \"ext_mailer_default_subject\": emailConfig.DEFAULT_SUBJECT,\n+    \"ext_mailer_emergency_reroute\": emailConfig.EMERGENCY_REROUTE,\n+    \"ext_mailer_default_replyto\": emailConfig.DEFAULT_REPLYTO,\n+    \"ext_mailer_debug_mode\": emailConfig.DEBUG_MODE,\n+    \"ext_mailer_max_attachment_size\": emailConfig.MAX_ATTACHMENT_SIZE,\n+    \"ext_mailer_default_recipients\": emailConfig.DEFAULT_RECIPIENTS,\n+    \"ext_mailer_add_precedence_bulk\": emailConfig.ADD_PRECEDENCE_BULK,\n+    \"ext_mailer_allowed_domains\": emailConfig.ALLOWED_DOMAINS,\n+    \"ext_mailer_excluded_committers\": emailConfig.EXCLUDED_COMMITTERS,\n+    \"ext_mailer_require_admin_for_template_testing\": emailConfig.REQUIRE_ADMIN_FOR_TEMPLATE_TESTING,\n+    \"ext_mailer_watching_enabled\": emailConfig.WATCHING_ENABLED,\n+    \"ext_mailer_allow_unregistered_enabled\": emailConfig.ALLOW_UNREGISTERED_ENABLED\n+]\n+if (['text/html', 'text/plain'].contains(emailConfig.DEFAULT_CONTENT_TYPE)) {\n+    params[\"ext_mailer_default_content_type\"] = emailConfig.DEFAULT_CONTENT_TYPE\n+} else {\n+    logger.severe(\"Invalid content type specified for DEFAULT CONTENT TYPE\")\n+    jenkins.doSafeExit(null)\n+    System.exit(1)\n+}\n+if (emailConfig.USE_LIST_ID) {\n+    params[\"ext_mailer_use_list_id\"] =  emailConfig.USE_LIST_ID\n+    params[\"ext_mailer_list_id\"] =  emailConfig.LIST_ID\n+}\n+\n+// The following values can be quite complex, and are stored in their own separate\n+// files\n+paths = [\n+    \"ext_mailer_default_presend_script\": emailConfig.DEFAULT_PRESEND_SCRIPT_PATH,\n+    \"ext_mailer_default_postsend_script\": emailConfig.DEFAULT_POSTSEND_SCRIPT_PATH,\n+    \"ext_mailer_default_body\": emailConfig.DEFAULT_BODY_PATH\n+]\n+paths.each { param_name, filePath ->\n+    if (!filePath || filePath == '') {\n+        params[param_name] = null\n+    } else {\n+        try {\n+            fullFilePath = \"${configPath}/${filePath}\"\n+            params[param_name] = new File(fullFilePath).text\n+        } catch (FileNotFoundException e) {\n+            logger.severe(\"Cannot find script file path @ ${fullFilePath}\")\n+            jenkins.doSafeExit(null)\n+            System.exit(1)\n+        }\n+    }\n+}\n+\n+def stapler = [\n+    getParameter: { name -> params[name] },\n+    hasParameter: { name -> params.keySet().contains(name) },\n+    getParameterValues: { name -> params[name] } // should be String[]\n+] as org.kohsuke.stapler.StaplerRequest\n+\n+JSONObject json = new JSONObject()\n+def triggerList = [\n+    'AbortedTrigger',\n+    'AbstractScriptTrigger',\n+    'AlwaysTrigger',\n+    'BuildingTrigger',\n+    'FailureTrigger',\n+    'FirstFailureTrigger',\n+    'FirstUnstableTrigger',\n+    'FixedTrigger',\n+    'FixedUnhealthyTrigger',\n+    'ImprovementTrigger',\n+    'NotBuiltTrigger',\n+    'NthFailureTrigger',\n+    'PreBuildScriptTrigger',\n+    'PreBuildTrigger',\n+    'RegressionTrigger',\n+    'ScriptTrigger',\n+    'SecondFailureTrigger',\n+    'StatusChangedTrigger',\n+    'StillFailingTrigger',\n+    'StillUnstableTrigger',\n+    'SuccessTrigger',\n+    'UnstableTrigger',\n+    'XNthFailureTrigger'\n+]\n+// verify that only valid trigger classes are used to set default triggers\n+emailConfig.TRIGGERS.each { trigger ->\n+    if (! triggerList.contains(trigger)) {\n+        logger.severe('NOPE')","path":"src/main/groovy/5configureEmailExtension.groovy","position":149,"original_position":138,"commit_id":"312b95a306ba70ed249137f70e745192da4b449e","original_commit_id":"d1b12e97e6351e2cb050ac3ed09803749639110e","user":{"login":"estute","id":9300884,"node_id":"MDQ6VXNlcjkzMDA4ODQ=","avatar_url":"https://avatars3.githubusercontent.com/u/9300884?v=4","gravatar_id":"","url":"https://api.github.com/users/estute","html_url":"https://github.com/estute","followers_url":"https://api.github.com/users/estute/followers","following_url":"https://api.github.com/users/estute/following{/other_user}","gists_url":"https://api.github.com/users/estute/gists{/gist_id}","starred_url":"https://api.github.com/users/estute/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/estute/subscriptions","organizations_url":"https://api.github.com/users/estute/orgs","repos_url":"https://api.github.com/users/estute/repos","events_url":"https://api.github.com/users/estute/events{/privacy}","received_events_url":"https://api.github.com/users/estute/received_events","type":"User","site_admin":false},"body":"Ha. Oops, sorry forgot to make it nice for other people","created_at":"2018-07-12T19:01:01Z","updated_at":"2018-07-12T19:01:01Z","html_url":"https://github.com/edx/jenkins-configuration/pull/96#discussion_r202144940","pull_request_url":"https://api.github.com/repos/edx/jenkins-configuration/pulls/96","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/edx/jenkins-configuration/pulls/comments/202144940"},"html":{"href":"https://github.com/edx/jenkins-configuration/pull/96#discussion_r202144940"},"pull_request":{"href":"https://api.github.com/repos/edx/jenkins-configuration/pulls/96"}},"in_reply_to_id":202143981},"pull_request":{"url":"https://api.github.com/repos/edx/jenkins-configuration/pulls/96","id":200815910,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAwODE1OTEw","html_url":"https://github.com/edx/jenkins-configuration/pull/96","diff_url":"https://github.com/edx/jenkins-configuration/pull/96.diff","patch_url":"https://github.com/edx/jenkins-configuration/pull/96.patch","issue_url":"https://api.github.com/repos/edx/jenkins-configuration/issues/96","number":96,"state":"open","locked":false,"title":"Estute/te 2618","user":{"login":"estute","id":9300884,"node_id":"MDQ6VXNlcjkzMDA4ODQ=","avatar_url":"https://avatars3.githubusercontent.com/u/9300884?v=4","gravatar_id":"","url":"https://api.github.com/users/estute","html_url":"https://github.com/estute","followers_url":"https://api.github.com/users/estute/followers","following_url":"https://api.github.com/users/estute/following{/other_user}","gists_url":"https://api.github.com/users/estute/gists{/gist_id}","starred_url":"https://api.github.com/users/estute/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/estute/subscriptions","organizations_url":"https://api.github.com/users/estute/orgs","repos_url":"https://api.github.com/users/estute/repos","events_url":"https://api.github.com/users/estute/events{/privacy}","received_events_url":"https://api.github.com/users/estute/received_events","type":"User","site_admin":false},"body":"This will install and configure the email ext plugin. A fair amount of the plugin configuration can be pulled from the mailer plugin, which we already install, as long as this script is run after the mailer plugin is installed. \r\n","created_at":"2018-07-11T20:25:23Z","updated_at":"2018-07-12T19:01:01Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9536f50fc36bc440197f13c22a72d8e36d4fce4a","assignee":null,"assignees":[],"requested_reviewers":[{"login":"michaelyoungstrom","id":9468017,"node_id":"MDQ6VXNlcjk0NjgwMTc=","avatar_url":"https://avatars2.githubusercontent.com/u/9468017?v=4","gravatar_id":"","url":"https://api.github.com/users/michaelyoungstrom","html_url":"https://github.com/michaelyoungstrom","followers_url":"https://api.github.com/users/michaelyoungstrom/followers","following_url":"https://api.github.com/users/michaelyoungstrom/following{/other_user}","gists_url":"https://api.github.com/users/michaelyoungstrom/gists{/gist_id}","starred_url":"https://api.github.com/users/michaelyoungstrom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/michaelyoungstrom/subscriptions","organizations_url":"https://api.github.com/users/michaelyoungstrom/orgs","repos_url":"https://api.github.com/users/michaelyoungstrom/repos","events_url":"https://api.github.com/users/michaelyoungstrom/events{/privacy}","received_events_url":"https://api.github.com/users/michaelyoungstrom/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/edx/jenkins-configuration/pulls/96/commits","review_comments_url":"https://api.github.com/repos/edx/jenkins-configuration/pulls/96/comments","review_comment_url":"https://api.github.com/repos/edx/jenkins-configuration/pulls/comments{/number}","comments_url":"https://api.github.com/repos/edx/jenkins-configuration/issues/96/comments","statuses_url":"https://api.github.com/repos/edx/jenkins-configuration/statuses/312b95a306ba70ed249137f70e745192da4b449e","head":{"label":"edx:estute/TE-2618","ref":"estute/TE-2618","sha":"312b95a306ba70ed249137f70e745192da4b449e","user":{"login":"edx","id":3179841,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMxNzk4NDE=","avatar_url":"https://avatars3.githubusercontent.com/u/3179841?v=4","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"repo":{"id":92867653,"node_id":"MDEwOlJlcG9zaXRvcnk5Mjg2NzY1Mw==","name":"jenkins-configuration","full_name":"edx/jenkins-configuration","owner":{"login":"edx","id":3179841,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMxNzk4NDE=","avatar_url":"https://avatars3.githubusercontent.com/u/3179841?v=4","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/edx/jenkins-configuration","description":"A collection of utilities for configuring a Jenkins instance and plugins","fork":false,"url":"https://api.github.com/repos/edx/jenkins-configuration","forks_url":"https://api.github.com/repos/edx/jenkins-configuration/forks","keys_url":"https://api.github.com/repos/edx/jenkins-configuration/keys{/key_id}","collaborators_url":"https://api.github.com/repos/edx/jenkins-configuration/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/edx/jenkins-configuration/teams","hooks_url":"https://api.github.com/repos/edx/jenkins-configuration/hooks","issue_events_url":"https://api.github.com/repos/edx/jenkins-configuration/issues/events{/number}","events_url":"https://api.github.com/repos/edx/jenkins-configuration/events","assignees_url":"https://api.github.com/repos/edx/jenkins-configuration/assignees{/user}","branches_url":"https://api.github.com/repos/edx/jenkins-configuration/branches{/branch}","tags_url":"https://api.github.com/repos/edx/jenkins-configuration/tags","blobs_url":"https://api.github.com/repos/edx/jenkins-configuration/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/edx/jenkins-configuration/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/edx/jenkins-configuration/git/refs{/sha}","trees_url":"https://api.github.com/repos/edx/jenkins-configuration/git/trees{/sha}","statuses_url":"https://api.github.com/repos/edx/jenkins-configuration/statuses/{sha}","languages_url":"https://api.github.com/repos/edx/jenkins-configuration/languages","stargazers_url":"https://api.github.com/repos/edx/jenkins-configuration/stargazers","contributors_url":"https://api.github.com/repos/edx/jenkins-configuration/contributors","subscribers_url":"https://api.github.com/repos/edx/jenkins-configuration/subscribers","subscription_url":"https://api.github.com/repos/edx/jenkins-configuration/subscription","commits_url":"https://api.github.com/repos/edx/jenkins-configuration/commits{/sha}","git_commits_url":"https://api.github.com/repos/edx/jenkins-configuration/git/commits{/sha}","comments_url":"https://api.github.com/repos/edx/jenkins-configuration/comments{/number}","issue_comment_url":"https://api.github.com/repos/edx/jenkins-configuration/issues/comments{/number}","contents_url":"https://api.github.com/repos/edx/jenkins-configuration/contents/{+path}","compare_url":"https://api.github.com/repos/edx/jenkins-configuration/compare/{base}...{head}","merges_url":"https://api.github.com/repos/edx/jenkins-configuration/merges","archive_url":"https://api.github.com/repos/edx/jenkins-configuration/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/edx/jenkins-configuration/downloads","issues_url":"https://api.github.com/repos/edx/jenkins-configuration/issues{/number}","pulls_url":"https://api.github.com/repos/edx/jenkins-configuration/pulls{/number}","milestones_url":"https://api.github.com/repos/edx/jenkins-configuration/milestones{/number}","notifications_url":"https://api.github.com/repos/edx/jenkins-configuration/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/edx/jenkins-configuration/labels{/name}","releases_url":"https://api.github.com/repos/edx/jenkins-configuration/releases{/id}","deployments_url":"https://api.github.com/repos/edx/jenkins-configuration/deployments","created_at":"2017-05-30T19:16:21Z","updated_at":"2018-07-09T08:47:07Z","pushed_at":"2018-07-12T18:46:56Z","git_url":"git://github.com/edx/jenkins-configuration.git","ssh_url":"git@github.com:edx/jenkins-configuration.git","clone_url":"https://github.com/edx/jenkins-configuration.git","svn_url":"https://github.com/edx/jenkins-configuration","homepage":null,"size":267,"stargazers_count":63,"watchers_count":63,"language":"Groovy","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"archived":false,"open_issues_count":9,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":24,"open_issues":9,"watchers":63,"default_branch":"master"}},"base":{"label":"edx:master","ref":"master","sha":"07ec2a9dd6e228d4bda5a3d00e6fbaa90e37f610","user":{"login":"edx","id":3179841,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMxNzk4NDE=","avatar_url":"https://avatars3.githubusercontent.com/u/3179841?v=4","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"repo":{"id":92867653,"node_id":"MDEwOlJlcG9zaXRvcnk5Mjg2NzY1Mw==","name":"jenkins-configuration","full_name":"edx/jenkins-configuration","owner":{"login":"edx","id":3179841,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMxNzk4NDE=","avatar_url":"https://avatars3.githubusercontent.com/u/3179841?v=4","gravatar_id":"","url":"https://api.github.com/users/edx","html_url":"https://github.com/edx","followers_url":"https://api.github.com/users/edx/followers","following_url":"https://api.github.com/users/edx/following{/other_user}","gists_url":"https://api.github.com/users/edx/gists{/gist_id}","starred_url":"https://api.github.com/users/edx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edx/subscriptions","organizations_url":"https://api.github.com/users/edx/orgs","repos_url":"https://api.github.com/users/edx/repos","events_url":"https://api.github.com/users/edx/events{/privacy}","received_events_url":"https://api.github.com/users/edx/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/edx/jenkins-configuration","description":"A collection of utilities for configuring a Jenkins instance and plugins","fork":false,"url":"https://api.github.com/repos/edx/jenkins-configuration","forks_url":"https://api.github.com/repos/edx/jenkins-configuration/forks","keys_url":"https://api.github.com/repos/edx/jenkins-configuration/keys{/key_id}","collaborators_url":"https://api.github.com/repos/edx/jenkins-configuration/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/edx/jenkins-configuration/teams","hooks_url":"https://api.github.com/repos/edx/jenkins-configuration/hooks","issue_events_url":"https://api.github.com/repos/edx/jenkins-configuration/issues/events{/number}","events_url":"https://api.github.com/repos/edx/jenkins-configuration/events","assignees_url":"https://api.github.com/repos/edx/jenkins-configuration/assignees{/user}","branches_url":"https://api.github.com/repos/edx/jenkins-configuration/branches{/branch}","tags_url":"https://api.github.com/repos/edx/jenkins-configuration/tags","blobs_url":"https://api.github.com/repos/edx/jenkins-configuration/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/edx/jenkins-configuration/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/edx/jenkins-configuration/git/refs{/sha}","trees_url":"https://api.github.com/repos/edx/jenkins-configuration/git/trees{/sha}","statuses_url":"https://api.github.com/repos/edx/jenkins-configuration/statuses/{sha}","languages_url":"https://api.github.com/repos/edx/jenkins-configuration/languages","stargazers_url":"https://api.github.com/repos/edx/jenkins-configuration/stargazers","contributors_url":"https://api.github.com/repos/edx/jenkins-configuration/contributors","subscribers_url":"https://api.github.com/repos/edx/jenkins-configuration/subscribers","subscription_url":"https://api.github.com/repos/edx/jenkins-configuration/subscription","commits_url":"https://api.github.com/repos/edx/jenkins-configuration/commits{/sha}","git_commits_url":"https://api.github.com/repos/edx/jenkins-configuration/git/commits{/sha}","comments_url":"https://api.github.com/repos/edx/jenkins-configuration/comments{/number}","issue_comment_url":"https://api.github.com/repos/edx/jenkins-configuration/issues/comments{/number}","contents_url":"https://api.github.com/repos/edx/jenkins-configuration/contents/{+path}","compare_url":"https://api.github.com/repos/edx/jenkins-configuration/compare/{base}...{head}","merges_url":"https://api.github.com/repos/edx/jenkins-configuration/merges","archive_url":"https://api.github.com/repos/edx/jenkins-configuration/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/edx/jenkins-configuration/downloads","issues_url":"https://api.github.com/repos/edx/jenkins-configuration/issues{/number}","pulls_url":"https://api.github.com/repos/edx/jenkins-configuration/pulls{/number}","milestones_url":"https://api.github.com/repos/edx/jenkins-configuration/milestones{/number}","notifications_url":"https://api.github.com/repos/edx/jenkins-configuration/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/edx/jenkins-configuration/labels{/name}","releases_url":"https://api.github.com/repos/edx/jenkins-configuration/releases{/id}","deployments_url":"https://api.github.com/repos/edx/jenkins-configuration/deployments","created_at":"2017-05-30T19:16:21Z","updated_at":"2018-07-09T08:47:07Z","pushed_at":"2018-07-12T18:46:56Z","git_url":"git://github.com/edx/jenkins-configuration.git","ssh_url":"git@github.com:edx/jenkins-configuration.git","clone_url":"https://github.com/edx/jenkins-configuration.git","svn_url":"https://github.com/edx/jenkins-configuration","homepage":null,"size":267,"stargazers_count":63,"watchers_count":63,"language":"Groovy","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":24,"mirror_url":null,"archived":false,"open_issues_count":9,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":24,"open_issues":9,"watchers":63,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/edx/jenkins-configuration/pulls/96"},"html":{"href":"https://github.com/edx/jenkins-configuration/pull/96"},"issue":{"href":"https://api.github.com/repos/edx/jenkins-configuration/issues/96"},"comments":{"href":"https://api.github.com/repos/edx/jenkins-configuration/issues/96/comments"},"review_comments":{"href":"https://api.github.com/repos/edx/jenkins-configuration/pulls/96/comments"},"review_comment":{"href":"https://api.github.com/repos/edx/jenkins-configuration/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/edx/jenkins-configuration/pulls/96/commits"},"statuses":{"href":"https://api.github.com/repos/edx/jenkins-configuration/statuses/312b95a306ba70ed249137f70e745192da4b449e"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"estute"}}