Offer the Merged action in the New Trigger UI

What does this MR do and why?

Third of three stacked MRs. Exposes the merged merge request trigger to users: the Developer flow now lists merge_request among its triggers, and the New Trigger form offers Merged alongside Approved.

Targets !249082 (merged) — depends on it for the merge_request_merged_flow_trigger definition referenced by push_frontend_feature_flag, and transitively on !249081 (merged) for the backend allowlist. Review those first.

Not a foldable action

ready and code_conflict carry an eventTypeValueInt and are denormalized back into their own event types (4 and 5) on save. merged deliberately omits it, so it stays under the merge_request event type with an action filter, exactly like approved. That is what the new worker reads.

Gating

The action is hidden unless merge_request_merged_flow_trigger is enabled for the project, via the existing filter in event_actions_configuration.vue:

.filter((action) => !action.featureFlag || this.glFeatures[action.featureFlag])

So this is inert until the flag is switched on.

Screenshots or screen recordings

The Merged option appears in the trigger form's action list once the flag is enabled for the project. Not attached — flag is default off.

Stack

  1. !249081 (merged) — accept the merged filter action + goal template
  2. !249082 (merged) — worker + feature flag
  3. This MR — New Trigger UI

How to set up and validate locally

yarn jest ee/spec/frontend/ai/duo_agents_platform

Then enable the flag merge_request_merged_flow_trigger at http://<gdk domain>/rails/features/ and confirm Merged appears under the merge request trigger:

image

MR acceptance checklist

  • Tested in the local environment (129 suites, 2964 tests passing)
  • Behind a default-off feature flag, so no changelog entry
Edited by Junming Huang

Merge request reports

Loading