Contract for the live mergeability of merge requests and the merge commit mode.
MergeRequest.mergeability (14): state CHECKING / UP_TO_DATE / BEHIND / CONFLICT, behind count (capped at 1000), conflicting paths (at most 20), checked_at. Set while OPEN, CHECKING until the server has a result.
Event oneof merge_request_mergeability (22): published when the state changes.
MergeMode MERGE_MODE_MERGE_COMMIT (3): two parents (target tip, head), signed by the server key. Every mode is allowed by default.
Squash takes the tree of the merge into the target, so a branch behind without conflict can be squashed.
MergeMergeRequestResponse.source_branch_deleted: the deletion is requested and done after the answer.
Feature "merge_requests.mergeability".
Checks: buf lint, buf breaking against main (additive only), go test.
After merge: tag v0.10.0, then the ermite MR (feat/mr-mergeability) switches its go.mod to it.
| `TrustedKeyService` | `ListTrustedKeys`, `AddTrustedKey` and `RemoveTrustedKey` (owner only). `Commit.verification` carries the result of the check (feature `commit_signatures`) |
| `TrustedKeyService` | `ListTrustedKeys`, `AddTrustedKey` and `RemoveTrustedKey` (owner only). `Commit.verification` carries the result of the check (feature `commit_signatures`) |
13
| `TrustedKeyService` | `ListTrustedKeys`, `AddTrustedKey` and `RemoveTrustedKey` (owner only). `Commit.verification` carries the result of the check (feature `commit_signatures`) |