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
- !249081 (merged) — accept the
mergedfilter action + goal template - !249082 (merged) — worker + feature flag
- This MR — New Trigger UI
How to set up and validate locally
yarn jest ee/spec/frontend/ai/duo_agents_platformThen enable the flag merge_request_merged_flow_trigger at http://<gdk domain>/rails/features/ and confirm Merged appears under the
merge request trigger:
MR acceptance checklist
- Tested in the local environment (129 suites, 2964 tests passing)
- Behind a default-off feature flag, so no changelog entry
