#+TITLE: GitHub Status #+SUBTITLE: A Custom Resource for Concourse #+LATEX: \pagebreak * Overview Create and update GitHub statuses from Concourse. * Usage Add the resource to your pipeline's ~resource_types~ (requires Concourse 0.74.0+) #+BEGIN_SRC yaml resource_types: - name: github-status type: docker-image source: repository: resource/github-status #+END_SRC * Source Configuration |--------------+----------+---------------------------------------------| | Name | Required | Description | |--------------+----------+---------------------------------------------| | repo | Yes | The GitHub repository in ~user/repo~ format | | access_token | Yes | The access token to use with the GitHub API | |--------------+----------+---------------------------------------------| * Behaviour ** ~out~ Update the status for a commit *** Parameters To set a single status for the current commit of the repository specify these parameters: |-------------+----------+-----------+--------------------------------------------| | Name | Required | Default | Description | |-------------+----------+-----------+--------------------------------------------| | path | Yes | | Relative path to the repository | | state | Yes | | One of ~pending~, ~success~, or ~failure~ | | context | No | concourse | The ~context~ for the status being updated | | description | No | | A description of the context. | |-------------+----------+-----------+--------------------------------------------| It is also possible to set multiple statuses at the same time. This is useful for adding multiple ~pending~ statuses initially which will be updated by later jobs to the corresponding state, for example. This can be done by specifying a ~statuses~ array: |-------------+----------+-----------+--------------------------------------------| | Name | Required | Default | Description | |-------------+----------+-----------+--------------------------------------------| | path | Yes | | Relative path to the repository | | statuses | Yes | | Array of status objects | |-------------+----------+-----------+--------------------------------------------| Each of the status objects supports the following parameters: |-------------+----------+-----------+--------------------------------------------| | Name | Required | Default | Description | |-------------+----------+-----------+--------------------------------------------| | state | Yes | | One of ~pending~, ~success~, or ~failure~ | | context | No | concourse | The ~context~ for the status being updated | | description | No | | A description of the context. | |-------------+----------+-----------+--------------------------------------------| ** ~check~ Get a list of available statuses *** Parameters - None ** ~in~ Fetch a status *** Parameters Fetches the state of ~context~ for the current commit of the repository at ~path~, and write it to ~{context}.state~ |-------------+----------+-----------+--------------------------------------------| | Name | Required | Default | Description | |-------------+----------+-----------+--------------------------------------------| | path | Yes | | Relative path to the repository | | context | No | concourse | The ~context~ for the status being updated | |-------------+----------+-----------+--------------------------------------------| * License ~concourse-github-status~ is available under the [[https://tldrlegal.com/license/mit-license][MIT License]]. See ~LICENSE.txt~ for the full text. * Contributors - [[https://colstrom.github.io/][Chris Olstrom]] | [[mailto:chris@olstrom.com][e-mail]] | [[https://twitter.com/ChrisOlstrom][Twitter]]