{"action":"created","comment":{"url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/comments/99051389","pull_request_review_id":19713220,"id":99051389,"diff_hunk":"@@ -0,0 +1,851 @@\n+---\n+layout: section\n+title: Pipeline Syntax\n+---\n+:notitle:\n+:description:\n+:author:\n+:email: jenkinsci-docs@googlegroups.com\n+:sectanchors:\n+:imagesdir: /doc/book/resources\n+:toc:\n+\n+= Pipeline Syntax\n+\n+This section builds on the information introduced in <<getting-started#,\n+Getting Started>>, and should be treated solely as a reference. For more\n+information on how to use Pipeline syntax in practical examples, refer to\n+<<jenkinsfile#, The Jenkinsfile>> section of this chapter. As of version 2.5 of\n+the Pipeline plugin, Pipeline supports two discrete syntaxes which are detailed\n+below. For the pros and cons of each, see the <<compare>>.\n+\n+As discussed in <<getting-started#, Getting Started>>, the most fundamental\n+part of a Pipeline is the \"step.\" Basically, steps tell Jenkins _what_ to\n+do, and serve as the basic building block for both Declarative and Scripted\n+Pipeline syntax.\n+\n+For an overview of available steps, please refer to the\n+link:/doc/pipeline/steps[Pipeline Steps reference]\n+which contains a comprehensive list of steps built into Pipeline as well as\n+steps provided by plugins.\n+\n+[role=syntax]\n+== Declarative Pipeline\n+\n+Declarative Pipeline is a relatively recent addition to Jenkins Pipeline\n+footnoteref:[declarative-version, Version 2.5 of the \"Pipeline plugin\"\n+introduces support for Declarative Pipeline syntax]\n+which presents a more simplified and opinionated syntax on top of the Pipeline\n+sub-systems.\n+\n+All valid Declarative Pipelines must be enclosed within a `pipeline` block, for\n+example:\n+\n+[source,groovy]\n+----\n+pipeline {\n+    /* insert Declarative Pipeline here */\n+}\n+----\n+\n+The basic statements and expressions which are valid in Declarative Pipeline\n+follow the same rules as\n+link:https://groovy-lang.org/syntax.html[Groovy's syntax]\n+with the following exceptions:\n+\n+* The top-level of the Pipeline must be a _block_, specifically: `pipeline { }`\n+* No semicolons as statement separators. Each statement has to be on its own\n+  line\n+* Blocks must only consist of <<declarative-sections>>,\n+  <<declarative-directives>>, <<declarative-steps>>, or assignment statements.\n+* A property reference statement is treated as no-argument method invocation. So for\n+  example, input is treated as input()\n+\n+\n+[[declarative-sections]]\n+=== Sections\n+\n+Sections in Declarative Pipeline typically contain one or more\n+<<declarative-directives>> or <<declarative-steps>>.\n+\n+==== post\n+\n+The `post` section defines actions which will be run at the end of the Pipeline\n+run. A number of additional <<post-conditions>> blocks are supported within the `post` section:\n+`always`, `changed`, `failure`, `success`, and `unstable`. These\n+blocks allow for the execution of steps at the tail-end of the Pipeline run,\n+depending on the status of the Pipeline.\n+\n+[cols=\"^10h,>90a\",role=syntax]\n+|===\n+| Required\n+| No\n+\n+| Parameters\n+| _None_\n+\n+| Allowed\n+| In the top-level `pipeline` block and each `stage` block.\n+|===\n+\n+[[post-conditions]]\n+===== Conditions\n+\n+`always`:: Run regardless of the completion status of the Pipeline run.\n+`changed`:: Only run if the current Pipeline run has a different status from\n+the previously completed Pipeline.\n+`failure`:: Only run if the current Pipeline has a \"failed\" status, typically\n+denoted in the web UI with a red indication.\n+`success`::  Only run if the current Pipeline has a \"success\" status, typically\n+denoted in the web UI with a blue or green indication.\n+`unstable`:: Only run if the current Pipeline has an \"unstable\" status,\n+usually caused by test failures, code violations, etc. Typically denoted in the\n+web UI with a yellow indication.\n+\n+[[post-example]]\n+===== Example\n+\n+[pipeline]\n+----\n+// Declarative //\n+pipeline {\n+    agent any\n+    stages {\n+        stage('Example') {\n+            steps {\n+                echo 'Hello World'\n+            }\n+        }\n+    }\n+    post { /* <1> */\n+        always { /* <2> */\n+            echo 'I will always say Hello again!'\n+        }\n+    }\n+}\n+----\n+<1> Conventionally, the `post` section should be placed at the end of the\n+Pipeline.\n+<2> The <<post-conditions>> blocks can use steps.\n+\n+\n+==== stages\n+\n+A sequence of one or more [[stage]] directives, the `stages` section is where\n+the bulk of the \"worK\" described by a Pipeline will be located. At a minimum it\n+is recommended that `stages` contain at least one [[stage]] directive for\n+Build, Test, and Deploy.\n+\n+[cols=\"^10h,>90a\",role=syntax]\n+|===\n+| Required\n+| Yes\n+\n+| Parameters\n+| _None_\n+\n+| Allowed\n+| Only once, inside the `pipeline` block.\n+|===\n+\n+[[stages-example]]\n+===== Example\n+\n+[pipeline]\n+----\n+// Declarative //\n+pipeline {\n+    agent any\n+    stages { /* <1> */\n+        stage('Example') {\n+            steps {\n+                echo 'Hello World'\n+            }\n+        }\n+    }\n+}\n+----\n+<1> The `stages` section will typically follow the directives such as `agent`,\n+`options`, etc.\n+\n+==== steps\n+\n+Defines a series of steps to be executed in a given `stage` directive.\n+\n+[cols=\"^10h,>90a\",role=syntax]\n+|===\n+| Required\n+| Yes\n+\n+| Parameters\n+| _None_\n+\n+| Allowed\n+| Inside each `stage` block.\n+|===\n+\n+[[steps-example]]\n+===== Example\n+\n+[pipeline]\n+----\n+// Declarative //\n+pipeline {\n+    agent any\n+    stages {\n+        stage('Example') {\n+            steps { /* <1> */\n+                echo 'Hello World'\n+            }\n+        }\n+    }\n+}\n+----\n+<1> The `steps` section must contain one or more steps.\n+\n+[[declarative-directives]]\n+=== Directives\n+\n+==== agent\n+\n+The `agent` directive specifies where the entire Pipeline, or a specific stage,\n+will execute in the Jenkins environment depending on where the `agent`\n+directive is placed. The directive must be defined at the top-level inside the\n+`pipeline` block, but stage-level usage is optional.\n+\n+\n+[cols=\"^10h,>90a\",role=syntax]\n+|===\n+| Required\n+| Yes\n+\n+| Parameters\n+| <<agent-parameters, Described below>>\n+\n+| Allowed\n+| In the top-level `pipeline` block and each `stage` block.\n+|===\n+\n+\n+[[agent-parameters]]\n+===== Parameters\n+\n+In order to support the wide variety of use-cases Pipeline authors may have,\n+the `agent` directive supports a few different types of parameters. These\n+parameters can be applied at the top-level of the `pipeline` block, or within\n+each `stage` directive.\n+\n+any:: Execute the Pipeline, or stage, on any available agent. For example: `agent any`\n+none:: When applied at the top-level of the `pipeline` block, each `stage`\n+directive will need to contain its own `agent` directive. For example: `agent none`\n+label:: Execute the Pipeline, or stage, on the agent available in the Jenkins\n+environment with the provided label. For example: `agent { label 'my-defined-label' }`\n+docker:: Execute the Pipeline, or stage, with the given container which will be\n+dynamically provisioned on a <<../glossary#node, node>> pre-configured to\n+accept Docker-based Pipelines, or a node matching the optionally defined\n+`label` parameter.  The `docker` also optionally accepts an `args` parameter\n+which may contain parameters to pass directly to a `docker run` invocation.\n+ For example: `agent { docker: 'maven:3-alpine' }` or\n+[source,groovy]\n+----\n+agent {\n+    docker {\n+        image: 'maven:3-alpine'\n+        label: 'my-defined-label'\n+        args:  '-v /tmp:/tmp'\n+    }\n+}\n+----\n+\n+////\n+XXX: https://issues.jenkins-ci.org/browse/JENKINS-41607\n+\n+dockerfile:: Execute the Pipeline, or stage, with a container built from a\n+`Dockerfile` contained in the source repository. Conventionally this can be the\n+`Dockerfile` in the root of the source repository: `agent { dockerfile true }`\n+\n+////\n+\n+\n+\n+[[agent-example]]\n+===== Example\n+\n+[pipeline]\n+----\n+// Declarative //\n+pipeline {\n+    agent { docker 'maven:3-alpine' } /* <1> */\n+    stages {\n+        stage('Example Build') {\n+            steps {\n+                sh 'mvn -B clean verify'\n+            }\n+        }\n+    }\n+}\n+----\n+<1> Execute all the steps defined in this Pipeline within a running container\n+of the given name and tag (`maven:3-alpine`).\n+\n+====== Stage-level `agent` directive\n+\n+[pipeline]\n+----\n+// Declarative //\n+pipeline {\n+    agent none /* <1> */\n+    stages {\n+        stage('Example Build') {\n+            agent { docker: 'maven:3-alpine' } /* <2> */\n+            steps {\n+                sh 'mvn -B clean verify'\n+            }\n+        }\n+        stage('Example Test') {\n+            agent { docker: 'openjdk:8-jre' } /* <3> */\n+            steps {\n+                echo 'Hello JRE'\n+            }\n+        }\n+    }\n+}\n+----\n+<1> Defining `agent none` at the top-level of the Pipeline ensures that\n+<<../glossary#executor, an Executor>> will not be unnecessarily. Using `agent\n+none` requires that each `stage` directive contain an `agent` directive.","path":"content/doc/book/pipeline/syntax.adoc","position":316,"original_position":316,"commit_id":"7edcfe5288676f8bef0d9724d95dd8979b454f24","original_commit_id":"7edcfe5288676f8bef0d9724d95dd8979b454f24","user":{"login":"rtyler","id":26594,"avatar_url":"https://avatars.githubusercontent.com/u/26594?v=3","gravatar_id":"","url":"https://api.github.com/users/rtyler","html_url":"https://github.com/rtyler","followers_url":"https://api.github.com/users/rtyler/followers","following_url":"https://api.github.com/users/rtyler/following{/other_user}","gists_url":"https://api.github.com/users/rtyler/gists{/gist_id}","starred_url":"https://api.github.com/users/rtyler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtyler/subscriptions","organizations_url":"https://api.github.com/users/rtyler/orgs","repos_url":"https://api.github.com/users/rtyler/repos","events_url":"https://api.github.com/users/rtyler/events{/privacy}","received_events_url":"https://api.github.com/users/rtyler/received_events","type":"User","site_admin":false},"body":"Editorial discretion is being applied here. As a user I have no way of determining what steps do require a node, and which ones do not, therefore I think it's better to err on the side of caution.","created_at":"2017-02-02T04:30:43Z","updated_at":"2017-02-02T04:30:43Z","html_url":"https://github.com/jenkins-infra/jenkins.io/pull/571#discussion_r99051389","pull_request_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/571","_links":{"self":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/comments/99051389"},"html":{"href":"https://github.com/jenkins-infra/jenkins.io/pull/571#discussion_r99051389"},"pull_request":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/571"}}},"pull_request":{"url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/571","id":104215622,"html_url":"https://github.com/jenkins-infra/jenkins.io/pull/571","diff_url":"https://github.com/jenkins-infra/jenkins.io/pull/571.diff","patch_url":"https://github.com/jenkins-infra/jenkins.io/pull/571.patch","issue_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/571","number":571,"state":"open","locked":false,"title":"Update Pipeline documentation for Pipeline 2.5","user":{"login":"rtyler","id":26594,"avatar_url":"https://avatars.githubusercontent.com/u/26594?v=3","gravatar_id":"","url":"https://api.github.com/users/rtyler","html_url":"https://github.com/rtyler","followers_url":"https://api.github.com/users/rtyler/followers","following_url":"https://api.github.com/users/rtyler/following{/other_user}","gists_url":"https://api.github.com/users/rtyler/gists{/gist_id}","starred_url":"https://api.github.com/users/rtyler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtyler/subscriptions","organizations_url":"https://api.github.com/users/rtyler/orgs","repos_url":"https://api.github.com/users/rtyler/repos","events_url":"https://api.github.com/users/rtyler/events{/privacy}","received_events_url":"https://api.github.com/users/rtyler/received_events","type":"User","site_admin":false},"body":"With the Pipeline 2.5 release, which has recently found its way into the Update Center, Declarative Pipeline support was introduced.\r\n\r\nThis is the rebased version of the jenkins-infra/jenkins.io/declarative-pipeline-1.0 branch.\r\n\r\n@jenkins-infra/copy-editors Please consider this ready for a look-over, it has been given a course initial pass already, but now that we're preparing to land on jenkins.io, it's good to have a bit more scrutiny. \r\n\r\n\r\n@bitwiseman please make sure all the Declarative versions of Pipeline are correct.\r\n\r\n\r\n\r\n*NOTE*: I would like to be the one to perform the final merge on this to make sure I have gotten everything signed up between @HRMPW, @abayer, @bitwiseman, and my own work towards this update.","created_at":"2017-02-01T20:32:14Z","updated_at":"2017-02-02T04:30:43Z","closed_at":null,"merged_at":null,"merge_commit_sha":"02494c9b7c7b3996d4639ff581bbb2fdc5c45caa","assignee":{"login":"rtyler","id":26594,"avatar_url":"https://avatars.githubusercontent.com/u/26594?v=3","gravatar_id":"","url":"https://api.github.com/users/rtyler","html_url":"https://github.com/rtyler","followers_url":"https://api.github.com/users/rtyler/followers","following_url":"https://api.github.com/users/rtyler/following{/other_user}","gists_url":"https://api.github.com/users/rtyler/gists{/gist_id}","starred_url":"https://api.github.com/users/rtyler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtyler/subscriptions","organizations_url":"https://api.github.com/users/rtyler/orgs","repos_url":"https://api.github.com/users/rtyler/repos","events_url":"https://api.github.com/users/rtyler/events{/privacy}","received_events_url":"https://api.github.com/users/rtyler/received_events","type":"User","site_admin":false},"assignees":[{"login":"rtyler","id":26594,"avatar_url":"https://avatars.githubusercontent.com/u/26594?v=3","gravatar_id":"","url":"https://api.github.com/users/rtyler","html_url":"https://github.com/rtyler","followers_url":"https://api.github.com/users/rtyler/followers","following_url":"https://api.github.com/users/rtyler/following{/other_user}","gists_url":"https://api.github.com/users/rtyler/gists{/gist_id}","starred_url":"https://api.github.com/users/rtyler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtyler/subscriptions","organizations_url":"https://api.github.com/users/rtyler/orgs","repos_url":"https://api.github.com/users/rtyler/repos","events_url":"https://api.github.com/users/rtyler/events{/privacy}","received_events_url":"https://api.github.com/users/rtyler/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/571/commits","review_comments_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/571/comments","review_comment_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/571/comments","statuses_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/statuses/7edcfe5288676f8bef0d9724d95dd8979b454f24","head":{"label":"rtyler:declarative-pipeline-1.0","ref":"declarative-pipeline-1.0","sha":"7edcfe5288676f8bef0d9724d95dd8979b454f24","user":{"login":"rtyler","id":26594,"avatar_url":"https://avatars.githubusercontent.com/u/26594?v=3","gravatar_id":"","url":"https://api.github.com/users/rtyler","html_url":"https://github.com/rtyler","followers_url":"https://api.github.com/users/rtyler/followers","following_url":"https://api.github.com/users/rtyler/following{/other_user}","gists_url":"https://api.github.com/users/rtyler/gists{/gist_id}","starred_url":"https://api.github.com/users/rtyler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtyler/subscriptions","organizations_url":"https://api.github.com/users/rtyler/orgs","repos_url":"https://api.github.com/users/rtyler/repos","events_url":"https://api.github.com/users/rtyler/events{/privacy}","received_events_url":"https://api.github.com/users/rtyler/received_events","type":"User","site_admin":false},"repo":{"id":46147889,"name":"jenkins.io","full_name":"rtyler/jenkins.io","owner":{"login":"rtyler","id":26594,"avatar_url":"https://avatars.githubusercontent.com/u/26594?v=3","gravatar_id":"","url":"https://api.github.com/users/rtyler","html_url":"https://github.com/rtyler","followers_url":"https://api.github.com/users/rtyler/followers","following_url":"https://api.github.com/users/rtyler/following{/other_user}","gists_url":"https://api.github.com/users/rtyler/gists{/gist_id}","starred_url":"https://api.github.com/users/rtyler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtyler/subscriptions","organizations_url":"https://api.github.com/users/rtyler/orgs","repos_url":"https://api.github.com/users/rtyler/repos","events_url":"https://api.github.com/users/rtyler/events{/privacy}","received_events_url":"https://api.github.com/users/rtyler/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/rtyler/jenkins.io","description":"A static site for the Jenkins automation server","fork":true,"url":"https://api.github.com/repos/rtyler/jenkins.io","forks_url":"https://api.github.com/repos/rtyler/jenkins.io/forks","keys_url":"https://api.github.com/repos/rtyler/jenkins.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rtyler/jenkins.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rtyler/jenkins.io/teams","hooks_url":"https://api.github.com/repos/rtyler/jenkins.io/hooks","issue_events_url":"https://api.github.com/repos/rtyler/jenkins.io/issues/events{/number}","events_url":"https://api.github.com/repos/rtyler/jenkins.io/events","assignees_url":"https://api.github.com/repos/rtyler/jenkins.io/assignees{/user}","branches_url":"https://api.github.com/repos/rtyler/jenkins.io/branches{/branch}","tags_url":"https://api.github.com/repos/rtyler/jenkins.io/tags","blobs_url":"https://api.github.com/repos/rtyler/jenkins.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rtyler/jenkins.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rtyler/jenkins.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/rtyler/jenkins.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rtyler/jenkins.io/statuses/{sha}","languages_url":"https://api.github.com/repos/rtyler/jenkins.io/languages","stargazers_url":"https://api.github.com/repos/rtyler/jenkins.io/stargazers","contributors_url":"https://api.github.com/repos/rtyler/jenkins.io/contributors","subscribers_url":"https://api.github.com/repos/rtyler/jenkins.io/subscribers","subscription_url":"https://api.github.com/repos/rtyler/jenkins.io/subscription","commits_url":"https://api.github.com/repos/rtyler/jenkins.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/rtyler/jenkins.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/rtyler/jenkins.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/rtyler/jenkins.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/rtyler/jenkins.io/contents/{+path}","compare_url":"https://api.github.com/repos/rtyler/jenkins.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rtyler/jenkins.io/merges","archive_url":"https://api.github.com/repos/rtyler/jenkins.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rtyler/jenkins.io/downloads","issues_url":"https://api.github.com/repos/rtyler/jenkins.io/issues{/number}","pulls_url":"https://api.github.com/repos/rtyler/jenkins.io/pulls{/number}","milestones_url":"https://api.github.com/repos/rtyler/jenkins.io/milestones{/number}","notifications_url":"https://api.github.com/repos/rtyler/jenkins.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rtyler/jenkins.io/labels{/name}","releases_url":"https://api.github.com/repos/rtyler/jenkins.io/releases{/id}","deployments_url":"https://api.github.com/repos/rtyler/jenkins.io/deployments","created_at":"2015-11-13T21:21:18Z","updated_at":"2016-12-01T00:03:00Z","pushed_at":"2017-02-01T20:33:38Z","git_url":"git://github.com/rtyler/jenkins.io.git","ssh_url":"git@github.com:rtyler/jenkins.io.git","clone_url":"https://github.com/rtyler/jenkins.io.git","svn_url":"https://github.com/rtyler/jenkins.io","homepage":"http://rtyler.github.io/jenkins.io","size":126788,"stargazers_count":0,"watchers_count":0,"language":"HTML","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"jenkins-infra:master","ref":"master","sha":"0910967b0b6490d86a569803bc20fc51863edf49","user":{"login":"jenkins-infra","id":7422698,"avatar_url":"https://avatars.githubusercontent.com/u/7422698?v=3","gravatar_id":"","url":"https://api.github.com/users/jenkins-infra","html_url":"https://github.com/jenkins-infra","followers_url":"https://api.github.com/users/jenkins-infra/followers","following_url":"https://api.github.com/users/jenkins-infra/following{/other_user}","gists_url":"https://api.github.com/users/jenkins-infra/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkins-infra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkins-infra/subscriptions","organizations_url":"https://api.github.com/users/jenkins-infra/orgs","repos_url":"https://api.github.com/users/jenkins-infra/repos","events_url":"https://api.github.com/users/jenkins-infra/events{/privacy}","received_events_url":"https://api.github.com/users/jenkins-infra/received_events","type":"Organization","site_admin":false},"repo":{"id":44886691,"name":"jenkins.io","full_name":"jenkins-infra/jenkins.io","owner":{"login":"jenkins-infra","id":7422698,"avatar_url":"https://avatars.githubusercontent.com/u/7422698?v=3","gravatar_id":"","url":"https://api.github.com/users/jenkins-infra","html_url":"https://github.com/jenkins-infra","followers_url":"https://api.github.com/users/jenkins-infra/followers","following_url":"https://api.github.com/users/jenkins-infra/following{/other_user}","gists_url":"https://api.github.com/users/jenkins-infra/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkins-infra/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkins-infra/subscriptions","organizations_url":"https://api.github.com/users/jenkins-infra/orgs","repos_url":"https://api.github.com/users/jenkins-infra/repos","events_url":"https://api.github.com/users/jenkins-infra/events{/privacy}","received_events_url":"https://api.github.com/users/jenkins-infra/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/jenkins-infra/jenkins.io","description":"A static site for the Jenkins automation server","fork":false,"url":"https://api.github.com/repos/jenkins-infra/jenkins.io","forks_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/forks","keys_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/teams","hooks_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/hooks","issue_events_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/events{/number}","events_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/events","assignees_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/assignees{/user}","branches_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/branches{/branch}","tags_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/tags","blobs_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/git/refs{/sha}","trees_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/statuses/{sha}","languages_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/languages","stargazers_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/stargazers","contributors_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/contributors","subscribers_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/subscribers","subscription_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/subscription","commits_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/commits{/sha}","git_commits_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/git/commits{/sha}","comments_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/comments{/number}","issue_comment_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/comments{/number}","contents_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/contents/{+path}","compare_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/merges","archive_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/downloads","issues_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues{/number}","pulls_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls{/number}","milestones_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/milestones{/number}","notifications_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/labels{/name}","releases_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/releases{/id}","deployments_url":"https://api.github.com/repos/jenkins-infra/jenkins.io/deployments","created_at":"2015-10-24T22:02:57Z","updated_at":"2017-01-23T07:19:11Z","pushed_at":"2017-02-02T00:12:16Z","git_url":"git://github.com/jenkins-infra/jenkins.io.git","ssh_url":"git@github.com:jenkins-infra/jenkins.io.git","clone_url":"https://github.com/jenkins-infra/jenkins.io.git","svn_url":"https://github.com/jenkins-infra/jenkins.io","homepage":"https://jenkins.io","size":113320,"stargazers_count":45,"watchers_count":45,"language":"HTML","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":143,"mirror_url":null,"open_issues_count":16,"forks":143,"open_issues":16,"watchers":45,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/571"},"html":{"href":"https://github.com/jenkins-infra/jenkins.io/pull/571"},"issue":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/571"},"comments":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/issues/571/comments"},"review_comments":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/571/comments"},"review_comment":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/pulls/571/commits"},"statuses":{"href":"https://api.github.com/repos/jenkins-infra/jenkins.io/statuses/7edcfe5288676f8bef0d9724d95dd8979b454f24"}}}}
{"actor":{"display_login":"rtyler"}}