New Upstream Release - golang-gitaly-proto
Ready changes
Summary
Merged new upstream version: 1.39.0 (was: 1.37.0+dfsg).
Resulting package
Built on 2022-03-14T16:14 (took 3m27s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-releases golang-gitaly-proto-devapt install -t fresh-releases ruby-gitaly
Lintian Result
Diff
diff --git a/VERSION b/VERSION
index bf50e91..5edffce 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.37.0
+1.39.0
diff --git a/blob.proto b/blob.proto
index fe50c76..b9e7167 100644
--- a/blob.proto
+++ b/blob.proto
@@ -11,19 +11,34 @@ service BlobService {
// ID. We use a stream to return a chunked arbitrarily large binary
// response
rpc GetBlob(GetBlobRequest) returns (stream GetBlobResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc GetBlobs(GetBlobsRequest) returns (stream GetBlobsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc GetLFSPointers(GetLFSPointersRequest) returns (stream GetLFSPointersResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc GetNewLFSPointers(GetNewLFSPointersRequest) returns (stream GetNewLFSPointersResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc GetAllLFSPointers(GetAllLFSPointersRequest) returns (stream GetAllLFSPointersResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
}
diff --git a/commit.proto b/commit.proto
index d4c5bb4..80c4578 100644
--- a/commit.proto
+++ b/commit.proto
@@ -9,76 +9,142 @@ import "google/protobuf/timestamp.proto";
service CommitService {
rpc CommitIsAncestor(CommitIsAncestorRequest) returns (CommitIsAncestorResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc TreeEntry(TreeEntryRequest) returns (stream TreeEntryResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CommitsBetween(CommitsBetweenRequest) returns (stream CommitsBetweenResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CountCommits(CountCommitsRequest) returns (CountCommitsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CountDivergingCommits(CountDivergingCommitsRequest) returns (CountDivergingCommitsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc GetTreeEntries(GetTreeEntriesRequest) returns (stream GetTreeEntriesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc ListFiles(ListFilesRequest) returns (stream ListFilesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc FindCommit(FindCommitRequest) returns (FindCommitResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CommitStats(CommitStatsRequest) returns (CommitStatsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
// Use a stream to paginate the result set
rpc FindAllCommits(FindAllCommitsRequest) returns (stream FindAllCommitsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc FindCommits(FindCommitsRequest) returns (stream FindCommitsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CommitLanguages(CommitLanguagesRequest) returns (CommitLanguagesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc RawBlame(RawBlameRequest) returns (stream RawBlameResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc LastCommitForPath(LastCommitForPathRequest) returns (LastCommitForPathResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc ListLastCommitsForTree(ListLastCommitsForTreeRequest) returns (stream ListLastCommitsForTreeResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CommitsByMessage(CommitsByMessageRequest) returns (stream CommitsByMessageResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc ListCommitsByOid(ListCommitsByOidRequest) returns (stream ListCommitsByOidResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc ListCommitsByRefName(ListCommitsByRefNameRequest) returns (stream ListCommitsByRefNameResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc FilterShasWithSignatures(stream FilterShasWithSignaturesRequest) returns (stream FilterShasWithSignaturesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
// ExtractCommitSignature returns a stream because the signed text may be
// arbitrarily large and signature verification is impossible without the
// full text.
rpc ExtractCommitSignature(ExtractCommitSignatureRequest) returns (stream ExtractCommitSignatureResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc GetCommitSignatures(GetCommitSignaturesRequest) returns (stream GetCommitSignaturesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc GetCommitMessages(GetCommitMessagesRequest) returns (stream GetCommitMessagesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
}
diff --git a/conflicts.proto b/conflicts.proto
index 8e93abe..1dc1efd 100644
--- a/conflicts.proto
+++ b/conflicts.proto
@@ -8,7 +8,10 @@ import "shared.proto";
service ConflictsService {
rpc ListConflictFiles(ListConflictFilesRequest) returns (stream ListConflictFilesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc ResolveConflicts(stream ResolveConflictsRequest) returns (ResolveConflictsResponse) {
option (op_type) = {
diff --git a/debian/changelog b/debian/changelog
index d7ff204..44435c0 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+golang-gitaly-proto (1.39.0-1) UNRELEASED; urgency=low
+
+ * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk> Mon, 14 Mar 2022 16:11:53 -0000
+
golang-gitaly-proto (1.37.0+dfsg-1) unstable; urgency=medium
[ Pirate Praveen ]
diff --git a/debian/patches/remove-git-in-gemspec.patch b/debian/patches/remove-git-in-gemspec.patch
index 622723e..e8a0f39 100644
--- a/debian/patches/remove-git-in-gemspec.patch
+++ b/debian/patches/remove-git-in-gemspec.patch
@@ -1,8 +1,10 @@
Debian build env does not have git
---- a/gitaly-proto.gemspec
-+++ b/gitaly-proto.gemspec
-@@ -15,7 +15,7 @@
+Index: golang-gitaly-proto/gitaly-proto.gemspec
+===================================================================
+--- golang-gitaly-proto.orig/gitaly-proto.gemspec
++++ golang-gitaly-proto/gitaly-proto.gemspec
+@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
spec.homepage = "https://gitlab.com/gitlab-org/gitaly-proto"
spec.license = "MIT"
diff --git a/diff.proto b/diff.proto
index b6ba0c1..5a42730 100644
--- a/diff.proto
+++ b/diff.proto
@@ -9,23 +9,41 @@ import "shared.proto";
service DiffService {
// Returns stream of CommitDiffResponse with patches chunked over messages
rpc CommitDiff(CommitDiffRequest) returns (stream CommitDiffResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
// Return a stream so we can divide the response in chunks of deltas
rpc CommitDelta(CommitDeltaRequest) returns (stream CommitDeltaResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CommitPatch(CommitPatchRequest) returns (stream CommitPatchResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc RawDiff(RawDiffRequest) returns (stream RawDiffResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc RawPatch(RawPatchRequest) returns (stream RawPatchResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc DiffStats(DiffStatsRequest) returns (stream DiffStatsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
}
diff --git a/go/VERSION b/go/VERSION
index bf50e91..5edffce 100644
--- a/go/VERSION
+++ b/go/VERSION
@@ -1 +1 @@
-1.37.0
+1.39.0
diff --git a/go/internal/linter/lint_test.go b/go/internal/linter/lint_test.go
index db55907..9a2595d 100644
--- a/go/internal/linter/lint_test.go
+++ b/go/internal/linter/lint_test.go
@@ -26,7 +26,7 @@ func TestLintFile(t *testing.T) {
errs: []error{
errors.New(`go/internal/linter/testdata/invalid.proto: Method "InvalidMethod0": missing op_type option`),
errors.New(`go/internal/linter/testdata/invalid.proto: Method "InvalidMethod1": op set to UNKNOWN`),
- errors.New(`go/internal/linter/testdata/invalid.proto: Method "InvalidMethod2": accessors cannot specify target repos`),
+ errors.New(`go/internal/linter/testdata/invalid.proto: Method "InvalidMethod2": missing target repository field`),
errors.New(`go/internal/linter/testdata/invalid.proto: Method "InvalidMethod3": server level scoped RPC should not specify target repo`),
errors.New(`go/internal/linter/testdata/invalid.proto: Method "InvalidMethod4": missing target repository field`),
errors.New(`go/internal/linter/testdata/invalid.proto: Method "InvalidMethod5": unable to parse target field OID 🐛: strconv.Atoi: parsing "🐛": invalid syntax`),
diff --git a/go/internal/linter/method.go b/go/internal/linter/method.go
index 3d4b264..1a502f7 100644
--- a/go/internal/linter/method.go
+++ b/go/internal/linter/method.go
@@ -21,9 +21,15 @@ type methodLinter struct {
// validateAccessor will ensure the accessor method does not specify a target
// repo
func (ml methodLinter) validateAccessor() error {
- if ml.opMsg.GetTargetRepositoryField() != "" {
- return errors.New("accessors cannot specify target repos")
+ switch ml.opMsg.GetScopeLevel() {
+ case gitalypb.OperationMsg_REPOSITORY:
+ return ml.ensureValidRepoScope()
+ // TODO: replace the following value with gitalypb.OpermationMsg_STORAGE
+ // after this change is merged into master
+ case gitalypb.OperationMsg_Scope(2):
+ return ml.ensureValidStorageScope()
}
+
return nil
}
@@ -39,12 +45,25 @@ func (ml methodLinter) validateMutator() error {
case gitalypb.OperationMsg_SERVER:
return ml.ensureValidServerScope()
+ // TODO: replace value with gitalypb.OperationMsg_SCOPE after
+ // this change is merged to master
+ case gitalypb.OperationMsg_Scope(2):
+ return ml.ensureValidStorageScope()
+
default:
return fmt.Errorf("unknown operation scope level %d", scope)
}
}
+// TODO: add checks for storage location via valid field annotation for Gitaly HA
+func (ml methodLinter) ensureValidStorageScope() error {
+ if ml.opMsg.GetTargetRepositoryField() != "" {
+ return errors.New("storage level scoped RPC should not specify target repo")
+ }
+ return nil
+}
+
func (ml methodLinter) ensureValidServerScope() error {
if ml.opMsg.GetTargetRepositoryField() != "" {
return errors.New("server level scoped RPC should not specify target repo")
diff --git a/go/internal/linter/testdata/invalid.proto b/go/internal/linter/testdata/invalid.proto
index c2032d8..d7773ac 100644
--- a/go/internal/linter/testdata/invalid.proto
+++ b/go/internal/linter/testdata/invalid.proto
@@ -19,20 +19,17 @@ message InvalidNestedRequest{
service InvalidService {
// should fail if op_type extension is missing
rpc InvalidMethod0(InvalidMethodRequest) returns (InvalidMethodResponse) {}
-
+
// should fail if op type is unknown
rpc InvalidMethod1(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type).op = UNKNOWN;
}
-
- // should fail if target repo is provided for accessor
+ // should fail if target repo is not provided for accessor
rpc InvalidMethod2(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
op: ACCESSOR
- target_repository_field: "1"
};
}
-
// should fail if target repo is provided for server-scoped mutator
rpc InvalidMethod3(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
@@ -41,12 +38,10 @@ service InvalidService {
target_repository_field: "1"
};
}
-
// should fail if missing either target repo or non-repo-scope for mutator
rpc InvalidMethod4(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type).op = MUTATOR;
}
-
// should fail if target repo is incorrectly formatted for mutator
rpc InvalidMethod5(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
@@ -54,7 +49,6 @@ service InvalidService {
target_repository_field: "🐛"
};
}
-
// should fail if target field specified does not exist in request message
rpc InvalidMethod6(InvalidMethodRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
@@ -62,7 +56,6 @@ service InvalidService {
target_repository_field: "1"
};
}
-
// should fail if target field type is not of type Repository
rpc InvalidMethod7(InvalidTargetType) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
@@ -70,7 +63,6 @@ service InvalidService {
target_repository_field: "1"
};
}
-
// should fail if request message is not deep enough for specified OID
rpc InvalidMethod8(InvalidTargetType) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
@@ -78,7 +70,6 @@ service InvalidService {
target_repository_field: "1.1"
};
}
-
// should fail if nested target field type is missing
rpc InvalidMethod9(InvalidNestedRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
@@ -86,7 +77,6 @@ service InvalidService {
target_repository_field: "1.2"
};
}
-
// should fail if nested target field type is not of type Repository
rpc InvalidMethod10(InvalidNestedRequest) returns (InvalidMethodResponse) {
option (gitaly.op_type) = {
diff --git a/go/internal/linter/testdata/valid.proto b/go/internal/linter/testdata/valid.proto
index d98d570..bdba8c3 100644
--- a/go/internal/linter/testdata/valid.proto
+++ b/go/internal/linter/testdata/valid.proto
@@ -28,7 +28,10 @@ message ValidInnerNestedRequest {
service ValidService {
rpc TestMethod(ValidRequest) returns (ValidResponse) {
- option (gitaly.op_type).op = ACCESSOR;
+ option (gitaly.op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc TestMethod2(ValidRequest) returns (ValidResponse) {
diff --git a/namespace.proto b/namespace.proto
index e863df0..991af39 100644
--- a/namespace.proto
+++ b/namespace.proto
@@ -10,23 +10,26 @@ service NamespaceService {
rpc AddNamespace(AddNamespaceRequest) returns (AddNamespaceResponse) {
option (op_type) = {
op: MUTATOR
- scope_level: SERVER,
+ scope_level: STORAGE,
};
}
rpc RemoveNamespace(RemoveNamespaceRequest) returns (RemoveNamespaceResponse) {
option (op_type) = {
op: MUTATOR
- scope_level: SERVER,
+ scope_level: STORAGE,
};
}
rpc RenameNamespace(RenameNamespaceRequest) returns (RenameNamespaceResponse) {
option (op_type) = {
op: MUTATOR
- scope_level: SERVER,
+ scope_level: STORAGE,
};
}
rpc NamespaceExists(NamespaceExistsRequest) returns (NamespaceExistsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ scope_level: STORAGE,
+ };
}
}
diff --git a/ref.proto b/ref.proto
index bd95a16..df69079 100644
--- a/ref.proto
+++ b/ref.proto
@@ -10,34 +10,61 @@ import "google/protobuf/timestamp.proto";
service RefService {
rpc FindDefaultBranchName(FindDefaultBranchNameRequest) returns (FindDefaultBranchNameResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc FindAllBranchNames(FindAllBranchNamesRequest) returns (stream FindAllBranchNamesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc FindAllTagNames(FindAllTagNamesRequest) returns (stream FindAllTagNamesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
// Find a Ref matching the given constraints. Response may be empty.
rpc FindRefName(FindRefNameRequest) returns (FindRefNameResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
// Return a stream so we can divide the response in chunks of branches
rpc FindLocalBranches(FindLocalBranchesRequest) returns (stream FindLocalBranchesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc FindAllBranches(FindAllBranchesRequest) returns (stream FindAllBranchesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc FindAllTags(FindAllTagsRequest) returns (stream FindAllTagsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc FindAllRemoteBranches(FindAllRemoteBranchesRequest) returns (stream FindAllRemoteBranchesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc RefExists(RefExistsRequest) returns (RefExistsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CreateBranch(CreateBranchRequest) returns (CreateBranchResponse) {
option (op_type) = {
@@ -52,7 +79,10 @@ service RefService {
};
}
rpc FindBranch(FindBranchRequest) returns (FindBranchResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc DeleteRefs(DeleteRefsRequest) returns (DeleteRefsResponse) {
option (op_type) = {
@@ -62,23 +92,38 @@ service RefService {
}
rpc ListBranchNamesContainingCommit(ListBranchNamesContainingCommitRequest) returns (stream ListBranchNamesContainingCommitResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc ListTagNamesContainingCommit(ListTagNamesContainingCommitRequest) returns (stream ListTagNamesContainingCommitResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc GetTagMessages(GetTagMessagesRequest) returns (stream GetTagMessagesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
// Returns commits that are only reachable from the ref passed
rpc ListNewCommits(ListNewCommitsRequest) returns (stream ListNewCommitsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc ListNewBlobs(ListNewBlobsRequest) returns (stream ListNewBlobsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc PackRefs(PackRefsRequest) returns (PackRefsResponse) {
option (op_type) = {
diff --git a/remote.proto b/remote.proto
index 799b014..766abce 100644
--- a/remote.proto
+++ b/remote.proto
@@ -33,13 +33,22 @@ service RemoteService {
};
}
rpc FindRemoteRepository(FindRemoteRepositoryRequest) returns (FindRemoteRepositoryResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ scope_level: SERVER
+ };
}
rpc FindRemoteRootRef(FindRemoteRootRefRequest) returns (FindRemoteRootRefResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc ListRemotes(ListRemotesRequest) returns (stream ListRemotesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
}
diff --git a/repository-service.proto b/repository-service.proto
index 42a868e..f2dcb73 100644
--- a/repository-service.proto
+++ b/repository-service.proto
@@ -8,7 +8,10 @@ import "shared.proto";
service RepositoryService {
rpc RepositoryExists(RepositoryExistsRequest) returns (RepositoryExistsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc RepackIncremental(RepackIncrementalRequest) returns (RepackIncrementalResponse) {
option (op_type) = {
@@ -59,7 +62,10 @@ service RepositoryService {
};
}
rpc HasLocalBranches(HasLocalBranchesRequest) returns (HasLocalBranchesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc FetchSourceBranch(FetchSourceBranchRequest) returns (FetchSourceBranchResponse) {
option (op_type) = {
@@ -80,7 +86,10 @@ service RepositoryService {
};
}
rpc FindMergeBase(FindMergeBaseRequest) returns (FindMergeBaseResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CreateFork(CreateForkRequest) returns (CreateForkResponse) {
option (op_type) = {
@@ -89,10 +98,16 @@ service RepositoryService {
};
}
rpc IsRebaseInProgress(IsRebaseInProgressRequest) returns (IsRebaseInProgressResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc IsSquashInProgress(IsSquashInProgressRequest) returns (IsSquashInProgressResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CreateRepositoryFromURL(CreateRepositoryFromURLRequest) returns (CreateRepositoryFromURLResponse) {
@@ -132,13 +147,22 @@ service RepositoryService {
};
}
rpc FindLicense(FindLicenseRequest) returns (FindLicenseResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc GetInfoAttributes(GetInfoAttributesRequest) returns (stream GetInfoAttributesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CalculateChecksum(CalculateChecksumRequest) returns (CalculateChecksumResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc Cleanup(CleanupRequest) returns (CleanupResponse) {
option (op_type) = {
@@ -147,7 +171,10 @@ service RepositoryService {
};
}
rpc GetSnapshot(GetSnapshotRequest) returns (stream GetSnapshotResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CreateRepositoryFromSnapshot(CreateRepositoryFromSnapshotRequest) returns (CreateRepositoryFromSnapshotResponse) {
option (op_type) = {
@@ -156,13 +183,22 @@ service RepositoryService {
};
}
rpc GetRawChanges(GetRawChangesRequest) returns (stream GetRawChangesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc SearchFilesByContent(SearchFilesByContentRequest) returns (stream SearchFilesByContentResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc SearchFilesByName(SearchFilesByNameRequest) returns (stream SearchFilesByNameResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc RestoreCustomHooks(stream RestoreCustomHooksRequest) returns (RestoreCustomHooksResponse) {
option (op_type) = {
@@ -171,7 +207,10 @@ service RepositoryService {
};
}
rpc BackupCustomHooks(BackupCustomHooksRequest) returns (stream BackupCustomHooksResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc PreFetch(PreFetchRequest) returns (PreFetchResponse) {
option (op_type) = {
@@ -186,7 +225,10 @@ service RepositoryService {
};
}
rpc GetObjectDirectorySize(GetObjectDirectorySizeRequest) returns (GetObjectDirectorySizeResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc CloneFromPool(CloneFromPoolRequest) returns (CloneFromPoolResponse) {
option (op_type) = {
diff --git a/ruby/lib/gitaly/version.rb b/ruby/lib/gitaly/version.rb
index 4691f7b..530ea76 100644
--- a/ruby/lib/gitaly/version.rb
+++ b/ruby/lib/gitaly/version.rb
@@ -1,4 +1,4 @@
-# This file was auto-generated by ./_support/release
+# This file was auto-generated by _support/release
module Gitaly
- VERSION = "1.37.0"
+ VERSION = "1.39.0"
end
diff --git a/server.proto b/server.proto
index 9d383c7..257382b 100644
--- a/server.proto
+++ b/server.proto
@@ -8,7 +8,10 @@ import "shared.proto";
service ServerService {
rpc ServerInfo(ServerInfoRequest) returns (ServerInfoResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ scope_level: SERVER
+ };
}
}
diff --git a/shared.proto b/shared.proto
index 619b0dd..9ba38b8 100644
--- a/shared.proto
+++ b/shared.proto
@@ -19,11 +19,13 @@ message OperationMsg {
enum Scope {
REPOSITORY = 0;
SERVER = 1;
+ STORAGE = 2;
}
- // Scope level indicates how a mutating RPC affects Gitaly:
- // - REPOSITORY: mutation is scoped to only a single repo
- // - SERVER: mutation affects the entire server and potentially all repos
+ // Scope level indicates what level an RPC interacts with a server:
+ // - REPOSITORY: scoped to only a single repo
+ // - SERVER: affects the entire server and potentially all repos
+ // - STORAGE: scoped to a specific storage location and all repos within
Scope scope_level = 2;
// If this operation modifies a repository, this field will
diff --git a/smarthttp.proto b/smarthttp.proto
index 094692e..8138496 100644
--- a/smarthttp.proto
+++ b/smarthttp.proto
@@ -11,7 +11,10 @@ service SmartHTTPService {
// Will be invoked when the user executes a `git fetch`, meaning the server
// will upload the packs to that user. The user doesn't upload new objects.
rpc InfoRefsUploadPack(InfoRefsRequest) returns (stream InfoRefsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
// The response body for GET /info/refs?service=git-receive-pack
@@ -26,7 +29,10 @@ service SmartHTTPService {
// Request and response body for POST /upload-pack
rpc PostUploadPack(stream PostUploadPackRequest) returns (stream PostUploadPackResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
// Request and response body for POST /receive-pack
diff --git a/ssh.proto b/ssh.proto
index 63c538e..ab5af76 100644
--- a/ssh.proto
+++ b/ssh.proto
@@ -9,7 +9,10 @@ import "shared.proto";
service SSHService {
// To forward 'git upload-pack' to Gitaly for SSH sessions
rpc SSHUploadPack(stream SSHUploadPackRequest) returns (stream SSHUploadPackResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
// To forward 'git receive-pack' to Gitaly for SSH sessions
diff --git a/storage.proto b/storage.proto
index 69385c4..03ad0cb 100644
--- a/storage.proto
+++ b/storage.proto
@@ -9,14 +9,14 @@ import "shared.proto";
service StorageService {
rpc ListDirectories(ListDirectoriesRequest) returns (stream ListDirectoriesResponse) {
option (op_type) = {
- op: MUTATOR
- scope_level: SERVER,
+ op: ACCESSOR,
+ scope_level: STORAGE,
};
}
rpc DeleteAllRepositories(DeleteAllRepositoriesRequest) returns (DeleteAllRepositoriesResponse) {
option (op_type) = {
- op: MUTATOR
- scope_level: SERVER,
+ op: MUTATOR,
+ scope_level: STORAGE,
};
}
}
diff --git a/wiki.proto b/wiki.proto
index 7866241..c183da6 100644
--- a/wiki.proto
+++ b/wiki.proto
@@ -8,7 +8,10 @@ option go_package = "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb";
service WikiService {
rpc WikiGetPageVersions(WikiGetPageVersionsRequest) returns (stream WikiGetPageVersionsResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc WikiWritePage(stream WikiWritePageRequest) returns (WikiWritePageResponse) {
option (op_type) = {
@@ -30,19 +33,36 @@ service WikiService {
}
// WikiFindPage returns a stream because the page's raw_data field may be arbitrarily large.
rpc WikiFindPage(WikiFindPageRequest) returns (stream WikiFindPageResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc WikiFindFile(WikiFindFileRequest) returns (stream WikiFindFileResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
rpc WikiGetAllPages(WikiGetAllPagesRequest) returns (stream WikiGetAllPagesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
+
}
rpc WikiListPages(WikiListPagesRequest) returns (stream WikiListPagesResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
+
}
rpc WikiGetFormattedData(WikiGetFormattedDataRequest) returns (stream WikiGetFormattedDataResponse) {
- option (op_type).op = ACCESSOR;
+ option (op_type) = {
+ op: ACCESSOR
+ target_repository_field: "1"
+ };
}
}
Debdiff
[The following lists of changes regard files as different if they have different names, permissions or owners.]
Files in second set of .debs but not in first
-rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/blob_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/blob_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/cleanup_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/cleanup_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/commit_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/commit_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/conflicts_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/conflicts_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/diff_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/diff_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/namespace_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/namespace_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/objectpool_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/objectpool_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/operations_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/operations_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/ref_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/ref_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/remote_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/remote_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/repository-service_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/repository-service_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/server_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/server_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/shared_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/smarthttp_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/smarthttp_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/ssh_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/ssh_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/storage_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/storage_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/version.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/wiki_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.39.0/ruby/lib/gitaly/wiki_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/specifications/gitaly-proto-1.39.0.gemspec
Files in first set of .debs but not in second
-rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/blob_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/blob_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/cleanup_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/cleanup_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/commit_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/commit_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/conflicts_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/conflicts_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/diff_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/diff_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/namespace_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/namespace_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/objectpool_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/objectpool_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/operations_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/operations_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/ref_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/ref_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/remote_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/remote_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/repository-service_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/repository-service_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/server_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/server_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/shared_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/smarthttp_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/smarthttp_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/ssh_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/ssh_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/storage_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/storage_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/version.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/wiki_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/gems/gitaly-proto-1.37.0/ruby/lib/gitaly/wiki_services_pb.rb -rw-r--r-- root/root /usr/share/rubygems-integration/all/specifications/gitaly-proto-1.37.0.gemspec
No differences were encountered between the control files of package golang-gitaly-proto-dev
No differences were encountered between the control files of package ruby-gitaly