Execution Modes
Auto Merge supports six execution modes, allowing gradual adoption from read-only observation to full automation.
Set the mode via CLI flag: --mode=<Mode>
Mode Comparison
Section titled “Mode Comparison”| Mode | Labels | Rebase | Cancel Pipelines | Cancel Auto-Merge | Merge | Use Case |
|---|---|---|---|---|---|---|
DryRun | — | — | — | — | — | Test without changes |
OnlyLabels | yes | — | — | — | — | Visualize MR status only |
RebaseOnly | yes | yes | — | — | — | Keep MRs up-to-date |
NoMerge | yes | yes | yes | yes | — | Prepare MRs, let humans merge |
NoPipelineCancellation | yes | yes | — | — | yes | Full automation, all pipelines run |
Run | yes | yes | yes | yes | yes | Full automation with pipeline optimization |
“Cancel Auto-Merge” disables GitLab’s built-in “merge when pipeline succeeds” flag on MRs, preventing double-merges. Auto Merge controls the merge queue — GitLab’s native auto-merge must not interfere.
Default: DryRun
Recommended Adoption Path
Section titled “Recommended Adoption Path”- Start with
DryRun— observe what Auto Merge would do without any changes - Switch to
OnlyLabels— adds status labels to MRs, giving your team visibility - Enable
RebaseOnly— automatically rebases MRs, reducing manual work - Go to
Run— full automation with merging, rebasing, and pipeline management
Example
Section titled “Example”# Start in observation modedocker run ... neckarit/gitlab-auto-merge:latest --mode=DryRun
# Later, enable full automationdocker run ... neckarit/gitlab-auto-merge:latest --mode=Run