Conversation CreateBranch and DeleteBranch
Feature Flags: gitaly_delete_branch
, gitaly_create_branch
Stages:
-
RPC Design: https://gitlab.com/gitlab-org/gitaly/issues/497 https://gitlab.com/gitlab-org/gitaly-proto/merge_requests/71
-
Server Implementation: https://gitlab.com/gitlab-org/gitaly/issues/498 https://gitlab.com/gitlab-org/gitaly/merge_requests/311
-
Client Implementation: https://gitlab.com/gitlab-org/gitaly/issues/499 https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/13864
-
Acceptance Testing: https://gitlab.com/gitlab-org/gitaly/issues/569 https://gitlab.com/gitlab-org/gitaly/issues/570
RPC Endpoints:
RefService::CreateBranch
RefService::DeleteBranch
Known Client Routes:
- Known client endpoints
We should use gitaly-ruby because we don't know if/how call sites rely on Rugged's custom branch name resolution.
service RefService
rpc CreateBranch(CreateBranchRequest) returns (CreateBranchResponse) {}
rpc DeleteBranch(DeleteBranchRequest) returns (DeleteBranchResponse) {}
message CreateBranchRequest {
Repository repository = 1;
bytes name = 2;
bytes start_point = 3;
}
CreateBranchResponse {
enum Status {
OK = 0;
ERR_EXISTS = 1;
ERR_INVALID_START_POINT = 2;
}
Status status = 1;
Branch branch = 2;
}
// Branch should go in shared.proto
message Branch {
bytes name = 1;
GitCommit target_commit = 2;
}
message DeleteBranchRequest {
Repository repository = 1;
bytes name = 2;
}
// Not clear if we need to do status signaling; we can add fields later.
message DeleteBranchResponse {}