1

I have a project (PROJECT_A) that is triggered through a webhook, and expects the variable $PRODUCT to be set. Its value is used to trigger a certain path in the build. The job in the .gitlab-ci.yml file looks like this:

deploy:
  stage: publish
  script:
    - ./generate_doc.sh $PRODUCT

A webhook call looks like this:

http://<GITLAB_URL>/api/v4/projects/710/ref/master/trigger/pipeline?token=<TOKEN>&variables[PRODUCT]=<PRODUCT>

I call this trigger through a webhook from other projects, including PROJECT_B. So I manually filled in the desired value in the respective webhooks, e.g. for PROJECT_B:

http://<GITLAB_URL>/api/v4/projects/710/ref/master/trigger/pipeline?token=<TOKEN>&variables[PRODUCT]=PROJECT_B

When the pipeline in PROJECT_A is triggered, $PRODUCT has the value PROJECT_B, as expected.

I would like to parameterize the pipeline further and take, among others, the commit message into account. All the information I need is apparently provided in the webhook payload.

Is there a built-in way to read this payload in a pipeline? Or alternatively, put contents of the payload into a variable in the webhook like this:

http://<GITLAB_URL>/api/v4/projects/710/ref/master/trigger/pipeline?token=<TOKEN>&variables[COMMIT_REF]=???

I have found discussions about doing parameterized Jenkins builds using the webhook payload, including this related question. There is also a similar question in the Gitlab forum, without any answer.

Is there a way to do access that payload in a Gitlab CI pipeline? I could probably extract the provided values with a jq call, but how can I get the Json in the first place?

| improve this question | | | | |
  • Could you describe why you could like to trigger projectB if something is merged into projectA? Could you explain why you do not create a webhook to an artifact manager? E.g. if projectA pushes an artifact to the artifact-manager then project B will be triggered. – 030 Dec 24 '19 at 15:51
  • Thanks for looking into this. However, I am not sure how to elaborate on what I said initially: > Its value is used to trigger a certain path in the build. – Carsten Dec 24 '19 at 15:54
  • Ok thanks for your replies. I will reopen the Q&A. – 030 Dec 24 '19 at 17:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.