GitLab Merge Request Concourse Resource
A concourse resource to check for new merge requests on GitLab and update the merge request status.
Source Configuration
resource_types:
- name: merge-request
type: docker-image
source:
repository: samcontesse/gitlab-merge-request-resource
resources:
- name: merge-request
type: merge-request
source:
uri: https://gitlab.com/myname/myproject.git
private_token: XXX
uri
: (required) The location of the repository (required)private_token
: (required) Your GitLab user's private token (required, can be found in your profile settings)insecure
: When set totrue
, SSL verification is turned offskip_work_in_progress
: When set totrue
, merge requests mark as work in progress (WIP) will be skipped. Defaultfalse
skip_not_mergeable
: When set totrue
, merge requests not marked as mergeable will be skipped. Defaultfalse
skip_trigger_comment
: When set totrue
, the resource will not look up for[trigger ci]
merge request comments to manually trigger builds. Defaultfalse
concourse_url
: When set, this url will be used to overrideATC_EXTERNAL_URL
during commit status updates. No set default.labels
(string[]): Filter merge requests by label[]
Behavior
check
: Check for new merge requests
Checks if there are new merge requests or merge requests with new commits.
in
: Clone merge request source branch
git clone
s the source branch of the respective merge request.
out
: Update a merge request's merge status
Updates the merge request's merge_status
which displays nicely in the GitLab UI and allows to only merge changes if they pass the test.
Parameters
repository
: The path of the repository of the merge request's source branch (required)status
: The new status of the merge request (required, can be eitherpending
,running
,success
,failed
, orcanceled
)labels
(string[]): The labels you want add to your merge requestcomment
: Add a comment for MR. Could be an object withtext
/file
fields. If just thefile
ortext
is specified it is used to populate the field, if bothfile
andtext
are specified then the file is substituted in to replace $FILE_CONTENT in the text.
Example
jobs:
- name: sample-merge-request
plan:
- get: merge-request
trigger: true
- put: merge-request
params:
repository: merge-request
status: running
- task: unit-test
file: merge-request/ci/tasks/unit-test.yml
on_failure:
put: merge-request
params:
repository: merge-request
status: failed
on_success:
put: merge-request
params:
repository: merge-request
status: success
labels: ['unit-test', 'stage']
comment:
file: out/commt.txt
text: |
Add new comment.
$FILE_CONTENT