// Module included in the following assemblies: // // * builds/triggering-builds-build-hooks.adoc :_mod-docs-content-type: PROCEDURE [id="builds-using-gitlab-webhooks_{context}"] = Using GitLab webhooks GitLab webhooks handle the call made by GitLab when a repository is updated. As with the GitHub triggers, you must specify a secret. The following example is a trigger definition YAML within the `BuildConfig`: [source,yaml] ---- type: "GitLab" gitlab: secretReference: name: "mysecret" ---- The payload URL is returned as the GitLab Webhook URL by the `oc describe` command, and is structured as follows: .Example output [source,terminal] ---- https:///apis/build.openshift.io/v1/namespaces//buildconfigs//webhooks//gitlab ---- .Prerequisites * `system:unauthenticated` has access to the `system:webhook` role in the required namespaces. Or, `system:unauthenticated` has access to the `system:webhook` cluster role. .Procedure . Configure a GitLab Webhook. .. Get the webhook URL by entering the following command: + [source,terminal] ---- $ oc describe bc ---- .. Copy the webhook URL, replacing `` with your secret value. .. Follow the link:https://docs.gitlab.com/ce/user/project/integrations/webhooks.html#webhooks[GitLab setup instructions] to paste the webhook URL into your GitLab repository settings. . Given a file containing a valid JSON payload, such as `payload.json`, you can manually trigger the webhook with the following `curl` command: + [source,terminal] ---- $ curl -H "X-GitLab-Event: Push Hook" -H "Content-Type: application/json" -k -X POST --data-binary @payload.json https:///apis/build.openshift.io/v1/namespaces//buildconfigs//webhooks//gitlab ---- + The `-k` argument is only necessary if your API server does not have a properly signed certificate. //// [role="_additional-resources"] .Additional resources //// //* link:https://docs.gitlab.com/ce/user/project/integrations/webhooks.html[GitLab]