Ability to Suppress Webhook Events
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Problem to solve
Recursive webhook firing
Further details
We use web hooks to synchronise our issue tracking with a third-party service. Both services support web hooks, one service (the other one) allows you to suppress the events if needed. If it didn't we'd have a cycle of webhook firing on our hands.
As it stands, it isn't too bad, but we can do better.
Issue update on gitlab -> webhook fires -> Other service updates issue -> End.
Other services updates issue -> webhook fires -> Gitlab updates issue -> webhook fires -> Other service updates issue -> End.
Notice without being able to suppress the webhook when we call the gitlab api to update the issue, we end up performing extra steps when it isn't necessary.
Proposal
Include a header X-Supress-Hooks or include a new param on the APIS that have the ability to trigger a webhook event.
What does success look like, and how can we measure that?
Sending an API request to an endpoint, suppressing hooks, shouldn't generate any web hooks.
curl --request PUT --header "PRIVATE-TOKEN: xxxx" --header "X-Supress-Hooks: true" https://gitlab.com/api/v4/projects/${project_id}/issues/${issue_id}?state_event=close