A concourse resource to check for new merge requests on GitLab and update the merge request status.
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 mr]
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[]
Checks if there are new merge requests or merge requests with new commits.
git clone
s the source branch of the respective merge request.
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.
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
)
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