operations: Fix UserRebaseConfirmable not using transactions
When running UserRebaseConfirmable in a Gitaly Cluster setup, it was
noted that multiple pipelines get created, which is an indicator of
hooks running for each of the Gitaly nodes instead of once only for the
transaction's primary. And indeed, UserRebaseConfirmable never passes on
information about transactions to update_branch()
, which effectively
means that each node will be considered to be a primary and that no
transactional voting is happening.
Fix the issue by passing along the transaction to rebase()
and
update_branch()
. Add a test to verify that voting happens as expected
and that hooks only run on the primary node.
Closes #3569 (closed)