Skip to content

Merge request events return empty changes attribute but calls webhook

Summary

We use Gitlab Group hooks for our automations that gets triggered on Merge request events

Shottr_2024-10-04_15.40.55

- an attribute in the webhook response we look at is the changes attribute - before 2 October 2024 - the changes did contain any changes that conform to (as a minimum of what we use) the below:

  • Label
  • Assignee
  • Reviewer
  • State (Merged)

However, now we get back "changes": {}, but the webhook event is triggered

Steps to reproduce

  1. Setup a group hook
  2. Enable the Merge request events trigger
  3. Create an MR
  4. Apply a label/change assignee

Example Project

I tried recreating it with my own repo but the changes object does contain changes...

https://gitlab.com/daniel950/daniels-test-repo/-/hooks/44819595/hook_logs/9049997706

What is the current bug behavior?

We get the webhook response back with no changes sometimes, and other times it does contain changes...

What is the expected correct behavior?

The webhook response should contain changes when an MR is updated or created or merged - if the Merge Request Event trigger - unless something has changed to the Merge Request Event trigger since 2 October

Ideally no change (created/updated/merged) to a merge request, should not trigger a Merge Request Event

Relevant logs and/or screenshots

Output of checks

This bug happens on GitLab.com

Results of GitLab environment info

GitLab Enterprise Edition 17.5.0-pre d0e0f98dc9f

Expand for output related to GitLab environment info

(For installations with omnibus-gitlab package run and paste the output of: \\\`sudo gitlab-rake gitlab:env:info\\\`) (For installations from source run and paste the output of: \\\`sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production\\\`)

Results of GitLab application Check

Expand for output related to the GitLab application check

(For installations with omnibus-gitlab package run and paste the output of: \`sudo gitlab-rake gitlab:check SANITIZE=true\`) (For installations from source run and paste the output of: \`sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true\`) (we will only investigate if the tests are passing)

Possible fixes

Edited by Daniël du Preez