Merge Trains should support fast forward merge
Problem to solve
Merge Trains could help solve a fundamental contention problem of fast forward merges because the CI pipeline must be run everytime the merge request is rebased, and the merge request must be rebased every time
master changes - which is frequently! This significantly limits the frequency with which merge requests can be merged.
When a merge request is created or updated,
refs/merge-requests/$iid/merge will be generated with the merge result. Currently this is always generated using the
merge merge method, regardless of the project settings. A more accurate merge ref should probably be generated #26996.
But the merge-ref is not the whole story. The merge ref is ephemeral and does not impact the contents of the branch. In order to actually complete the merge, the merge train also needs to rebase the actual feature branch, and then merge.
Add support for fast forward merge strategies.