mirror of
https://github.com/harness/drone.git
synced 2025-05-17 01:20:13 +08:00
Added gitrpc.UpdateRef (#236)
This commit is contained in:
parent
6a7cc4e518
commit
d6ce1bc762
@ -6,6 +6,8 @@ package gitrpc
|
||||
|
||||
import "github.com/harness/gitness/gitrpc/rpc"
|
||||
|
||||
const NilSHA = "0000000000000000000000000000000000000000"
|
||||
|
||||
// ReadParams contains the base parameters for read operations.
|
||||
type ReadParams struct {
|
||||
RepoUID string
|
||||
|
51
gitrpc/enum/ref.go
Normal file
51
gitrpc/enum/ref.go
Normal file
@ -0,0 +1,51 @@
|
||||
// Copyright 2022 Harness Inc. All rights reserved.
|
||||
// Use of this source code is governed by the Polyform Free Trial License
|
||||
// that can be found in the LICENSE.md file for this repository.
|
||||
|
||||
package enum
|
||||
|
||||
import "github.com/harness/gitness/gitrpc/rpc"
|
||||
|
||||
type RefType int
|
||||
|
||||
const (
|
||||
RefTypeRaw RefType = iota
|
||||
RefTypeBranch
|
||||
RefTypeTag
|
||||
RefTypePullReqHead
|
||||
RefTypePullReqMerge
|
||||
)
|
||||
|
||||
func RefFromRPC(t rpc.RefType) (RefType, bool) {
|
||||
switch t {
|
||||
case rpc.RefType_RefRaw:
|
||||
return RefTypeRaw, true
|
||||
case rpc.RefType_RefBranch:
|
||||
return RefTypeBranch, true
|
||||
case rpc.RefType_RefTag:
|
||||
return RefTypeTag, true
|
||||
case rpc.RefType_RefPullReqHead:
|
||||
return RefTypePullReqHead, true
|
||||
case rpc.RefType_RefPullReqMerge:
|
||||
return RefTypePullReqMerge, true
|
||||
default:
|
||||
return 0, false
|
||||
}
|
||||
}
|
||||
|
||||
func RefToRPC(t RefType) (rpc.RefType, bool) {
|
||||
switch t {
|
||||
case RefTypeRaw:
|
||||
return rpc.RefType_RefRaw, true
|
||||
case RefTypeBranch:
|
||||
return rpc.RefType_RefBranch, true
|
||||
case RefTypeTag:
|
||||
return rpc.RefType_RefTag, true
|
||||
case RefTypePullReqHead:
|
||||
return rpc.RefType_RefPullReqHead, true
|
||||
case RefTypePullReqMerge:
|
||||
return rpc.RefType_RefPullReqMerge, true
|
||||
default:
|
||||
return 0, false
|
||||
}
|
||||
}
|
@ -18,7 +18,13 @@ type Interface interface {
|
||||
CreateBranch(ctx context.Context, params *CreateBranchParams) (*CreateBranchOutput, error)
|
||||
DeleteBranch(ctx context.Context, params *DeleteBranchParams) error
|
||||
ListBranches(ctx context.Context, params *ListBranchesParams) (*ListBranchesOutput, error)
|
||||
GetRef(ctx context.Context, params *GetRefParams) (*GetRefResponse, error)
|
||||
|
||||
GetRef(ctx context.Context, params GetRefParams) (GetRefResponse, error)
|
||||
|
||||
// UpdateRef creates, updates or deletes a git ref. If the OldValue is defined it must match the reference value
|
||||
// prior to the call. To remove a ref use the zero ref as the NewValue. To require the creation of a new one and
|
||||
// not update of an exiting one, set the zero ref as the OldValue.
|
||||
UpdateRef(ctx context.Context, params UpdateRefParams) error
|
||||
|
||||
/*
|
||||
* Commits service
|
||||
|
@ -11,6 +11,7 @@ import (
|
||||
"math"
|
||||
"strings"
|
||||
|
||||
"github.com/harness/gitness/gitrpc/enum"
|
||||
"github.com/harness/gitness/gitrpc/internal/types"
|
||||
|
||||
gitea "code.gitea.io/gitea/modules/git"
|
||||
@ -126,14 +127,10 @@ func walkGiteaReferenceParser(parser *gitearef.Parser, handler types.WalkReferen
|
||||
return nil
|
||||
}
|
||||
|
||||
func (g Adapter) GetRef(ctx context.Context, repoPath, refName string, refType types.RefType) (string, error) {
|
||||
switch refType {
|
||||
case types.RefTypeBranch:
|
||||
refName = gitea.BranchPrefix + refName
|
||||
case types.RefTypeTag:
|
||||
refName = gitea.TagPrefix + refName
|
||||
default:
|
||||
return "", types.ErrInvalidArgument
|
||||
func (g Adapter) GetRef(ctx context.Context, repoPath, refName string, refType enum.RefType) (string, error) {
|
||||
refName, errRef := getRef(refName, refType)
|
||||
if errRef != nil {
|
||||
return "", errRef
|
||||
}
|
||||
|
||||
cmd := gitea.NewCommand(ctx, "show-ref", "--verify", "-s", "--", refName)
|
||||
@ -149,3 +146,55 @@ func (g Adapter) GetRef(ctx context.Context, repoPath, refName string, refType t
|
||||
|
||||
return strings.TrimSpace(stdout), nil
|
||||
}
|
||||
|
||||
func (g Adapter) UpdateRef(ctx context.Context,
|
||||
repoPath, refName string, refType enum.RefType,
|
||||
newValue, oldValue string,
|
||||
) error {
|
||||
refName, errRef := getRef(refName, refType)
|
||||
if errRef != nil {
|
||||
return errRef
|
||||
}
|
||||
|
||||
args := make([]string, 0, 4)
|
||||
args = append(args, "update-ref", refName, newValue)
|
||||
if oldValue != "" {
|
||||
args = append(args, oldValue)
|
||||
}
|
||||
|
||||
cmd := gitea.NewCommand(ctx, args...)
|
||||
_, _, err := cmd.RunStdString(&gitea.RunOpts{
|
||||
Dir: repoPath,
|
||||
})
|
||||
if err != nil {
|
||||
if err.IsExitCode(128) {
|
||||
return types.ErrNotFound
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func getRef(refName string, refType enum.RefType) (string, error) {
|
||||
const (
|
||||
refPullReqPrefix = "refs/pullreq/"
|
||||
refPullReqHeadSuffix = "/head"
|
||||
refPullReqMergeSuffix = "/merge"
|
||||
)
|
||||
|
||||
switch refType {
|
||||
case enum.RefTypeRaw:
|
||||
return refName, nil
|
||||
case enum.RefTypeBranch:
|
||||
return gitea.BranchPrefix + refName, nil
|
||||
case enum.RefTypeTag:
|
||||
return gitea.TagPrefix + refName, nil
|
||||
case enum.RefTypePullReqHead:
|
||||
return refPullReqPrefix + refName + refPullReqHeadSuffix, nil
|
||||
case enum.RefTypePullReqMerge:
|
||||
return refPullReqPrefix + refName + refPullReqMergeSuffix, nil
|
||||
default:
|
||||
return "", types.ErrInvalidArgument
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import (
|
||||
"context"
|
||||
"io"
|
||||
|
||||
"github.com/harness/gitness/gitrpc/enum"
|
||||
"github.com/harness/gitness/gitrpc/internal/types"
|
||||
)
|
||||
|
||||
@ -39,7 +40,8 @@ type GitAdapter interface {
|
||||
GetBranch(ctx context.Context, repoPath string, branchName string) (*types.Branch, error)
|
||||
GetCommitDivergences(ctx context.Context, repoPath string,
|
||||
requests []types.CommitDivergenceRequest, max int32) ([]types.CommitDivergence, error)
|
||||
GetRef(ctx context.Context, repoPath string, name string, refType types.RefType) (string, error)
|
||||
GetRef(ctx context.Context, repoPath string, name string, refType enum.RefType) (string, error)
|
||||
UpdateRef(ctx context.Context, repoPath, refName string, refType enum.RefType, newValue, oldValue string) error
|
||||
CreateTemporaryRepoForPR(ctx context.Context, reposTempPath string, pr *types.PullRequest) (string, error)
|
||||
Merge(ctx context.Context, pr *types.PullRequest, mergeMethod string, trackingBranch string,
|
||||
tmpBasePath string, mergeMsg string, env []string) error
|
||||
|
@ -10,6 +10,7 @@ import (
|
||||
"math"
|
||||
"strings"
|
||||
|
||||
"github.com/harness/gitness/gitrpc/enum"
|
||||
"github.com/harness/gitness/gitrpc/internal/types"
|
||||
"github.com/harness/gitness/gitrpc/rpc"
|
||||
|
||||
@ -178,24 +179,19 @@ func wrapInstructorWithOptionalPagination(inner types.WalkReferencesInstructor,
|
||||
}
|
||||
|
||||
func (s ReferenceService) GetRef(ctx context.Context,
|
||||
request *rpc.GetRefRequest) (*rpc.GetRefResponse, error) {
|
||||
base := request.GetBase()
|
||||
if base == nil {
|
||||
request *rpc.GetRefRequest,
|
||||
) (*rpc.GetRefResponse, error) {
|
||||
if request.Base == nil {
|
||||
return nil, types.ErrBaseCannotBeEmpty
|
||||
}
|
||||
|
||||
repoPath := getFullPathForRepo(s.reposRoot, base.GetRepoUid())
|
||||
|
||||
var refType types.RefType
|
||||
switch request.RefType {
|
||||
case rpc.GetRefRequest_Branch:
|
||||
refType = types.RefTypeBranch
|
||||
case rpc.GetRefRequest_Tag:
|
||||
refType = types.RefTypeTag
|
||||
default:
|
||||
return nil, status.Error(codes.InvalidArgument, "invalid value of refType argument")
|
||||
refType, ok := enum.RefFromRPC(request.GetRefType())
|
||||
if !ok {
|
||||
return nil, status.Error(codes.InvalidArgument, "invalid value of RefType argument")
|
||||
}
|
||||
|
||||
repoPath := getFullPathForRepo(s.reposRoot, request.Base.GetRepoUid())
|
||||
|
||||
sha, err := s.adapter.GetRef(ctx, repoPath, request.RefName, refType)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -203,3 +199,25 @@ func (s ReferenceService) GetRef(ctx context.Context,
|
||||
|
||||
return &rpc.GetRefResponse{Sha: sha}, nil
|
||||
}
|
||||
|
||||
func (s ReferenceService) UpdateRef(ctx context.Context,
|
||||
request *rpc.UpdateRefRequest,
|
||||
) (*rpc.UpdateRefResponse, error) {
|
||||
if request.Base == nil {
|
||||
return nil, types.ErrBaseCannotBeEmpty
|
||||
}
|
||||
|
||||
refType, ok := enum.RefFromRPC(request.GetRefType())
|
||||
if !ok {
|
||||
return nil, status.Error(codes.InvalidArgument, "invalid value of RefType argument")
|
||||
}
|
||||
|
||||
repoPath := getFullPathForRepo(s.reposRoot, request.Base.GetRepoUid())
|
||||
|
||||
err := s.adapter.UpdateRef(ctx, repoPath, request.RefName, refType, request.NewValue, request.OldValue)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return &rpc.UpdateRefResponse{}, nil
|
||||
}
|
||||
|
@ -80,13 +80,6 @@ func ParseGitReferenceField(f string) (GitReferenceField, error) {
|
||||
}
|
||||
}
|
||||
|
||||
type RefType int
|
||||
|
||||
const (
|
||||
RefTypeBranch RefType = iota
|
||||
RefTypeTag
|
||||
)
|
||||
|
||||
type WalkInstruction int
|
||||
|
||||
const (
|
||||
|
@ -11,6 +11,7 @@ service ReferenceService {
|
||||
rpc ListBranches(ListBranchesRequest) returns (stream ListBranchesResponse);
|
||||
rpc ListCommitTags(ListCommitTagsRequest) returns (stream ListCommitTagsResponse);
|
||||
rpc GetRef(GetRefRequest) returns (GetRefResponse);
|
||||
rpc UpdateRef(UpdateRefRequest) returns (UpdateRefResponse);
|
||||
}
|
||||
|
||||
message CreateBranchRequest {
|
||||
@ -89,12 +90,15 @@ message CommitTag {
|
||||
Commit commit = 7;
|
||||
}
|
||||
|
||||
message GetRefRequest {
|
||||
enum RefType {
|
||||
Branch = 0;
|
||||
Tag = 1;
|
||||
RefRaw = 0;
|
||||
RefBranch = 1;
|
||||
RefTag = 2;
|
||||
RefPullReqHead = 3;
|
||||
RefPullReqMerge = 4;
|
||||
}
|
||||
|
||||
message GetRefRequest {
|
||||
ReadRequest base = 1;
|
||||
string ref_name = 2;
|
||||
RefType ref_type = 3;
|
||||
@ -103,3 +107,13 @@ message GetRefRequest {
|
||||
message GetRefResponse {
|
||||
string sha = 1;
|
||||
}
|
||||
|
||||
message UpdateRefRequest {
|
||||
WriteRequest base = 1;
|
||||
string ref_name = 2;
|
||||
RefType ref_type = 3;
|
||||
string new_value = 4;
|
||||
string old_value = 5;
|
||||
}
|
||||
|
||||
message UpdateRefResponse {}
|
||||
|
@ -7,42 +7,27 @@ package gitrpc
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/harness/gitness/gitrpc/enum"
|
||||
"github.com/harness/gitness/gitrpc/rpc"
|
||||
|
||||
"google.golang.org/grpc/codes"
|
||||
"google.golang.org/grpc/status"
|
||||
)
|
||||
|
||||
type RefType int
|
||||
|
||||
const (
|
||||
RefTypeBranch RefType = iota
|
||||
RefTypeTag
|
||||
)
|
||||
|
||||
type GetRefParams struct {
|
||||
ReadParams
|
||||
Name string
|
||||
Type RefType
|
||||
Type enum.RefType
|
||||
}
|
||||
|
||||
type GetRefResponse struct {
|
||||
SHA string
|
||||
}
|
||||
|
||||
func (c *Client) GetRef(ctx context.Context, params *GetRefParams) (*GetRefResponse, error) {
|
||||
if params == nil {
|
||||
return nil, ErrNoParamsProvided
|
||||
}
|
||||
|
||||
var refType rpc.GetRefRequest_RefType
|
||||
switch params.Type {
|
||||
case RefTypeBranch:
|
||||
refType = rpc.GetRefRequest_Branch
|
||||
case RefTypeTag:
|
||||
refType = rpc.GetRefRequest_Tag
|
||||
default:
|
||||
return nil, ErrInvalidArgument
|
||||
func (c *Client) GetRef(ctx context.Context, params GetRefParams) (GetRefResponse, error) {
|
||||
refType, isOk := enum.RefToRPC(params.Type)
|
||||
if !isOk {
|
||||
return GetRefResponse{}, ErrInvalidArgument
|
||||
}
|
||||
|
||||
result, err := c.refService.GetRef(ctx, &rpc.GetRefRequest{
|
||||
@ -51,13 +36,36 @@ func (c *Client) GetRef(ctx context.Context, params *GetRefParams) (*GetRefRespo
|
||||
RefType: refType,
|
||||
})
|
||||
if s, ok := status.FromError(err); err != nil && ok && s.Code() == codes.NotFound {
|
||||
return nil, ErrNotFound
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return GetRefResponse{}, ErrNotFound
|
||||
}
|
||||
|
||||
return &GetRefResponse{
|
||||
SHA: result.Sha,
|
||||
}, nil
|
||||
return GetRefResponse{SHA: result.Sha}, nil
|
||||
}
|
||||
|
||||
type UpdateRefParams struct {
|
||||
WriteParams
|
||||
Name string
|
||||
Type enum.RefType
|
||||
NewValue string
|
||||
OldValue string
|
||||
}
|
||||
|
||||
func (c *Client) UpdateRef(ctx context.Context, params UpdateRefParams) error {
|
||||
refType, isOk := enum.RefToRPC(params.Type)
|
||||
if !isOk {
|
||||
return ErrInvalidArgument
|
||||
}
|
||||
|
||||
_, err := c.refService.UpdateRef(ctx, &rpc.UpdateRefRequest{
|
||||
Base: mapToRPCWriteRequest(params.WriteParams),
|
||||
RefName: params.Name,
|
||||
RefType: refType,
|
||||
NewValue: params.NewValue,
|
||||
OldValue: params.OldValue,
|
||||
})
|
||||
if s, ok := status.FromError(err); err != nil && ok && s.Code() == codes.NotFound {
|
||||
return ErrNotFound
|
||||
}
|
||||
|
||||
return err
|
||||
}
|
||||
|
@ -20,6 +20,61 @@ const (
|
||||
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
|
||||
)
|
||||
|
||||
type RefType int32
|
||||
|
||||
const (
|
||||
RefType_RefRaw RefType = 0
|
||||
RefType_RefBranch RefType = 1
|
||||
RefType_RefTag RefType = 2
|
||||
RefType_RefPullReqHead RefType = 3
|
||||
RefType_RefPullReqMerge RefType = 4
|
||||
)
|
||||
|
||||
// Enum value maps for RefType.
|
||||
var (
|
||||
RefType_name = map[int32]string{
|
||||
0: "RefRaw",
|
||||
1: "RefBranch",
|
||||
2: "RefTag",
|
||||
3: "RefPullReqHead",
|
||||
4: "RefPullReqMerge",
|
||||
}
|
||||
RefType_value = map[string]int32{
|
||||
"RefRaw": 0,
|
||||
"RefBranch": 1,
|
||||
"RefTag": 2,
|
||||
"RefPullReqHead": 3,
|
||||
"RefPullReqMerge": 4,
|
||||
}
|
||||
)
|
||||
|
||||
func (x RefType) Enum() *RefType {
|
||||
p := new(RefType)
|
||||
*p = x
|
||||
return p
|
||||
}
|
||||
|
||||
func (x RefType) String() string {
|
||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||
}
|
||||
|
||||
func (RefType) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_ref_proto_enumTypes[0].Descriptor()
|
||||
}
|
||||
|
||||
func (RefType) Type() protoreflect.EnumType {
|
||||
return &file_ref_proto_enumTypes[0]
|
||||
}
|
||||
|
||||
func (x RefType) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use RefType.Descriptor instead.
|
||||
func (RefType) EnumDescriptor() ([]byte, []int) {
|
||||
return file_ref_proto_rawDescGZIP(), []int{0}
|
||||
}
|
||||
|
||||
type ListBranchesRequest_SortOption int32
|
||||
|
||||
const (
|
||||
@ -53,11 +108,11 @@ func (x ListBranchesRequest_SortOption) String() string {
|
||||
}
|
||||
|
||||
func (ListBranchesRequest_SortOption) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_ref_proto_enumTypes[0].Descriptor()
|
||||
return file_ref_proto_enumTypes[1].Descriptor()
|
||||
}
|
||||
|
||||
func (ListBranchesRequest_SortOption) Type() protoreflect.EnumType {
|
||||
return &file_ref_proto_enumTypes[0]
|
||||
return &file_ref_proto_enumTypes[1]
|
||||
}
|
||||
|
||||
func (x ListBranchesRequest_SortOption) Number() protoreflect.EnumNumber {
|
||||
@ -102,11 +157,11 @@ func (x ListCommitTagsRequest_SortOption) String() string {
|
||||
}
|
||||
|
||||
func (ListCommitTagsRequest_SortOption) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_ref_proto_enumTypes[1].Descriptor()
|
||||
return file_ref_proto_enumTypes[2].Descriptor()
|
||||
}
|
||||
|
||||
func (ListCommitTagsRequest_SortOption) Type() protoreflect.EnumType {
|
||||
return &file_ref_proto_enumTypes[1]
|
||||
return &file_ref_proto_enumTypes[2]
|
||||
}
|
||||
|
||||
func (x ListCommitTagsRequest_SortOption) Number() protoreflect.EnumNumber {
|
||||
@ -118,52 +173,6 @@ func (ListCommitTagsRequest_SortOption) EnumDescriptor() ([]byte, []int) {
|
||||
return file_ref_proto_rawDescGZIP(), []int{7, 0}
|
||||
}
|
||||
|
||||
type GetRefRequest_RefType int32
|
||||
|
||||
const (
|
||||
GetRefRequest_Branch GetRefRequest_RefType = 0
|
||||
GetRefRequest_Tag GetRefRequest_RefType = 1
|
||||
)
|
||||
|
||||
// Enum value maps for GetRefRequest_RefType.
|
||||
var (
|
||||
GetRefRequest_RefType_name = map[int32]string{
|
||||
0: "Branch",
|
||||
1: "Tag",
|
||||
}
|
||||
GetRefRequest_RefType_value = map[string]int32{
|
||||
"Branch": 0,
|
||||
"Tag": 1,
|
||||
}
|
||||
)
|
||||
|
||||
func (x GetRefRequest_RefType) Enum() *GetRefRequest_RefType {
|
||||
p := new(GetRefRequest_RefType)
|
||||
*p = x
|
||||
return p
|
||||
}
|
||||
|
||||
func (x GetRefRequest_RefType) String() string {
|
||||
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||
}
|
||||
|
||||
func (GetRefRequest_RefType) Descriptor() protoreflect.EnumDescriptor {
|
||||
return file_ref_proto_enumTypes[2].Descriptor()
|
||||
}
|
||||
|
||||
func (GetRefRequest_RefType) Type() protoreflect.EnumType {
|
||||
return &file_ref_proto_enumTypes[2]
|
||||
}
|
||||
|
||||
func (x GetRefRequest_RefType) Number() protoreflect.EnumNumber {
|
||||
return protoreflect.EnumNumber(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use GetRefRequest_RefType.Descriptor instead.
|
||||
func (GetRefRequest_RefType) EnumDescriptor() ([]byte, []int) {
|
||||
return file_ref_proto_rawDescGZIP(), []int{10, 0}
|
||||
}
|
||||
|
||||
type CreateBranchRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
@ -833,7 +842,7 @@ type GetRefRequest struct {
|
||||
|
||||
Base *ReadRequest `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
|
||||
RefName string `protobuf:"bytes,2,opt,name=ref_name,json=refName,proto3" json:"ref_name,omitempty"`
|
||||
RefType GetRefRequest_RefType `protobuf:"varint,3,opt,name=ref_type,json=refType,proto3,enum=rpc.GetRefRequest_RefType" json:"ref_type,omitempty"`
|
||||
RefType RefType `protobuf:"varint,3,opt,name=ref_type,json=refType,proto3,enum=rpc.RefType" json:"ref_type,omitempty"`
|
||||
}
|
||||
|
||||
func (x *GetRefRequest) Reset() {
|
||||
@ -882,11 +891,11 @@ func (x *GetRefRequest) GetRefName() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *GetRefRequest) GetRefType() GetRefRequest_RefType {
|
||||
func (x *GetRefRequest) GetRefType() RefType {
|
||||
if x != nil {
|
||||
return x.RefType
|
||||
}
|
||||
return GetRefRequest_Branch
|
||||
return RefType_RefRaw
|
||||
}
|
||||
|
||||
type GetRefResponse struct {
|
||||
@ -936,6 +945,123 @@ func (x *GetRefResponse) GetSha() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
type UpdateRefRequest struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
|
||||
Base *WriteRequest `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
|
||||
RefName string `protobuf:"bytes,2,opt,name=ref_name,json=refName,proto3" json:"ref_name,omitempty"`
|
||||
RefType RefType `protobuf:"varint,3,opt,name=ref_type,json=refType,proto3,enum=rpc.RefType" json:"ref_type,omitempty"`
|
||||
NewValue string `protobuf:"bytes,4,opt,name=new_value,json=newValue,proto3" json:"new_value,omitempty"`
|
||||
OldValue string `protobuf:"bytes,5,opt,name=old_value,json=oldValue,proto3" json:"old_value,omitempty"`
|
||||
}
|
||||
|
||||
func (x *UpdateRefRequest) Reset() {
|
||||
*x = UpdateRefRequest{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_ref_proto_msgTypes[12]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *UpdateRefRequest) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UpdateRefRequest) ProtoMessage() {}
|
||||
|
||||
func (x *UpdateRefRequest) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_ref_proto_msgTypes[12]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UpdateRefRequest.ProtoReflect.Descriptor instead.
|
||||
func (*UpdateRefRequest) Descriptor() ([]byte, []int) {
|
||||
return file_ref_proto_rawDescGZIP(), []int{12}
|
||||
}
|
||||
|
||||
func (x *UpdateRefRequest) GetBase() *WriteRequest {
|
||||
if x != nil {
|
||||
return x.Base
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (x *UpdateRefRequest) GetRefName() string {
|
||||
if x != nil {
|
||||
return x.RefName
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UpdateRefRequest) GetRefType() RefType {
|
||||
if x != nil {
|
||||
return x.RefType
|
||||
}
|
||||
return RefType_RefRaw
|
||||
}
|
||||
|
||||
func (x *UpdateRefRequest) GetNewValue() string {
|
||||
if x != nil {
|
||||
return x.NewValue
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (x *UpdateRefRequest) GetOldValue() string {
|
||||
if x != nil {
|
||||
return x.OldValue
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type UpdateRefResponse struct {
|
||||
state protoimpl.MessageState
|
||||
sizeCache protoimpl.SizeCache
|
||||
unknownFields protoimpl.UnknownFields
|
||||
}
|
||||
|
||||
func (x *UpdateRefResponse) Reset() {
|
||||
*x = UpdateRefResponse{}
|
||||
if protoimpl.UnsafeEnabled {
|
||||
mi := &file_ref_proto_msgTypes[13]
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
}
|
||||
|
||||
func (x *UpdateRefResponse) String() string {
|
||||
return protoimpl.X.MessageStringOf(x)
|
||||
}
|
||||
|
||||
func (*UpdateRefResponse) ProtoMessage() {}
|
||||
|
||||
func (x *UpdateRefResponse) ProtoReflect() protoreflect.Message {
|
||||
mi := &file_ref_proto_msgTypes[13]
|
||||
if protoimpl.UnsafeEnabled && x != nil {
|
||||
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
|
||||
if ms.LoadMessageInfo() == nil {
|
||||
ms.StoreMessageInfo(mi)
|
||||
}
|
||||
return ms
|
||||
}
|
||||
return mi.MessageOf(x)
|
||||
}
|
||||
|
||||
// Deprecated: Use UpdateRefResponse.ProtoReflect.Descriptor instead.
|
||||
func (*UpdateRefResponse) Descriptor() ([]byte, []int) {
|
||||
return file_ref_proto_rawDescGZIP(), []int{13}
|
||||
}
|
||||
|
||||
var File_ref_proto protoreflect.FileDescriptor
|
||||
|
||||
var file_ref_proto_rawDesc = []byte{
|
||||
@ -1027,45 +1153,65 @@ var file_ref_proto_rawDesc = []byte{
|
||||
0x70, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x06, 0x74, 0x61,
|
||||
0x67, 0x67, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x07,
|
||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69,
|
||||
0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0xa7, 0x01, 0x0a, 0x0d, 0x47, 0x65,
|
||||
0x74, 0x52, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x62,
|
||||
0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x72, 0x70, 0x63, 0x2e,
|
||||
0x52, 0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x62, 0x61, 0x73,
|
||||
0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08,
|
||||
0x72, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a,
|
||||
0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||
0x73, 0x74, 0x2e, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x72, 0x65, 0x66, 0x54,
|
||||
0x79, 0x70, 0x65, 0x22, 0x1e, 0x0a, 0x07, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a,
|
||||
0x0a, 0x06, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x61,
|
||||
0x67, 0x10, 0x01, 0x22, 0x22, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x65, 0x73,
|
||||
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x01, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, 0x32, 0xe3, 0x02, 0x0a, 0x10, 0x52, 0x65, 0x66, 0x65,
|
||||
0x72, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x0c,
|
||||
0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x18, 0x2e, 0x72,
|
||||
0x70, 0x63, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72, 0x65,
|
||||
0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x12, 0x43, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63,
|
||||
0x68, 0x12, 0x18, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72,
|
||||
0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x72, 0x70,
|
||||
0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72,
|
||||
0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x12, 0x18, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
||||
0x1a, 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63,
|
||||
0x68, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x4b, 0x0a,
|
||||
0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12,
|
||||
0x1a, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74,
|
||||
0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, 0x70,
|
||||
0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x61, 0x67, 0x73,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x31, 0x0a, 0x06, 0x47, 0x65,
|
||||
0x74, 0x52, 0x65, 0x66, 0x12, 0x12, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65,
|
||||
0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47,
|
||||
0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a,
|
||||
0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x72, 0x6e,
|
||||
0x65, 0x73, 0x73, 0x2f, 0x67, 0x69, 0x74, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x69, 0x74, 0x72,
|
||||
0x70, 0x63, 0x2f, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
0x74, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x79, 0x0a, 0x0d, 0x47, 0x65, 0x74,
|
||||
0x52, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x04, 0x62, 0x61,
|
||||
0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52,
|
||||
0x65, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65,
|
||||
0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
|
||||
0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x08, 0x72,
|
||||
0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e,
|
||||
0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52, 0x07, 0x72, 0x65, 0x66,
|
||||
0x54, 0x79, 0x70, 0x65, 0x22, 0x22, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x01, 0x20,
|
||||
0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, 0x22, 0xb7, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64,
|
||||
0x61, 0x74, 0x65, 0x52, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a,
|
||||
0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x72, 0x70,
|
||||
0x63, 0x2e, 0x57, 0x72, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x04,
|
||||
0x62, 0x61, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
|
||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12,
|
||||
0x27, 0x0a, 0x08, 0x72, 0x65, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||
0x0e, 0x32, 0x0c, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x52, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x52,
|
||||
0x07, 0x72, 0x65, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f,
|
||||
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x65, 0x77,
|
||||
0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x6c,
|
||||
0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x6c, 0x64, 0x56, 0x61, 0x6c,
|
||||
0x75, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x66, 0x52,
|
||||
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2a, 0x59, 0x0a, 0x07, 0x52, 0x65, 0x66, 0x54, 0x79,
|
||||
0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x65, 0x66, 0x52, 0x61, 0x77, 0x10, 0x00, 0x12, 0x0d,
|
||||
0x0a, 0x09, 0x52, 0x65, 0x66, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x10, 0x01, 0x12, 0x0a, 0x0a,
|
||||
0x06, 0x52, 0x65, 0x66, 0x54, 0x61, 0x67, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x52, 0x65, 0x66,
|
||||
0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x48, 0x65, 0x61, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a,
|
||||
0x0f, 0x52, 0x65, 0x66, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x72, 0x67, 0x65,
|
||||
0x10, 0x04, 0x32, 0x9f, 0x03, 0x0a, 0x10, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
|
||||
0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74,
|
||||
0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x18, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72,
|
||||
0x65, 0x61, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
|
||||
0x74, 0x1a, 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x72,
|
||||
0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c,
|
||||
0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x18, 0x2e, 0x72,
|
||||
0x70, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x44, 0x65, 0x6c,
|
||||
0x65, 0x74, 0x65, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
||||
0x65, 0x12, 0x45, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65,
|
||||
0x73, 0x12, 0x18, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e,
|
||||
0x63, 0x68, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x72, 0x70,
|
||||
0x63, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x65, 0x73, 0x52, 0x65,
|
||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x4b, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74,
|
||||
0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1a, 0x2e, 0x72, 0x70, 0x63,
|
||||
0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52,
|
||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x69, 0x73,
|
||||
0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||
0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x31, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x12,
|
||||
0x12, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75,
|
||||
0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x66,
|
||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x52, 0x65, 0x66, 0x12, 0x15, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61,
|
||||
0x74, 0x65, 0x52, 0x65, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x72,
|
||||
0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x66, 0x52, 0x65, 0x73, 0x70,
|
||||
0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
|
||||
0x6f, 0x6d, 0x2f, 0x68, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x2f, 0x67, 0x69, 0x74, 0x6e, 0x65,
|
||||
0x73, 0x73, 0x2f, 0x67, 0x69, 0x74, 0x72, 0x70, 0x63, 0x2f, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70,
|
||||
0x72, 0x6f, 0x74, 0x6f, 0x33,
|
||||
}
|
||||
|
||||
var (
|
||||
@ -1081,11 +1227,11 @@ func file_ref_proto_rawDescGZIP() []byte {
|
||||
}
|
||||
|
||||
var file_ref_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
|
||||
var file_ref_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
|
||||
var file_ref_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
|
||||
var file_ref_proto_goTypes = []interface{}{
|
||||
(ListBranchesRequest_SortOption)(0), // 0: rpc.ListBranchesRequest.SortOption
|
||||
(ListCommitTagsRequest_SortOption)(0), // 1: rpc.ListCommitTagsRequest.SortOption
|
||||
(GetRefRequest_RefType)(0), // 2: rpc.GetRefRequest.RefType
|
||||
(RefType)(0), // 0: rpc.RefType
|
||||
(ListBranchesRequest_SortOption)(0), // 1: rpc.ListBranchesRequest.SortOption
|
||||
(ListCommitTagsRequest_SortOption)(0), // 2: rpc.ListCommitTagsRequest.SortOption
|
||||
(*CreateBranchRequest)(nil), // 3: rpc.CreateBranchRequest
|
||||
(*CreateBranchResponse)(nil), // 4: rpc.CreateBranchResponse
|
||||
(*DeleteBranchRequest)(nil), // 5: rpc.DeleteBranchRequest
|
||||
@ -1098,44 +1244,50 @@ var file_ref_proto_goTypes = []interface{}{
|
||||
(*CommitTag)(nil), // 12: rpc.CommitTag
|
||||
(*GetRefRequest)(nil), // 13: rpc.GetRefRequest
|
||||
(*GetRefResponse)(nil), // 14: rpc.GetRefResponse
|
||||
(*WriteRequest)(nil), // 15: rpc.WriteRequest
|
||||
(*ReadRequest)(nil), // 16: rpc.ReadRequest
|
||||
(SortOrder)(0), // 17: rpc.SortOrder
|
||||
(*Commit)(nil), // 18: rpc.Commit
|
||||
(*Signature)(nil), // 19: rpc.Signature
|
||||
(*UpdateRefRequest)(nil), // 15: rpc.UpdateRefRequest
|
||||
(*UpdateRefResponse)(nil), // 16: rpc.UpdateRefResponse
|
||||
(*WriteRequest)(nil), // 17: rpc.WriteRequest
|
||||
(*ReadRequest)(nil), // 18: rpc.ReadRequest
|
||||
(SortOrder)(0), // 19: rpc.SortOrder
|
||||
(*Commit)(nil), // 20: rpc.Commit
|
||||
(*Signature)(nil), // 21: rpc.Signature
|
||||
}
|
||||
var file_ref_proto_depIdxs = []int32{
|
||||
15, // 0: rpc.CreateBranchRequest.base:type_name -> rpc.WriteRequest
|
||||
17, // 0: rpc.CreateBranchRequest.base:type_name -> rpc.WriteRequest
|
||||
9, // 1: rpc.CreateBranchResponse.branch:type_name -> rpc.Branch
|
||||
15, // 2: rpc.DeleteBranchRequest.base:type_name -> rpc.WriteRequest
|
||||
16, // 3: rpc.ListBranchesRequest.base:type_name -> rpc.ReadRequest
|
||||
0, // 4: rpc.ListBranchesRequest.sort:type_name -> rpc.ListBranchesRequest.SortOption
|
||||
17, // 5: rpc.ListBranchesRequest.order:type_name -> rpc.SortOrder
|
||||
17, // 2: rpc.DeleteBranchRequest.base:type_name -> rpc.WriteRequest
|
||||
18, // 3: rpc.ListBranchesRequest.base:type_name -> rpc.ReadRequest
|
||||
1, // 4: rpc.ListBranchesRequest.sort:type_name -> rpc.ListBranchesRequest.SortOption
|
||||
19, // 5: rpc.ListBranchesRequest.order:type_name -> rpc.SortOrder
|
||||
9, // 6: rpc.ListBranchesResponse.branch:type_name -> rpc.Branch
|
||||
18, // 7: rpc.Branch.commit:type_name -> rpc.Commit
|
||||
16, // 8: rpc.ListCommitTagsRequest.base:type_name -> rpc.ReadRequest
|
||||
1, // 9: rpc.ListCommitTagsRequest.sort:type_name -> rpc.ListCommitTagsRequest.SortOption
|
||||
17, // 10: rpc.ListCommitTagsRequest.order:type_name -> rpc.SortOrder
|
||||
20, // 7: rpc.Branch.commit:type_name -> rpc.Commit
|
||||
18, // 8: rpc.ListCommitTagsRequest.base:type_name -> rpc.ReadRequest
|
||||
2, // 9: rpc.ListCommitTagsRequest.sort:type_name -> rpc.ListCommitTagsRequest.SortOption
|
||||
19, // 10: rpc.ListCommitTagsRequest.order:type_name -> rpc.SortOrder
|
||||
12, // 11: rpc.ListCommitTagsResponse.tag:type_name -> rpc.CommitTag
|
||||
19, // 12: rpc.CommitTag.tagger:type_name -> rpc.Signature
|
||||
18, // 13: rpc.CommitTag.commit:type_name -> rpc.Commit
|
||||
16, // 14: rpc.GetRefRequest.base:type_name -> rpc.ReadRequest
|
||||
2, // 15: rpc.GetRefRequest.ref_type:type_name -> rpc.GetRefRequest.RefType
|
||||
3, // 16: rpc.ReferenceService.CreateBranch:input_type -> rpc.CreateBranchRequest
|
||||
5, // 17: rpc.ReferenceService.DeleteBranch:input_type -> rpc.DeleteBranchRequest
|
||||
7, // 18: rpc.ReferenceService.ListBranches:input_type -> rpc.ListBranchesRequest
|
||||
10, // 19: rpc.ReferenceService.ListCommitTags:input_type -> rpc.ListCommitTagsRequest
|
||||
13, // 20: rpc.ReferenceService.GetRef:input_type -> rpc.GetRefRequest
|
||||
4, // 21: rpc.ReferenceService.CreateBranch:output_type -> rpc.CreateBranchResponse
|
||||
6, // 22: rpc.ReferenceService.DeleteBranch:output_type -> rpc.DeleteBranchResponse
|
||||
8, // 23: rpc.ReferenceService.ListBranches:output_type -> rpc.ListBranchesResponse
|
||||
11, // 24: rpc.ReferenceService.ListCommitTags:output_type -> rpc.ListCommitTagsResponse
|
||||
14, // 25: rpc.ReferenceService.GetRef:output_type -> rpc.GetRefResponse
|
||||
21, // [21:26] is the sub-list for method output_type
|
||||
16, // [16:21] is the sub-list for method input_type
|
||||
16, // [16:16] is the sub-list for extension type_name
|
||||
16, // [16:16] is the sub-list for extension extendee
|
||||
0, // [0:16] is the sub-list for field type_name
|
||||
21, // 12: rpc.CommitTag.tagger:type_name -> rpc.Signature
|
||||
20, // 13: rpc.CommitTag.commit:type_name -> rpc.Commit
|
||||
18, // 14: rpc.GetRefRequest.base:type_name -> rpc.ReadRequest
|
||||
0, // 15: rpc.GetRefRequest.ref_type:type_name -> rpc.RefType
|
||||
17, // 16: rpc.UpdateRefRequest.base:type_name -> rpc.WriteRequest
|
||||
0, // 17: rpc.UpdateRefRequest.ref_type:type_name -> rpc.RefType
|
||||
3, // 18: rpc.ReferenceService.CreateBranch:input_type -> rpc.CreateBranchRequest
|
||||
5, // 19: rpc.ReferenceService.DeleteBranch:input_type -> rpc.DeleteBranchRequest
|
||||
7, // 20: rpc.ReferenceService.ListBranches:input_type -> rpc.ListBranchesRequest
|
||||
10, // 21: rpc.ReferenceService.ListCommitTags:input_type -> rpc.ListCommitTagsRequest
|
||||
13, // 22: rpc.ReferenceService.GetRef:input_type -> rpc.GetRefRequest
|
||||
15, // 23: rpc.ReferenceService.UpdateRef:input_type -> rpc.UpdateRefRequest
|
||||
4, // 24: rpc.ReferenceService.CreateBranch:output_type -> rpc.CreateBranchResponse
|
||||
6, // 25: rpc.ReferenceService.DeleteBranch:output_type -> rpc.DeleteBranchResponse
|
||||
8, // 26: rpc.ReferenceService.ListBranches:output_type -> rpc.ListBranchesResponse
|
||||
11, // 27: rpc.ReferenceService.ListCommitTags:output_type -> rpc.ListCommitTagsResponse
|
||||
14, // 28: rpc.ReferenceService.GetRef:output_type -> rpc.GetRefResponse
|
||||
16, // 29: rpc.ReferenceService.UpdateRef:output_type -> rpc.UpdateRefResponse
|
||||
24, // [24:30] is the sub-list for method output_type
|
||||
18, // [18:24] is the sub-list for method input_type
|
||||
18, // [18:18] is the sub-list for extension type_name
|
||||
18, // [18:18] is the sub-list for extension extendee
|
||||
0, // [0:18] is the sub-list for field type_name
|
||||
}
|
||||
|
||||
func init() { file_ref_proto_init() }
|
||||
@ -1289,6 +1441,30 @@ func file_ref_proto_init() {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_ref_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*UpdateRefRequest); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
file_ref_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
|
||||
switch v := v.(*UpdateRefResponse); i {
|
||||
case 0:
|
||||
return &v.state
|
||||
case 1:
|
||||
return &v.sizeCache
|
||||
case 2:
|
||||
return &v.unknownFields
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
type x struct{}
|
||||
out := protoimpl.TypeBuilder{
|
||||
@ -1296,7 +1472,7 @@ func file_ref_proto_init() {
|
||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||
RawDescriptor: file_ref_proto_rawDesc,
|
||||
NumEnums: 3,
|
||||
NumMessages: 12,
|
||||
NumMessages: 14,
|
||||
NumExtensions: 0,
|
||||
NumServices: 1,
|
||||
},
|
||||
|
@ -27,6 +27,7 @@ type ReferenceServiceClient interface {
|
||||
ListBranches(ctx context.Context, in *ListBranchesRequest, opts ...grpc.CallOption) (ReferenceService_ListBranchesClient, error)
|
||||
ListCommitTags(ctx context.Context, in *ListCommitTagsRequest, opts ...grpc.CallOption) (ReferenceService_ListCommitTagsClient, error)
|
||||
GetRef(ctx context.Context, in *GetRefRequest, opts ...grpc.CallOption) (*GetRefResponse, error)
|
||||
UpdateRef(ctx context.Context, in *UpdateRefRequest, opts ...grpc.CallOption) (*UpdateRefResponse, error)
|
||||
}
|
||||
|
||||
type referenceServiceClient struct {
|
||||
@ -128,6 +129,15 @@ func (c *referenceServiceClient) GetRef(ctx context.Context, in *GetRefRequest,
|
||||
return out, nil
|
||||
}
|
||||
|
||||
func (c *referenceServiceClient) UpdateRef(ctx context.Context, in *UpdateRefRequest, opts ...grpc.CallOption) (*UpdateRefResponse, error) {
|
||||
out := new(UpdateRefResponse)
|
||||
err := c.cc.Invoke(ctx, "/rpc.ReferenceService/UpdateRef", in, out, opts...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return out, nil
|
||||
}
|
||||
|
||||
// ReferenceServiceServer is the server API for ReferenceService service.
|
||||
// All implementations must embed UnimplementedReferenceServiceServer
|
||||
// for forward compatibility
|
||||
@ -137,6 +147,7 @@ type ReferenceServiceServer interface {
|
||||
ListBranches(*ListBranchesRequest, ReferenceService_ListBranchesServer) error
|
||||
ListCommitTags(*ListCommitTagsRequest, ReferenceService_ListCommitTagsServer) error
|
||||
GetRef(context.Context, *GetRefRequest) (*GetRefResponse, error)
|
||||
UpdateRef(context.Context, *UpdateRefRequest) (*UpdateRefResponse, error)
|
||||
mustEmbedUnimplementedReferenceServiceServer()
|
||||
}
|
||||
|
||||
@ -159,6 +170,9 @@ func (UnimplementedReferenceServiceServer) ListCommitTags(*ListCommitTagsRequest
|
||||
func (UnimplementedReferenceServiceServer) GetRef(context.Context, *GetRefRequest) (*GetRefResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method GetRef not implemented")
|
||||
}
|
||||
func (UnimplementedReferenceServiceServer) UpdateRef(context.Context, *UpdateRefRequest) (*UpdateRefResponse, error) {
|
||||
return nil, status.Errorf(codes.Unimplemented, "method UpdateRef not implemented")
|
||||
}
|
||||
func (UnimplementedReferenceServiceServer) mustEmbedUnimplementedReferenceServiceServer() {}
|
||||
|
||||
// UnsafeReferenceServiceServer may be embedded to opt out of forward compatibility for this service.
|
||||
@ -268,6 +282,24 @@ func _ReferenceService_GetRef_Handler(srv interface{}, ctx context.Context, dec
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
func _ReferenceService_UpdateRef_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
|
||||
in := new(UpdateRefRequest)
|
||||
if err := dec(in); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if interceptor == nil {
|
||||
return srv.(ReferenceServiceServer).UpdateRef(ctx, in)
|
||||
}
|
||||
info := &grpc.UnaryServerInfo{
|
||||
Server: srv,
|
||||
FullMethod: "/rpc.ReferenceService/UpdateRef",
|
||||
}
|
||||
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
|
||||
return srv.(ReferenceServiceServer).UpdateRef(ctx, req.(*UpdateRefRequest))
|
||||
}
|
||||
return interceptor(ctx, in, info, handler)
|
||||
}
|
||||
|
||||
// ReferenceService_ServiceDesc is the grpc.ServiceDesc for ReferenceService service.
|
||||
// It's only intended for direct use with grpc.RegisterService,
|
||||
// and not to be introspected or modified (even as a copy)
|
||||
@ -287,6 +319,10 @@ var ReferenceService_ServiceDesc = grpc.ServiceDesc{
|
||||
MethodName: "GetRef",
|
||||
Handler: _ReferenceService_GetRef_Handler,
|
||||
},
|
||||
{
|
||||
MethodName: "UpdateRef",
|
||||
Handler: _ReferenceService_UpdateRef_Handler,
|
||||
},
|
||||
},
|
||||
Streams: []grpc.StreamDesc{
|
||||
{
|
||||
|
@ -10,8 +10,8 @@ import (
|
||||
"fmt"
|
||||
|
||||
"github.com/harness/gitness/gitrpc"
|
||||
gitrpcenum "github.com/harness/gitness/gitrpc/enum"
|
||||
apiauth "github.com/harness/gitness/internal/api/auth"
|
||||
repoctrl "github.com/harness/gitness/internal/api/controller/repo"
|
||||
"github.com/harness/gitness/internal/api/usererror"
|
||||
"github.com/harness/gitness/internal/auth"
|
||||
"github.com/harness/gitness/internal/auth/authz"
|
||||
@ -64,27 +64,28 @@ func NewController(
|
||||
|
||||
func (c *Controller) verifyBranchExistence(ctx context.Context,
|
||||
repo *types.Repository, branch string,
|
||||
) error {
|
||||
) (string, error) {
|
||||
if branch == "" {
|
||||
return usererror.BadRequest("branch name can't be empty")
|
||||
return "", usererror.BadRequest("branch name can't be empty")
|
||||
}
|
||||
|
||||
_, err := c.gitRPCClient.GetRef(ctx,
|
||||
&gitrpc.GetRefParams{
|
||||
ReadParams: repoctrl.CreateRPCReadParams(repo),
|
||||
ref, err := c.gitRPCClient.GetRef(ctx,
|
||||
gitrpc.GetRefParams{
|
||||
ReadParams: gitrpc.ReadParams{RepoUID: repo.GitUID},
|
||||
Name: branch,
|
||||
Type: gitrpc.RefTypeBranch})
|
||||
Type: gitrpcenum.RefTypeBranch,
|
||||
})
|
||||
if errors.Is(err, gitrpc.ErrNotFound) {
|
||||
return usererror.BadRequest(
|
||||
return "", usererror.BadRequest(
|
||||
fmt.Sprintf("branch %s does not exist in the repository %s", branch, repo.UID))
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf(
|
||||
return "", fmt.Errorf(
|
||||
"failed to check existence of the branch %s in the repository %s: %w",
|
||||
branch, repo.UID, err)
|
||||
}
|
||||
|
||||
return nil
|
||||
return ref.SHA, nil
|
||||
}
|
||||
|
||||
func (c *Controller) getRepoCheckAccess(ctx context.Context,
|
||||
|
@ -54,11 +54,14 @@ func (c *Controller) Create(
|
||||
return nil, usererror.BadRequest("target and source branch can't be the same")
|
||||
}
|
||||
|
||||
if errBranch := c.verifyBranchExistence(ctx, sourceRepo, in.SourceBranch); errBranch != nil {
|
||||
return nil, errBranch
|
||||
var sourceSHA string
|
||||
|
||||
if sourceSHA, err = c.verifyBranchExistence(ctx, sourceRepo, in.SourceBranch); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if errBranch := c.verifyBranchExistence(ctx, targetRepo, in.TargetBranch); errBranch != nil {
|
||||
return nil, errBranch
|
||||
|
||||
if _, err = c.verifyBranchExistence(ctx, targetRepo, in.TargetBranch); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if err = c.checkIfAlreadyExists(ctx, targetRepo.ID, sourceRepo.ID, in.SourceBranch, in.TargetBranch); err != nil {
|
||||
@ -73,6 +76,8 @@ func (c *Controller) Create(
|
||||
return nil, fmt.Errorf("failed to aquire PullReqSeq number: %w", err)
|
||||
}
|
||||
|
||||
_ = fmt.Sprintf("TODO: %s", sourceSHA) // TODO: Use sourceSHA to create git PR head ref
|
||||
|
||||
pr := newPullReq(session, targetRepo.PullReqSeq, sourceRepo, targetRepo, in)
|
||||
|
||||
err = c.pullreqStore.Create(ctx, pr)
|
||||
|
@ -12,6 +12,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/harness/gitness/gitrpc"
|
||||
gitrpcenum "github.com/harness/gitness/gitrpc/enum"
|
||||
"github.com/harness/gitness/internal/api/usererror"
|
||||
"github.com/harness/gitness/internal/auth"
|
||||
"github.com/harness/gitness/internal/store"
|
||||
@ -69,16 +70,16 @@ func (c *Controller) ReviewSubmit(
|
||||
return nil, usererror.BadRequest("Can't submit review to own pull requests.")
|
||||
}
|
||||
|
||||
ref, err := c.gitRPCClient.GetRef(ctx, &gitrpc.GetRefParams{
|
||||
ref, err := c.gitRPCClient.GetRef(ctx, gitrpc.GetRefParams{
|
||||
ReadParams: gitrpc.ReadParams{RepoUID: repo.GitUID},
|
||||
Name: pr.TargetBranch,
|
||||
Type: gitrpc.RefTypeBranch,
|
||||
Type: gitrpcenum.RefTypeBranch,
|
||||
})
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to get git branch sha: %w", err)
|
||||
}
|
||||
|
||||
if ref == nil || ref.SHA == "" {
|
||||
if ref.SHA == "" {
|
||||
return nil, usererror.BadRequest("Failed to get branch SHA. Does the branch still exist?")
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user