GitLab has a few push options for which I'd like to create switches in magit-push's transient.
Causing -n
to add -oci.skip
is simple enough:
(transient-append-suffix 'magit-push "-n" '("-s" "skip CI" "-oci.skip"))
I would also like that -m
adds three different options (-omerge_request.create
, -omerge_request.merge_when_pipeline_succeeds
, and -omerge_request.remove_source_branch
). The following code fails to achieve that goal:
(transient-append-suffix 'magit-push "-n"
'("-m" "auto-merge on success"
"-omerge_request.create -omerge_request.merge_when_pipeline_succeeds -omerge_request.remove_source_branch"))
The above causes the string containing the three options to be passed as a single argument to git push
. I.e., the spaces are not argument separators, but belong to the argument.
Unfortunately, git
wants to receive these as three arguments. I could make three different switches in magit-pull, but that would be cumbersome to use. I'd prefer to have a single switch that activates these three arguments. How can I do that?