Allow merging when ready, regardless of predefined order #293
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In this PR I propose two additional flags, mostly relevant to non-batch mode:
ci-timeout
flag. The default behavior is that if a CI is running more than allowed by theci-timeout
flag, Marge will give up on merging that MR and will reassign it from itself. This flags allows that instead of unassigning Marge will just skip that MR and try again at a later time. This also prevents Marge from hanging on one MR for the CI's duration.skip-pending
- This may not be the best name. Normally, Marge (in non-batch mode) will only attempt merging the first MR within a project (giving up as mentioned above if CI takes too long). This flag will attempt merging all relevant MRs, in the right order.Our CI process takes an hour to run, and is under-resourced so some MR may take several hours to pass CI.
The combination of the above two flags allowed us to set a very short (1-5 minutes)
ci-timeout
and merge MRs as they become ready to be merged, instead of waiting a long while for a single MR within a project. I think this also allows Marge to better handle multiple projects in a parallel-like manner, but I'm not certain.WDYT?
Disclaimers: