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: mastertinner/gitlab-merge-request-resource
resources:
- name: repo-mr
type: merge-request
source:
uri: https://gitlab.com/myname/myproject.git
private_token: XXX
username: my_username
password: xxx
-
uri
: The location of the repository (required) -
private_token
: Your GitLab user's private token (required, can be found in your profile settings) -
private_key
: The private SSH key for SSH auth when pullingExample:
private_key: | -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAtCS10/f7W7lkQaSgD/mVeaSOvSF9ql4hf/zfMwfVGgHWjj+W <Lots more text> DWiJL+OFeg9kawcUL6hQ8JeXPhlImG6RTUffma9+iGQyyBMCGd1l -----END RSA PRIVATE KEY-----
-
username
: The username for HTTP(S) auth when pulling -
password
: The password for HTTP(S) auth when pulling -
no_ssl
: Set totrue
if the GitLab API should be used over HTTP instead of HTTPS -
skip_ssl_verification
: Optional. Connect to GitLab insecurely - i.e. skip SSL validation. Defaults to false if not provided.
Please note that you have to provide either
private_key
orusername
andpassword
.
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
)build_label
: The label of the build in GitLab (optional, defaults to"Concourse"
)
jobs:
- name: test-merge-request
plan:
- get: repo
resource: repo-mr
trigger: true
- put: repo-mr
params:
repository: repo
status: running
- task: run-tests
file: repo/ci/tasks/run-tests.yml
on_failure:
put: repo-mr
params:
repository: repo
status: failed
on_success:
put: repo-mr
params:
repository: repo
status: success