diff options
142 files changed, 6926 insertions, 2284 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1eb964812..14e2ad34f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.11-git-2.18 +image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6-golang-1.11-git-2.21 stages: - build @@ -7,7 +7,7 @@ stages: variables: DOCKER_DRIVER: overlay2 - CUSTOM_IMAGE_VERSION: ruby-2.5-golang-1.11-git-2.18 + CUSTOM_IMAGE_VERSION: ruby-2.6-golang-1.11-git-2.18 danger-review: image: registry.gitlab.com/gitlab-org/gitlab-build-images:danger @@ -23,7 +23,7 @@ danger-review: .ruby_template: &ruby_definition cache: - key: gems-ruby-2.5 + key: gems-ruby-2.6 paths: - ruby/vendor/bundle @@ -56,7 +56,7 @@ danger-review: stage: test # Override the ruby_definition cache definition for pull cache: - key: gems-ruby-2.5 + key: gems-ruby-2.6 paths: - ruby/vendor/bundle policy: pull @@ -82,35 +82,38 @@ verify: build:go1.12: <<: *build_definition - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.12-git-2.18 + image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6-golang-1.12-git-2.21 build:go1.11: <<: *build_definition - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.11-git-2.18 + image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6-golang-1.11-git-2.21 binaries_go1.12: <<: *assemble_definition - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.12-git-2.18 + image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6-golang-1.12-git-2.21 binaries_go1.11: <<: *assemble_definition - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.11-git-2.18 + image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6-golang-1.11-git-2.21 -test:go1.12-git-2.21-ruby-2.5: - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.12-git-2.21 +test:go1.12-git-2.21-ruby-2.6: + image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6-golang-1.12-git-2.21 <<: *test_definition -test:go1.12-git-2.18-ruby-2.5: - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.12-git-2.18 +test:go1.11-git-2.21-ruby-2.6: + image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6-golang-1.11-git-2.21 <<: *test_definition -test:go1.11-git-2.18-ruby-2.5: - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.11-git-2.18 +test:go1.12-git-2.21-ruby-2.5: + image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.12-git-2.21 + <<: *test_definition + +test:go1.11-git-2.21-ruby-2.5: + image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.11-git-2.21 <<: *test_definition test:proxy: <<: *test_definition - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.11-git-2.18 script: - make test-with-proxies @@ -180,6 +183,3 @@ update-downstream-server-version: script: - ruby _support/update-downstream-server-version allow_failure: true - -include: - template: License-Management.gitlab-ci.yml diff --git a/.ruby-version b/.ruby-version index aedc15bb0..ec1cf33c3 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.5.3 +2.6.3 diff --git a/CHANGELOG.md b/CHANGELOG.md index 0a3f6cc69..537b9e30d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,125 @@ # Gitaly changelog +## v1.42.0 + +#### Other +- Use simpler data structure for cat-file cache + https://gitlab.com/gitlab-org/gitaly/merge_requests/1233 + +## v1.41.0 + +#### Added +- Implement the ApplyBfgObjectMapStream RPC + https://gitlab.com/gitlab-org/gitaly/merge_requests/1199 + +## v1.40.0 + +#### Fixed +- Do not close the TTL channel twice + https://gitlab.com/gitlab-org/gitaly/merge_requests/1235 + +## v1.39.0 + +#### Added +- Add option to add Sentry environment + https://gitlab.com/gitlab-org/gitaly/merge_requests/1216 + Contributed by Roger Meier + +#### Fixed +- Fix CacheItem pointer in cache + https://gitlab.com/gitlab-org/gitaly/merge_requests/1234 + +## v1.38.0 + +#### Added +- Add cache for batch files + https://gitlab.com/gitlab-org/gitaly/merge_requests/1203 + +#### Other +- Upgrade Rubocop to 0.68.1 + https://gitlab.com/gitlab-org/gitaly/merge_requests/1229 + +## v1.37.0 + +#### Added +- Add DisconnectGitAlternates RPC + https://gitlab.com/gitlab-org/gitaly/merge_requests/1141 + +## v1.36.0 + +#### Added +- adding ProtoRegistry + https://gitlab.com/gitlab-org/gitaly/merge_requests/1188 +- Adding FetchIntoObjectPool RPC + https://gitlab.com/gitlab-org/gitaly/merge_requests/1172 +- Add new two-step UserRebaseConfirmable RPC + https://gitlab.com/gitlab-org/gitaly/merge_requests/1208 + +#### Fixed +- Include stderr in err returned by git.Command Wait() + https://gitlab.com/gitlab-org/gitaly/merge_requests/1167 +- Use 3-way merge for squashing commits + https://gitlab.com/gitlab-org/gitaly/merge_requests/1214 +- Close logrus writer when command finishes + https://gitlab.com/gitlab-org/gitaly/merge_requests/1225 + +#### Other +- Bump Ruby bundler version to 1.17.3 + https://gitlab.com/gitlab-org/gitaly/merge_requests/1215 +- Upgrade Ruby gRPC 1.19.0 and protobuf to 3.7.1 + https://gitlab.com/gitlab-org/gitaly/merge_requests/1066 +- Ensure pool exists in LinkRepositoryToObjectPool rpc + https://gitlab.com/gitlab-org/gitaly/merge_requests/1222 +- Update FetchRemote ruby to write http auth as well as add remote + https://gitlab.com/gitlab-org/gitaly/merge_requests/1126 + +#### Performance +- GarbageCollect RPC writes commit graph and enables via config + https://gitlab.com/gitlab-org/gitaly/merge_requests/1218 + +#### Security +- Bump Nokogiri to 1.10.3 + https://gitlab.com/gitlab-org/gitaly/merge_requests/1217 +- Loosen regex for exception sanitization + https://gitlab.com/gitlab-org/gitaly/merge_requests/25 + +## v1.35.1 + +The v1.35.1 tag points to a release that was made on the wrong branch, please +ignore. + +## v1.35.0 + +#### Added +- Return path data in ListLastCommitsForTree + https://gitlab.com/gitlab-org/gitaly/merge_requests/1168 + +## v1.34.0 + +#### Added +- Add PackRefs RPC + https://gitlab.com/gitlab-org/gitaly/merge_requests/1161 +- Implement ListRemotes + https://gitlab.com/gitlab-org/gitaly/merge_requests/1019 +- Test and require Git 2.21 + https://gitlab.com/gitlab-org/gitaly/merge_requests/1205 +- Add WikiListPages RPC call + https://gitlab.com/gitlab-org/gitaly/merge_requests/1194 + +#### Fixed +- Cleanup RPC prunes disconnected work trees + https://gitlab.com/gitlab-org/gitaly/merge_requests/1189 +- Fix FindAllTags to dereference tags that point to other tags + https://gitlab.com/gitlab-org/gitaly/merge_requests/1193 + +#### Other +- Datastore pattern for replication jobs + https://gitlab.com/gitlab-org/gitaly/merge_requests/1147 +- Remove find all tags ruby + https://gitlab.com/gitlab-org/gitaly/merge_requests/1163 +- Delete SSH frontend code from ruby/gitlab-shell + https://gitlab.com/gitlab-org/gitaly/merge_requests/1179 + ## v1.33.0 #### Added diff --git a/Dockerfile b/Dockerfile index 11959e0ca..56ac98b8d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,7 @@ # See the _support/load-cluster/docker-compose.yml for an example of how to use # this image # -FROM registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.11-git-2.18 +FROM registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6-golang-1.11-git-2.18 RUN mkdir -p /app/ruby @@ -59,7 +59,7 @@ Gitaly requires Go 1.11 or newer and Ruby 2.5. Run `make` to download and compile Ruby dependencies, and to compile the Gitaly Go executable. -Gitaly uses `git`. Version `2.18.0` or higher is required. +Gitaly uses `git`. Version `2.21.0` or higher is required. ## Configuration @@ -1 +1 @@ -1.33.0 +1.42.0 diff --git a/_support/instrumented-cluster/docker-compose.yml b/_support/instrumented-cluster/docker-compose.yml index fda8e3ece..1478bf7a5 100644 --- a/_support/instrumented-cluster/docker-compose.yml +++ b/_support/instrumented-cluster/docker-compose.yml @@ -2,7 +2,7 @@ version: "2.4" services: gitaly1repos: - image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.5-golang-1.11-git-2.18 + image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.6-golang-1.11-git-2.18 volumes: - gitalydata1:/repositories - ./gitaly1repos/setup.sh:/setup.sh diff --git a/_support/publish b/_support/publish new file mode 100755 index 000000000..76ca456f7 --- /dev/null +++ b/_support/publish @@ -0,0 +1,34 @@ +#!/usr/bin/env ruby + +require_relative 'run.rb' + +REMOTE_REGEX = %r{gitlab.com.gitlab-org/gitaly.git} + +# Sanity check +%w[ + git@gitlab.com:gitlab-org/gitaly.git + https://gitlab.com/gitlab-org/gitaly.git + https://janedoe@gitlab.com/gitlab-org/gitaly.git +].each do |remote| + abort "regex check failed failed for #{remote.inspect}" unless REMOTE_REGEX.match(remote) +end + +def main(tag) + remote = capture!(%w[git remote get-url --push origin]) + unless REMOTE_REGEX.match(remote) + abort "Git remote 'origin' must match #{REMOTE_REGEX}, got #{remote.inspect}" + end + + puts "Proceed to publish version #{tag}? Enter 'Yes' to continue; Ctrl-C to abort" + $stdout.flush + abort unless $stdin.gets.chomp == 'Yes' + + run!(%W[git push origin HEAD #{tag}]) +end + +unless ARGV.count == 1 + warn "Usage: #{$0} TAG" + abort +end + +main(ARGV[0]) diff --git a/_support/release b/_support/release index 2ff2061e0..443f013e8 100755 --- a/_support/release +++ b/_support/release @@ -3,23 +3,8 @@ require 'erb' require_relative 'run.rb' -REMOTE_REGEX = %r{gitlab.com.gitlab-org/gitaly.git} - -# Sanity check -%w[ - git@gitlab.com:gitlab-org/gitaly.git - https://gitlab.com/gitlab-org/gitaly.git - https://janedoe@gitlab.com/gitlab-org/gitaly.git -].each do |remote| - abort "regex check failed failed for #{remote.inspect}" unless REMOTE_REGEX.match(remote) -end def main(version) - remote = capture!(%w[git remote get-url --push origin]) - unless REMOTE_REGEX.match(remote) - abort "Git remote 'origin' must match #{REMOTE_REGEX}, got #{remote.inspect}" - end - unless version =~ /^[0-9]/ abort "Version string #{version.inspect} does not look like a semver (e.g. \"1.0.2\"). Aborting." end @@ -47,11 +32,7 @@ def main(version) show_output = capture!(%W[git show --pretty #{tag_name}]) puts show_output - puts "Proceed to publish version #{version}? Enter 'Yes' to continue; Ctrl-C to abort" - $stdout.flush - abort unless $stdin.gets.chomp == 'Yes' - - run!(%W[git push origin HEAD #{tag_name}]) + puts "If this is not a security release you can now publish this tag to gitlab.com:\n\n\t_support/publish #{tag_name}\n\n" end def write_version_file(version) diff --git a/changelogs/unreleased/datastore-pattern-for-replication-jobs.yml b/changelogs/unreleased/datastore-pattern-for-replication-jobs.yml deleted file mode 100644 index f81236920..000000000 --- a/changelogs/unreleased/datastore-pattern-for-replication-jobs.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Datastore pattern for replication jobs -merge_request: 1147 -author: -type: other diff --git a/changelogs/unreleased/gitlab-shell-delete-ssh.yml b/changelogs/unreleased/gitlab-shell-delete-ssh.yml deleted file mode 100644 index df9e071b7..000000000 --- a/changelogs/unreleased/gitlab-shell-delete-ssh.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Delete SSH frontend code from ruby/gitlab-shell -merge_request: 1179 -author: -type: other diff --git a/changelogs/unreleased/id-add-option-avoid-loading-wiki-page-content.yml b/changelogs/unreleased/id-add-option-avoid-loading-wiki-page-content.yml deleted file mode 100644 index b1797a3aa..000000000 --- a/changelogs/unreleased/id-add-option-avoid-loading-wiki-page-content.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Add WikiListPages RPC call -merge_request: 1194 -author: -type: added diff --git a/changelogs/unreleased/jc-pack-refs.yml b/changelogs/unreleased/jc-pack-refs.yml deleted file mode 100644 index f11f486ef..000000000 --- a/changelogs/unreleased/jc-pack-refs.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Add PackRefs RPC -merge_request: 1161 -author: -type: added diff --git a/changelogs/unreleased/jc-remove-find-all-tags-ruby.yml b/changelogs/unreleased/jc-remove-find-all-tags-ruby.yml deleted file mode 100644 index bba7747b3..000000000 --- a/changelogs/unreleased/jc-remove-find-all-tags-ruby.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Remove find all tags ruby -merge_request: 1163 -author: -type: other diff --git a/changelogs/unreleased/jc-remove-path-field.yml b/changelogs/unreleased/jc-remove-path-field.yml new file mode 100644 index 000000000..c9e89a0a9 --- /dev/null +++ b/changelogs/unreleased/jc-remove-path-field.yml @@ -0,0 +1,5 @@ +--- +title: Remove path field in ListLastCommitsForTree response +merge_request: 1240 +author: +type: fixed diff --git a/changelogs/unreleased/jc-use-perl-regexp.yml b/changelogs/unreleased/jc-use-perl-regexp.yml new file mode 100644 index 000000000..141217302 --- /dev/null +++ b/changelogs/unreleased/jc-use-perl-regexp.yml @@ -0,0 +1,5 @@ +--- +title: Use --perl-regexp for code search +merge_request: 1241 +author: +type: performance diff --git a/changelogs/unreleased/list-git-remotes.yml b/changelogs/unreleased/list-git-remotes.yml deleted file mode 100644 index 60d5c9d2a..000000000 --- a/changelogs/unreleased/list-git-remotes.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: Implement ListRemotes -merge_request: 1019 -author: -type: added diff --git a/changelogs/unreleased/po-fix-datastore-update.yml b/changelogs/unreleased/po-fix-datastore-update.yml new file mode 100644 index 000000000..871b77ebf --- /dev/null +++ b/changelogs/unreleased/po-fix-datastore-update.yml @@ -0,0 +1,5 @@ +--- +title: Fix replication job state changing +merge_request: 1236 +author: +type: fixed diff --git a/changelogs/unreleased/sh-upgrade-ruby-2-6.yml b/changelogs/unreleased/sh-upgrade-ruby-2-6.yml new file mode 100644 index 000000000..0a926ad65 --- /dev/null +++ b/changelogs/unreleased/sh-upgrade-ruby-2-6.yml @@ -0,0 +1,5 @@ +--- +title: Upgrade to Ruby 2.6 +merge_request: 1228 +author: +type: performance diff --git a/changelogs/unreleased/zj-stop-symlinking-hooks.yml b/changelogs/unreleased/zj-stop-symlinking-hooks.yml new file mode 100644 index 000000000..b366b813e --- /dev/null +++ b/changelogs/unreleased/zj-stop-symlinking-hooks.yml @@ -0,0 +1,6 @@ +--- +title: Stop symlinking hooks on repository creation +merge_request: 1052 +author: +type: added + diff --git a/cmd/praefect/main.go b/cmd/praefect/main.go index 941486861..75d47308c 100644 --- a/cmd/praefect/main.go +++ b/cmd/praefect/main.go @@ -78,7 +78,7 @@ func run(listeners []net.Listener, conf config.Config) error { var ( // top level server dependencies coordinator = praefect.NewCoordinator(logger, conf.PrimaryServer.Name) - datastore = praefect.NewMemoryDatastore(conf, time.Now()) + datastore = praefect.NewMemoryDatastore(conf) repl = praefect.NewReplMgr("default", logger, datastore, coordinator, praefect.WithWhitelist(conf.Whitelist)) srv = praefect.NewServer(coordinator, repl, nil, logger) diff --git a/doc/PROCESS.md b/doc/PROCESS.md index b68bc7a68..54c5a5f12 100644 --- a/doc/PROCESS.md +++ b/doc/PROCESS.md @@ -34,6 +34,14 @@ GITLAB_TOKEN=$(cat /path/to/gitlab-token) _support/update-downstream-server-vers - This will create a merge-request (with changelog) and assign it to you. Once the build has completed successfully, assign it to a maintainer for review. +##### Security release + +- Check what version of Gitaly you're backporting by opening [`GITALY_SERVER_VERSION`](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/GITALY_SERVER_VERSION) +- Create a stable branch for this version: + - `git checkout vX.Y.Z`, then `git checkout -b X-Y-stable`, and push it to the main gitlab.com repository +- Create the required merge requests on `dev.gitlab.org`, making sure to bump `GITALY_SERVER_VERSION` on the client (gitlab-rails) in every backported merge request +- Follow the [usual security process](https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/developer.md) + ## Experimental builds Push the release tag to dev.gitlab.org/gitlab/gitaly. After the diff --git a/doc/README.md b/doc/README.md index 65217c61c..a3a2b29af 100644 --- a/doc/README.md +++ b/doc/README.md @@ -23,3 +23,7 @@ means that Gitaly is not highly available. How this will be solved is described [in the HA design document](doc/design_ha.md) For configuration please read [praefects configuration documentation](doc/configuration/praefect.md). + +#### Technical explanations + +- [Delta Islands](doc/delta_islands.md) diff --git a/doc/configuration/README.md b/doc/configuration/README.md index 652745eb4..644e400e9 100644 --- a/doc/configuration/README.md +++ b/doc/configuration/README.md @@ -145,6 +145,7 @@ level = "warn" |format|string|no|Log format: "text" or "json". Default: "text"| |level|string|no| Log level: "debug", "info", "warn", "error", "fatal", or "panic". Default: "info"| |sentry_dsn|string|no|Sentry DSN for exception monitoring| +|sentry_environment|string|no|Sentry Environment for exception monitoring| |ruby_sentry_dsn|string|no|Sentry DSN for gitaly-ruby exception monitoring| ## Environment variables diff --git a/doc/delta_islands.md b/doc/delta_islands.md new file mode 100644 index 000000000..4182f1140 --- /dev/null +++ b/doc/delta_islands.md @@ -0,0 +1,55 @@ +## Delta Islands + +Most of the time, an object in a Git repository is stored as a delta against +another object. This means that if a blob is stored once, and only one line is +changed, the storage requirements for the repository does not come close to the +two individual blobs. This helps Git also, when a client is requesting data during +a fetch. The transmitted bytes again, is much less than the combined size of all +the objects. + +Now when a third blob of the same file is created, it too has its delta +calculated against the second blob, only stored as delta, to itself. These three +blobs now form a delta chain. Git stores these delta chains in [pack files][git-pack], +and when a `repack` is executed these chains might be recalculated if one of the +blobs isn't required anymore, or if a better delta base is discovered. + +In the case of a git fetch, it might happen that the client doesn't have a set +of branches that, during repack, were detected to share many of the same contents +and thus form a delta chain. Git can then decide to send the full delta chain. + +In practice, these delta chains jump between branches, tags, and other refs. When +a client initiates a fetch, it's usually not interested in any of the other +refs. Further more it might create a security issue when objects are shared +between between repositories. This will invalidate the delta chain on disk, and +Git will, and during the fetch request, Git will recalculate the diffs for the +objects later in the chain it does want. + +Delta islands try to solve this by creating islands of objects which the delta +detection algorithm can use to create a delta against. For example, all branches +could be a namespace, or island. When a client fetches, the likelihood of the +chain being valid is much greater. This prevents Git from reconstructing the +full objects, which improves the load on the server and latency for the fetch. + +The drawback of this feature is that the packs on disk are potentially +larger as it's not always the case the optimal object can be used as delta base. + +### In GitLab + +Delta Island relies on Git version 2.20 or later, which GitLab is expected to +use from version 11.11 onwards. The change on the Gitaly side is limited to +setting a config option [when repacking][delta-config]. This option is set at +runtime to prevent having to write the configuration file for all repositories. + +User impact of this feature includes faster fetches, as Git on the server does +less work and reuses previous work better. + +#### Further reading + +As usually the case, the [tests of Git][git-delta-test] provide a good overview +of how the feature works. + +[git-delta-test]: https://github.com/git/git/blob/041f5ea1cf987a4068ef5f39ba0a09be85952064/t/t5320-delta-islands.sh +[git-pack]: https://git-scm.com/docs/git-pack-objects +[delta-mr]: https://gitlab.com/gitlab-org/gitaly/merge_requests/1110 +[delta-config]: https://gitlab.com/gitlab-org/gitaly/merge_requests/1110/diffs#e01aecd9d7ee43aee1959795092f852d07a1e7ed_55_78 + diff --git a/doc/design_ha.md b/doc/design_ha.md index e446dc85e..fb3cf523d 100644 --- a/doc/design_ha.md +++ b/doc/design_ha.md @@ -1,7 +1,7 @@ # Gitaly High Availability (HA) Design Gitaly HA is an active-active cluster configuration for resilient git operations. [Refer to our specific requirements](https://gitlab.com/gitlab-org/gitaly/issues/1332). -Refer to [epic &289][epic] for current issues and discussions revolving around +Refer to [epic &289][epic] for current issues and discussions revolving around HA MVC development. ## Terminology @@ -93,6 +93,22 @@ sequenceDiagram *Note: Once Node-A propagates changes to a peer, Node-A is no longer the critical path for subsequent propagations. If Node-A fails after a second peer is propagated, that second peer can become the new leader and resume replications.* +##### Replication Logic + +Here are the steps during a Gitaly client GRPC call intercepted by Praefect: + +```mermaid +graph TD + A[Gitaly Client]-->B{Does RPC Mutate a repository?} + B-->| yes | C[Peek into RPC Stream to determine Repository] + B-->| no | G[Forward request to Gitaly] + C-->D{Scoped for repository?} + D-->| yes | E[Get target repository from message] + D-->| no | G + E-->F[Schedule Replication] + F-->G +``` + ## Stages until v1.0 Rome wasn't built in a day, nor will Praefect be build in one. To iterate towards diff --git a/internal/command/command.go b/internal/command/command.go index 9272de8bf..5f72fec60 100644 --- a/internal/command/command.go +++ b/internal/command/command.go @@ -1,6 +1,7 @@ package command import ( + "bufio" "context" "errors" "fmt" @@ -14,10 +15,15 @@ import ( "time" grpc_logrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus" + "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus" "gitlab.com/gitlab-org/gitaly/internal/config" ) +const ( + escapedNewline = `\n` +) + // GitEnv contains the ENV variables for git commands var GitEnv = []string{ // Force english locale for consistency on the output messages @@ -49,13 +55,22 @@ var exportedEnvVars = []string{ "no_proxy", } +const ( + // MaxStderrBytes is at most how many bytes will be written to stderr + MaxStderrBytes = 10000 // 10kb + // StderrBufferSize is the buffer size we use for the reader that reads from + // the stderr stream of the command + StderrBufferSize = 4096 +) + // Command encapsulates a running exec.Cmd. The embedded exec.Cmd is // terminated and reaped automatically when the context.Context that // created it is canceled. type Command struct { reader io.Reader writer io.WriteCloser - logrusWriter io.WriteCloser + stderrCloser io.WriteCloser + stderrDone chan struct{} cmd *exec.Cmd context context.Context startTime time.Time @@ -132,6 +147,18 @@ type spawnTimeoutError struct{ error } type contextWithoutDonePanic string type nullInArgvError struct{ error } +// noopWriteCloser has a noop Close(). The reason for this is so we can close any WriteClosers that get +// passed into writeLines. We need this for WriteClosers such as the Logrus writer, which has a +// goroutine that is stopped by the runtime https://github.com/sirupsen/logrus/blob/master/writer.go#L51. +// Unless we explicitly close it, go test will complain that logs are being written to after the Test exits. +type noopWriteCloser struct { + io.Writer +} + +func (n *noopWriteCloser) Close() error { + return nil +} + // New creates a Command from an exec.Cmd. On success, the Command // contains a running subprocess. When ctx is canceled the embedded // process will be terminated and reaped automatically. @@ -163,9 +190,10 @@ func New(ctx context.Context, cmd *exec.Cmd, stdin io.Reader, stdout, stderr io. }() command := &Command{ - cmd: cmd, - startTime: time.Now(), - context: ctx, + cmd: cmd, + startTime: time.Now(), + context: ctx, + stderrDone: make(chan struct{}), } // Explicitly set the environment for the command @@ -204,13 +232,13 @@ func New(ctx context.Context, cmd *exec.Cmd, stdin io.Reader, stdout, stderr io. } if stderr != nil { - cmd.Stderr = stderr + command.stderrCloser = escapeNewlineWriter(&noopWriteCloser{stderr}, command.stderrDone, MaxStderrBytes) } else { - // If we don't do something with cmd.Stderr, Git errors will be lost - command.logrusWriter = grpc_logrus.Extract(ctx).WriterLevel(log.InfoLevel) - cmd.Stderr = command.logrusWriter + command.stderrCloser = escapeNewlineWriter(grpc_logrus.Extract(ctx).WriterLevel(log.ErrorLevel), command.stderrDone, MaxStderrBytes) } + cmd.Stderr = command.stderrCloser + if err := cmd.Start(); err != nil { return nil, fmt.Errorf("GitCommand: start %v: %v", cmd.Args, err) } @@ -244,6 +272,71 @@ func exportEnvironment(env []string) []string { return env } +func escapeNewlineWriter(outbound io.WriteCloser, done chan struct{}, maxBytes int) io.WriteCloser { + r, w := io.Pipe() + + go writeLines(outbound, r, done, maxBytes) + + return w +} + +func writeLines(writer io.WriteCloser, reader io.Reader, done chan struct{}, maxBytes int) { + var bytesWritten int + + bufReader := bufio.NewReaderSize(reader, StderrBufferSize) + + var err error + var b []byte + var isPrefix, discardRestOfLine bool + + for err == nil { + b, isPrefix, err = bufReader.ReadLine() + + if discardRestOfLine { + ioutil.Discard.Write(b) + // if isPrefix = false, that means the reader has gotten to the end + // of the line. We want to read the first chunk of the next line + if !isPrefix { + discardRestOfLine = false + } + continue + } + + // if we've reached the max, discard + if bytesWritten >= maxBytes { + ioutil.Discard.Write(b) + continue + } + + // only write up to the max + if len(b)+bytesWritten+len(escapedNewline) >= maxBytes { + b = b[:maxBytes-bytesWritten-len(escapedNewline)] + } + + // prepend an escaped newline + if bytesWritten > 0 { + b = append([]byte(escapedNewline), b...) + } + + n, _ := writer.Write(b) + bytesWritten += n + + // if isPrefix, it means the line is too long so we want to discard the rest + if isPrefix { + discardRestOfLine = true + } + } + + // read the rest so the command doesn't get blocked + if err != io.EOF { + logrus.WithError(err).Error("error while reading from Writer") + io.Copy(ioutil.Discard, reader) + } + + writer.Close() + done <- struct{}{} +} + // This function should never be called directly, use Wait(). func (c *Command) wait() { if c.writer != nil { @@ -267,10 +360,11 @@ func (c *Command) wait() { c.logProcessComplete(c.context, exitCode) - if w := c.logrusWriter; w != nil { - // Closing this writer lets a logrus goroutine finish early + if w := c.stderrCloser; w != nil { w.Close() } + + <-c.stderrDone } // ExitStatus will return the exit-code from an error returned by Wait(). diff --git a/internal/command/command_test.go b/internal/command/command_test.go index feaf52711..151a4a35f 100644 --- a/internal/command/command_test.go +++ b/internal/command/command_test.go @@ -11,6 +11,7 @@ import ( "testing" "time" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -187,3 +188,61 @@ func TestNewCommandNullInArg(t *testing.T) { _, ok := err.(nullInArgvError) require.True(t, ok, "expected %+v to be nullInArgvError", err) } + +func TestCommandStdErr(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + var stdout, stderr bytes.Buffer + + cmd, err := New(ctx, exec.Command("./testdata/stderr_script.sh"), nil, &stdout, &stderr) + require.NoError(t, err) + + require.Error(t, cmd.Wait()) + assert.Empty(t, stdout.Bytes()) + assert.Equal(t, `hello world\nhello world\nhello world\nhello world\nhello world\n`, stderr.String()) +} + +func TestCommandStdErrLargeOutput(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + var stdout, stderr bytes.Buffer + + cmd, err := New(ctx, exec.Command("./testdata/stderr_many_lines.sh"), nil, &stdout, &stderr) + require.NoError(t, err) + + require.Error(t, cmd.Wait()) + assert.Empty(t, stdout.Bytes()) + assert.True(t, stderr.Len() <= MaxStderrBytes) +} + +func TestCommandStdErrBinaryNullBytes(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + var stdout, stderr bytes.Buffer + + cmd, err := New(ctx, exec.Command("./testdata/stderr_binary_null.sh"), nil, &stdout, &stderr) + require.NoError(t, err) + + require.Error(t, cmd.Wait()) + assert.Empty(t, stdout.Bytes()) + assert.NotEmpty(t, stderr.Bytes()) +} + +func TestCommandStdErrLongLine(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + var stdout, stderr bytes.Buffer + + cmd, err := New(ctx, exec.Command("./testdata/stderr_repeat_a.sh"), nil, &stdout, &stderr) + require.NoError(t, err) + + require.Error(t, cmd.Wait()) + assert.Empty(t, stdout.Bytes()) + assert.NotEmpty(t, stderr.Bytes()) + assert.Equal(t, fmt.Sprintf("%s\\n%s", strings.Repeat("a", StderrBufferSize), strings.Repeat("b", StderrBufferSize)), stderr.String()) + // t.Logf(stderr.String()) +} diff --git a/internal/command/testdata/stderr_binary_null.sh b/internal/command/testdata/stderr_binary_null.sh new file mode 100755 index 000000000..8b7a7f6e7 --- /dev/null +++ b/internal/command/testdata/stderr_binary_null.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +dd if=/dev/zero bs=1000 count=1000 >&2; +exit 1;
\ No newline at end of file diff --git a/internal/command/testdata/stderr_many_lines.sh b/internal/command/testdata/stderr_many_lines.sh new file mode 100755 index 000000000..7a346328f --- /dev/null +++ b/internal/command/testdata/stderr_many_lines.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +let x=0; while [ $x -lt 100010 ]; do let x=x+1; printf '%06d zzzzzzzzzz\n' $x >&2 ; done +exit 1;
\ No newline at end of file diff --git a/internal/command/testdata/stderr_repeat_a.sh b/internal/command/testdata/stderr_repeat_a.sh new file mode 100755 index 000000000..0c967e730 --- /dev/null +++ b/internal/command/testdata/stderr_repeat_a.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +printf 'a%.0s' {1..8192} >&2 +printf '\n' >&2 +printf 'b%.0s' {1..8192} >&2 +exit 1;
\ No newline at end of file diff --git a/internal/command/testdata/stderr_script.sh b/internal/command/testdata/stderr_script.sh new file mode 100755 index 000000000..807d9860e --- /dev/null +++ b/internal/command/testdata/stderr_script.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +for i in {1..5} +do + echo 'hello world' 1>&2 +done +exit 1
\ No newline at end of file diff --git a/internal/config/config.go b/internal/config/config.go index 4f625783e..ed562800c 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -80,10 +80,11 @@ type Storage struct { // Logging contains the logging configuration for Gitaly type Logging struct { - Format string - SentryDSN string `toml:"sentry_dsn"` - RubySentryDSN string `toml:"ruby_sentry_dsn"` - Level string `toml:"level"` + Format string + SentryDSN string `toml:"sentry_dsn"` + RubySentryDSN string `toml:"ruby_sentry_dsn"` + SentryEnvironment string `toml:"sentry_environment"` + Level string `toml:"level"` } // Prometheus contains additional configuration data for prometheus diff --git a/internal/config/sentry.go b/internal/config/sentry.go index 77a6a8029..1b8aa7d06 100644 --- a/internal/config/sentry.go +++ b/internal/config/sentry.go @@ -20,6 +20,10 @@ func ConfigureSentry(version string) { raven.SetRelease("v" + version) } + if Config.Logging.SentryEnvironment != "" { + raven.SetEnvironment(Config.Logging.SentryEnvironment) + } + panichandler.InstallPanicHandler(func(grpcMethod string, _err interface{}) { err, ok := _err.(error) if !ok { diff --git a/internal/git/catfile/batch.go b/internal/git/catfile/batch.go index ff7957819..4c7f68193 100644 --- a/internal/git/catfile/batch.go +++ b/internal/git/catfile/batch.go @@ -12,7 +12,7 @@ import ( ) // batch encapsulates a 'git cat-file --batch' process -type batch struct { +type batchProcess struct { r *bufio.Reader w io.WriteCloser @@ -30,12 +30,15 @@ type batch struct { sync.Mutex } -func newBatch(ctx context.Context, repoPath string, env []string) (*batch, error) { - b := &batch{} +func newBatchProcess(ctx context.Context, repoPath string, env []string) (*batchProcess, error) { + b := &batchProcess{} var stdinReader io.Reader stdinReader, b.w = io.Pipe() batchCmdArgs := []string{"--git-dir", repoPath, "cat-file", "--batch"} + + currentCatfileProcesses.Inc() + totalCatfileProcesses.Inc() batchCmd, err := git.BareCommand(ctx, stdinReader, nil, nil, env, batchCmdArgs...) if err != nil { return nil, err @@ -45,12 +48,13 @@ func newBatch(ctx context.Context, repoPath string, env []string) (*batch, error <-ctx.Done() // This is crucial to prevent leaking file descriptors. b.w.Close() + currentCatfileProcesses.Dec() }() return b, nil } -func (b *batch) reader(revspec string, expectedType string) (io.Reader, error) { +func (b *batchProcess) reader(revspec string, expectedType string) (io.Reader, error) { b.Lock() defer b.Unlock() @@ -89,28 +93,35 @@ func (b *batch) reader(revspec string, expectedType string) (io.Reader, error) { } return &batchReader{ - batch: b, - r: io.LimitReader(b.r, oi.Size), + batchProcess: b, + r: io.LimitReader(b.r, oi.Size), }, nil } -func (b *batch) consume(nBytes int) { - b.Lock() - defer b.Unlock() - +func (b *batchProcess) consume(nBytes int) { b.n -= int64(nBytes) if b.n < 1 { panic("too many bytes read from batch") } } +func (b *batchProcess) hasUnreadData() bool { + b.Lock() + defer b.Unlock() + + return b.n > 1 +} + type batchReader struct { - *batch + *batchProcess r io.Reader } func (br *batchReader) Read(p []byte) (int, error) { + br.batchProcess.Lock() + defer br.batchProcess.Unlock() + n, err := br.r.Read(p) - br.batch.consume(n) + br.batchProcess.consume(n) return n, err } diff --git a/internal/git/catfile/batch_cache.go b/internal/git/catfile/batch_cache.go new file mode 100644 index 000000000..10ea489a1 --- /dev/null +++ b/internal/git/catfile/batch_cache.go @@ -0,0 +1,185 @@ +package catfile + +import ( + "strings" + "sync" + "time" + + "github.com/prometheus/client_golang/prometheus" + "gitlab.com/gitlab-org/gitaly/internal/git/repository" +) + +const ( + // DefaultBatchfileTTL is the default ttl for batch files to live in the cache + DefaultBatchfileTTL = 10 * time.Second + + // CacheMaxItems is the default configuration for maximum entries in the batch cache + CacheMaxItems = 100 + + defaultEvictionInterval = 1 * time.Second +) + +var catfileCacheMembers = prometheus.NewGauge( + prometheus.GaugeOpts{ + Name: "gitaly_catfile_cache_members", + Help: "Gauge of catfile cache members", + }, +) + +var cache *batchCache + +func init() { + prometheus.MustRegister(catfileCacheMembers) + cache = newCache(DefaultBatchfileTTL, CacheMaxItems) +} + +func newCacheKey(sessionID string, repo repository.GitRepo) key { + return key{ + sessionID: sessionID, + repoStorage: repo.GetStorageName(), + repoRelPath: repo.GetRelativePath(), + repoObjDir: repo.GetGitObjectDirectory(), + repoAltDir: strings.Join(repo.GetGitAlternateObjectDirectories(), ","), + } +} + +type key struct { + sessionID string + repoStorage string + repoRelPath string + repoObjDir string + repoAltDir string +} + +type entry struct { + key + value *Batch + expiry time.Time +} + +// batchCache entries always get added to the back of the list. If the +// list gets too long, we evict entries from the front of the list. When +// an entry gets added it gets an expiry time based on a fixed TTL. A +// monitor goroutine periodically evicts expired entries. +type batchCache struct { + entries []*entry + sync.Mutex + + // maxLen is the maximum number of keys in the cache + maxLen int + + // ttl is the fixed ttl for cache entries + ttl time.Duration +} + +func newCache(ttl time.Duration, maxLen int) *batchCache { + return newCacheWithRefresh(ttl, maxLen, defaultEvictionInterval) +} + +func newCacheWithRefresh(ttl time.Duration, maxLen int, refreshInterval time.Duration) *batchCache { + bc := &batchCache{ + maxLen: maxLen, + ttl: ttl, + } + + go bc.monitor(refreshInterval) + return bc +} + +func (bc *batchCache) monitor(refreshInterval time.Duration) { + ticker := time.NewTicker(refreshInterval) + + for range ticker.C { + bc.EnforceTTL(time.Now()) + } +} + +// Add adds a key, value pair to bc. If there are too many keys in bc +// already Add will evict old keys until the length is OK again. +func (bc *batchCache) Add(k key, b *Batch) { + bc.Lock() + defer bc.Unlock() + + if i, ok := bc.lookup(k); ok { + catfileCacheCounter.WithLabelValues("duplicate").Inc() + bc.delete(i, true) + } + + ent := &entry{key: k, value: b, expiry: time.Now().Add(bc.ttl)} + bc.entries = append(bc.entries, ent) + + for bc.len() > bc.maxLen { + bc.evictHead() + } + + catfileCacheMembers.Set(float64(bc.len())) +} + +func (bc *batchCache) head() *entry { return bc.entries[0] } +func (bc *batchCache) evictHead() { bc.delete(0, true) } +func (bc *batchCache) len() int { return len(bc.entries) } + +// Checkout removes a value from bc. After use the caller can re-add the value with bc.Add. +func (bc *batchCache) Checkout(k key) (*Batch, bool) { + bc.Lock() + defer bc.Unlock() + + i, ok := bc.lookup(k) + if !ok { + catfileCacheCounter.WithLabelValues("miss").Inc() + return nil, false + } + + catfileCacheCounter.WithLabelValues("hit").Inc() + + ent := bc.entries[i] + bc.delete(i, false) + return ent.value, true +} + +// EnforceTTL evicts all entries older than now, assuming the entry +// expiry times are increasing. +func (bc *batchCache) EnforceTTL(now time.Time) { + bc.Lock() + defer bc.Unlock() + + for bc.len() > 0 && now.After(bc.head().expiry) { + bc.evictHead() + } +} + +func (bc *batchCache) EvictAll() { + bc.Lock() + defer bc.Unlock() + + for bc.len() > 0 { + bc.evictHead() + } +} + +// ExpireAll is used to expire all of the batches in the cache +func ExpireAll() { + cache.EvictAll() +} + +func (bc *batchCache) lookup(k key) (int, bool) { + for i, ent := range bc.entries { + if ent.key == k { + return i, true + } + + } + + return -1, false +} + +func (bc *batchCache) delete(i int, wantClose bool) { + ent := bc.entries[i] + + if wantClose { + ent.value.Close() + } + + bc.entries = append(bc.entries[:i], bc.entries[i+1:]...) + catfileCacheMembers.Set(float64(bc.len())) +} diff --git a/internal/git/catfile/batch_cache_test.go b/internal/git/catfile/batch_cache_test.go new file mode 100644 index 000000000..0f885d314 --- /dev/null +++ b/internal/git/catfile/batch_cache_test.go @@ -0,0 +1,178 @@ +package catfile + +import ( + "fmt" + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +func TestCacheAdd(t *testing.T) { + const maxLen = 3 + bc := newCache(time.Hour, maxLen) + + key0 := testKey(0) + value0 := testValue() + bc.Add(key0, value0) + requireCacheValid(t, bc) + + key1 := testKey(1) + bc.Add(key1, testValue()) + requireCacheValid(t, bc) + + key2 := testKey(2) + bc.Add(key2, testValue()) + requireCacheValid(t, bc) + + // Because maxLen is 3, and key0 is oldest, we expect that adding key3 + // will kick out key0. + key3 := testKey(3) + bc.Add(key3, testValue()) + requireCacheValid(t, bc) + + require.Equal(t, maxLen, bc.len(), "length should be maxLen") + require.True(t, value0.isClosed(), "value0 should be closed") + require.Equal(t, []key{key1, key2, key3}, keys(bc)) +} + +func TestCacheAddTwice(t *testing.T) { + bc := newCache(time.Hour, 10) + + key0 := testKey(0) + value0 := testValue() + bc.Add(key0, value0) + requireCacheValid(t, bc) + + key1 := testKey(1) + bc.Add(key1, testValue()) + requireCacheValid(t, bc) + + require.Equal(t, key0, bc.head().key, "key0 should be oldest key") + + value2 := testValue() + bc.Add(key0, value2) + requireCacheValid(t, bc) + + require.Equal(t, key1, bc.head().key, "key1 should be oldest key") + require.Equal(t, value2, bc.head().value) + + require.True(t, value0.isClosed(), "value0 should be closed") +} + +func TestCacheCheckout(t *testing.T) { + bc := newCache(time.Hour, 10) + + key0 := testKey(0) + value0 := testValue() + bc.Add(key0, value0) + + v, ok := bc.Checkout(key{sessionID: "foo"}) + requireCacheValid(t, bc) + require.Nil(t, v, "expect nil value when key not found") + require.False(t, ok, "ok flag") + + v, ok = bc.Checkout(key0) + requireCacheValid(t, bc) + + require.Equal(t, value0, v) + require.True(t, ok, "ok flag") + + require.False(t, v.isClosed(), "value should not be closed after checkout") + + v, ok = bc.Checkout(key0) + require.False(t, ok, "ok flag after second checkout") + require.Nil(t, v, "value from second checkout") +} + +func TestCacheEnforceTTL(t *testing.T) { + ttl := time.Hour + bc := newCache(ttl, 10) + + sleep := func() { time.Sleep(2 * time.Millisecond) } + + key0 := testKey(0) + value0 := testValue() + bc.Add(key0, value0) + sleep() + + key1 := testKey(1) + value1 := testValue() + bc.Add(key1, value1) + sleep() + + cutoff := time.Now().Add(ttl) + sleep() + + key2 := testKey(2) + bc.Add(key2, testValue()) + sleep() + + key3 := testKey(3) + bc.Add(key3, testValue()) + sleep() + + requireCacheValid(t, bc) + + // We expect this cutoff to cause eviction of key0 and key1 but no other keys. + bc.EnforceTTL(cutoff) + + requireCacheValid(t, bc) + + for i, v := range []*Batch{value0, value1} { + require.True(t, v.isClosed(), "value %d %v should be closed", i, v) + } + + require.Equal(t, []key{key2, key3}, keys(bc), "remaining keys after EnforceTTL") + + bc.EnforceTTL(cutoff) + + requireCacheValid(t, bc) + require.Equal(t, []key{key2, key3}, keys(bc), "remaining keys after second EnforceTTL") +} + +func TestAutoExpiry(t *testing.T) { + ttl := 5 * time.Millisecond + bc := newCacheWithRefresh(ttl, 10, 1*time.Millisecond) + + key0 := testKey(0) + value0 := testValue() + bc.Add(key0, value0) + requireCacheValid(t, bc) + + bc.Lock() + require.Contains(t, keys(bc), key0, "key should still be in map") + require.False(t, value0.isClosed(), "value should not have been closed") + bc.Unlock() + + time.Sleep(2 * ttl) + + bc.Lock() + require.NotContains(t, keys(bc), key0, "key should no longer be in map") + require.True(t, value0.isClosed(), "value should be closed after eviction") + bc.Unlock() +} + +func requireCacheValid(t *testing.T, bc *batchCache) { + bc.Lock() + defer bc.Unlock() + + for _, ent := range bc.entries { + + v := ent.value + require.False(t, v.isClosed(), "values in cache should not be closed: %v %v", ent, v) + } +} + +func testValue() *Batch { return &Batch{} } + +func testKey(i int) key { return key{sessionID: fmt.Sprintf("key-%d", i)} } + +func keys(bc *batchCache) []key { + var result []key + for _, ent := range bc.entries { + result = append(result, ent.key) + } + + return result +} diff --git a/internal/git/catfile/batchcheck.go b/internal/git/catfile/batchcheck.go index 476ed457d..77f49a05b 100644 --- a/internal/git/catfile/batchcheck.go +++ b/internal/git/catfile/batchcheck.go @@ -27,6 +27,7 @@ func newBatchCheck(ctx context.Context, repoPath string, env []string) (*batchCh if err != nil { return nil, err } + bc.r = bufio.NewReader(batchCmd) go func() { <-ctx.Done() diff --git a/internal/git/catfile/catfile.go b/internal/git/catfile/catfile.go index 75e5924ca..288470170 100644 --- a/internal/git/catfile/catfile.go +++ b/internal/git/catfile/catfile.go @@ -3,19 +3,60 @@ package catfile import ( "context" "io" + "sync" + "github.com/prometheus/client_golang/prometheus" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/internal/git/alternates" + "gitlab.com/gitlab-org/gitaly/internal/metadata" + "gitlab.com/gitlab-org/gitaly/internal/metadata/featureflag" ) +var catfileCacheCounter = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Name: "gitaly_catfile_cache_total", + Help: "Counter of catfile cache hit/miss", + }, + []string{"type"}, +) + +var currentCatfileProcesses = prometheus.NewGauge( + prometheus.GaugeOpts{ + Name: "gitaly_catfile_processes", + Help: "Gauge of active catfile processes", + }, +) + +var totalCatfileProcesses = prometheus.NewCounter( + prometheus.CounterOpts{ + Name: "gitaly_catfile_processes_total", + Help: "Counter of catfile processes", + }, +) + +const ( + // CacheFeatureFlagKey is the feature flag key for catfile batch caching. This should match + // what is in gitlab-ce + CacheFeatureFlagKey = "catfile-cache" +) + +func init() { + prometheus.MustRegister(catfileCacheCounter) + prometheus.MustRegister(currentCatfileProcesses) + prometheus.MustRegister(totalCatfileProcesses) +} + // Batch abstracts 'git cat-file --batch' and 'git cat-file --batch-check'. // It lets you retrieve object metadata and raw objects from a Git repo. // // A Batch instance can only serve single request at a time. If you want to // use it across multiple goroutines you need to add your own locking. type Batch struct { + sync.Mutex *batchCheck - *batch + *batchProcess + cancel func() + closed bool } // Info returns an ObjectInfo if spec exists. If spec does not exist the @@ -29,7 +70,7 @@ func (c *Batch) Info(revspec string) (*ObjectInfo, error) { // and check the object type. Caller must consume the Reader before // making another call on C. func (c *Batch) Tree(revspec string) (io.Reader, error) { - return c.batch.reader(revspec, "tree") + return c.batchProcess.reader(revspec, "tree") } // Commit returns a raw commit object. It is an error if revspec does not @@ -37,7 +78,7 @@ func (c *Batch) Tree(revspec string) (io.Reader, error) { // and check the object type. Caller must consume the Reader before // making another call on C. func (c *Batch) Commit(revspec string) (io.Reader, error) { - return c.batch.reader(revspec, "commit") + return c.batchProcess.reader(revspec, "commit") } // Blob returns a reader for the requested blob. The entire blob must be @@ -46,13 +87,37 @@ func (c *Batch) Commit(revspec string) (io.Reader, error) { // It is an error if revspec does not point to a blob. To prevent this // first use Info to resolve the revspec and check the object type. func (c *Batch) Blob(revspec string) (io.Reader, error) { - return c.batch.reader(revspec, "blob") + return c.batchProcess.reader(revspec, "blob") } // Tag returns a raw tag object. Caller must consume the Reader before // making another call on C. func (c *Batch) Tag(revspec string) (io.Reader, error) { - return c.batch.reader(revspec, "tag") + return c.batchProcess.reader(revspec, "tag") +} + +// Close closes the writers for batchCheck and batch. This is only used for +// cached Batches +func (c *Batch) Close() { + c.Lock() + defer c.Unlock() + + if c.closed { + return + } + + c.closed = true + if c.cancel != nil { + // both c.batch and c.batchCheck have goroutines that listen on <ctx.Done() + // when this is cancelled, it will cause those goroutines to close both writers + c.cancel() + } +} + +func (c *Batch) isClosed() bool { + c.Lock() + defer c.Unlock() + return c.closed } // New returns a new Batch instance. It is important that ctx gets canceled @@ -68,17 +133,60 @@ func New(ctx context.Context, repo *gitalypb.Repository) (*Batch, error) { return nil, err } - c := &Batch{} + sessionID := metadata.GetValue(ctx, "gitaly-session-id") + + if featureflag.IsDisabled(ctx, CacheFeatureFlagKey) || sessionID == "" { + return newBatch(ctx, repoPath, env) + } - c.batch, err = newBatch(ctx, repoPath, env) + cacheKey := newCacheKey(sessionID, repo) + requestDone := ctx.Done() + + if c, ok := cache.Checkout(cacheKey); ok { + go returnWhenDone(requestDone, cache, cacheKey, c) + return c, nil + } + + // if we are using caching, create a fresh context for the new batch + // and initialize the new batch with a cache key and cancel function + cacheCtx, cacheCancel := context.WithCancel(context.Background()) + c, err := newBatch(cacheCtx, repoPath, env) if err != nil { return nil, err } - c.batchCheck, err = newBatchCheck(ctx, repoPath, env) + c.cancel = cacheCancel + go returnWhenDone(requestDone, cache, cacheKey, c) + + return c, nil +} + +func returnWhenDone(done <-chan struct{}, bc *batchCache, cacheKey key, c *Batch) { + <-done + + if c == nil || c.isClosed() { + return + } + + if c.hasUnreadData() { + catfileCacheCounter.WithLabelValues("dirty").Inc() + c.Close() + return + } + + bc.Add(cacheKey, c) +} + +func newBatch(ctx context.Context, repoPath string, env []string) (*Batch, error) { + batch, err := newBatchProcess(ctx, repoPath, env) if err != nil { return nil, err } - return c, nil + batchCheck, err := newBatchCheck(ctx, repoPath, env) + if err != nil { + return nil, err + } + + return &Batch{batchProcess: batch, batchCheck: batchCheck}, nil } diff --git a/internal/git/log/tag.go b/internal/git/log/tag.go index 5465d8a09..a9b9cbbcb 100644 --- a/internal/git/log/tag.go +++ b/internal/git/log/tag.go @@ -13,6 +13,11 @@ import ( "gitlab.com/gitlab-org/gitaly/internal/helper" ) +const ( + // MaxTagReferenceDepth is the maximum depth of tag references we will dereference + MaxTagReferenceDepth = 10 +) + // GetTagCatfile looks up a commit by tagID using an existing *catfile.Batch instance. // note: we pass in the tagName because the tag name from refs/tags may be different // than the name found in the actual tag object. We want to use the tagName found in refs/tags @@ -88,14 +93,58 @@ func buildAnnotatedTag(b *catfile.Batch, tagID, name string, header *tagHeader, tag.Message = tag.Message[:max] } - if header.tagType == "commit" { - commit, err := GetCommitCatfile(b, header.oid) + var err error + switch header.tagType { + case "commit": + tag.TargetCommit, err = GetCommitCatfile(b, header.oid) if err != nil { return nil, fmt.Errorf("buildAnnotatedTag error when getting target commit: %v", err) } - tag.TargetCommit = commit + case "tag": + tag.TargetCommit, err = dereferenceTag(b, header.oid) + if err != nil { + return nil, fmt.Errorf("buildAnnotatedTag error when dereferencing tag: %v", err) + } } return tag, nil } + +// dereferenceTag recursively dereferences annotated tags until it finds a commit. +// This matches the original behavior in the ruby implementation. +// we also protect against circular tag references. Even though this is not possible in git, +// we still want to protect against an infinite looop + +func dereferenceTag(b *catfile.Batch, Oid string) (*gitalypb.GitCommit, error) { + for depth := 0; depth < MaxTagReferenceDepth; depth++ { + i, err := b.Info(Oid) + if err != nil { + return nil, err + } + + switch i.Type { + case "tag": + r, err := b.Tag(Oid) + if err != nil { + return nil, err + } + + header, _, err := splitRawTag(r) + if err != nil { + return nil, err + } + + Oid = header.oid + continue + case "commit": + return GetCommitCatfile(b, Oid) + default: // This current tag points to a tree or a blob + return nil, nil + } + } + + // at this point the tag nesting has gone too deep. We want to return silently here however, as we don't + // want to fail the entire request if one tag is nested too deeply. + return nil, nil +} diff --git a/internal/git/objectpool/fetch.go b/internal/git/objectpool/fetch.go new file mode 100644 index 000000000..2b967ad70 --- /dev/null +++ b/internal/git/objectpool/fetch.go @@ -0,0 +1,68 @@ +package objectpool + +import ( + "bufio" + "context" + + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/command" + "gitlab.com/gitlab-org/gitaly/internal/git" + "gitlab.com/gitlab-org/gitaly/internal/helper" +) + +// FetchFromOrigin initializes the pool and fetches the objects from its origin repository +func (o *ObjectPool) FetchFromOrigin(ctx context.Context, origin *gitalypb.Repository) error { + if err := o.Init(ctx); err != nil { + return err + } + + originPath, err := helper.GetPath(origin) + + if err != nil { + return err + } + + getRemotes, err := git.Command(ctx, o, "remote") + if err != nil { + return err + } + + remoteReader := bufio.NewScanner(getRemotes) + + var originExists bool + for remoteReader.Scan() { + if remoteReader.Text() == "origin" { + originExists = true + } + } + if err := getRemotes.Wait(); err != nil { + return err + } + + var setOriginCmd *command.Command + if originExists { + setOriginCmd, err = git.Command(ctx, o, "remote", "set-url", "origin", originPath) + if err != nil { + return err + } + } else { + setOriginCmd, err = git.Command(ctx, o, "remote", "add", "origin", originPath) + if err != nil { + return err + } + } + + if err := setOriginCmd.Wait(); err != nil { + return err + } + + fetchCmd, err := git.Command(ctx, o, "fetch", "--quiet", "origin") + if err != nil { + return err + } + + if err := fetchCmd.Wait(); err != nil { + return err + } + return nil +} diff --git a/internal/git/objectpool/pool.go b/internal/git/objectpool/pool.go index 67d22870e..699903cbf 100644 --- a/internal/git/objectpool/pool.go +++ b/internal/git/objectpool/pool.go @@ -7,6 +7,7 @@ import ( "path" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/git" "gitlab.com/gitlab-org/gitaly/internal/helper" ) @@ -92,3 +93,21 @@ func (o *ObjectPool) Create(ctx context.Context, repo *gitalypb.Repository) (err func (o *ObjectPool) Remove(ctx context.Context) (err error) { return os.RemoveAll(o.FullPath()) } + +// Init will intiailize an empty pool repository +// if one already exists, it will do nothing +func (o *ObjectPool) Init(ctx context.Context) (err error) { + targetDir := o.FullPath() + + if helper.IsGitDirectory(targetDir) { + return nil + } + + initArgs := []string{"init", "--bare", targetDir} + cmd, err := git.CommandWithoutRepo(ctx, initArgs...) + if err != nil { + return err + } + + return cmd.Wait() +} diff --git a/internal/git/proto.go b/internal/git/proto.go index bfbbcfcc2..dfe112311 100644 --- a/internal/git/proto.go +++ b/internal/git/proto.go @@ -62,25 +62,90 @@ func Version() (string, error) { return ver[2], nil } -// SupportsDeltaIslands checks if a version string (e.g. "2.20.0") -// corresponds to a Git version that supports delta islands. -func SupportsDeltaIslands(version string) (bool, error) { - versionSplit := strings.SplitN(version, ".", 3) +// VersionLessThan returns true if the parsed version value of v1Str is less +// than the parsed version value of v2Str. An error can be returned if the +// strings cannot be parsed. +// Note: this is an extremely simplified semver comparison algorithm +func VersionLessThan(v1Str, v2Str string) (bool, error) { + var ( + v1, v2 version + err error + ) + + for _, v := range []struct { + string + *version + }{ + {v1Str, &v1}, + {v2Str, &v2}, + } { + *v.version, err = parseVersion(v.string) + if err != nil { + return false, err + } + } + + return versionLessThan(v1, v2), nil +} + +func versionLessThan(v1, v2 version) bool { + switch { + + case v1.major < v2.major: + return true + case v1.major > v2.major: + return false + + case v1.minor < v2.minor: + return true + case v1.minor > v2.minor: + return false + + case v1.patch < v2.patch: + return true + case v1.patch > v2.patch: + return false + + default: + // this should only be reachable when versions are equal + return false + + } +} + +type version struct { + major, minor, patch uint32 +} + +func parseVersion(versionStr string) (version, error) { + versionSplit := strings.SplitN(versionStr, ".", 3) if len(versionSplit) < 3 { - return false, fmt.Errorf("expected major.minor.patch in %q", version) + return version{}, fmt.Errorf("expected major.minor.patch in %q", versionStr) } - var major, minor uint32 - for i, v := range []*uint32{&major, &minor} { + var ver version + + for i, v := range []*uint32{&ver.major, &ver.minor, &ver.patch} { n64, err := strconv.ParseUint(versionSplit[i], 10, 32) if err != nil { - return false, err + return version{}, err } *v = uint32(n64) } - return major >= 2 && minor >= 20, nil + return ver, nil +} + +// SupportsDeltaIslands checks if a version string (e.g. "2.20.0") +// corresponds to a Git version that supports delta islands. +func SupportsDeltaIslands(versionStr string) (bool, error) { + v, err := parseVersion(versionStr) + if err != nil { + return false, err + } + + return !versionLessThan(v, version{2, 20, 0}), nil } // BuildGitOptions helps to generate options to the git command. diff --git a/internal/git/proto_test.go b/internal/git/proto_test.go new file mode 100644 index 000000000..3acb952ae --- /dev/null +++ b/internal/git/proto_test.go @@ -0,0 +1,92 @@ +package git_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly/internal/git" +) + +func TestVersionComparator(t *testing.T) { + for _, tc := range []struct { + v1, v2 string + expect bool + }{ + // v1 < v2 == expect + {"0.0.0", "0.0.0", false}, + {"0.0.0", "0.0.1", true}, + {"0.0.0", "0.1.0", true}, + {"0.0.0", "0.1.1", true}, + {"0.0.0", "1.0.0", true}, + {"0.0.0", "1.0.1", true}, + {"0.0.0", "1.1.0", true}, + {"0.0.0", "1.1.1", true}, + + {"0.0.1", "0.0.0", false}, + {"0.0.1", "0.0.1", false}, + {"0.0.1", "0.1.0", true}, + {"0.0.1", "0.1.1", true}, + {"0.0.1", "1.0.0", true}, + {"0.0.1", "1.0.1", true}, + {"0.0.1", "1.1.0", true}, + {"0.0.1", "1.1.1", true}, + + {"0.1.0", "0.0.0", false}, + {"0.1.0", "0.0.1", false}, + {"0.1.0", "0.1.0", false}, + {"0.1.0", "0.1.1", true}, + {"0.1.0", "1.0.0", true}, + {"0.1.0", "1.0.1", true}, + {"0.1.0", "1.1.0", true}, + {"0.1.0", "1.1.1", true}, + + {"0.1.1", "0.0.0", false}, + {"0.1.1", "0.0.1", false}, + {"0.1.1", "0.1.0", false}, + {"0.1.1", "0.1.1", false}, + {"0.1.1", "1.0.0", true}, + {"0.1.1", "1.0.1", true}, + {"0.1.1", "1.1.0", true}, + {"0.1.1", "1.1.1", true}, + + {"1.0.0", "0.0.0", false}, + {"1.0.0", "0.0.1", false}, + {"1.0.0", "0.1.0", false}, + {"1.0.0", "0.1.1", false}, + {"1.0.0", "1.0.0", false}, + {"1.0.0", "1.0.1", true}, + {"1.0.0", "1.1.0", true}, + {"1.0.0", "1.1.1", true}, + + {"1.0.1", "0.0.0", false}, + {"1.0.1", "0.0.1", false}, + {"1.0.1", "0.1.0", false}, + {"1.0.1", "0.1.1", false}, + {"1.0.1", "1.0.0", false}, + {"1.0.1", "1.0.1", false}, + {"1.0.1", "1.1.0", true}, + {"1.0.1", "1.1.1", true}, + + {"1.1.0", "0.0.0", false}, + {"1.1.0", "0.0.1", false}, + {"1.1.0", "0.1.0", false}, + {"1.1.0", "0.1.1", false}, + {"1.1.0", "1.0.0", false}, + {"1.1.0", "1.0.1", false}, + {"1.1.0", "1.1.0", false}, + {"1.1.0", "1.1.1", true}, + + {"1.1.1", "0.0.0", false}, + {"1.1.1", "0.0.1", false}, + {"1.1.1", "0.1.0", false}, + {"1.1.1", "0.1.1", false}, + {"1.1.1", "1.0.0", false}, + {"1.1.1", "1.0.1", false}, + {"1.1.1", "1.1.0", false}, + {"1.1.1", "1.1.1", false}, + } { + actual, err := git.VersionLessThan(tc.v1, tc.v2) + require.NoError(t, err) + require.Equal(t, tc.expect, actual) + } +} diff --git a/internal/helper/security.go b/internal/helper/security.go index afbcced9d..e66186580 100644 --- a/internal/helper/security.go +++ b/internal/helper/security.go @@ -1,6 +1,7 @@ package helper import ( + "errors" "os" "regexp" "strings" @@ -24,3 +25,8 @@ var hostPattern = regexp.MustCompile(`(?i)([a-z][a-z0-9+\-.]*://)([a-z0-9\-._~%! func SanitizeString(str string) string { return hostPattern.ReplaceAllString(str, "$1[FILTERED]@$3$4") } + +// SanitizeError does the same thing as SanitizeString but for error types +func SanitizeError(err error) error { + return errors.New(SanitizeString(err.Error())) +} diff --git a/internal/logsanitizer/url.go b/internal/logsanitizer/url.go index ae56ddd83..8640570f5 100644 --- a/internal/logsanitizer/url.go +++ b/internal/logsanitizer/url.go @@ -8,7 +8,7 @@ import ( // Pattern taken from Regular Expressions Cookbook, slightly modified though // |Scheme |User |Named/IPv4 host|IPv6+ host -var hostPattern = regexp.MustCompile(`(?i)([a-z][a-z0-9+\-.]*://)([a-z0-9\-._~%!$&'()*+,;=:]+@)([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&'()*+,;=:]+\])`) +var hostPattern = regexp.MustCompile(`(?i)([a-z][a-z0-9+\-.]*://)?([a-z0-9\-._~%!$&'()*+,;=:]+@)([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&'()*+,;=:]+\])`) // URLSanitizerHook stores which gRPC methods to perform sanitization for. type URLSanitizerHook struct { diff --git a/internal/logsanitizer/url_test.go b/internal/logsanitizer/url_test.go index b3fc116fd..5b21d36f0 100644 --- a/internal/logsanitizer/url_test.go +++ b/internal/logsanitizer/url_test.go @@ -17,6 +17,7 @@ func TestUrlSanitizerHook(t *testing.T) { urlSanitizer.AddPossibleGrpcMethod( "UpdateRemoteMirror", "CreateRepositoryFromURL", + "FetchRemote", ) logger := log.New() @@ -58,6 +59,15 @@ func TestUrlSanitizerHook(t *testing.T) { expectedString: "asked for: https://[FILTERED]@gitlab.com/foo/bar", }, { + desc: "with URL without scheme output", + logFunc: func() { + logger.WithFields(log.Fields{ + "grpc.method": "FetchRemote", + }).Info("fatal: unable to look up foo:bar@non-existent.org (port 9418) (nodename nor servname provided, or not known") + }, + expectedString: "unable to look up [FILTERED]@non-existent.org (port 9418) (nodename nor servname provided, or not known", + }, + { desc: "with gRPC method not added to the list", logFunc: func() { logger.WithFields(log.Fields{ diff --git a/internal/featureflag/grpc_header.go b/internal/metadata/featureflag/grpc_header.go index e71f1cfe9..e71f1cfe9 100644 --- a/internal/featureflag/grpc_header.go +++ b/internal/metadata/featureflag/grpc_header.go diff --git a/internal/featureflag/grpc_header_test.go b/internal/metadata/featureflag/grpc_header_test.go index 8d18c6037..8d18c6037 100644 --- a/internal/featureflag/grpc_header_test.go +++ b/internal/metadata/featureflag/grpc_header_test.go diff --git a/internal/metadata/metadata.go b/internal/metadata/metadata.go new file mode 100644 index 000000000..e78ec0843 --- /dev/null +++ b/internal/metadata/metadata.go @@ -0,0 +1,18 @@ +package metadata + +import ( + "context" + + "google.golang.org/grpc/metadata" +) + +// GetValue returns the first value in the metadata slice based on a key +func GetValue(ctx context.Context, key string) string { + md, ok := metadata.FromIncomingContext(ctx) + if ok { + if values, ok := md[key]; ok && len(values) > 0 { + return values[0] + } + } + return "" +} diff --git a/internal/praefect/coordinator.go b/internal/praefect/coordinator.go index 2229019e3..9c6634a2e 100644 --- a/internal/praefect/coordinator.go +++ b/internal/praefect/coordinator.go @@ -5,6 +5,9 @@ import ( "fmt" "sync" + "gitlab.com/gitlab-org/gitaly/internal/praefect/protoregistry" + + "github.com/golang/protobuf/protoc-gen-go/descriptor" "github.com/mwitkow/grpc-proxy/proxy" "github.com/sirupsen/logrus" "gitlab.com/gitlab-org/gitaly/client" @@ -22,18 +25,28 @@ type Coordinator struct { storageLoc string - nodes map[string]*grpc.ClientConn + nodes map[string]*grpc.ClientConn + registry *protoregistry.Registry } // NewCoordinator returns a new Coordinator that utilizes the provided logger -func NewCoordinator(l *logrus.Logger, storageLoc string) *Coordinator { +func NewCoordinator(l *logrus.Logger, storageLoc string, fileDescriptors ...*descriptor.FileDescriptorProto) *Coordinator { + registry := protoregistry.New() + registry.RegisterFiles(fileDescriptors...) + return &Coordinator{ log: l, storageLoc: storageLoc, nodes: make(map[string]*grpc.ClientConn), + registry: registry, } } +// RegisterProtos allows coordinator to register new protos on the fly +func (c *Coordinator) RegisterProtos(protos ...*descriptor.FileDescriptorProto) error { + return c.registry.RegisterFiles(protos...) +} + // GetStorageNode returns the registered node for the given storage location func (c *Coordinator) GetStorageNode(storage string) (Node, error) { cc, ok := c.getConn(storage) diff --git a/internal/praefect/datastore.go b/internal/praefect/datastore.go index 1dfaa2dca..fb5b2daea 100644 --- a/internal/praefect/datastore.go +++ b/internal/praefect/datastore.go @@ -1,30 +1,58 @@ -/*Package praefect provides data models and datastore persistence abstractions -for tracking the state of repository replicas. - -See original design discussion: -https://gitlab.com/gitlab-org/gitaly/issues/1495 - - -*/ +// Package praefect provides data models and datastore persistence abstractions +// for tracking the state of repository replicas. +// +// See original design discussion: +// https://gitlab.com/gitlab-org/gitaly/issues/1495 package praefect import ( "errors" + "fmt" + "sort" "sync" - "time" "gitlab.com/gitlab-org/gitaly/internal/praefect/config" ) +// JobState is an enum that indicates the state of a job +type JobState int + +const ( + // JobStatePending is the initial job state when it is not yet ready to run + // and may indicate recovery from a failure prior to the ready-state + JobStatePending = iota + // JobStateReady indicates the job is now ready to proceed + JobStateReady + // JobStateInProgress indicates the job is being processed by a worker + JobStateInProgress + // JobStateComplete indicates the job is now complete + JobStateComplete + // JobStateCancelled indicates the job was cancelled. This can occur if the + // job is no longer relevant (e.g. a node is moved out of a shard) + JobStateCancelled +) + // ReplJob is an instance of a queued replication job. A replication job is // meant for updating the repository so that it is synced with the primary // copy. Scheduled indicates when a replication job should be performed. type ReplJob struct { - Target string // which storage location to replicate to? - Source Repository // source for replication - Scheduled time.Time + ID uint64 // autoincrement ID + Target string // which storage location to replicate to? + Source Repository // source for replication + State JobState } +// replJobs provides sort manipulation behavior +type replJobs []ReplJob + +func (rjs replJobs) Len() int { return len(rjs) } +func (rjs replJobs) Swap(i, j int) { rjs[i], rjs[j] = rjs[j], rjs[i] } + +// byJobID provides a comparator for sorting jobs +type byJobID struct{ replJobs } + +func (b byJobID) Less(i, j int) bool { return b.replJobs[i].ID < b.replJobs[j].ID } + // Datastore is a data persistence abstraction for all of Praefect's // persistence needs type Datastore interface { @@ -48,12 +76,17 @@ type ReplicasDatastore interface { // replication jobs from the datastore type ReplJobsDatastore interface { // GetReplJobs fetches a list of chronologically ordered replication - // jobs for the given storage replica - GetReplJobs(storage string, since time.Time, count int) ([]ReplJob, error) + // jobs for the given storage replica. The returned list will be at most + // count-length. + GetIncompleteJobs(storage string, count int) ([]ReplJob, error) - // PutReplJob will update or create a replication job for the specified repo - // on a specific storage node - PutReplJob(repo Repository, when time.Time) error + // CreateSecondaryJobs will create replication jobs for each secondary + // replica of a repository known to the datastore. A set of replication job + // ID's for the created jobs will be returned upon success. + CreateSecondaryReplJobs(source Repository) ([]uint64, error) + + // UpdateReplJob updates the state of an existing replication job + UpdateReplJob(jobID uint64, newState JobState) error } // shard is a set of primary and secondary storage replicas for a project @@ -62,45 +95,68 @@ type shard struct { secondaries []string } +type jobRecord struct { + relativePath string // project's relative path + target string + state JobState +} + // MemoryDatastore is a simple datastore that isn't persisted to disk. It is // only intended for early beta requirements and as a reference implementation // for the eventual SQL implementation type MemoryDatastore struct { - mu sync.RWMutex // locks entire datastore - replicas map[string]shard // projectHash keyed to shards - storageJobs map[string]map[string]time.Time // keyed by storage then project + replicas *struct { + sync.RWMutex + m map[string]shard // keyed by project's relative path + } + + jobs *struct { + sync.RWMutex + next uint64 + records map[uint64]jobRecord // all jobs indexed by ID + } } // NewMemoryDatastore returns an initialized in-memory datastore -func NewMemoryDatastore(cfg config.Config, immediate time.Time) *MemoryDatastore { +func NewMemoryDatastore(cfg config.Config) *MemoryDatastore { m := &MemoryDatastore{ - replicas: map[string]shard{}, - storageJobs: map[string]map[string]time.Time{}, + replicas: &struct { + sync.RWMutex + m map[string]shard + }{ + m: map[string]shard{}, + }, + jobs: &struct { + sync.RWMutex + next uint64 + records map[uint64]jobRecord // all jobs indexed by ID + }{ + next: 0, + records: map[uint64]jobRecord{}, + }, + } + + secondaries := make([]string, len(cfg.SecondaryServers)) + for i, server := range cfg.SecondaryServers { + secondaries[i] = server.Name } - for _, project := range cfg.Whitelist { + for _, relativePath := range cfg.Whitelist { // store the configuration file specified shard - m.replicas[project] = shard{ - primary: cfg.PrimaryServer.Name, - secondaries: func() []string { - servers := make([]string, len(cfg.SecondaryServers)) - for i, server := range cfg.SecondaryServers { - servers[i] = server.Name - } - return servers - }(), + m.replicas.m[relativePath] = shard{ + primary: cfg.PrimaryServer.Name, + secondaries: secondaries, } // initialize replication job queue to replicate all whitelisted repos // to every secondary server for _, secondary := range cfg.SecondaryServers { - projectJobs, ok := m.storageJobs[secondary.Name] - if !ok { - projectJobs = map[string]time.Time{} - m.storageJobs[secondary.Name] = projectJobs + m.jobs.next++ + m.jobs.records[m.jobs.next] = jobRecord{ + state: JobStateReady, + target: secondary.Name, + relativePath: relativePath, } - - projectJobs[project] = immediate } } @@ -118,20 +174,20 @@ func (md *MemoryDatastore) GetSecondaries(primary Repository) ([]string, error) // SetSecondaries will replace the set of replicas for a repository func (md *MemoryDatastore) SetSecondaries(primary Repository, secondaries []string) error { - md.mu.Lock() - md.replicas[primary.RelativePath] = shard{ + md.replicas.Lock() + md.replicas.m[primary.RelativePath] = shard{ primary: primary.Storage, secondaries: secondaries, } - md.mu.Unlock() + md.replicas.Unlock() return nil } func (md *MemoryDatastore) getShard(project string) (shard, bool) { - md.mu.RLock() - replicas, ok := md.replicas[project] - md.mu.RUnlock() + md.replicas.RLock() + replicas, ok := md.replicas.m[project] + md.replicas.RUnlock() return replicas, ok } @@ -140,81 +196,118 @@ func (md *MemoryDatastore) getShard(project string) (shard, bool) { // replicas var ErrSecondariesMissing = errors.New("repository missing secondary replicas") -// GetReplJobs will return any replications jobs for the specified storage -// since the specified scheduled time up to the specified result limit. -func (md *MemoryDatastore) GetReplJobs(storage string, since time.Time, count int) ([]ReplJob, error) { - md.mu.RLock() - jobs := md.storageJobs[storage] - md.mu.RUnlock() +// GetIncompleteJobs will return all incomplete replications jobs for the +// specified storage to the specified result limit. +func (md *MemoryDatastore) GetIncompleteJobs(storage string, count int) ([]ReplJob, error) { + md.jobs.RLock() + defer md.jobs.RUnlock() var results []ReplJob - for project, scheduled := range jobs { - if len(results) >= count { - break - } - - if scheduled.Before(since) { + for i, record := range md.jobs.records { + if record.state == JobStateComplete || + record.state == JobStateCancelled || + record.state == JobStateInProgress || + record.target != storage { continue } - shard, ok := md.getShard(project) - if !ok { - return nil, ErrSecondariesMissing + job, err := md.replJobFromRecord(i, record) + if err != nil { + return nil, err } - results = append(results, ReplJob{ - Source: Repository{ - RelativePath: project, - Storage: shard.primary, - }, - Target: storage, - Scheduled: scheduled, - }) + results = append(results, job) + if len(results) >= count { + break + } } + sort.Sort(byJobID{results}) + return results, nil } +// replJobFromRecord constructs a replication job from a record and by cross +// referencing the current shard for the project being replicated +func (md *MemoryDatastore) replJobFromRecord(jobID uint64, record jobRecord) (ReplJob, error) { + shard, ok := md.getShard(record.relativePath) + if !ok { + return ReplJob{}, fmt.Errorf( + "unable to find shard for project at relative path %q", + record.relativePath, + ) + } + + return ReplJob{ + ID: jobID, + Source: Repository{ + RelativePath: record.relativePath, + Storage: shard.primary, + }, + State: record.state, + Target: record.target, + }, nil +} + // ErrInvalidReplTarget indicates a target repository cannot be chosen because // it fails preconditions for being replicatable var ErrInvalidReplTarget = errors.New("target repository fails preconditions for replication") -// PutReplJob will create or update an existing replication job by scheduling -// it at the specified time -func (md *MemoryDatastore) PutReplJob(target Repository, scheduled time.Time) error { - md.mu.RLock() - storageProjectJobs, ok := md.storageJobs[target.Storage] - md.mu.RUnlock() +// CreateSecondaryReplJobs creates a replication job for each secondary that +// backs the specified repository. Upon success, the job IDs will be returned. +func (md *MemoryDatastore) CreateSecondaryReplJobs(source Repository) ([]uint64, error) { + md.jobs.Lock() + defer md.jobs.Unlock() - if !ok { - storageProjectJobs = map[string]time.Time{} + emptyRepo := Repository{} + if source == emptyRepo { + return nil, errors.New("invalid source repository") } - // target must be a secondary replica. By definition, a secondary replica - // must have a corresponding primary to replicate from - shard, ok := md.getShard(target.RelativePath) + shard, ok := md.getShard(source.RelativePath) if !ok { - return ErrInvalidReplTarget + return nil, fmt.Errorf( + "unable to find shard for project at relative path %q", + source.RelativePath, + ) } - found := false + var jobIDs []uint64 + for _, secondary := range shard.secondaries { - if secondary == target.Storage { - found = true - break + nextID := uint64(len(md.jobs.records) + 1) + + md.jobs.next++ + md.jobs.records[md.jobs.next] = jobRecord{ + target: secondary, + state: JobStatePending, + relativePath: source.RelativePath, } - } - if !found { - return ErrInvalidReplTarget + jobIDs = append(jobIDs, nextID) } - storageProjectJobs[target.RelativePath] = scheduled + return jobIDs, nil +} + +// UpdateReplJob updates an existing replication job's state +func (md *MemoryDatastore) UpdateReplJob(jobID uint64, newState JobState) error { + md.jobs.Lock() + defer md.jobs.Unlock() - md.mu.Lock() - md.storageJobs[target.Storage] = storageProjectJobs - md.mu.Unlock() + job, ok := md.jobs.records[jobID] + if !ok { + return fmt.Errorf("job ID %d does not exist", jobID) + } + + if newState == JobStateComplete || newState == JobStateCancelled { + // remove the job to avoid filling up memory with unneeded job records + delete(md.jobs.records, jobID) + return nil + } + job.state = newState + md.jobs.records[jobID] = job return nil } diff --git a/internal/praefect/datastore_memory_test.go b/internal/praefect/datastore_memory_test.go index 6fb60cb51..fe6a06943 100644 --- a/internal/praefect/datastore_memory_test.go +++ b/internal/praefect/datastore_memory_test.go @@ -2,7 +2,6 @@ package praefect_test import ( "testing" - "time" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/internal/praefect" @@ -13,41 +12,39 @@ import ( // populate itself with the correct replication jobs and shards when initialized // with a configuration file specifying the shard and whitelisted repositories. func TestMemoryDatastoreWhitelist(t *testing.T) { - var ( - immediate = time.Unix(1300000000, 0) - cfg = config.Config{ - PrimaryServer: &config.GitalyServer{ - Name: "default", + cfg := config.Config{ + PrimaryServer: &config.GitalyServer{ + Name: "default", + }, + SecondaryServers: []*config.GitalyServer{ + { + Name: "backup-1", }, - SecondaryServers: []*config.GitalyServer{ - { - Name: "backup-1", - }, - { - Name: "backup-2", - }, + { + Name: "backup-2", }, - Whitelist: []string{ - "abcd1234", - "5678efgh", - }, - } - mds praefect.Datastore = praefect.NewMemoryDatastore(cfg, immediate) + }, + Whitelist: []string{ + "abcd1234", + "5678efgh", + }, + } + + mds := praefect.NewMemoryDatastore(cfg) - repo1 = praefect.Repository{ - RelativePath: cfg.Whitelist[0], - Storage: cfg.PrimaryServer.Name, - } - repo2 = praefect.Repository{ - RelativePath: cfg.Whitelist[1], - Storage: cfg.PrimaryServer.Name, - } + repo1 := praefect.Repository{ + RelativePath: cfg.Whitelist[0], + Storage: cfg.PrimaryServer.Name, + } + repo2 := praefect.Repository{ + RelativePath: cfg.Whitelist[1], + Storage: cfg.PrimaryServer.Name, + } - expectSecondaries = []string{ - cfg.SecondaryServers[0].Name, - cfg.SecondaryServers[1].Name, - } - ) + expectSecondaries := []string{ + cfg.SecondaryServers[0].Name, + cfg.SecondaryServers[1].Name, + } for _, repo := range []praefect.Repository{repo1, repo2} { actualSecondaries, err := mds.GetSecondaries(repo) @@ -55,42 +52,44 @@ func TestMemoryDatastoreWhitelist(t *testing.T) { require.ElementsMatch(t, actualSecondaries, expectSecondaries) } - var ( - backup1 = cfg.SecondaryServers[0] - backup2 = cfg.SecondaryServers[1] + backup1 := cfg.SecondaryServers[0] + backup2 := cfg.SecondaryServers[1] - backup1ExpectedJobs = []praefect.ReplJob{ - praefect.ReplJob{ - Target: backup1.Name, - Source: repo1, - Scheduled: immediate, - }, - praefect.ReplJob{ - Target: backup1.Name, - Source: repo2, - Scheduled: immediate, - }, - } - backup2ExpectedJobs = []praefect.ReplJob{ - praefect.ReplJob{ - Target: backup2.Name, - Source: repo1, - Scheduled: immediate, - }, - praefect.ReplJob{ - Target: backup2.Name, - Source: repo2, - Scheduled: immediate, - }, - } - ) + backup1ExpectedJobs := []praefect.ReplJob{ + praefect.ReplJob{ + ID: 1, + Target: backup1.Name, + Source: repo1, + State: praefect.JobStateReady, + }, + praefect.ReplJob{ + ID: 3, + Target: backup1.Name, + Source: repo2, + State: praefect.JobStateReady, + }, + } + backup2ExpectedJobs := []praefect.ReplJob{ + praefect.ReplJob{ + ID: 2, + Target: backup2.Name, + Source: repo1, + State: praefect.JobStateReady, + }, + praefect.ReplJob{ + ID: 4, + Target: backup2.Name, + Source: repo2, + State: praefect.JobStateReady, + }, + } - backup1ActualJobs, err := mds.GetReplJobs(backup1.Name, time.Time{}, 10) + backup1ActualJobs, err := mds.GetIncompleteJobs(backup1.Name, 10) require.NoError(t, err) - require.ElementsMatch(t, backup1ActualJobs, backup1ExpectedJobs) + require.Equal(t, backup1ExpectedJobs, backup1ActualJobs) - backup2ActualJobs, err := mds.GetReplJobs(backup2.Name, time.Time{}, 10) + backup2ActualJobs, err := mds.GetIncompleteJobs(backup2.Name, 10) require.NoError(t, err) - require.ElementsMatch(t, backup2ActualJobs, backup2ExpectedJobs) + require.Equal(t, backup2ActualJobs, backup2ExpectedJobs) } diff --git a/internal/praefect/datastore_test.go b/internal/praefect/datastore_test.go index 608d0c4c9..b41f6736b 100644 --- a/internal/praefect/datastore_test.go +++ b/internal/praefect/datastore_test.go @@ -2,7 +2,6 @@ package praefect_test import ( "testing" - "time" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/internal/praefect" @@ -16,18 +15,10 @@ const ( ) var ( - time0 = time.Time{} - time1 = time.Unix(1, 0) - time2 = time.Unix(2, 0) - repo1Primary = praefect.Repository{ RelativePath: proj1, Storage: stor1, } - repo1Backup = praefect.Repository{ - RelativePath: proj1, - Storage: stor2, - } ) var operations = []struct { @@ -37,7 +28,7 @@ var operations = []struct { { desc: "query an empty datastore", opFn: func(t *testing.T, ds praefect.Datastore) { - jobs, err := ds.GetReplJobs(stor1, time1, 1) + jobs, err := ds.GetIncompleteJobs(stor1, 1) require.NoError(t, err) require.Len(t, jobs, 0) }, @@ -45,7 +36,7 @@ var operations = []struct { { desc: "insert first replication job before secondary mapped to primary", opFn: func(t *testing.T, ds praefect.Datastore) { - err := ds.PutReplJob(repo1Backup, time2) + _, err := ds.CreateSecondaryReplJobs(repo1Primary) require.Error(t, err, praefect.ErrInvalidReplTarget) }, }, @@ -59,37 +50,38 @@ var operations = []struct { { desc: "insert first replication job after secondary mapped to primary", opFn: func(t *testing.T, ds praefect.Datastore) { - err := ds.PutReplJob(repo1Backup, time2) + ids, err := ds.CreateSecondaryReplJobs(repo1Primary) require.NoError(t, err) + require.Equal(t, []uint64{1}, ids) }, }, { - desc: "fetch inserted replication job after primary mapped", + desc: "fetch inserted replication jobs after primary mapped", opFn: func(t *testing.T, ds praefect.Datastore) { - jobs, err := ds.GetReplJobs(stor2, time1, 10) - + jobs, err := ds.GetIncompleteJobs(stor2, 10) require.NoError(t, err) require.Len(t, jobs, 1) expectedJob := praefect.ReplJob{ - Source: repo1Primary, - Target: stor2, - Scheduled: time2, + ID: 1, + Source: repo1Primary, + Target: stor2, + State: praefect.JobStatePending, } - require.Equal(t, jobs[0], expectedJob) + require.Equal(t, expectedJob, jobs[0]) }, }, { desc: "mark replication job done", opFn: func(t *testing.T, ds praefect.Datastore) { - err := ds.PutReplJob(repo1Backup, time0) + err := ds.UpdateReplJob(1, praefect.JobStateComplete) require.NoError(t, err) }, }, { desc: "try fetching completed replication job", opFn: func(t *testing.T, ds praefect.Datastore) { - jobs, err := ds.GetReplJobs(stor1, time1, 1) + jobs, err := ds.GetIncompleteJobs(stor1, 1) require.NoError(t, err) require.Len(t, jobs, 0) }, @@ -98,7 +90,7 @@ var operations = []struct { // TODO: add SQL datastore flavor var flavors = map[string]func() praefect.Datastore{ - "in-memory-datastore": func() praefect.Datastore { return praefect.NewMemoryDatastore(config.Config{}, time.Now()) }, + "in-memory-datastore": func() praefect.Datastore { return praefect.NewMemoryDatastore(config.Config{}) }, } // TestDatastoreInterface will verify that every implementation or "flavor" of diff --git a/internal/praefect/mock/mock.proto b/internal/praefect/mock/mock.proto index 81d640058..aa6ec842a 100644 --- a/internal/praefect/mock/mock.proto +++ b/internal/praefect/mock/mock.proto @@ -16,6 +16,8 @@ message SimpleResponse { service SimpleService { // SimpleUnaryUnary is a simple unary request with unary response - rpc SimpleUnaryUnary(SimpleRequest) returns (SimpleResponse) {} + rpc SimpleUnaryUnary(SimpleRequest) returns (SimpleResponse) { + option (gitaly.op_type).op = ACCESSOR; + } } diff --git a/internal/praefect/protoregistry/protoregistry.go b/internal/praefect/protoregistry/protoregistry.go new file mode 100644 index 000000000..c02f25432 --- /dev/null +++ b/internal/praefect/protoregistry/protoregistry.go @@ -0,0 +1,146 @@ +package protoregistry + +import ( + "bytes" + "compress/gzip" + "fmt" + "io/ioutil" + "sync" + + "github.com/golang/protobuf/proto" + "github.com/golang/protobuf/protoc-gen-go/descriptor" + "github.com/sirupsen/logrus" + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" +) + +// GitalyProtoFileDescriptors is a slice of all gitaly registered file descriptors +var GitalyProtoFileDescriptors []*descriptor.FileDescriptorProto + +func init() { + for _, protoName := range gitalypb.GitalyProtos { + gz := proto.FileDescriptor(protoName) + fd, err := extractFile(gz) + if err != nil { + panic(err) + } + + GitalyProtoFileDescriptors = append(GitalyProtoFileDescriptors, fd) + } +} + +// OpType represents the operation type for a RPC method +type OpType int + +const ( + // OpUnknown = unknown operation type + OpUnknown = iota + // OpAccessor = accessor operation type (ready only) + OpAccessor + // OpMutator = mutator operation type (modifies a repository) + OpMutator +) + +// MethodInfo contains metadata about the RPC method +type MethodInfo struct { + Operation OpType +} + +// Registry contains info about RPC methods +type Registry struct { + sync.RWMutex + protos map[string]map[string]MethodInfo +} + +// New creates a new ProtoRegistry +func New() *Registry { + return &Registry{ + protos: make(map[string]map[string]MethodInfo), + } +} + +// RegisterFiles takes one or more descriptor.FileDescriptorProto and populates the registry with its info +func (pr *Registry) RegisterFiles(protos ...*descriptor.FileDescriptorProto) error { + pr.Lock() + defer pr.Unlock() + for _, p := range protos { + for _, serviceDescriptorProto := range p.GetService() { + for _, methodDescriptorProto := range serviceDescriptorProto.GetMethod() { + var mi MethodInfo + + options := methodDescriptorProto.GetOptions() + + methodDescriptorProto.GetInputType() + + if !proto.HasExtension(options, gitalypb.E_OpType) { + logrus.WithField("service", serviceDescriptorProto.GetName()). + WithField("method", serviceDescriptorProto.GetName()). + Warn("grpc method missing op_type") + continue + } + + ext, err := proto.GetExtension(options, gitalypb.E_OpType) + if err != nil { + return err + } + + opMsg, ok := ext.(*gitalypb.OperationMsg) + if !ok { + return fmt.Errorf("unable to obtain OperationMsg from %#v", ext) + } + + switch opCode := opMsg.GetOp(); opCode { + case gitalypb.OperationMsg_ACCESSOR: + mi.Operation = OpAccessor + case gitalypb.OperationMsg_MUTATOR: + mi.Operation = OpMutator + default: + mi.Operation = OpUnknown + } + + if _, ok := pr.protos[serviceDescriptorProto.GetName()]; !ok { + pr.protos[serviceDescriptorProto.GetName()] = make(map[string]MethodInfo) + } + pr.protos[serviceDescriptorProto.GetName()][methodDescriptorProto.GetName()] = mi + } + } + } + + return nil +} + +// LookupMethod looks up an MethodInfo by service and method name +func (pr *Registry) LookupMethod(service, method string) (MethodInfo, error) { + pr.RLock() + defer pr.RUnlock() + + if _, ok := pr.protos[service]; !ok { + return MethodInfo{}, fmt.Errorf("service not found: %v", service) + } + methodInfo, ok := pr.protos[service][method] + if !ok { + return MethodInfo{}, fmt.Errorf("method not found: %v", method) + } + return methodInfo, nil +} + +// extractFile extracts a FileDescriptorProto from a gzip'd buffer. +// https://github.com/golang/protobuf/blob/9eb2c01ac278a5d89ce4b2be68fe4500955d8179/descriptor/descriptor.go#L50 +func extractFile(gz []byte) (*descriptor.FileDescriptorProto, error) { + r, err := gzip.NewReader(bytes.NewReader(gz)) + if err != nil { + return nil, fmt.Errorf("failed to open gzip reader: %v", err) + } + defer r.Close() + + b, err := ioutil.ReadAll(r) + if err != nil { + return nil, fmt.Errorf("failed to uncompress descriptor: %v", err) + } + + fd := new(descriptor.FileDescriptorProto) + if err := proto.Unmarshal(b, fd); err != nil { + return nil, fmt.Errorf("malformed FileDescriptorProto: %v", err) + } + + return fd, nil +} diff --git a/internal/praefect/protoregistry/protoregistry_test.go b/internal/praefect/protoregistry/protoregistry_test.go new file mode 100644 index 000000000..56cffe255 --- /dev/null +++ b/internal/praefect/protoregistry/protoregistry_test.go @@ -0,0 +1,195 @@ +package protoregistry_test + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly/internal/praefect/protoregistry" +) + +func TestPopulatesProtoRegistry(t *testing.T) { + r := protoregistry.New() + require.NoError(t, r.RegisterFiles(protoregistry.GitalyProtoFileDescriptors...)) + + expectedResults := map[string]map[string]protoregistry.OpType{ + "BlobService": map[string]protoregistry.OpType{ + "GetBlob": protoregistry.OpAccessor, + "GetBlobs": protoregistry.OpAccessor, + "GetLFSPointers": protoregistry.OpAccessor, + "GetNewLFSPointers": protoregistry.OpAccessor, + "GetAllLFSPointers": protoregistry.OpAccessor, + }, + "CleanupService": map[string]protoregistry.OpType{ + "ApplyBfgObjectMap": protoregistry.OpMutator, + }, + "CommitService": map[string]protoregistry.OpType{ + "CommitIsAncestor": protoregistry.OpAccessor, + "TreeEntry": protoregistry.OpAccessor, + "CommitsBetween": protoregistry.OpAccessor, + "CountCommits": protoregistry.OpAccessor, + "CountDivergingCommits": protoregistry.OpAccessor, + "GetTreeEntries": protoregistry.OpAccessor, + "ListFiles": protoregistry.OpAccessor, + "FindCommit": protoregistry.OpAccessor, + "CommitStats": protoregistry.OpAccessor, + "FindAllCommits": protoregistry.OpAccessor, + "FindCommits": protoregistry.OpAccessor, + "CommitLanguages": protoregistry.OpAccessor, + "RawBlame": protoregistry.OpAccessor, + "LastCommitForPath": protoregistry.OpAccessor, + "ListLastCommitsForTree": protoregistry.OpAccessor, + "CommitsByMessage": protoregistry.OpAccessor, + "ListCommitsByOid": protoregistry.OpAccessor, + "FilterShasWithSignatures": protoregistry.OpAccessor, + }, + "ConflictsService": map[string]protoregistry.OpType{ + "ListConflictFiles": protoregistry.OpAccessor, + "ResolveConflicts": protoregistry.OpMutator, + }, + "DiffService": map[string]protoregistry.OpType{ + "CommitDiff": protoregistry.OpAccessor, + "CommitDelta": protoregistry.OpAccessor, + "CommitPatch": protoregistry.OpAccessor, + "RawDiff": protoregistry.OpAccessor, + "RawPatch": protoregistry.OpAccessor, + "DiffStats": protoregistry.OpAccessor, + }, + "NamespaceService": map[string]protoregistry.OpType{ + "AddNamespace": protoregistry.OpMutator, + "RemoveNamespace": protoregistry.OpMutator, + "RenameNamespace": protoregistry.OpMutator, + "NamespaceExists": protoregistry.OpAccessor, + }, + "ObjectPoolService": map[string]protoregistry.OpType{ + "CreateObjectPool": protoregistry.OpMutator, + "DeleteObjectPool": protoregistry.OpMutator, + "LinkRepositoryToObjectPool": protoregistry.OpMutator, + "UnlinkRepositoryFromObjectPool": protoregistry.OpMutator, + "ReduplicateRepository": protoregistry.OpMutator, + "DisconnectGitAlternates": protoregistry.OpMutator, + }, + "OperationService": map[string]protoregistry.OpType{ + "UserCreateBranch": protoregistry.OpMutator, + "UserUpdateBranch": protoregistry.OpMutator, + "UserDeleteBranch": protoregistry.OpMutator, + "UserCreateTag": protoregistry.OpMutator, + "UserDeleteTag": protoregistry.OpMutator, + "UserMergeToRef": protoregistry.OpMutator, + "UserMergeBranch": protoregistry.OpMutator, + "UserFFBranch": protoregistry.OpMutator, + "UserCherryPick": protoregistry.OpMutator, + "UserCommitFiles": protoregistry.OpMutator, + "UserRebase": protoregistry.OpMutator, + "UserRevert": protoregistry.OpMutator, + "UserSquash": protoregistry.OpMutator, + "UserApplyPatch": protoregistry.OpMutator, + "UserUpdateSubmodule": protoregistry.OpMutator, + }, + "RefService": map[string]protoregistry.OpType{ + "FindDefaultBranchName": protoregistry.OpAccessor, + "FindAllBranchNames": protoregistry.OpAccessor, + "FindAllTagNames": protoregistry.OpAccessor, + "FindRefName": protoregistry.OpAccessor, + "FindLocalBranches": protoregistry.OpAccessor, + "FindAllBranches": protoregistry.OpAccessor, + "FindAllTags": protoregistry.OpAccessor, + "FindAllRemoteBranches": protoregistry.OpAccessor, + "RefExists": protoregistry.OpAccessor, + "CreateBranch": protoregistry.OpMutator, + "DeleteBranch": protoregistry.OpMutator, + "FindBranch": protoregistry.OpAccessor, + "DeleteRefs": protoregistry.OpMutator, + "ListBranchNamesContainingCommit": protoregistry.OpAccessor, + "ListTagNamesContainingCommit": protoregistry.OpAccessor, + "GetTagMessages": protoregistry.OpAccessor, + "ListNewCommits": protoregistry.OpAccessor, + "ListNewBlobs": protoregistry.OpAccessor, + "PackRefs": protoregistry.OpMutator, + }, + "RemoteService": map[string]protoregistry.OpType{ + "AddRemote": protoregistry.OpMutator, + "FetchInternalRemote": protoregistry.OpMutator, + "RemoveRemote": protoregistry.OpMutator, + "UpdateRemoteMirror": protoregistry.OpMutator, + "FindRemoteRepository": protoregistry.OpAccessor, + "FindRemoteRootRef": protoregistry.OpAccessor, + "ListRemotes": protoregistry.OpAccessor, + }, + "RepositoryService": map[string]protoregistry.OpType{ + "RepositoryExists": protoregistry.OpAccessor, + "RepackIncremental": protoregistry.OpMutator, + "RepackFull": protoregistry.OpMutator, + "GarbageCollect": protoregistry.OpMutator, + "RepositorySize": protoregistry.OpMutator, + "ApplyGitattributes": protoregistry.OpMutator, + "FetchRemote": protoregistry.OpMutator, + "CreateRepository": protoregistry.OpMutator, + "GetArchive": protoregistry.OpMutator, + "HasLocalBranches": protoregistry.OpAccessor, + "FetchSourceBranch": protoregistry.OpMutator, + "Fsck": protoregistry.OpMutator, + "WriteRef": protoregistry.OpMutator, + "FindMergeBase": protoregistry.OpAccessor, + "CreateFork": protoregistry.OpMutator, + "IsRebaseInProgress": protoregistry.OpAccessor, + "IsSquashInProgress": protoregistry.OpAccessor, + "CreateRepositoryFromURL": protoregistry.OpMutator, + "CreateBundle": protoregistry.OpMutator, + "CreateRepositoryFromBundle": protoregistry.OpMutator, + "WriteConfig": protoregistry.OpMutator, + "SetConfig": protoregistry.OpMutator, + "DeleteConfig": protoregistry.OpMutator, + "FindLicense": protoregistry.OpAccessor, + "GetInfoAttributes": protoregistry.OpAccessor, + "CalculateChecksum": protoregistry.OpAccessor, + "Cleanup": protoregistry.OpMutator, + "GetSnapshot": protoregistry.OpAccessor, + "CreateRepositoryFromSnapshot": protoregistry.OpMutator, + "GetRawChanges": protoregistry.OpAccessor, + "SearchFilesByContent": protoregistry.OpAccessor, + "SearchFilesByName": protoregistry.OpAccessor, + "RestoreCustomHooks": protoregistry.OpMutator, + "BackupCustomHooks": protoregistry.OpAccessor, + "PreFetch": protoregistry.OpMutator, + "FetchHTTPRemote": protoregistry.OpMutator, + }, + "ServerService": map[string]protoregistry.OpType{ + "ServerInfo": protoregistry.OpAccessor, + }, + "SmartHTTPService": map[string]protoregistry.OpType{ + "InfoRefsUploadPack": protoregistry.OpAccessor, + "InfoRefsReceivePack": protoregistry.OpMutator, + "PostUploadPack": protoregistry.OpAccessor, + "PostReceivePack": protoregistry.OpMutator, + }, + "SSHService": map[string]protoregistry.OpType{ + "SSHUploadPack": protoregistry.OpAccessor, + "SSHReceivePack": protoregistry.OpMutator, + "SSHUploadArchive": protoregistry.OpMutator, + }, + "StorageService": map[string]protoregistry.OpType{ + "ListDirectories": protoregistry.OpMutator, + "DeleteAllRepositories": protoregistry.OpMutator, + }, + "WikiService": map[string]protoregistry.OpType{ + "WikiGetPageVersions": protoregistry.OpAccessor, + "WikiWritePage": protoregistry.OpMutator, + "WikiUpdatePage": protoregistry.OpMutator, + "WikiDeletePage": protoregistry.OpMutator, + "WikiFindPage": protoregistry.OpAccessor, + "WikiFindFile": protoregistry.OpAccessor, + "WikiGetAllPages": protoregistry.OpAccessor, + "WikiListPages": protoregistry.OpAccessor, + "WikiGetFormattedData": protoregistry.OpAccessor, + }, + } + + for serviceName, methods := range expectedResults { + for methodName, opType := range methods { + methodInfo, err := r.LookupMethod(serviceName, methodName) + require.NoError(t, err) + assert.Equalf(t, opType, methodInfo.Operation, "expect %s:%s to have the correct op type", serviceName, methodName) + } + } +} diff --git a/internal/praefect/replicator.go b/internal/praefect/replicator.go index 91871c759..723726567 100644 --- a/internal/praefect/replicator.go +++ b/internal/praefect/replicator.go @@ -82,24 +82,42 @@ func (r ReplMgr) ScheduleReplication(ctx context.Context, repo Repository) error return nil } - return r.jobsStore.PutReplJob(repo, time.Now()) + id, err := r.jobsStore.CreateSecondaryReplJobs(repo) + if err != nil { + return err + } + + r.log.Infof( + "replication manager for storage %q created replication job with ID %d", + r.storage, + id, + ) + + return nil } +const ( + jobFetchInterval = 10 * time.Millisecond + logWithReplJobID = "replication-job-ID" +) + // ProcessBacklog will process queued jobs. It will block while processing jobs. func (r ReplMgr) ProcessBacklog(ctx context.Context) error { since := time.Time{} for { r.log.Debugf("fetching replication jobs since %s", since) - jobs, err := r.jobsStore.GetReplJobs(r.storage, since, 10) + jobs, err := r.jobsStore.GetIncompleteJobs(r.storage, 10) if err != nil { return err } if len(jobs) == 0 { + r.log.Debugf("no jobs for %s, checking again in %s", r.storage, jobFetchInterval) + select { // TODO: exponential backoff when no queries are returned - case <-time.After(10 * time.Millisecond): + case <-time.After(jobFetchInterval): continue case <-ctx.Done(): @@ -111,18 +129,26 @@ func (r ReplMgr) ProcessBacklog(ctx context.Context) error { r.log.Debugf("fetched replication jobs: %#v", jobs) for _, job := range jobs { - r.log.Infof("processing replication job %#v", job) + r.log.WithField(logWithReplJobID, job.ID). + Infof("processing replication job %#v", job) node, err := r.coordinator.GetStorageNode(job.Target) if err != nil { return err } - err = r.replicator.Replicate(ctx, job.Source, node) - if err != nil { + if err := r.jobsStore.UpdateReplJob(job.ID, JobStateInProgress); err != nil { + return err + } + + if err := r.replicator.Replicate(ctx, job.Source, node); err != nil { return err } - since = job.Scheduled + r.log.WithField(logWithReplJobID, job.ID). + Info("completed replication") + if err := r.jobsStore.UpdateReplJob(job.ID, JobStateComplete); err != nil { + return err + } } } } diff --git a/internal/praefect/replicator_test.go b/internal/praefect/replicator_test.go index 8e156f0c4..1f1955e81 100644 --- a/internal/praefect/replicator_test.go +++ b/internal/praefect/replicator_test.go @@ -38,7 +38,7 @@ func TestReplicatorProcessJobsWhitelist(t *testing.T) { "edfg5678", }, } - datastore = praefect.NewMemoryDatastore(cfg, time.Now()) + datastore = praefect.NewMemoryDatastore(cfg) coordinator = praefect.NewCoordinator(logrus.New(), cfg.PrimaryServer.Name) resultsCh = make(chan result) replman = praefect.NewReplMgr( @@ -69,29 +69,22 @@ func TestReplicatorProcessJobsWhitelist(t *testing.T) { }() success := make(chan struct{}) - expectJobs := len(cfg.Whitelist) * len(cfg.SecondaryServers) go func() { // we expect one job per whitelisted repo with each backend server - for i := 0; i < expectJobs; i++ { + for i := 0; i < len(cfg.Whitelist); i++ { result := <-resultsCh assert.Contains(t, cfg.Whitelist, result.source.RelativePath) - assert.Contains(t, - []string{ - cfg.SecondaryServers[0].Name, - cfg.SecondaryServers[1].Name, - }, - result.target.Storage, - ) + assert.Equal(t, result.target.Storage, cfg.SecondaryServers[1].Name) + assert.Equal(t, result.source.Storage, cfg.PrimaryServer.Name) } cancel() + require.EqualError(t, <-errQ, context.Canceled.Error()) success <- struct{}{} }() - require.EqualError(t, <-errQ, context.Canceled.Error()) - select { case <-success: diff --git a/internal/praefect/server_test.go b/internal/praefect/server_test.go index 94f5dd289..5b9456206 100644 --- a/internal/praefect/server_test.go +++ b/internal/praefect/server_test.go @@ -51,7 +51,7 @@ func TestServerSimpleUnaryUnary(t *testing.T) { ) coordinator := praefect.NewCoordinator(logrus.New(), storagePrimary) - datastore := praefect.NewMemoryDatastore(config.Config{}, time.Now()) + datastore := praefect.NewMemoryDatastore(config.Config{}) replmgr := praefect.NewReplMgr( storagePrimary, logrus.New(), diff --git a/internal/rubyserver/rubyserver.go b/internal/rubyserver/rubyserver.go index 615444287..3b75b665e 100644 --- a/internal/rubyserver/rubyserver.go +++ b/internal/rubyserver/rubyserver.go @@ -120,6 +120,10 @@ func Start() (*Server, error) { env = append(env, "SENTRY_DSN="+dsn) } + if sentryEnvironment := cfg.Logging.SentryEnvironment; sentryEnvironment != "" { + env = append(env, "SENTRY_ENVIRONMENT="+sentryEnvironment) + } + gitalyRuby := path.Join(cfg.Ruby.Dir, "bin/gitaly-ruby") numWorkers := cfg.Ruby.NumWorkers diff --git a/internal/service/cleanup/apply_bfg_object_map.go b/internal/service/cleanup/apply_bfg_object_map.go index 57f431353..37093e40e 100644 --- a/internal/service/cleanup/apply_bfg_object_map.go +++ b/internal/service/cleanup/apply_bfg_object_map.go @@ -35,7 +35,7 @@ func (s *server) ApplyBfgObjectMap(stream gitalypb.CleanupService_ApplyBfgObject // It doesn't matter if new internal references are added after this RPC // starts running - they shouldn't point to the objects removed by the BFG - cleaner, err := internalrefs.NewCleaner(ctx, repo) + cleaner, err := internalrefs.NewCleaner(ctx, repo, nil) if err != nil { return status.Errorf(codes.Internal, err.Error()) } diff --git a/internal/service/cleanup/apply_bfg_object_map_stream.go b/internal/service/cleanup/apply_bfg_object_map_stream.go new file mode 100644 index 000000000..594a509a0 --- /dev/null +++ b/internal/service/cleanup/apply_bfg_object_map_stream.go @@ -0,0 +1,108 @@ +package cleanup + +import ( + "fmt" + "io" + + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + + "gitlab.com/gitlab-org/gitaly/internal/helper" + "gitlab.com/gitlab-org/gitaly/internal/helper/chunk" + "gitlab.com/gitlab-org/gitaly/internal/service/cleanup/internalrefs" + "gitlab.com/gitlab-org/gitaly/internal/service/cleanup/notifier" + "gitlab.com/gitlab-org/gitaly/streamio" +) + +type bfgStreamReader struct { + firstRequest *gitalypb.ApplyBfgObjectMapStreamRequest + + server gitalypb.CleanupService_ApplyBfgObjectMapStreamServer +} + +type bfgStreamWriter struct { + entries []*gitalypb.ApplyBfgObjectMapStreamResponse_Entry + + server gitalypb.CleanupService_ApplyBfgObjectMapStreamServer +} + +func (s *server) ApplyBfgObjectMapStream(server gitalypb.CleanupService_ApplyBfgObjectMapStreamServer) error { + firstRequest, err := server.Recv() + if err != nil { + return helper.ErrInternal(err) + } + + if err := validateFirstRequest(firstRequest); err != nil { + return helper.ErrInvalidArgument(err) + } + + ctx := server.Context() + repo := firstRequest.GetRepository() + reader := &bfgStreamReader{firstRequest: firstRequest, server: server} + chunker := chunk.New(&bfgStreamWriter{server: server}) + + notifier, err := notifier.New(ctx, repo, chunker) + if err != nil { + return helper.ErrInternal(err) + } + + // It doesn't matter if new internal references are added after this RPC + // starts running - they shouldn't point to the objects removed by the BFG + cleaner, err := internalrefs.NewCleaner(ctx, repo, notifier.Notify) + if err != nil { + return helper.ErrInternal(err) + } + + if err := cleaner.ApplyObjectMap(reader.streamReader()); err != nil { + if invalidErr, ok := err.(internalrefs.ErrInvalidObjectMap); ok { + return helper.ErrInvalidArgument(invalidErr) + } + + return helper.ErrInternal(err) + } + + return helper.ErrInternal(chunker.Flush()) +} + +func validateFirstRequest(req *gitalypb.ApplyBfgObjectMapStreamRequest) error { + if repo := req.GetRepository(); repo == nil { + return fmt.Errorf("first request: repository not set") + } + + return nil +} + +func (r *bfgStreamReader) readOne() ([]byte, error) { + if r.firstRequest != nil { + data := r.firstRequest.GetObjectMap() + r.firstRequest = nil + return data, nil + } + + req, err := r.server.Recv() + if err != nil { + return nil, err + } + + return req.GetObjectMap(), nil +} + +func (r *bfgStreamReader) streamReader() io.Reader { + return streamio.NewReader(r.readOne) +} + +func (w *bfgStreamWriter) Append(it chunk.Item) { + w.entries = append( + w.entries, + it.(*gitalypb.ApplyBfgObjectMapStreamResponse_Entry), + ) +} + +func (w *bfgStreamWriter) Reset() { + w.entries = nil +} + +func (w *bfgStreamWriter) Send() error { + msg := &gitalypb.ApplyBfgObjectMapStreamResponse{Entries: w.entries} + + return w.server.Send(msg) +} diff --git a/internal/service/cleanup/apply_bfg_object_map_stream_test.go b/internal/service/cleanup/apply_bfg_object_map_stream_test.go new file mode 100644 index 000000000..e4c916330 --- /dev/null +++ b/internal/service/cleanup/apply_bfg_object_map_stream_test.go @@ -0,0 +1,133 @@ +package cleanup + +import ( + "context" + "fmt" + "io" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "google.golang.org/grpc/codes" + + "gitlab.com/gitlab-org/gitaly/internal/git" + "gitlab.com/gitlab-org/gitaly/internal/git/log" + "gitlab.com/gitlab-org/gitaly/internal/testhelper" +) + +func TestApplyBfgObjectMapStreamSuccess(t *testing.T) { + server, serverSocketPath := runCleanupServiceServer(t) + defer server.Stop() + + client, conn := newCleanupServiceClient(t, serverSocketPath) + defer conn.Close() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + ctx, cancel := testhelper.Context() + defer cancel() + + headCommit, err := log.GetCommit(ctx, testRepo, "HEAD") + require.NoError(t, err) + + // A known blob: the CHANGELOG in the test repository + blobID := "53855584db773c3df5b5f61f72974cb298822fbb" + + // A known tag: v1.0.0 + tagID := "f4e6814c3e4e7a0de82a9e7cd20c626cc963a2f8" + + // Create some refs pointing to HEAD + for _, ref := range []string{ + "refs/environments/1", "refs/keep-around/1", "refs/merge-requests/1", + "refs/heads/_keep", "refs/tags/_keep", "refs/notes/_keep", + } { + testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "update-ref", ref, headCommit.Id) + } + + objectMapData := fmt.Sprintf( + strings.Repeat("%s %s\n", 4), + headCommit.Id, headCommit.Id, + git.NullSHA, blobID, + git.NullSHA, tagID, + git.NullSHA, git.NullSHA, + ) + + entries, err := doStreamingRequest(ctx, t, testRepo, client, objectMapData) + require.NoError(t, err) + + // Ensure that the internal refs are gone, but the others still exist + refs := testhelper.GetRepositoryRefs(t, testRepoPath) + assert.NotContains(t, refs, "refs/environments/1") + assert.NotContains(t, refs, "refs/keep-around/1") + assert.NotContains(t, refs, "refs/merge-requests/1") + assert.Contains(t, refs, "refs/heads/_keep") + assert.Contains(t, refs, "refs/tags/_keep") + assert.Contains(t, refs, "refs/notes/_keep") + + // Ensure that the returned entry is correct + require.Len(t, entries, 4, "wrong number of entries returned") + requireEntry(t, entries[0], headCommit.Id, headCommit.Id, gitalypb.ObjectType_COMMIT) + requireEntry(t, entries[1], git.NullSHA, blobID, gitalypb.ObjectType_BLOB) + requireEntry(t, entries[2], git.NullSHA, tagID, gitalypb.ObjectType_TAG) + requireEntry(t, entries[3], git.NullSHA, git.NullSHA, gitalypb.ObjectType_UNKNOWN) +} + +func requireEntry(t *testing.T, entry *gitalypb.ApplyBfgObjectMapStreamResponse_Entry, oldOid, newOid string, objectType gitalypb.ObjectType) { + require.Equal(t, objectType, entry.Type) + require.Equal(t, oldOid, entry.OldOid) + require.Equal(t, newOid, entry.NewOid) +} + +func TestApplyBfgObjectMapStreamFailsOnInvalidInput(t *testing.T) { + server, serverSocketPath := runCleanupServiceServer(t) + defer server.Stop() + + client, conn := newCleanupServiceClient(t, serverSocketPath) + defer conn.Close() + + testRepo, _, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + ctx, cancel := testhelper.Context() + defer cancel() + + entries, err := doStreamingRequest(ctx, t, testRepo, client, "invalid-data here as you can see") + require.Empty(t, entries) + testhelper.RequireGrpcError(t, err, codes.InvalidArgument) +} + +func doStreamingRequest(ctx context.Context, t *testing.T, repo *gitalypb.Repository, client gitalypb.CleanupServiceClient, objectMap string) ([]*gitalypb.ApplyBfgObjectMapStreamResponse_Entry, error) { + // Split the data across multiple requests + parts := strings.SplitN(objectMap, " ", 2) + req1 := &gitalypb.ApplyBfgObjectMapStreamRequest{ + Repository: repo, + ObjectMap: []byte(parts[0] + " "), + } + req2 := &gitalypb.ApplyBfgObjectMapStreamRequest{ObjectMap: []byte(parts[1])} + + server, err := client.ApplyBfgObjectMapStream(ctx) + require.NoError(t, err) + require.NoError(t, server.Send(req1)) + require.NoError(t, server.Send(req2)) + require.NoError(t, server.CloseSend()) + + // receive all responses in a loop + var entries []*gitalypb.ApplyBfgObjectMapStreamResponse_Entry + for { + rsp, err := server.Recv() + if rsp != nil { + entries = append(entries, rsp.GetEntries()...) + } + if err == io.EOF { + break + } + if err != nil { + return nil, err + } + } + + return entries, nil +} diff --git a/internal/service/cleanup/apply_bfg_object_map_test.go b/internal/service/cleanup/apply_bfg_object_map_test.go index 587a26cc7..9d1e087ff 100644 --- a/internal/service/cleanup/apply_bfg_object_map_test.go +++ b/internal/service/cleanup/apply_bfg_object_map_test.go @@ -52,7 +52,7 @@ func TestApplyBfgObjectMapSuccess(t *testing.T) { assert.Contains(t, refs, "refs/notes/_keep") } -func TestFailsOnInvalidInput(t *testing.T) { +func TestApplyBfgObjectMapFailsOnInvalidInput(t *testing.T) { server, serverSocketPath := runCleanupServiceServer(t) defer server.Stop() diff --git a/internal/service/cleanup/internalrefs/cleaner.go b/internal/service/cleanup/internalrefs/cleaner.go index e5fe152a9..80943d7cb 100644 --- a/internal/service/cleanup/internalrefs/cleaner.go +++ b/internal/service/cleanup/internalrefs/cleaner.go @@ -22,11 +22,17 @@ var internalRefs = []string{ "refs/merge-requests/", } +// A ForEachFunc can be called for every entry in the BFG object map file that +// the cleaner is processing. Returning an error will stop the cleaner before +// it has processed the entry in question +type ForEachFunc func(oldOID, newOID string, isInternalRef bool) error + // Cleaner is responsible for updating the internal references in a repository // as specified by a BFG object map. Currently, internal references pointing to // a commit that has been rewritten will simply be removed. type Cleaner struct { - ctx context.Context + ctx context.Context + forEach ForEachFunc // Map of SHA -> reference names table map[string][]string @@ -39,7 +45,7 @@ type ErrInvalidObjectMap error // NewCleaner builds a new instance of Cleaner, which is used to apply a BFG // object map to a repository. -func NewCleaner(ctx context.Context, repo *gitalypb.Repository) (*Cleaner, error) { +func NewCleaner(ctx context.Context, repo *gitalypb.Repository, forEach ForEachFunc) (*Cleaner, error) { table, err := buildLookupTable(ctx, repo) if err != nil { return nil, err @@ -50,7 +56,7 @@ func NewCleaner(ctx context.Context, repo *gitalypb.Repository) (*Cleaner, error return nil, err } - return &Cleaner{ctx: ctx, table: table, updater: updater}, nil + return &Cleaner{ctx: ctx, table: table, updater: updater, forEach: forEach}, nil } // ApplyObjectMap processes a BFG object map file, removing any internal @@ -70,7 +76,7 @@ func (c *Cleaner) ApplyObjectMap(reader io.Reader) error { return ErrInvalidObjectMap(fmt.Errorf("object map invalid at line %d", i)) } - if err := c.removeRefsFor(shas[0]); err != nil { + if err := c.processEntry(shas[0], shas[1]); err != nil { return err } } @@ -78,14 +84,21 @@ func (c *Cleaner) ApplyObjectMap(reader io.Reader) error { return c.updater.Wait() } -func (c *Cleaner) removeRefsFor(sha string) error { - refs, isPresent := c.table[sha] +func (c *Cleaner) processEntry(oldSHA, newSHA string) error { + refs, isPresent := c.table[oldSHA] + + if c.forEach != nil { + if err := c.forEach(oldSHA, newSHA, isPresent); err != nil { + return err + } + } + if !isPresent { return nil } grpc_logrus.Extract(c.ctx).WithFields(log.Fields{ - "sha": sha, + "sha": oldSHA, "refs": refs, }).Info("removing internal references") diff --git a/internal/service/cleanup/notifier/notifier.go b/internal/service/cleanup/notifier/notifier.go new file mode 100644 index 000000000..e73317eef --- /dev/null +++ b/internal/service/cleanup/notifier/notifier.go @@ -0,0 +1,64 @@ +package notifier + +import ( + "context" + + "gitlab.com/gitlab-org/gitaly/internal/git/catfile" + "gitlab.com/gitlab-org/gitaly/internal/helper/chunk" + + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" +) + +// Notifier sends messages stating that an OID has been rewritten, looking +// up the type of the OID if necessary. It is not safe for concurrent use +type Notifier struct { + catfile *catfile.Batch + chunker *chunk.Chunker +} + +// New instantiates a new Notifier +func New(ctx context.Context, repo *gitalypb.Repository, chunker *chunk.Chunker) (*Notifier, error) { + catfile, err := catfile.New(ctx, repo) + if err != nil { + return nil, err + } + + return &Notifier{catfile: catfile, chunker: chunker}, nil +} + +// Notify builds a new message and sends it to the chunker +func (n *Notifier) Notify(oldOid, newOid string, isInternalRef bool) error { + objectType := n.lookupType(newOid, isInternalRef) + + entry := &gitalypb.ApplyBfgObjectMapStreamResponse_Entry{ + Type: objectType, + OldOid: oldOid, + NewOid: newOid, + } + + return n.chunker.Send(entry) +} + +func (n *Notifier) lookupType(oid string, isInternalRef bool) gitalypb.ObjectType { + if isInternalRef { + return gitalypb.ObjectType_COMMIT + } + + info, err := n.catfile.Info(oid) + if err != nil { + return gitalypb.ObjectType_UNKNOWN + } + + switch info.Type { + case "commit": + return gitalypb.ObjectType_COMMIT + case "blob": + return gitalypb.ObjectType_BLOB + case "tree": + return gitalypb.ObjectType_TREE + case "tag": + return gitalypb.ObjectType_TAG + default: + return gitalypb.ObjectType_UNKNOWN + } +} diff --git a/internal/service/cleanup/server.go b/internal/service/cleanup/server.go index c5bcb6d8f..b1bd4e0f5 100644 --- a/internal/service/cleanup/server.go +++ b/internal/service/cleanup/server.go @@ -1,7 +1,10 @@ package cleanup import ( + "context" + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/helper" ) type server struct{} @@ -10,3 +13,7 @@ type server struct{} func NewServer() gitalypb.CleanupServiceServer { return &server{} } + +func (s *server) CloseSession(context.Context, *gitalypb.CloseSessionRequest) (*gitalypb.CloseSessionResponse, error) { + return nil, helper.Unimplemented +} diff --git a/internal/service/commit/find_commit.go b/internal/service/commit/find_commit.go index 902788055..dd67becda 100644 --- a/internal/service/commit/find_commit.go +++ b/internal/service/commit/find_commit.go @@ -3,17 +3,17 @@ package commit import ( "context" + "gitlab.com/gitlab-org/gitaly/internal/helper" + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/internal/git" "gitlab.com/gitlab-org/gitaly/internal/git/log" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" ) func (s *server) FindCommit(ctx context.Context, in *gitalypb.FindCommitRequest) (*gitalypb.FindCommitResponse, error) { revision := in.GetRevision() if err := git.ValidateRevision(revision); err != nil { - return nil, status.Errorf(codes.InvalidArgument, "FindCommit: revision: %v", err) + return nil, helper.ErrInvalidArgument(err) } repo := in.GetRepository() diff --git a/internal/service/commit/find_commit_test.go b/internal/service/commit/find_commit_test.go index d5935beb5..ab64427c7 100644 --- a/internal/service/commit/find_commit_test.go +++ b/internal/service/commit/find_commit_test.go @@ -1,6 +1,7 @@ package commit import ( + "bufio" "context" "io/ioutil" "strings" @@ -9,10 +10,14 @@ import ( "github.com/golang/protobuf/ptypes/timestamp" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/git" + "gitlab.com/gitlab-org/gitaly/internal/git/catfile" "gitlab.com/gitlab-org/gitaly/internal/git/log" "gitlab.com/gitlab-org/gitaly/internal/helper" + "gitlab.com/gitlab-org/gitaly/internal/metadata/featureflag" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "google.golang.org/grpc/codes" + "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" ) @@ -286,3 +291,102 @@ func TestFailedFindCommitRequest(t *testing.T) { }) } } + +func BenchmarkFindCommitNoCache(b *testing.B) { + benchmarkFindCommit(false, b) +} +func BenchmarkFindCommitWithCache(b *testing.B) { + benchmarkFindCommit(true, b) +} + +func benchmarkFindCommit(withCache bool, b *testing.B) { + ctx, cancel := testhelper.Context() + defer cancel() + + server, serverSocketPath := startTestServices(b) + defer server.Stop() + + client, conn := newCommitServiceClient(b, serverSocketPath) + defer conn.Close() + + testRepo, _, cleanupFn := testhelper.NewTestRepo(b) + defer cleanupFn() + + // get a list of revisions + + logCmd, err := git.Command(ctx, testRepo, "log", "--format=format:%H") + require.NoError(b, err) + + logScanner := bufio.NewScanner(logCmd) + + var revisions []string + for logScanner.Scan() { + revisions = append(revisions, logScanner.Text()) + } + + require.NoError(b, logCmd.Wait()) + + defer catfile.ExpireAll() + + for i := 0; i < b.N; i++ { + revision := revisions[b.N%len(revisions)] + if withCache { + md := metadata.New(map[string]string{ + featureflag.HeaderKey(catfile.CacheFeatureFlagKey): "true", + "gitaly-session-id": "abc123", + }) + + ctx = metadata.NewOutgoingContext(ctx, md) + } + _, err := client.FindCommit(ctx, &gitalypb.FindCommitRequest{ + Repository: testRepo, + Revision: []byte(revision), + }) + require.NoError(b, err) + } +} + +func TestFindCommitWithCache(t *testing.T) { + ctx, cancel := testhelper.Context() + defer cancel() + + server, serverSocketPath := startTestServices(t) + defer server.Stop() + + client, conn := newCommitServiceClient(t, serverSocketPath) + defer conn.Close() + + testRepo, _, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + // get a list of revisions + + logCmd, err := git.Command(ctx, testRepo, "log", "--format=format:%H") + require.NoError(t, err) + + logScanner := bufio.NewScanner(logCmd) + + var revisions []string + for logScanner.Scan() { + revisions = append(revisions, logScanner.Text()) + } + + require.NoError(t, logCmd.Wait()) + + defer catfile.ExpireAll() + + for i := 0; i < 10; i++ { + revision := revisions[i%len(revisions)] + md := metadata.New(map[string]string{ + featureflag.HeaderKey(catfile.CacheFeatureFlagKey): "true", + "gitaly-session-id": "abc123", + }) + + ctx = metadata.NewOutgoingContext(ctx, md) + _, err := client.FindCommit(ctx, &gitalypb.FindCommitRequest{ + Repository: testRepo, + Revision: []byte(revision), + }) + require.NoError(t, err) + } +} diff --git a/internal/service/commit/find_commits.go b/internal/service/commit/find_commits.go index 8d4967873..489f11240 100644 --- a/internal/service/commit/find_commits.go +++ b/internal/service/commit/find_commits.go @@ -51,6 +51,7 @@ func findCommits(ctx context.Context, req *gitalypb.FindCommitsRequest, stream g if err != nil { return fmt.Errorf("error when creating git log command: %v", err) } + batch, err := catfile.New(ctx, req.GetRepository()) if err != nil { return fmt.Errorf("creating catfile: %v", err) diff --git a/internal/service/commit/list_last_commits_for_tree.go b/internal/service/commit/list_last_commits_for_tree.go index 60d9c0952..b82947b48 100644 --- a/internal/service/commit/list_last_commits_for_tree.go +++ b/internal/service/commit/list_last_commits_for_tree.go @@ -14,6 +14,13 @@ import ( "google.golang.org/grpc/status" ) +const ( + // InvalidUTF8PathPlaceholder is a placeholder we return in the Path field since + // returning non utf8 data will result in a marshalling error + // Once we deprecate the Path field, we can remove this + InvalidUTF8PathPlaceholder = "ENCODING ERROR gitaly#1547" +) + var ( maxNumStatBatchSize = 10 ) @@ -56,8 +63,8 @@ func (s *server) ListLastCommitsForTree(in *gitalypb.ListLastCommitsForTreeReque } commitForTree := &gitalypb.ListLastCommitsForTreeResponse_CommitForTree{ - Path: entry.Path, - Commit: commit, + PathBytes: []byte(entry.Path), + Commit: commit, } batch = append(batch, commitForTree) diff --git a/internal/service/commit/list_last_commits_for_tree_test.go b/internal/service/commit/list_last_commits_for_tree_test.go index d3d2cd3e0..7ff1707de 100644 --- a/internal/service/commit/list_last_commits_for_tree_test.go +++ b/internal/service/commit/list_last_commits_for_tree_test.go @@ -1,12 +1,18 @@ package commit import ( + "bytes" "context" + "fmt" "io" + "strings" "testing" + "unicode/utf8" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/helper/text" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "google.golang.org/grpc/codes" ) @@ -196,7 +202,7 @@ func TestSuccessfulListLastCommitsForTreeRequest(t *testing.T) { for _, fetchedCommit := range commits { expectedInfo := testCase.info[counter] - require.Equal(t, string(expectedInfo.path), string(fetchedCommit.Path)) + require.Equal(t, expectedInfo.path, fetchedCommit.PathBytes) require.Equal(t, expectedInfo.id, fetchedCommit.Commit.Id) counter++ @@ -291,3 +297,57 @@ func TestFailedListLastCommitsForTreeRequest(t *testing.T) { }) } } + +func TestNonUtf8ListLastCommitsForTreeRequest(t *testing.T) { + server, serverSockerPath := startTestServices(t) + defer server.Stop() + + client, conn := newCommitServiceClient(t, serverSockerPath) + defer conn.Close() + ctx, cancel := testhelper.Context() + defer cancel() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + // This is an arbitrary blob known to exist in the test repository + const blobID = "c60514b6d3d6bf4bec1030f70026e34dfbd69ad5" + + nonUTF8Filename := "hello\x80world" + require.False(t, utf8.ValidString(nonUTF8Filename)) + + mktreeIn := strings.NewReader(fmt.Sprintf("100644 blob %s\t%s", blobID, nonUTF8Filename)) + treeID := text.ChompBytes(testhelper.MustRunCommand(t, mktreeIn, "git", "-C", testRepoPath, "mktree")) + + commitID := text.ChompBytes(testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "commit-tree", treeID, "-m", "commit for non-utf8 path")) + + request := &gitalypb.ListLastCommitsForTreeRequest{ + Repository: testRepo, + Revision: string(commitID), + Limit: 100, + Offset: 0, + } + + stream, err := client.ListLastCommitsForTree(ctx, request) + require.NoError(t, err) + + var nonUTF8FilenameFound bool + for { + fetchedCommits, err := stream.Recv() + if err == io.EOF { + break + } + + require.NoError(t, err) + + commits := fetchedCommits.GetCommits() + + for _, fetchedCommit := range commits { + if bytes.Equal(fetchedCommit.PathBytes, []byte(nonUTF8Filename)) { + nonUTF8FilenameFound = true + } + } + } + + assert.True(t, nonUTF8FilenameFound) +} diff --git a/internal/service/commit/testhelper_test.go b/internal/service/commit/testhelper_test.go index caa3a29b9..861b2e89c 100644 --- a/internal/service/commit/testhelper_test.go +++ b/internal/service/commit/testhelper_test.go @@ -40,7 +40,7 @@ func testMain(m *testing.M) int { return m.Run() } -func startTestServices(t *testing.T) (*grpc.Server, string) { +func startTestServices(t testing.TB) (*grpc.Server, string) { server := testhelper.NewTestGrpcServer(t, nil, nil) serverSocketPath := testhelper.GetTemporaryGitalySocketFileName() @@ -56,7 +56,7 @@ func startTestServices(t *testing.T) (*grpc.Server, string) { return server, "unix://" + serverSocketPath } -func newCommitServiceClient(t *testing.T, serviceSocketPath string) (gitalypb.CommitServiceClient, *grpc.ClientConn) { +func newCommitServiceClient(t testing.TB, serviceSocketPath string) (gitalypb.CommitServiceClient, *grpc.ClientConn) { connOpts := []grpc.DialOption{ grpc.WithInsecure(), } diff --git a/internal/service/objectpool/alternates.go b/internal/service/objectpool/alternates.go new file mode 100644 index 000000000..09d2a3453 --- /dev/null +++ b/internal/service/objectpool/alternates.go @@ -0,0 +1,241 @@ +package objectpool + +import ( + "context" + "crypto/rand" + "errors" + "fmt" + "io" + "io/ioutil" + "os" + "path/filepath" + "sort" + "strings" + "time" + + grpc_logrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus" + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/git" + "gitlab.com/gitlab-org/gitaly/internal/helper" +) + +// DisconnectGitAlternates is a slightly dangerous RPC. It optimistically +// hard-links all alternate objects we might need, and then temporarily +// removes (renames) objects/info/alternates and runs 'git fsck'. If we +// are unlucky that leaves the repository in a broken state during 'git +// fsck'. If we are very unlucky and Gitaly crashes, the repository stays +// in a broken state until an administrator intervenes and restores the +// backed-up copy of objects/info/alternates. +func (s *server) DisconnectGitAlternates(ctx context.Context, req *gitalypb.DisconnectGitAlternatesRequest) (*gitalypb.DisconnectGitAlternatesResponse, error) { + repo := req.Repository + + if repo == nil { + return nil, helper.ErrInvalidArgument(errors.New("no repository")) + } + + if err := disconnectAlternates(ctx, repo); err != nil { + return nil, helper.ErrInternal(err) + } + + return &gitalypb.DisconnectGitAlternatesResponse{}, nil +} + +func disconnectAlternates(ctx context.Context, repo *gitalypb.Repository) error { + repoPath, err := helper.GetRepoPath(repo) + if err != nil { + return err + } + + altFile, err := git.InfoAlternatesPath(repo) + if err != nil { + return err + } + + altContents, err := ioutil.ReadFile(altFile) + if err != nil { + if os.IsNotExist(err) { + return nil + } + + return err + } + + altDir := strings.TrimSpace(string(altContents)) + if strings.Contains(altDir, "\n") { + return fmt.Errorf("found multiple lines in %s", altFile) + } + + if !filepath.IsAbs(altDir) { + altDir = filepath.Join(repoPath, "objects", altDir) + } + + backupFile, err := newBackupFile(altFile) + if err != nil { + return err + } + + stat, err := os.Stat(altDir) + if err != nil { + if os.IsNotExist(err) { + return nil + } + + return err + } + + if !stat.IsDir() { + // The existing alternates file is bogus. There can be no objects on the + // other end that the current repository relies on, so we could just + // delete objects/info/alternates. To be a little more careful, instead of + // deleting it we rename it. + return os.Rename(altFile, backupFile) + } + + objectFiles, err := findObjectFiles(altDir) + if err != nil { + return err + } + + for _, path := range objectFiles { + source := filepath.Join(altDir, path) + target := filepath.Join(repoPath, "objects", path) + + if err := os.MkdirAll(filepath.Dir(target), 0755); err != nil { + return err + } + + if err := os.Link(source, target); err != nil { + if os.IsExist(err) { + continue + } + + return err + } + } + + return removeAlternatesIfOk(ctx, repo, altFile, backupFile) +} + +func newBackupFile(altFile string) (string, error) { + randSuffix := make([]byte, 6) + if _, err := io.ReadFull(rand.Reader, randSuffix); err != nil { + return "", err + } + + return fmt.Sprintf("%s.%d.%x", altFile, time.Now().Unix(), randSuffix), nil +} + +func findObjectFiles(altDir string) ([]string, error) { + var objectFiles []string + if walkErr := filepath.Walk(altDir, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + + rel, err := filepath.Rel(altDir, path) + if err != nil { + return err + } + + if strings.HasPrefix(rel, "info/") { + return nil + } + + if info.IsDir() { + return nil + } + + objectFiles = append(objectFiles, rel) + + return nil + }); walkErr != nil { + return nil, walkErr + } + + sort.Sort(objectPaths(objectFiles)) + + return objectFiles, nil +} + +type fsckError struct{ error } + +func (fe *fsckError) Error() string { + return fmt.Sprintf("git fsck error while disconnected: %v", fe.error) +} + +// removeAlternatesIfOk is dangerous. We optimistically temporarily +// rename objects/info/alternates, and run `git fsck` to see if the +// resulting repo is connected. If this fails we restore +// objects/info/alternates. If the repo is not connected for whatever +// reason, then until this function returns, probably **all concurrent +// RPC calls to the repo will fail**. Also, if Gitaly crashes in the +// middle of this function, the repo is left in a broken state. We do +// take care to leave a copy of the alternates file, so that it can be +// manually restored by an administrator if needed. +func removeAlternatesIfOk(ctx context.Context, repo *gitalypb.Repository, altFile, backupFile string) error { + if err := os.Rename(altFile, backupFile); err != nil { + return err + } + + rollback := true + defer func() { + if !rollback { + return + } + + logger := grpc_logrus.Extract(ctx) + + // If we would do a os.Rename, and then someone else comes and clobbers + // our file, it's gone forever. This trick with os.Link and os.Rename + // is equivalent to "cp $backupFile $altFile", meaning backupFile is + // preserved for possible forensic use. + tmp := backupFile + ".2" + + if err := os.Link(backupFile, tmp); err != nil { + logger.WithError(err).Error("copy backup alternates file") + return + } + + if err := os.Rename(tmp, altFile); err != nil { + logger.WithError(err).Error("restore backup alternates file") + } + }() + + cmd, err := git.Command(ctx, repo, "fsck", "--connectivity-only") + if err != nil { + return err + } + + if err := cmd.Wait(); err != nil { + return &fsckError{error: err} + } + + rollback = false + return nil +} + +type objectPaths []string + +func (o objectPaths) Len() int { return len(o) } +func (o objectPaths) Swap(i, j int) { o[i], o[j] = o[j], o[i] } + +func (o objectPaths) Less(i, j int) bool { + return objectPriority(o[i]) <= objectPriority(o[j]) +} + +// Based on pack_copy_priority in git/tmp-objdir.c +func objectPriority(name string) int { + if !strings.HasPrefix(name, "pack") { + return 0 + } + if strings.HasSuffix(name, ".keep") { + return 1 + } + if strings.HasSuffix(name, ".pack") { + return 2 + } + if strings.HasSuffix(name, ".idx") { + return 3 + } + return 4 +} diff --git a/internal/service/objectpool/alternates_test.go b/internal/service/objectpool/alternates_test.go new file mode 100644 index 000000000..a8269f037 --- /dev/null +++ b/internal/service/objectpool/alternates_test.go @@ -0,0 +1,148 @@ +package objectpool + +import ( + "fmt" + "io/ioutil" + "os" + "testing" + + "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/git" + "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" + "gitlab.com/gitlab-org/gitaly/internal/testhelper" +) + +func TestDisconnectGitAlternates(t *testing.T) { + server, serverSocketPath := runObjectPoolServer(t) + defer server.Stop() + + client, conn := newObjectPoolClient(t, serverSocketPath) + defer conn.Close() + + ctx, cancel := testhelper.Context() + defer cancel() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + pool, err := objectpool.NewObjectPool(testRepo.GetStorageName(), testhelper.NewTestObjectPoolName(t)) + require.NoError(t, err) + defer pool.Remove(ctx) + + require.NoError(t, pool.Create(ctx, testRepo)) + require.NoError(t, pool.Link(ctx, testRepo)) + testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "gc") + + existingObjectID := "55bc176024cfa3baaceb71db584c7e5df900ea65" + + // Corrupt the repository to check that existingObjectID can no longer be found + altPath, err := git.InfoAlternatesPath(testRepo) + require.NoError(t, err, "find info/alternates") + require.NoError(t, os.RemoveAll(altPath)) + + cmd, err := git.Command(ctx, testRepo, "cat-file", "-e", existingObjectID) + require.NoError(t, err) + require.Error(t, cmd.Wait(), "expect cat-file to fail because object cannot be found") + + require.NoError(t, pool.Link(ctx, testRepo)) + require.FileExists(t, altPath, "objects/info/alternates should be back") + + // At this point we know that the repository has access to + // existingObjectID, but only if objects/info/alternates is in place. + + _, err = client.DisconnectGitAlternates(ctx, &gitalypb.DisconnectGitAlternatesRequest{Repository: testRepo}) + require.NoError(t, err, "call DisconnectGitAlternates") + + // Check that the object can still be found, even though + // objects/info/alternates is gone. This is the purpose of + // DisconnectGitAlternates. + testhelper.AssertFileNotExists(t, altPath) + testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "cat-file", "-e", existingObjectID) +} + +func TestDisconnectGitAlternatesNoAlternates(t *testing.T) { + server, serverSocketPath := runObjectPoolServer(t) + defer server.Stop() + + client, conn := newObjectPoolClient(t, serverSocketPath) + defer conn.Close() + + ctx, cancel := testhelper.Context() + defer cancel() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + altPath, err := git.InfoAlternatesPath(testRepo) + require.NoError(t, err, "find info/alternates") + testhelper.AssertFileNotExists(t, altPath) + + _, err = client.DisconnectGitAlternates(ctx, &gitalypb.DisconnectGitAlternatesRequest{Repository: testRepo}) + require.NoError(t, err, "call DisconnectGitAlternates on repository without alternates") + + testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "fsck") +} + +func TestDisconnectGitAlternatesMultipleAlternates(t *testing.T) { + server, serverSocketPath := runObjectPoolServer(t) + defer server.Stop() + + client, conn := newObjectPoolClient(t, serverSocketPath) + defer conn.Close() + + ctx, cancel := testhelper.Context() + defer cancel() + + testRepo, _, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + altPath, err := git.InfoAlternatesPath(testRepo) + require.NoError(t, err, "find info/alternates") + + altContent := "/foo/bar\n/qux/baz\n" + require.NoError(t, ioutil.WriteFile(altPath, []byte(altContent), 0644)) + + _, err = client.DisconnectGitAlternates(ctx, &gitalypb.DisconnectGitAlternatesRequest{Repository: testRepo}) + require.Error(t, err, "call DisconnectGitAlternates on repository with multiple alternates") + + contentAfterRPC, err := ioutil.ReadFile(altPath) + require.NoError(t, err, "read back objects/info/alternates") + require.Equal(t, altContent, string(contentAfterRPC), "objects/info/alternates content should not have changed") +} + +func TestRemoveAlternatesIfOk(t *testing.T) { + ctx, cancel := testhelper.Context() + defer cancel() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + altPath, err := git.InfoAlternatesPath(testRepo) + require.NoError(t, err, "find info/alternates") + altContent := "/var/empty\n" + require.NoError(t, ioutil.WriteFile(altPath, []byte(altContent), 0644), "write alternates file") + + // Intentionally break the repository, so that 'git fsck' will fail later. + testhelper.MustRunCommand(t, nil, "sh", "-c", fmt.Sprintf("rm %s/objects/pack/*.pack", testRepoPath)) + + altBackup := altPath + ".backup" + + err = removeAlternatesIfOk(ctx, testRepo, altPath, altBackup) + require.Error(t, err, "removeAlternatesIfOk should fail") + require.IsType(t, &fsckError{}, err, "error must be because of fsck") + + // We expect objects/info/alternates to have been restored when + // removeAlternatesIfOk returned. + assertAlternates(t, altPath, altContent) + + // We expect the backup alternates file to still exist. + assertAlternates(t, altBackup, altContent) +} + +func assertAlternates(t *testing.T, altPath string, altContent string) { + actualContent, err := ioutil.ReadFile(altPath) + require.NoError(t, err, "read %s after fsck failure", altPath) + + require.Equal(t, altContent, string(actualContent), "%s content after fsck failure", altPath) +} diff --git a/internal/service/objectpool/fetch_into_object_pool.go b/internal/service/objectpool/fetch_into_object_pool.go new file mode 100644 index 000000000..c331a5da4 --- /dev/null +++ b/internal/service/objectpool/fetch_into_object_pool.go @@ -0,0 +1,47 @@ +package objectpool + +import ( + "context" + "errors" + "fmt" + + "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" + "gitlab.com/gitlab-org/gitaly/internal/helper" + + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" +) + +func (s *server) FetchIntoObjectPool(ctx context.Context, req *gitalypb.FetchIntoObjectPoolRequest) (*gitalypb.FetchIntoObjectPoolResponse, error) { + if err := validateFetchIntoObjectPoolRequest(req); err != nil { + return nil, helper.ErrInvalidArgument(err) + } + + objectPool, err := objectpool.FromProto(req.GetObjectPool()) + if err != nil { + return nil, helper.ErrInvalidArgument(fmt.Errorf("object pool invalid: %v", err)) + } + + if err := objectPool.FetchFromOrigin(ctx, req.GetOrigin()); err != nil { + return nil, helper.ErrInternal(err) + } + + return &gitalypb.FetchIntoObjectPoolResponse{}, nil +} + +func validateFetchIntoObjectPoolRequest(req *gitalypb.FetchIntoObjectPoolRequest) error { + if req.GetOrigin() == nil { + return errors.New("origin is empty") + } + + if req.GetObjectPool() == nil { + return errors.New("object pool is empty") + } + + originRepository, poolRepository := req.GetOrigin(), req.GetObjectPool().GetRepository() + + if originRepository.GetStorageName() != poolRepository.GetStorageName() { + return errors.New("origin has different storage than object pool") + } + + return nil +} diff --git a/internal/service/objectpool/fetch_into_object_pool_test.go b/internal/service/objectpool/fetch_into_object_pool_test.go new file mode 100644 index 000000000..4a40d13bb --- /dev/null +++ b/internal/service/objectpool/fetch_into_object_pool_test.go @@ -0,0 +1,122 @@ +package objectpool + +import ( + "path" + "path/filepath" + "testing" + + "google.golang.org/grpc/codes" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/git/objectpool" + "gitlab.com/gitlab-org/gitaly/internal/testhelper" +) + +func TestFetchIntoObjectPool_Success(t *testing.T) { + server, serverSocketPath := runObjectPoolServer(t) + defer server.Stop() + + client, conn := newObjectPoolClient(t, serverSocketPath) + defer conn.Close() + + ctx, cancel := testhelper.Context() + defer cancel() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + repoCommit := testhelper.CreateCommit(t, testRepoPath, t.Name(), &testhelper.CreateCommitOpts{Message: t.Name()}) + + pool, err := objectpool.NewObjectPool("default", t.Name()) + require.NoError(t, err) + defer pool.Remove(ctx) + + req := &gitalypb.FetchIntoObjectPoolRequest{ + ObjectPool: pool.ToProto(), + Origin: testRepo, + Repack: true, + } + + _, err = client.FetchIntoObjectPool(ctx, req) + require.NoError(t, err) + + require.True(t, pool.IsValid(), "ensure underlying repository is valid") + + // No problems + testhelper.MustRunCommand(t, nil, "git", "-C", pool.FullPath(), "fsck") + + packFiles, err := filepath.Glob(path.Join(pool.FullPath(), "objects", "pack", "pack-*.pack")) + require.NoError(t, err) + require.Len(t, packFiles, 1, "ensure commits got packed") + + packContents := testhelper.MustRunCommand(t, nil, "git", "-C", pool.FullPath(), "verify-pack", "-v", packFiles[0]) + require.Contains(t, string(packContents), string(repoCommit)) + + _, err = client.FetchIntoObjectPool(ctx, req) + require.NoError(t, err, "calling FetchIntoObjectPool twice should be OK") + require.True(t, pool.IsValid(), "ensure that pool is valid") +} + +func TestFetchIntoObjectPool_Failure(t *testing.T) { + server, serverSocketPath := runObjectPoolServer(t) + defer server.Stop() + + client, conn := newObjectPoolClient(t, serverSocketPath) + defer conn.Close() + + ctx, cancel := testhelper.Context() + defer cancel() + + testRepo, _, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + pool, err := objectpool.NewObjectPool("default", t.Name()) + require.NoError(t, err) + defer pool.Remove(ctx) + + poolWithDifferentStorage := pool.ToProto() + poolWithDifferentStorage.Repository.StorageName = "some other storage" + + testCases := []struct { + description string + request *gitalypb.FetchIntoObjectPoolRequest + code codes.Code + errMsg string + }{ + { + description: "empty origin", + request: &gitalypb.FetchIntoObjectPoolRequest{ + ObjectPool: pool.ToProto(), + }, + code: codes.InvalidArgument, + errMsg: "origin is empty", + }, + { + description: "empty pool", + request: &gitalypb.FetchIntoObjectPoolRequest{ + Origin: testRepo, + }, + code: codes.InvalidArgument, + errMsg: "object pool is empty", + }, + { + description: "origin and pool do not share the same storage", + request: &gitalypb.FetchIntoObjectPoolRequest{ + Origin: testRepo, + ObjectPool: poolWithDifferentStorage, + }, + code: codes.InvalidArgument, + errMsg: "origin has different storage than object pool", + }, + } + for _, tc := range testCases { + t.Run(tc.description, func(t *testing.T) { + _, err := client.FetchIntoObjectPool(ctx, tc.request) + require.Error(t, err) + testhelper.RequireGrpcError(t, err, tc.code) + assert.Contains(t, err.Error(), tc.errMsg) + }) + } +} diff --git a/internal/service/objectpool/link.go b/internal/service/objectpool/link.go index 37e64ad07..3b97a1ee7 100644 --- a/internal/service/objectpool/link.go +++ b/internal/service/objectpool/link.go @@ -21,8 +21,12 @@ func (s *server) LinkRepositoryToObjectPool(ctx context.Context, req *gitalypb.L return nil, err } + if err := pool.Init(ctx); err != nil { + return nil, helper.ErrInternal(err) + } + if err := pool.Link(ctx, req.GetRepository()); err != nil { - return nil, status.Error(codes.Internal, helper.SanitizeString(err.Error())) + return nil, helper.ErrInternal(helper.SanitizeError(err)) } return &gitalypb.LinkRepositoryToObjectPoolResponse{}, nil diff --git a/internal/service/objectpool/link_test.go b/internal/service/objectpool/link_test.go index 870fd27fe..28bf3e9f6 100644 --- a/internal/service/objectpool/link_test.go +++ b/internal/service/objectpool/link_test.go @@ -5,6 +5,9 @@ import ( "path/filepath" "testing" + "gitlab.com/gitlab-org/gitaly/internal/helper" + + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/internal/git/log" @@ -155,6 +158,38 @@ func TestLinkNoClobber(t *testing.T) { require.Equal(t, contentBefore, string(contentAfter), "contents of existing alternates file should not have changed") } +func TestLinkNoPool(t *testing.T) { + server, serverSocketPath := runObjectPoolServer(t) + defer server.Stop() + + client, conn := newObjectPoolClient(t, serverSocketPath) + defer conn.Close() + + ctx, cancel := testhelper.Context() + defer cancel() + + testRepo, _, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + pool, err := objectpool.NewObjectPool(testRepo.GetStorageName(), t.Name()) + require.NoError(t, err) + // intentionally do not call pool.Create + defer pool.Remove(ctx) + + request := &gitalypb.LinkRepositoryToObjectPoolRequest{ + Repository: testRepo, + ObjectPool: pool.ToProto(), + } + + _, err = client.LinkRepositoryToObjectPool(ctx, request) + require.NoError(t, err) + + poolRepoPath, err := helper.GetRepoPath(pool) + require.NoError(t, err) + + assert.True(t, helper.IsGitDirectory(poolRepoPath)) +} + func TestUnlink(t *testing.T) { server, serverSocketPath := runObjectPoolServer(t) defer server.Stop() diff --git a/internal/service/operations/merge_test.go b/internal/service/operations/merge_test.go index a682e4ff3..44e875b65 100644 --- a/internal/service/operations/merge_test.go +++ b/internal/service/operations/merge_test.go @@ -2,7 +2,6 @@ package operations import ( "fmt" - "io" "io/ioutil" "os" "os/exec" @@ -77,7 +76,7 @@ func TestSuccessfulMerge(t *testing.T) { secondResponse, err := mergeBidi.Recv() require.NoError(t, err, "receive second response") - err = consumeEOF(func() error { + err = testhelper.ReceiveEOFWithTimeout(func() error { _, err = mergeBidi.Recv() return err }) @@ -267,7 +266,7 @@ func TestFailedMergeDueToHooks(t *testing.T) { require.NoError(t, err, "receive second response") require.Contains(t, secondResponse.PreReceiveError, "failure") - err = consumeEOF(func() error { + err = testhelper.ReceiveEOFWithTimeout(func() error { _, err = mergeBidi.Recv() return err }) @@ -693,26 +692,6 @@ func prepareMergeBranch(t *testing.T, testRepoPath string) { require.NoError(t, err, "set up branch to merge into: %s", out) } -func consumeEOF(errorFunc func() error) error { - errCh := make(chan error, 1) - go func() { - errCh <- errorFunc() - }() - - var err error - select { - case err = <-errCh: - case <-time.After(1 * time.Second): - err = fmt.Errorf("timed out waiting for EOF") - } - - if err == io.EOF { - err = nil - } - - return err -} - func deleteBranch(testRepoPath, branchName string) { exec.Command("git", "-C", testRepoPath, "branch", "-D", branchName).Run() } diff --git a/internal/service/operations/rebase.go b/internal/service/operations/rebase.go index abd012396..acc77b277 100644 --- a/internal/service/operations/rebase.go +++ b/internal/service/operations/rebase.go @@ -1,15 +1,115 @@ package operations +//lint:file-ignore SA1019 due to planned removal in issue https://gitlab.com/gitlab-org/gitaly/issues/1628 + import ( "context" - "fmt" + "errors" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/helper" "gitlab.com/gitlab-org/gitaly/internal/rubyserver" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) +func (s *server) UserRebaseConfirmable(stream gitalypb.OperationService_UserRebaseConfirmableServer) error { + firstRequest, err := stream.Recv() + if err != nil { + return err + } + + header := firstRequest.GetHeader() + if header == nil { + return helper.ErrInvalidArgument(errors.New("UserRebaseConfirmable: empty UserRebaseConfirmableRequest.Header")) + } + + if err := validateUserRebaseConfirmableHeader(header); err != nil { + return helper.ErrInvalidArgumentf("UserRebaseConfirmable: %v", err) + } + + if err := s.userRebaseConfirmable(stream, firstRequest, header.GetRepository()); err != nil { + return helper.ErrInternal(err) + } + + return nil +} + +func (s *server) userRebaseConfirmable(stream gitalypb.OperationService_UserRebaseConfirmableServer, firstRequest *gitalypb.UserRebaseConfirmableRequest, repository *gitalypb.Repository) error { + ctx := stream.Context() + client, err := s.OperationServiceClient(ctx) + if err != nil { + return err + } + + clientCtx, err := rubyserver.SetHeaders(ctx, repository) + if err != nil { + return err + } + + rubyStream, err := client.UserRebaseConfirmable(clientCtx) + if err != nil { + return err + } + + if err := rubyStream.Send(firstRequest); err != nil { + return err + } + + return rubyserver.ProxyBidi( + func() error { + request, err := stream.Recv() + if err != nil { + return err + } + + return rubyStream.Send(request) + }, + rubyStream, + func() error { + response, err := rubyStream.Recv() + if err != nil { + return err + } + + return stream.Send(response) + }, + ) +} + +func validateUserRebaseConfirmableHeader(header *gitalypb.UserRebaseConfirmableRequest_Header) error { + if header.GetRepository() == nil { + return errors.New("empty Repository") + } + + if header.GetUser() == nil { + return errors.New("empty User") + } + + if header.GetRebaseId() == "" { + return errors.New("empty RebaseId") + } + + if header.GetBranch() == nil { + return errors.New("empty Branch") + } + + if header.GetBranchSha() == "" { + return errors.New("empty BranchSha") + } + + if header.GetRemoteRepository() == nil { + return errors.New("empty RemoteRepository") + } + + if header.GetRemoteBranch() == nil { + return errors.New("empty RemoteBranch") + } + + return nil +} + +// DEPRECATED: https://gitlab.com/gitlab-org/gitaly/issues/1628 func (s *server) UserRebase(ctx context.Context, req *gitalypb.UserRebaseRequest) (*gitalypb.UserRebaseResponse, error) { if err := validateUserRebaseRequest(req); err != nil { return nil, status.Errorf(codes.InvalidArgument, "UserRebase: %v", err) @@ -28,33 +128,34 @@ func (s *server) UserRebase(ctx context.Context, req *gitalypb.UserRebaseRequest return client.UserRebase(clientCtx, req) } +// DEPRECATED: https://gitlab.com/gitlab-org/gitaly/issues/1628 func validateUserRebaseRequest(req *gitalypb.UserRebaseRequest) error { if req.GetRepository() == nil { - return fmt.Errorf("empty Repository") + return errors.New("empty Repository") } if req.GetUser() == nil { - return fmt.Errorf("empty User") + return errors.New("empty User") } if req.GetRebaseId() == "" { - return fmt.Errorf("empty RebaseId") + return errors.New("empty RebaseId") } if req.GetBranch() == nil { - return fmt.Errorf("empty Branch") + return errors.New("empty Branch") } if req.GetBranchSha() == "" { - return fmt.Errorf("empty BranchSha") + return errors.New("empty BranchSha") } if req.GetRemoteRepository() == nil { - return fmt.Errorf("empty RemoteRepository") + return errors.New("empty RemoteRepository") } if req.GetRemoteBranch() == nil { - return fmt.Errorf("empty RemoteBranch") + return errors.New("empty RemoteBranch") } return nil diff --git a/internal/service/operations/rebase_test.go b/internal/service/operations/rebase_test.go index 0ac8eb44f..fc9f06f92 100644 --- a/internal/service/operations/rebase_test.go +++ b/internal/service/operations/rebase_test.go @@ -1,19 +1,34 @@ package operations_test +//lint:file-ignore SA1019 due to planned removal in issue https://gitlab.com/gitlab-org/gitaly/issues/1628 + import ( + "errors" "fmt" "strings" "testing" + "time" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + gitlog "gitlab.com/gitlab-org/gitaly/internal/git/log" "gitlab.com/gitlab-org/gitaly/internal/service/operations" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "google.golang.org/grpc/codes" "google.golang.org/grpc/metadata" ) -func TestSuccessfulUserRebaseRequest(t *testing.T) { +var ( + rebaseUser = &gitalypb.User{ + Name: []byte("Ahmad Sherif"), + Email: []byte("ahmad@gitlab.com"), + GlId: "user-123", + } + + branchName = "many_files" +) + +func TestSuccessfulUserRebaseConfirmableRequest(t *testing.T) { ctxOuter, cancel := testhelper.Context() defer cancel() @@ -29,19 +44,245 @@ func TestSuccessfulUserRebaseRequest(t *testing.T) { testRepoCopy, _, cleanup := testhelper.NewTestRepo(t) defer cleanup() - branchName := "many_files" - branchSha := string(testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "rev-parse", branchName)) - branchSha = strings.TrimSpace(branchSha) + branchSha := getBranchSha(t, testRepoPath, branchName) - user := &gitalypb.User{ - Name: []byte("Ahmad Sherif"), - Email: []byte("ahmad@gitlab.com"), - GlId: "user-123", + md := testhelper.GitalyServersMetadata(t, serverSocketPath) + ctx := metadata.NewOutgoingContext(ctxOuter, md) + + rebaseStream, err := client.UserRebaseConfirmable(ctx) + require.NoError(t, err) + + headerRequest := buildHeaderRequest(testRepo, rebaseUser, "1", branchName, branchSha, testRepoCopy, "master") + require.NoError(t, rebaseStream.Send(headerRequest), "send header") + + firstResponse, err := rebaseStream.Recv() + require.NoError(t, err, "receive first response") + + _, err = gitlog.GetCommit(ctx, testRepo, firstResponse.GetRebaseSha()) + require.NoError(t, err, "look up git commit before rebase is applied") + + applyRequest := buildApplyRequest(true) + require.NoError(t, rebaseStream.Send(applyRequest), "apply rebase") + + secondResponse, err := rebaseStream.Recv() + require.NoError(t, err, "receive second response") + + err = testhelper.ReceiveEOFWithTimeout(func() error { + _, err = rebaseStream.Recv() + return err + }) + require.NoError(t, err, "consume EOF") + + newBranchSha := getBranchSha(t, testRepoPath, branchName) + + require.NotEqual(t, newBranchSha, branchSha) + require.Equal(t, newBranchSha, firstResponse.GetRebaseSha()) + + require.True(t, secondResponse.GetRebaseApplied(), "the second rebase is applied") +} + +func TestFailedRebaseUserRebaseConfirmableRequestDueToInvalidHeader(t *testing.T) { + ctxOuter, cancel := testhelper.Context() + defer cancel() + + server, serverSocketPath := runFullServer(t) + defer server.Stop() + + client, conn := operations.NewOperationClient(t, serverSocketPath) + defer conn.Close() + + testRepo, testRepoPath, cleanup := testhelper.NewTestRepo(t) + defer cleanup() + + testRepoCopy, _, cleanup := testhelper.NewTestRepo(t) + defer cleanup() + + branchSha := getBranchSha(t, testRepoPath, branchName) + + md := testhelper.GitalyServersMetadata(t, serverSocketPath) + ctx := metadata.NewOutgoingContext(ctxOuter, md) + + testCases := []struct { + desc string + req *gitalypb.UserRebaseConfirmableRequest + }{ + { + desc: "empty Repository", + req: buildHeaderRequest(nil, rebaseUser, "1", branchName, branchSha, testRepoCopy, "master"), + }, + { + desc: "empty User", + req: buildHeaderRequest(testRepo, nil, "1", branchName, branchSha, testRepoCopy, "master"), + }, + { + desc: "empty Branch", + req: buildHeaderRequest(testRepo, rebaseUser, "1", "", branchSha, testRepoCopy, "master"), + }, + { + desc: "empty BranchSha", + req: buildHeaderRequest(testRepo, rebaseUser, "1", branchName, "", testRepoCopy, "master"), + }, + { + desc: "empty RemoteRepository", + req: buildHeaderRequest(testRepo, rebaseUser, "1", branchName, branchSha, nil, "master"), + }, + { + desc: "empty RemoteBranch", + req: buildHeaderRequest(testRepo, rebaseUser, "1", branchName, branchSha, testRepoCopy, ""), + }, + } + + for _, tc := range testCases { + t.Run(tc.desc, func(t *testing.T) { + rebaseStream, err := client.UserRebaseConfirmable(ctx) + require.NoError(t, err) + + require.NoError(t, rebaseStream.Send(tc.req), "send request header") + + firstResponse, err := rebaseStream.Recv() + testhelper.RequireGrpcError(t, err, codes.InvalidArgument) + require.Contains(t, err.Error(), tc.desc) + require.Empty(t, firstResponse.GetRebaseSha(), "rebase sha on first response") + }) + } +} + +func TestAbortedUserRebaseConfirmable(t *testing.T) { + ctxOuter, cancel := testhelper.Context() + defer cancel() + + server, serverSocketPath := runFullServer(t) + defer server.Stop() + + client, conn := operations.NewOperationClient(t, serverSocketPath) + defer conn.Close() + + md := testhelper.GitalyServersMetadata(t, serverSocketPath) + ctx := metadata.NewOutgoingContext(ctxOuter, md) + + testCases := []struct { + req *gitalypb.UserRebaseConfirmableRequest + closeSend bool + desc string + code codes.Code + }{ + {req: &gitalypb.UserRebaseConfirmableRequest{}, desc: "empty request, don't close", code: codes.FailedPrecondition}, + {req: &gitalypb.UserRebaseConfirmableRequest{}, closeSend: true, desc: "empty request and close", code: codes.FailedPrecondition}, + {closeSend: true, desc: "no request just close", code: codes.Internal}, + } + + for i, tc := range testCases { + t.Run(tc.desc, func(t *testing.T) { + testRepo, testRepoPath, cleanup := testhelper.NewTestRepo(t) + defer cleanup() + + testRepoCopy, _, cleanup := testhelper.NewTestRepo(t) + defer cleanup() + + branchSha := getBranchSha(t, testRepoPath, branchName) + + headerRequest := buildHeaderRequest(testRepo, rebaseUser, fmt.Sprintf("%v", i), branchName, branchSha, testRepoCopy, "master") + + rebaseStream, err := client.UserRebaseConfirmable(ctx) + require.NoError(t, err) + + require.NoError(t, rebaseStream.Send(headerRequest), "send first request") + + firstResponse, err := rebaseStream.Recv() + require.NoError(t, err, "receive first response") + require.NotEmpty(t, firstResponse.GetRebaseSha(), "rebase sha on first response") + + if tc.req != nil { + require.NoError(t, rebaseStream.Send(tc.req), "send second request") + } + + if tc.closeSend { + require.NoError(t, rebaseStream.CloseSend(), "close request stream from client") + } + + secondResponse, err := recvTimeout(rebaseStream, 1*time.Second) + if err == errRecvTimeout { + t.Fatal(err) + } + + require.False(t, secondResponse.GetRebaseApplied(), "rebase should not have been applied") + require.Error(t, err) + testhelper.RequireGrpcError(t, err, tc.code) + + newBranchSha := getBranchSha(t, testRepoPath, branchName) + require.Equal(t, newBranchSha, branchSha, "branch should not change when the rebase is aborted") + }) } +} + +func TestFailedUserRebaseConfirmableDueToApplyBeingFalse(t *testing.T) { + ctxOuter, cancel := testhelper.Context() + defer cancel() + + server, serverSocketPath := runFullServer(t) + defer server.Stop() + + client, conn := operations.NewOperationClient(t, serverSocketPath) + defer conn.Close() + + testRepo, testRepoPath, cleanup := testhelper.NewTestRepo(t) + defer cleanup() + + testRepoCopy, _, cleanup := testhelper.NewTestRepo(t) + defer cleanup() + + branchSha := getBranchSha(t, testRepoPath, branchName) + + md := testhelper.GitalyServersMetadata(t, serverSocketPath) + ctx := metadata.NewOutgoingContext(ctxOuter, md) + + rebaseStream, err := client.UserRebaseConfirmable(ctx) + require.NoError(t, err) + + headerRequest := buildHeaderRequest(testRepo, rebaseUser, "1", branchName, branchSha, testRepoCopy, "master") + require.NoError(t, rebaseStream.Send(headerRequest), "send header") + + firstResponse, err := rebaseStream.Recv() + require.NoError(t, err, "receive first response") + + _, err = gitlog.GetCommit(ctx, testRepo, firstResponse.GetRebaseSha()) + require.NoError(t, err, "look up git commit before rebase is applied") + + applyRequest := buildApplyRequest(false) + require.NoError(t, rebaseStream.Send(applyRequest), "apply rebase") + + secondResponse, err := rebaseStream.Recv() + require.Error(t, err, "second response should have error") + testhelper.RequireGrpcError(t, err, codes.FailedPrecondition) + require.False(t, secondResponse.GetRebaseApplied(), "the second rebase is not applied") + + newBranchSha := getBranchSha(t, testRepoPath, branchName) + require.Equal(t, branchSha, newBranchSha, "branch should not change when the rebase is not applied") + require.NotEqual(t, newBranchSha, firstResponse.GetRebaseSha(), "branch should not be the sha returned when the rebase is not applied") +} + +// DEPRECATED: https://gitlab.com/gitlab-org/gitaly/issues/1628 +func TestSuccessfulUserRebaseRequest(t *testing.T) { + ctxOuter, cancel := testhelper.Context() + defer cancel() + + server, serverSocketPath := runFullServer(t) + defer server.Stop() + + client, conn := operations.NewOperationClient(t, serverSocketPath) + defer conn.Close() + + testRepo, testRepoPath, cleanup := testhelper.NewTestRepo(t) + defer cleanup() + + testRepoCopy, _, cleanup := testhelper.NewTestRepo(t) + defer cleanup() + + branchSha := getBranchSha(t, testRepoPath, branchName) request := &gitalypb.UserRebaseRequest{ Repository: testRepo, - User: user, + User: rebaseUser, RebaseId: "1", Branch: []byte(branchName), BranchSha: branchSha, @@ -55,13 +296,13 @@ func TestSuccessfulUserRebaseRequest(t *testing.T) { response, err := client.UserRebase(ctx, request) require.NoError(t, err) - newBranchSha := string(testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "rev-parse", branchName)) - newBranchSha = strings.TrimSpace(newBranchSha) + newBranchSha := getBranchSha(t, testRepoPath, branchName) require.NotEqual(t, newBranchSha, branchSha) require.Equal(t, newBranchSha, response.RebaseSha) } +// DEPRECATED: https://gitlab.com/gitlab-org/gitaly/issues/1628 func TestFailedUserRebaseRequestDueToPreReceiveError(t *testing.T) { ctxOuter, cancel := testhelper.Context() defer cancel() @@ -78,19 +319,11 @@ func TestFailedUserRebaseRequestDueToPreReceiveError(t *testing.T) { testRepoCopy, _, cleanup := testhelper.NewTestRepo(t) defer cleanup() - branchName := "many_files" - branchSha := string(testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "rev-parse", branchName)) - branchSha = strings.TrimSpace(branchSha) - - user := &gitalypb.User{ - Name: []byte("Ahmad Sherif"), - Email: []byte("ahmad@gitlab.com"), - GlId: "user-123", - } + branchSha := getBranchSha(t, testRepoPath, branchName) request := &gitalypb.UserRebaseRequest{ Repository: testRepo, - User: user, + User: rebaseUser, Branch: []byte(branchName), BranchSha: branchSha, RemoteRepository: testRepoCopy, @@ -110,11 +343,12 @@ func TestFailedUserRebaseRequestDueToPreReceiveError(t *testing.T) { request.RebaseId = fmt.Sprintf("%d", i+1) response, err := client.UserRebase(ctx, request) require.NoError(t, err) - require.Contains(t, response.PreReceiveError, "GL_ID="+user.GlId) + require.Contains(t, response.PreReceiveError, "GL_ID="+rebaseUser.GlId) }) } } +// DEPRECATED: https://gitlab.com/gitlab-org/gitaly/issues/1628 func TestFailedUserRebaseRequestDueToGitError(t *testing.T) { ctxOuter, cancel := testhelper.Context() defer cancel() @@ -131,21 +365,14 @@ func TestFailedUserRebaseRequestDueToGitError(t *testing.T) { testRepoCopy, _, cleanup := testhelper.NewTestRepo(t) defer cleanup() - branchName := "rebase-encoding-failure-trigger" - branchSha := string(testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "rev-parse", branchName)) - branchSha = strings.TrimSpace(branchSha) - - user := &gitalypb.User{ - Name: []byte("Ahmad Sherif"), - Email: []byte("ahmad@gitlab.com"), - GlId: "user-123", - } + failedBranchName := "rebase-encoding-failure-trigger" + branchSha := getBranchSha(t, testRepoPath, failedBranchName) request := &gitalypb.UserRebaseRequest{ Repository: testRepo, - User: user, + User: rebaseUser, RebaseId: "1", - Branch: []byte(branchName), + Branch: []byte(failedBranchName), BranchSha: branchSha, RemoteRepository: testRepoCopy, RemoteBranch: []byte("master"), @@ -159,6 +386,7 @@ func TestFailedUserRebaseRequestDueToGitError(t *testing.T) { require.Contains(t, response.GitError, "error: Failed to merge in the changes.") } +// DEPRECATED: https://gitlab.com/gitlab-org/gitaly/issues/1628 func TestFailedUserRebaseRequestDueToValidations(t *testing.T) { ctxOuter, cancel := testhelper.Context() defer cancel() @@ -175,12 +403,6 @@ func TestFailedUserRebaseRequestDueToValidations(t *testing.T) { testRepoCopy, _, cleanup := testhelper.NewTestRepo(t) defer cleanup() - user := &gitalypb.User{ - Name: []byte("Ahmad Sherif"), - Email: []byte("ahmad@gitlab.com"), - GlId: "user-123", - } - testCases := []struct { desc string request *gitalypb.UserRebaseRequest @@ -190,7 +412,7 @@ func TestFailedUserRebaseRequestDueToValidations(t *testing.T) { desc: "empty repository", request: &gitalypb.UserRebaseRequest{ Repository: nil, - User: user, + User: rebaseUser, RebaseId: "1", Branch: []byte("some-branch"), BranchSha: "38008cb17ce1466d8fec2dfa6f6ab8dcfe5cf49e", @@ -216,7 +438,7 @@ func TestFailedUserRebaseRequestDueToValidations(t *testing.T) { desc: "empty rebase id", request: &gitalypb.UserRebaseRequest{ Repository: testRepo, - User: user, + User: rebaseUser, RebaseId: "", Branch: []byte("some-branch"), BranchSha: "38008cb17ce1466d8fec2dfa6f6ab8dcfe5cf49e", @@ -229,7 +451,7 @@ func TestFailedUserRebaseRequestDueToValidations(t *testing.T) { desc: "empty branch", request: &gitalypb.UserRebaseRequest{ Repository: testRepo, - User: user, + User: rebaseUser, RebaseId: "1", Branch: nil, BranchSha: "38008cb17ce1466d8fec2dfa6f6ab8dcfe5cf49e", @@ -242,7 +464,7 @@ func TestFailedUserRebaseRequestDueToValidations(t *testing.T) { desc: "empty branch sha", request: &gitalypb.UserRebaseRequest{ Repository: testRepo, - User: user, + User: rebaseUser, RebaseId: "1", Branch: []byte("some-branch"), BranchSha: "", @@ -255,7 +477,7 @@ func TestFailedUserRebaseRequestDueToValidations(t *testing.T) { desc: "empty remote repository", request: &gitalypb.UserRebaseRequest{ Repository: testRepo, - User: user, + User: rebaseUser, RebaseId: "1", Branch: []byte("some-branch"), BranchSha: "38008cb17ce1466d8fec2dfa6f6ab8dcfe5cf49e", @@ -268,7 +490,7 @@ func TestFailedUserRebaseRequestDueToValidations(t *testing.T) { desc: "empty remote branch", request: &gitalypb.UserRebaseRequest{ Repository: testRepo, - User: user, + User: rebaseUser, RebaseId: "1", Branch: []byte("some-branch"), BranchSha: "38008cb17ce1466d8fec2dfa6f6ab8dcfe5cf49e", @@ -289,3 +511,55 @@ func TestFailedUserRebaseRequestDueToValidations(t *testing.T) { }) } } + +func getBranchSha(t *testing.T, repoPath string, branchName string) string { + branchSha := string(testhelper.MustRunCommand(t, nil, "git", "-C", repoPath, "rev-parse", branchName)) + return strings.TrimSpace(branchSha) +} + +// This error is used as a sentinel value +var errRecvTimeout = errors.New("timeout waiting for response") + +func recvTimeout(bidi gitalypb.OperationService_UserRebaseConfirmableClient, timeout time.Duration) (*gitalypb.UserRebaseConfirmableResponse, error) { + type responseError struct { + response *gitalypb.UserRebaseConfirmableResponse + err error + } + responseCh := make(chan responseError, 1) + + go func() { + resp, err := bidi.Recv() + responseCh <- responseError{resp, err} + }() + + select { + case respErr := <-responseCh: + return respErr.response, respErr.err + case <-time.After(timeout): + return nil, errRecvTimeout + } +} + +func buildHeaderRequest(repo *gitalypb.Repository, user *gitalypb.User, rebaseId string, branchName string, branchSha string, remoteRepo *gitalypb.Repository, remoteBranch string) *gitalypb.UserRebaseConfirmableRequest { + return &gitalypb.UserRebaseConfirmableRequest{ + UserRebaseConfirmableRequestPayload: &gitalypb.UserRebaseConfirmableRequest_Header_{ + &gitalypb.UserRebaseConfirmableRequest_Header{ + Repository: repo, + User: user, + RebaseId: rebaseId, + Branch: []byte(branchName), + BranchSha: branchSha, + RemoteRepository: remoteRepo, + RemoteBranch: []byte(remoteBranch), + }, + }, + } +} + +func buildApplyRequest(apply bool) *gitalypb.UserRebaseConfirmableRequest { + return &gitalypb.UserRebaseConfirmableRequest{ + UserRebaseConfirmableRequestPayload: &gitalypb.UserRebaseConfirmableRequest_Apply{ + Apply: apply, + }, + } +} diff --git a/internal/service/operations/squash_test.go b/internal/service/operations/squash_test.go index 29d13183c..ca0767f02 100644 --- a/internal/service/operations/squash_test.go +++ b/internal/service/operations/squash_test.go @@ -1,11 +1,14 @@ package operations import ( + "io/ioutil" + "os" "testing" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/internal/git/log" + "gitlab.com/gitlab-org/gitaly/internal/helper/text" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "google.golang.org/grpc/codes" ) @@ -51,10 +54,82 @@ func TestSuccessfulUserSquashRequest(t *testing.T) { commit, err := log.GetCommit(ctx, testRepo, response.SquashSha) require.NoError(t, err) - require.Equal(t, commit.ParentIds, []string{startSha}) - require.Equal(t, string(commit.Author.Email), "johndoe@gitlab.com") - require.Equal(t, string(commit.Committer.Email), "janedoe@gitlab.com") - require.Equal(t, commit.Subject, commitMessage) + require.Equal(t, []string{startSha}, commit.ParentIds) + require.Equal(t, author.Name, commit.Author.Name) + require.Equal(t, author.Email, commit.Author.Email) + require.Equal(t, user.Name, commit.Committer.Name) + require.Equal(t, user.Email, commit.Committer.Email) + require.Equal(t, commitMessage, commit.Subject) +} + +func TestSuccessfulUserSquashRequestWith3wayMerge(t *testing.T) { + ctx, cancel := testhelper.Context() + defer cancel() + + server, serverSocketPath := runOperationServiceServer(t) + defer server.Stop() + + client, conn := NewOperationClient(t, serverSocketPath) + defer conn.Close() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepoWithWorktree(t) + defer cleanupFn() + + // The following patch inserts a single line so that we create a + // file that is slightly different from a branched version of this + // file. A 3-way merge must be used in order to merge a branch that + // alters lines involved in this diff. + patch := ` +diff --git a/files/ruby/popen.rb b/files/ruby/popen.rb +index 5b812ff..ff85394 100644 +--- a/files/ruby/popen.rb ++++ b/files/ruby/popen.rb +@@ -19,6 +19,7 @@ module Popen + + @cmd_output = "" + @cmd_status = 0 ++ + Open3.popen3(vars, *cmd, options) do |stdin, stdout, stderr, wait_thr| + @cmd_output << stdout.read + @cmd_output << stderr.read +` + tmpFile, err := ioutil.TempFile(os.TempDir(), "squash-test") + require.NoError(t, err) + + tmpFile.Write([]byte(patch)) + tmpFile.Close() + + defer os.Remove(tmpFile.Name()) + + testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "checkout", "-b", "3way-test", "v1.0.0") + testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "apply", tmpFile.Name()) + testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "commit", "-m", "test", "-a") + baseSha := text.ChompBytes(testhelper.MustRunCommand(t, nil, "git", "-C", testRepoPath, "rev-parse", "HEAD")) + + request := &gitalypb.UserSquashRequest{ + Repository: testRepo, + User: user, + SquashId: "1", + Branch: []byte("3way-test"), + Author: author, + CommitMessage: commitMessage, + // The diff between two of these commits results in some changes to files/ruby/popen.rb + StartSha: "6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9", + EndSha: "570e7b2abdd848b95f2f578043fc23bd6f6fd24d", + } + + response, err := client.UserSquash(ctx, request) + require.NoError(t, err) + require.Empty(t, response.GetGitError()) + + commit, err := log.GetCommit(ctx, testRepo, response.SquashSha) + require.NoError(t, err) + require.Equal(t, []string{baseSha}, commit.ParentIds) + require.Equal(t, author.Name, commit.Author.Name) + require.Equal(t, author.Email, commit.Author.Email) + require.Equal(t, user.Name, commit.Committer.Name) + require.Equal(t, user.Email, commit.Committer.Email) + require.Equal(t, commitMessage, commit.Subject) } func TestFailedUserSquashRequestDueToGitError(t *testing.T) { diff --git a/internal/service/operations/submodules_test.go b/internal/service/operations/submodules_test.go index 57d32cbed..ec1b1ba5b 100644 --- a/internal/service/operations/submodules_test.go +++ b/internal/service/operations/submodules_test.go @@ -74,8 +74,8 @@ func TestSuccessfulUserUpdateSubmoduleRequest(t *testing.T) { parser := lstree.NewParser(bytes.NewReader(entry)) parsedEntry, err := parser.NextEntry() require.NoError(t, err) - require.Equal(t, parsedEntry.Path, testCase.submodule) - require.Equal(t, parsedEntry.Oid, testCase.commitSha) + require.Equal(t, testCase.submodule, string(parsedEntry.Path)) + require.Equal(t, testCase.commitSha, parsedEntry.Oid) }) } } diff --git a/internal/service/ref/pack_refs.go b/internal/service/ref/pack_refs.go index 224d0411c..66de8ca32 100644 --- a/internal/service/ref/pack_refs.go +++ b/internal/service/ref/pack_refs.go @@ -5,11 +5,10 @@ import ( "errors" "fmt" + "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/internal/git" "gitlab.com/gitlab-org/gitaly/internal/git/repository" "gitlab.com/gitlab-org/gitaly/internal/helper" - - "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" ) func (server) PackRefs(ctx context.Context, in *gitalypb.PackRefsRequest) (*gitalypb.PackRefsResponse, error) { diff --git a/internal/service/ref/refs_test.go b/internal/service/ref/refs_test.go index 2fae85498..f50355d54 100644 --- a/internal/service/ref/refs_test.go +++ b/internal/service/ref/refs_test.go @@ -11,8 +11,10 @@ import ( "testing" "github.com/golang/protobuf/ptypes/timestamp" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/git/catfile" "gitlab.com/gitlab-org/gitaly/internal/git/log" "gitlab.com/gitlab-org/gitaly/internal/git/updateref" "gitlab.com/gitlab-org/gitaly/internal/helper" @@ -486,6 +488,9 @@ func TestSuccessfulFindAllTagsRequest(t *testing.T) { // A tag with a commit id as its name commitTagID := testhelper.CreateTag(t, testRepoCopyPath, commitID, commitID, &testhelper.CreateTagOpts{Message: "commit tag with a commit sha as the name"}) + // a tag of a tag + tagOfTagID := testhelper.CreateTag(t, testRepoCopyPath, "tag-of-tag", commitTagID, &testhelper.CreateTagOpts{Message: "tag of a tag"}) + client, conn := newRefServiceClient(t, serverSocketPath) defer conn.Close() @@ -513,6 +518,13 @@ func TestSuccessfulFindAllTagsRequest(t *testing.T) { MessageSize: 40, }, { + Name: []byte("tag-of-tag"), + Id: string(tagOfTagID), + TargetCommit: gitCommit, + Message: []byte("tag of a tag"), + MessageSize: 12, + }, + { Name: []byte("v1.0.0"), Id: "f4e6814c3e4e7a0de82a9e7cd20c626cc963a2f8", TargetCommit: gitCommit, @@ -583,6 +595,108 @@ func TestSuccessfulFindAllTagsRequest(t *testing.T) { } } +func TestFindAllTagNestedTags(t *testing.T) { + server, serverSocketPath := runRefServiceServer(t) + defer server.Stop() + + testRepoCopy, testRepoCopyPath, cleanupFn := testhelper.NewTestRepoWithWorktree(t) + defer cleanupFn() + + blobID := "faaf198af3a36dbf41961466703cc1d47c61d051" + commitID := "6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9" + + ctx, cancel := testhelper.Context() + defer cancel() + + testCases := []struct { + description string + depth int + originalOid string + }{ + { + description: "nested 1 deep, points to a commit", + depth: 1, + originalOid: commitID, + }, + { + description: "nested 4 deep, points to a commit", + depth: 4, + originalOid: commitID, + }, + { + description: "nested 3 deep, points to a blob", + depth: 3, + originalOid: blobID, + }, + { + description: "nested 20 deep, points to a commit", + depth: 20, + originalOid: commitID, + }, + } + + for _, tc := range testCases { + t.Run(tc.description, func(t *testing.T) { + tags := bytes.NewReader(testhelper.MustRunCommand(t, nil, "git", "-C", testRepoCopyPath, "tag")) + testhelper.MustRunCommand(t, tags, "xargs", "git", "-C", testRepoCopyPath, "tag", "-d") + + batch, err := catfile.New(ctx, testRepoCopy) + require.NoError(t, err) + + info, err := batch.Info(tc.originalOid) + require.NoError(t, err) + + expectedTags := make(map[string]*gitalypb.Tag) + tagID := tc.originalOid + + for depth := 0; depth < tc.depth; depth++ { + tagName := fmt.Sprintf("tag-depth-%d", depth) + tagMessage := fmt.Sprintf("a commit %d deep", depth) + tagID = string(testhelper.CreateTag(t, testRepoCopyPath, tagName, tagID, &testhelper.CreateTagOpts{Message: tagMessage})) + + expectedTag := &gitalypb.Tag{ + Name: []byte(tagName), + Id: string(tagID), + Message: []byte(tagMessage), + MessageSize: int64(len([]byte(tagMessage))), + } + + // only expect the TargetCommit to be populated if it is a commit and if its less than 10 tags deep + if info.Type == "commit" && depth < log.MaxTagReferenceDepth { + commit, err := log.GetCommitCatfile(batch, tc.originalOid) + require.NoError(t, err) + expectedTag.TargetCommit = commit + } + + expectedTags[string(expectedTag.Name)] = expectedTag + } + + client, conn := newRefServiceClient(t, serverSocketPath) + defer conn.Close() + + rpcRequest := &gitalypb.FindAllTagsRequest{Repository: testRepoCopy} + + c, err := client.FindAllTags(ctx, rpcRequest) + require.NoError(t, err) + + var receivedTags []*gitalypb.Tag + for { + r, err := c.Recv() + if err == io.EOF { + break + } + require.NoError(t, err) + receivedTags = append(receivedTags, r.GetTags()...) + } + + require.Len(t, receivedTags, len(expectedTags)) + for _, receivedTag := range receivedTags { + assert.Equal(t, expectedTags[string(receivedTag.Name)], receivedTag) + } + }) + } +} + func TestInvalidFindAllTagsRequest(t *testing.T) { server, serverSocketPath := runRefServiceServer(t) defer server.Stop() @@ -652,6 +766,7 @@ func TestSuccessfulFindLocalBranches(t *testing.T) { if err == io.EOF { break } + require.NoError(t, err) if err != nil { t.Fatal(err) } diff --git a/internal/service/repository/cleanup.go b/internal/service/repository/cleanup.go index 9cae1580b..35e96f4bb 100644 --- a/internal/service/repository/cleanup.go +++ b/internal/service/repository/cleanup.go @@ -9,27 +9,29 @@ import ( "time" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/git" "gitlab.com/gitlab-org/gitaly/internal/helper" + "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) var lockFiles = []string{"config.lock", "HEAD.lock"} -func (server) Cleanup(_ctx context.Context, in *gitalypb.CleanupRequest) (*gitalypb.CleanupResponse, error) { - repoPath, err := helper.GetRepoPath(in.GetRepository()) - if err != nil { - return nil, err - } - - if err := cleanupRepo(repoPath); err != nil { +func (server) Cleanup(ctx context.Context, in *gitalypb.CleanupRequest) (*gitalypb.CleanupResponse, error) { + if err := cleanupRepo(ctx, in.GetRepository()); err != nil { return nil, err } return &gitalypb.CleanupResponse{}, nil } -func cleanupRepo(repoPath string) error { +func cleanupRepo(ctx context.Context, repo *gitalypb.Repository) error { + repoPath, err := helper.GetRepoPath(repo) + if err != nil { + return err + } + threshold := time.Now().Add(-1 * time.Hour) if err := cleanRefsLocks(filepath.Join(repoPath, "refs"), threshold); err != nil { return status.Errorf(codes.Internal, "Cleanup: cleanRefsLocks: %v", err) @@ -43,6 +45,10 @@ func cleanupRepo(repoPath string) error { return status.Errorf(codes.Internal, "Cleanup: cleanStaleWorktrees: %v", err) } + if err := cleanDisconnectedWorktrees(ctx, repo); err != nil { + return status.Errorf(codes.Internal, "Cleanup: cleanDisconnectedWorktrees: %v", err) + } + configLockThreshod := time.Now().Add(-15 * time.Minute) if err := cleanFileLocks(repoPath, configLockThreshod); err != nil { return status.Errorf(codes.Internal, "Cleanup: cleanupConfigLock: %v", err) @@ -128,6 +134,15 @@ func cleanStaleWorktrees(repoPath string, threshold time.Time) error { return nil } +func cleanDisconnectedWorktrees(ctx context.Context, repo *gitalypb.Repository) error { + cmd, err := git.Command(ctx, repo, "worktree", "prune") + if err != nil { + return err + } + + return cmd.Wait() +} + func cleanFileLocks(repoPath string, threshold time.Time) error { for _, fileName := range lockFiles { lockPath := filepath.Join(repoPath, fileName) diff --git a/internal/service/repository/cleanup_test.go b/internal/service/repository/cleanup_test.go index da88cce37..cec59c4ec 100644 --- a/internal/service/repository/cleanup_test.go +++ b/internal/service/repository/cleanup_test.go @@ -2,6 +2,7 @@ package repository import ( "os" + "os/exec" "path/filepath" "testing" "time" @@ -9,6 +10,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" + "gitlab.com/gitlab-org/gitaly/internal/git" "gitlab.com/gitlab-org/gitaly/internal/testhelper" ) @@ -185,6 +187,75 @@ func TestCleanupDeletesStaleWorktrees(t *testing.T) { } } +func TestCleanupDisconnectedWorktrees(t *testing.T) { + const ( + worktreeName = "test-worktree" + worktreeAdminDir = "worktrees" + ) + + addWorkTree := func(repoPath, worktree string) error { + return exec.Command( + "git", + testhelper.AddWorktreeArgs(repoPath, worktree)..., + ).Run() + } + + server, serverSocketPath := runRepoServer(t) + defer server.Stop() + + client, conn := newRepositoryClient(t, serverSocketPath) + defer conn.Close() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + worktreePath := filepath.Join(testRepoPath, worktreeName) + worktreeAdminPath := filepath.Join( + testRepoPath, worktreeAdminDir, filepath.Base(worktreeName), + ) + + req := &gitalypb.CleanupRequest{Repository: testRepo} + + testhelper.AddWorktree(t, testRepoPath, worktreeName) + + ctx, cancel := testhelper.Context() + defer cancel() + + // removing the work tree path but leaving the administrative files in + // $GIT_DIR/worktrees will result in the work tree being in a + // "disconnected" state + err := os.RemoveAll(worktreePath) + require.NoError(t, err, + "disconnecting worktree by removing work tree at %s should succeed", worktreePath, + ) + + // TODO: remove the following version checks when the lowest supported git + // version is 2.20.0 or higher. Refer to relevant gitlab-ce issue: + // https://gitlab.com/gitlab-org/gitlab-ce/issues/54255 + version, err := git.Version() + require.NoError(t, err) + + pre2_20_0, err := git.VersionLessThan(version, "2.20.0") + require.NoError(t, err) + + if !pre2_20_0 { + err = addWorkTree(testRepoPath, worktreeName) + require.Error(t, err, + "creating a new work tree at the same path as a disconnected work tree should fail", + ) + } + + // cleanup should prune the disconnected worktree administrative files + _, err = client.Cleanup(ctx, req) + require.NoError(t, err) + testhelper.AssertFileNotExists(t, worktreeAdminPath) + + // if the worktree administrative files are pruned, then we should be able + // to checkout another worktree at the same path + err = addWorkTree(testRepoPath, worktreeName) + require.NoError(t, err) +} + func TestCleanupFileLocks(t *testing.T) { server, serverSocketPath := runRepoServer(t) defer server.Stop() diff --git a/internal/service/repository/create_from_snapshot_test.go b/internal/service/repository/create_from_snapshot_test.go index e252ce9e2..b092479d0 100644 --- a/internal/service/repository/create_from_snapshot_test.go +++ b/internal/service/repository/create_from_snapshot_test.go @@ -106,10 +106,6 @@ func TestCreateRepositoryFromSnapshotSuccess(t *testing.T) { // hooks/ and config were excluded, but the RPC should create them require.FileExists(t, filepath.Join(repoPath, "config"), "Config file not created") - - fi, err := os.Lstat(filepath.Join(repoPath, "hooks")) - require.NoError(t, err) - require.Equal(t, os.ModeSymlink, fi.Mode()&os.ModeSymlink, "Symlink to global hooks not created") } func TestCreateRepositoryFromSnapshotFailsIfRepositoryExists(t *testing.T) { diff --git a/internal/service/repository/create_test.go b/internal/service/repository/create_test.go index 7a36c40f7..e238f8e18 100644 --- a/internal/service/repository/create_test.go +++ b/internal/service/repository/create_test.go @@ -8,7 +8,6 @@ import ( "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" - "gitlab.com/gitlab-org/gitaly/internal/config" "gitlab.com/gitlab-org/gitaly/internal/helper" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "google.golang.org/grpc/codes" @@ -40,16 +39,6 @@ func TestCreateRepositorySuccess(t *testing.T) { require.NoError(t, err) require.True(t, fi.IsDir(), "%q must be a directory", fi.Name()) } - - hooksDir := path.Join(repoDir, "hooks") - - fi, err := os.Lstat(hooksDir) - require.NoError(t, err) - require.True(t, fi.Mode()&os.ModeSymlink > 0, "expected %q to be a symlink, got mode %v", hooksDir, fi.Mode()) - - hooksTarget, err := os.Readlink(hooksDir) - require.NoError(t, err) - require.Equal(t, path.Join(config.Config.GitlabShell.Dir, "hooks"), hooksTarget) } func TestCreateRepositoryFailure(t *testing.T) { diff --git a/internal/service/repository/fetch_remote.go b/internal/service/repository/fetch_remote.go index b29db8b56..419051816 100644 --- a/internal/service/repository/fetch_remote.go +++ b/internal/service/repository/fetch_remote.go @@ -3,22 +3,11 @@ package repository import ( "context" - grpc_logrus "github.com/grpc-ecosystem/go-grpc-middleware/logging/logrus" - log "github.com/sirupsen/logrus" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" "gitlab.com/gitlab-org/gitaly/internal/rubyserver" ) func (s *server) FetchRemote(ctx context.Context, in *gitalypb.FetchRemoteRequest) (*gitalypb.FetchRemoteResponse, error) { - grpc_logrus.Extract(ctx).WithFields(log.Fields{ - "Remote": in.GetRemote(), - "Force": in.GetForce(), - "NoTags": in.GetNoTags(), - "Timeout": in.GetTimeout(), - "SSHKey": in.GetSshKey(), - "KnownHosts": in.GetKnownHosts(), - }).Debug("FetchRemote") - client, err := s.RepositoryServiceClient(ctx) if err != nil { return nil, err diff --git a/internal/service/repository/fetch_remote_test.go b/internal/service/repository/fetch_remote_test.go index 2a8ee4f1b..30630a1cc 100644 --- a/internal/service/repository/fetch_remote_test.go +++ b/internal/service/repository/fetch_remote_test.go @@ -1,8 +1,14 @@ package repository import ( + "bytes" + "fmt" + "io/ioutil" + "net/http" + "net/http/httptest" "os" "path" + "strings" "testing" "github.com/stretchr/testify/assert" @@ -92,3 +98,137 @@ func TestFetchRemoteFailure(t *testing.T) { }) } } + +const ( + httpToken = "ABCefg0999182" +) + +func remoteHTTPServer(t *testing.T, repoName, httpToken string) (*httptest.Server, string) { + s := httptest.NewServer( + http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.String() == fmt.Sprintf("/%s.git/info/refs?service=git-upload-pack", repoName) { + if httpToken != "" && r.Header.Get("Authorization") != httpToken { + w.WriteHeader(http.StatusUnauthorized) + return + } + w.Header().Set("Content-Type", "application/x-git-upload-pack-advertisement") + w.WriteHeader(http.StatusOK) + + b, err := ioutil.ReadFile("testdata/advertise.txt") + require.NoError(t, err) + w.Write(b) + } else { + w.WriteHeader(http.StatusNotFound) + } + }), + ) + + return s, fmt.Sprintf("%s/%s.git", s.URL, repoName) +} + +func getRefnames(t *testing.T, repoPath string) []string { + result := testhelper.MustRunCommand(t, nil, "git", "-C", repoPath, "for-each-ref", "--format", "%(refname:lstrip=2)") + return strings.Split(string(bytes.TrimRight(result, "\n")), "\n") +} + +func TestFetchRemoteOverHTTP(t *testing.T) { + server, serverSocketPath := runRepoServer(t) + defer server.Stop() + + client, conn := newRepositoryClient(t, serverSocketPath) + defer conn.Close() + + ctx, cancel := testhelper.Context() + defer cancel() + + testCases := []struct { + description string + httpToken string + }{ + { + description: "with http token", + httpToken: httpToken, + }, + { + description: "without http token", + httpToken: "", + }, + } + + for _, tc := range testCases { + t.Run(tc.description, func(t *testing.T) { + forkedRepo, forkedRepoPath, forkedRepoCleanup := testhelper.NewTestRepo(t) + defer forkedRepoCleanup() + + _, remoteURL := remoteHTTPServer(t, "my-repo", tc.httpToken) + + req := &gitalypb.FetchRemoteRequest{ + Repository: forkedRepo, + RemoteParams: &gitalypb.Remote{ + Url: remoteURL, + Name: "geo", + HttpAuthorizationHeader: tc.httpToken, + MirrorRefmaps: []string{"all_refs"}, + }, + Timeout: 1000, + } + + refs := getRefnames(t, forkedRepoPath) + require.True(t, len(refs) > 1, "the advertisement.txt should have deleted all refs except for master") + + _, err := client.FetchRemote(ctx, req) + require.NoError(t, err) + + refs = getRefnames(t, forkedRepoPath) + + require.Len(t, refs, 1) + assert.Equal(t, "master", refs[0]) + + }) + } +} + +func TestFetchRemoteOverHTTPError(t *testing.T) { + server, serverSocketPath := runRepoServer(t) + defer server.Stop() + + client, conn := newRepositoryClient(t, serverSocketPath) + defer conn.Close() + + testRepo, _, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + testCases := []struct { + desc string + request gitalypb.FetchRemoteRequest + code codes.Code + err string + }{ + { + desc: "bad remote url", + request: gitalypb.FetchRemoteRequest{ + Repository: testRepo, + RemoteParams: &gitalypb.Remote{ + Url: "not a url", + Name: "remote", + HttpAuthorizationHeader: httpToken, + }, + Timeout: 1000, + }, + code: codes.InvalidArgument, + err: "invalid remote url", + }, + } + + for _, tc := range testCases { + t.Run(tc.desc, func(t *testing.T) { + ctx, cancel := testhelper.Context() + defer cancel() + + resp, err := client.FetchRemote(ctx, &tc.request) + testhelper.RequireGrpcError(t, err, tc.code) + require.Contains(t, err.Error(), tc.err) + assert.Nil(t, resp) + }) + } +} diff --git a/internal/service/repository/gc.go b/internal/service/repository/gc.go index 879059475..daf073b57 100644 --- a/internal/service/repository/gc.go +++ b/internal/service/repository/gc.go @@ -15,7 +15,6 @@ import ( "gitlab.com/gitlab-org/gitaly/internal/git/catfile" "gitlab.com/gitlab-org/gitaly/internal/helper" "gitlab.com/gitlab-org/gitaly/internal/helper/housekeeping" - "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) @@ -30,7 +29,7 @@ func (server) GarbageCollect(ctx context.Context, in *gitalypb.GarbageCollectReq return nil, err } - if err := cleanupRepo(repoPath); err != nil { + if err := cleanupRepo(ctx, in.GetRepository()); err != nil { return nil, err } @@ -38,28 +37,64 @@ func (server) GarbageCollect(ctx context.Context, in *gitalypb.GarbageCollectReq return nil, err } + if err := gc(ctx, in); err != nil { + return nil, err + } + + if err := configureCommitGraph(ctx, in); err != nil { + return nil, err + } + + // Perform housekeeping post GC + err = housekeeping.Perform(ctx, repoPath) + if err != nil { + ctxlogger.WithError(err).Warn("Post gc housekeeping failed") + } + + return &gitalypb.GarbageCollectResponse{}, nil +} + +func gc(ctx context.Context, in *gitalypb.GarbageCollectRequest) error { args := repackConfig(ctx, in.CreateBitmap) - args = append(args, "gc") + // run garbage collect and also write the commit graph + args = append(args, + "-c", "gc.writeCommitGraph=true", + "gc", + ) + cmd, err := git.Command(ctx, in.GetRepository(), args...) if err != nil { if _, ok := status.FromError(err); ok { - return nil, err + return err } - return nil, status.Errorf(codes.Internal, "GarbageCollect: gitCommand: %v", err) + return helper.ErrInternal(fmt.Errorf("GarbageCollect: gitCommand: %v", err)) } if err := cmd.Wait(); err != nil { - return nil, status.Errorf(codes.Internal, "GarbageCollect: cmd wait: %v", err) + return helper.ErrInternal(fmt.Errorf("GarbageCollect: cmd wait: %v", err)) } - // Perform housekeeping post GC - err = housekeeping.Perform(ctx, repoPath) + return nil +} + +func configureCommitGraph(ctx context.Context, in *gitalypb.GarbageCollectRequest) error { + args := []string{"config", "core.commitGraph", "true"} + + cmd, err := git.Command(ctx, in.GetRepository(), args...) if err != nil { - ctxlogger.WithError(err).Warn("Post gc housekeeping failed") + if _, ok := status.FromError(err); ok { + return err + } + + return helper.ErrInternal(fmt.Errorf("GarbageCollect: config gitCommand: %v", err)) } - return &gitalypb.GarbageCollectResponse{}, nil + if err := cmd.Wait(); err != nil { + return helper.ErrInternal(fmt.Errorf("GarbageCollect: config cmd wait: %v", err)) + } + + return nil } func cleanupKeepArounds(ctx context.Context, repo *gitalypb.Repository) error { diff --git a/internal/service/repository/gc_test.go b/internal/service/repository/gc_test.go index c920e8304..7bd0969af 100644 --- a/internal/service/repository/gc_test.go +++ b/internal/service/repository/gc_test.go @@ -13,8 +13,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" - "gitlab.com/gitlab-org/gitaly/internal/featureflag" "gitlab.com/gitlab-org/gitaly/internal/helper/text" + "gitlab.com/gitlab-org/gitaly/internal/metadata/featureflag" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "google.golang.org/grpc/codes" "google.golang.org/grpc/metadata" @@ -26,6 +26,42 @@ var ( oldTreeTime = freshTime.Add(-7 * time.Hour) ) +func TestGarbageCollectCommitGraph(t *testing.T) { + server, serverSocketPath := runRepoServer(t) + defer server.Stop() + + client, conn := newRepositoryClient(t, serverSocketPath) + defer conn.Close() + + testRepo, testRepoPath, cleanupFn := testhelper.NewTestRepo(t) + defer cleanupFn() + + ctx, cancel := testhelper.Context() + defer cancel() + + c, err := client.GarbageCollect(ctx, &gitalypb.GarbageCollectRequest{Repository: testRepo}) + assert.NoError(t, err) + assert.NotNil(t, c) + + assert.FileExistsf(t, + filepath.Join(testRepoPath, "objects/info/commit-graph"), + "pre-computed commit-graph should exist after running garbage collect", + ) + + repoCfgPath := filepath.Join(testRepoPath, "config") + + cfgF, err := os.Open(repoCfgPath) + require.NoError(t, err) + defer cfgF.Close() + + cfg, err := testhelper.ParseConfig(cfgF) + require.NoError(t, err) + + actualValue, ok := cfg.GetValue("core", "commitGraph") + require.True(t, ok) + require.Equal(t, "true", actualValue) +} + func TestGarbageCollectSuccess(t *testing.T) { server, serverSocketPath := runRepoServer(t) defer server.Stop() diff --git a/internal/service/repository/repack.go b/internal/service/repository/repack.go index fcc876a44..aeaf5fe4f 100644 --- a/internal/service/repository/repack.go +++ b/internal/service/repository/repack.go @@ -6,8 +6,9 @@ import ( "github.com/prometheus/client_golang/prometheus" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" - "gitlab.com/gitlab-org/gitaly/internal/featureflag" "gitlab.com/gitlab-org/gitaly/internal/git" + "gitlab.com/gitlab-org/gitaly/internal/git/repository" + "gitlab.com/gitlab-org/gitaly/internal/metadata/featureflag" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" ) @@ -42,7 +43,7 @@ func (server) RepackIncremental(ctx context.Context, in *gitalypb.RepackIncremen return &gitalypb.RepackIncrementalResponse{}, nil } -func repackCommand(ctx context.Context, repo *gitalypb.Repository, bitmap bool, args ...string) error { +func repackCommand(ctx context.Context, repo repository.GitRepo, bitmap bool, args ...string) error { cmdArgs := repackConfig(ctx, bitmap) cmdArgs = append(cmdArgs, "repack", "-d") diff --git a/internal/service/repository/repack_test.go b/internal/service/repository/repack_test.go index 324c61532..082d41243 100644 --- a/internal/service/repository/repack_test.go +++ b/internal/service/repository/repack_test.go @@ -11,7 +11,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" - "gitlab.com/gitlab-org/gitaly/internal/featureflag" + "gitlab.com/gitlab-org/gitaly/internal/metadata/featureflag" "gitlab.com/gitlab-org/gitaly/internal/testhelper" "google.golang.org/grpc/codes" "google.golang.org/grpc/metadata" diff --git a/internal/service/repository/search_files.go b/internal/service/repository/search_files.go index 31a9f8efa..8865e0b56 100644 --- a/internal/service/repository/search_files.go +++ b/internal/service/repository/search_files.go @@ -38,7 +38,7 @@ func (s *server) SearchFilesByContent(req *gitalypb.SearchFilesByContentRequest, "--null", "--before-context", surroundContext, "--after-context", surroundContext, - "--extended-regexp", + "--perl-regexp", "-e", // next arg is pattern, keep this last req.GetQuery(), string(req.GetRef()), diff --git a/internal/service/repository/search_files_test.go b/internal/service/repository/search_files_test.go index 28ea0f203..b2d217c60 100644 --- a/internal/service/repository/search_files_test.go +++ b/internal/service/repository/search_files_test.go @@ -118,6 +118,12 @@ func TestSearchFilesByContentSuccessful(t *testing.T) { ref: "many_files", output: [][]byte{}, }, + { + desc: "with regexp limiter only recognized by pcre", + query: "(*LIMIT_MATCH=1)foobar", + ref: "many_files", + output: contentOutputLines, + }, } for _, tc := range testCases { diff --git a/internal/service/repository/testdata/advertise.txt b/internal/service/repository/testdata/advertise.txt new file mode 100644 index 000000000..a07f3623c --- /dev/null +++ b/internal/service/repository/testdata/advertise.txt @@ -0,0 +1,4 @@ +001e# service=git-upload-pack +000000f91e292f8fedd741b75372e19097c76d327140c312 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow deepen-since deepen-not deepen-relative no-progress include-tag multi_ack_detailed no-done symref=HEAD:refs/heads/master agent=git/2.21.0 +003f1e292f8fedd741b75372e19097c76d327140c312 refs/heads/master +0000
\ No newline at end of file diff --git a/internal/service/wiki/get_all_pages_test.go b/internal/service/wiki/get_all_pages_test.go index 458f820d2..a328579e7 100644 --- a/internal/service/wiki/get_all_pages_test.go +++ b/internal/service/wiki/get_all_pages_test.go @@ -183,20 +183,24 @@ func TestFailedWikiGetAllPagesDueToValidation(t *testing.T) { client, conn := newWikiClient(t, serverSocketPath) defer conn.Close() - rpcRequests := []gitalypb.WikiGetAllPagesRequest{ - {Repository: &gitalypb.Repository{StorageName: "fake", RelativePath: "path"}}, // Repository doesn't exist - {Repository: nil}, // Repository is nil + testCases := []struct { + desc string + req *gitalypb.WikiGetAllPagesRequest + }{ + {desc: "no repository", req: &gitalypb.WikiGetAllPagesRequest{}}, } - for _, rpcRequest := range rpcRequests { - ctx, cancel := testhelper.Context() - defer cancel() + for _, tc := range testCases { + t.Run(tc.desc, func(t *testing.T) { + ctx, cancel := testhelper.Context() + defer cancel() - c, err := client.WikiGetAllPages(ctx, &rpcRequest) - require.NoError(t, err) + c, err := client.WikiGetAllPages(ctx, tc.req) + require.NoError(t, err) - err = drainWikiGetAllPagesResponse(c) - testhelper.RequireGrpcError(t, err, codes.InvalidArgument) + err = drainWikiGetAllPagesResponse(c) + testhelper.RequireGrpcError(t, err, codes.InvalidArgument) + }) } } diff --git a/internal/testhelper/config.go b/internal/testhelper/config.go new file mode 100644 index 000000000..14869b05c --- /dev/null +++ b/internal/testhelper/config.go @@ -0,0 +1,64 @@ +package testhelper + +import ( + "bufio" + "io" + "regexp" + "strings" +) + +var cfgHeaderRegex = regexp.MustCompile(`^\[(.*?)\]$`) + +// ConfigFile allows access to the different sections of a git config file +type ConfigFile map[string][]string + +// ParseConfig will attempt to parse a config file into sections +func ParseConfig(src io.Reader) (ConfigFile, error) { + scanner := bufio.NewScanner(src) + + currentSection := "" + parsed := map[string][]string{} + + for scanner.Scan() { + line := scanner.Text() + + matches := cfgHeaderRegex.FindStringSubmatch(line) + if len(matches) == 2 { + currentSection = matches[1] + continue + } + + parsed[currentSection] = append( + parsed[currentSection], + strings.TrimSpace(line), + ) + } + + if err := scanner.Err(); err != nil { + return nil, err + } + + return parsed, nil +} + +var configPairRegex = regexp.MustCompile(`^(.*?) = (.*?)$`) + +// GetValue will return the value for a configuration line int the specified +// section for the provided key +func (cf ConfigFile) GetValue(section, key string) (string, bool) { + pairs := cf[section] + + for _, pair := range pairs { + matches := configPairRegex.FindStringSubmatch(pair) + if len(matches) != 3 { + continue + } + + k, v := matches[1], matches[2] + if k == key { + return v, true + } + } + + return "", false +} diff --git a/internal/testhelper/config_test.go b/internal/testhelper/config_test.go new file mode 100644 index 000000000..401f82c87 --- /dev/null +++ b/internal/testhelper/config_test.go @@ -0,0 +1,41 @@ +package testhelper_test + +import ( + "bytes" + "testing" + + "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly/internal/testhelper" +) + +var cfgData = ` +[core] + bare = false + commitGraph = true +[remote "origin"] + url = git@gitlab.com:gitlab-org/gitaly.git + fetch = +refs/heads/*:refs/remotes/origin/* +` + +func TestConfigParser(t *testing.T) { + cfg, err := testhelper.ParseConfig(bytes.NewBuffer([]byte(cfgData))) + require.NoError(t, err) + + for _, tc := range []struct { + section string + key string + expectValue string + }{ + {"core", "commitGraph", "true"}, + {"core", "bare", "false"}, + {`remote "origin"`, "url", "git@gitlab.com:gitlab-org/gitaly.git"}, + {`remote "origin"`, "fetch", "+refs/heads/*:refs/remotes/origin/*"}, + } { + actualValue, ok := cfg.GetValue(tc.section, tc.key) + require.True(t, ok) + require.Equalf(t, + tc.expectValue, actualValue, + "ensuring correct value for %s:%s", tc.section, tc.key, + ) + } +} diff --git a/internal/testhelper/stream.go b/internal/testhelper/stream.go new file mode 100644 index 000000000..7129f7d42 --- /dev/null +++ b/internal/testhelper/stream.go @@ -0,0 +1,29 @@ +package testhelper + +import ( + "fmt" + "io" + "time" +) + +// ReceiveEOFWithTimeout reads to the end of the stream and will throw an +// error if a deadlock is suspected +func ReceiveEOFWithTimeout(errorFunc func() error) error { + errCh := make(chan error, 1) + go func() { + errCh <- errorFunc() + }() + + var err error + select { + case err = <-errCh: + case <-time.After(1 * time.Second): + err = fmt.Errorf("timed out waiting for EOF") + } + + if err == io.EOF { + err = nil + } + + return err +} diff --git a/internal/testhelper/test_hook.go b/internal/testhelper/test_hook.go index 2e9b9d7a5..93d229a2a 100644 --- a/internal/testhelper/test_hook.go +++ b/internal/testhelper/test_hook.go @@ -8,7 +8,7 @@ import ( ) type testHook struct { - t *testing.T + t testing.TB formatter log.Formatter } @@ -43,12 +43,12 @@ func (s testHook) Fire(entry *log.Entry) error { } // NewTestLogger created a logrus hook which can be used with testing logs -func NewTestLogger(t *testing.T) *log.Logger { +func NewTestLogger(tb testing.TB) *log.Logger { logger := log.New() logger.Out = ioutil.Discard formatter := &log.TextFormatter{} - logger.Hooks.Add(testHook{t, formatter}) + logger.Hooks.Add(testHook{tb, formatter}) return logger } diff --git a/internal/testhelper/testhelper.go b/internal/testhelper/testhelper.go index 32fdfe418..5b139227f 100644 --- a/internal/testhelper/testhelper.go +++ b/internal/testhelper/testhelper.go @@ -144,7 +144,7 @@ func RequireGrpcError(t *testing.T, err error, expectedCode codes.Code) { } // MustRunCommand runs a command with an optional standard input and returns the standard output, or fails. -func MustRunCommand(t *testing.T, stdin io.Reader, name string, args ...string) []byte { +func MustRunCommand(t testing.TB, stdin io.Reader, name string, args ...string) []byte { cmd := exec.Command(name, args...) if name == "git" { @@ -279,9 +279,9 @@ func GetGitEnvData() (string, error) { } // NewTestGrpcServer creates a GRPC Server for testing purposes -func NewTestGrpcServer(t *testing.T, streamInterceptors []grpc.StreamServerInterceptor, unaryInterceptors []grpc.UnaryServerInterceptor) *grpc.Server { - logger := NewTestLogger(t) - logrusEntry := log.NewEntry(logger).WithField("test", t.Name()) +func NewTestGrpcServer(tb testing.TB, streamInterceptors []grpc.StreamServerInterceptor, unaryInterceptors []grpc.UnaryServerInterceptor) *grpc.Server { + logger := NewTestLogger(tb) + logrusEntry := log.NewEntry(logger).WithField("test", tb.Name()) ctxTagger := grpc_ctxtags.WithFieldExtractorForInitialReq(fieldextractors.FieldExtractor) ctxStreamTagger := grpc_ctxtags.StreamServerInterceptor(ctxTagger) @@ -352,7 +352,7 @@ func Context() (context.Context, func()) { } // CreateRepo creates an temporary directory for a repo, without initializing it -func CreateRepo(t *testing.T, storagePath string) (repo *gitalypb.Repository, repoPath, relativePath string) { +func CreateRepo(t testing.TB, storagePath string) (repo *gitalypb.Repository, repoPath, relativePath string) { normalizedPrefix := strings.Replace(t.Name(), "/", "-", -1) //TempDir doesn't like a prefix containing slashes repoPath, err := ioutil.TempDir(storagePath, normalizedPrefix) @@ -392,7 +392,7 @@ func initRepo(t *testing.T, bare bool) (*gitalypb.Repository, string, func()) { } // NewTestRepo creates a bare copy of the test repository. -func NewTestRepo(t *testing.T) (repo *gitalypb.Repository, repoPath string, cleanup func()) { +func NewTestRepo(t testing.TB) (repo *gitalypb.Repository, repoPath string, cleanup func()) { return cloneTestRepo(t, true) } @@ -402,7 +402,7 @@ func NewTestRepoWithWorktree(t *testing.T) (repo *gitalypb.Repository, repoPath return cloneTestRepo(t, false) } -func cloneTestRepo(t *testing.T, bare bool) (repo *gitalypb.Repository, repoPath string, cleanup func()) { +func cloneTestRepo(t testing.TB, bare bool) (repo *gitalypb.Repository, repoPath string, cleanup func()) { storagePath := GitlabTestStoragePath() repo, repoPath, relativePath := CreateRepo(t, storagePath) testRepo := TestRepository() @@ -421,11 +421,15 @@ func cloneTestRepo(t *testing.T, bare bool) (repo *gitalypb.Repository, repoPath return repo, repoPath, func() { os.RemoveAll(repoPath) } } +// AddWorktreeArgs returns git command arguments for adding a worktree at the +// specified repo +func AddWorktreeArgs(repoPath, worktreeName string) []string { + return []string{"-C", repoPath, "worktree", "add", "--detach", worktreeName} +} + // AddWorktree creates a worktree in the repository path for tests func AddWorktree(t *testing.T, repoPath string, worktreeName string) { - args := []string{"-C", repoPath, "worktree", "add", "--detach", worktreeName} - - MustRunCommand(t, nil, "git", args...) + MustRunCommand(t, nil, "git", AddWorktreeArgs(repoPath, worktreeName)...) } // ConfigureGitalySSH configures the gitaly-ssh command for tests @@ -456,7 +460,7 @@ func GetRepositoryRefs(t *testing.T, repoPath string) string { // AssertFileNotExists asserts true if the file doesn't exist, false otherwise func AssertFileNotExists(t *testing.T, path string) { _, err := os.Stat(path) - assert.True(t, os.IsNotExist(err)) + assert.True(t, os.IsNotExist(err), "file should not exist: %s", path) } // NewTestObjectPoolName returns a random pool repository name. diff --git a/ruby/.rubocop.yml b/ruby/.rubocop.yml index 53b654cc3..4408434bf 100644 --- a/ruby/.rubocop.yml +++ b/ruby/.rubocop.yml @@ -1,6 +1,7 @@ inherit_from: .rubocop_todo.yml AllCops: + TargetRubyVersion: 2.5 Exclude: - 'tmp/**/*' - 'vendor/**/*' @@ -12,3 +13,6 @@ Style/NumericPredicate: Style/RedundantBegin: Enabled: false + +Naming/RescuedExceptionsVariableName: + Enabled: false diff --git a/ruby/Gemfile b/ruby/Gemfile index c111744a1..8331b74ee 100644 --- a/ruby/Gemfile +++ b/ruby/Gemfile @@ -1,17 +1,17 @@ source 'https://rubygems.org' # Require bundler >= 1.16.5 to avoid this bug: https://github.com/bundler/bundler/issues/6537 -gem 'bundler', '>= 1.16.5' +gem 'bundler', '>= 1.17.3' gem 'rugged', '~> 0.28' gem 'github-linguist', '~> 6.1', require: 'linguist' gem 'gitlab-markup', '~> 1.7.0' -gem 'gitaly-proto', '~> 1.22.0' -gem 'activesupport', '~> 5.0.2' +gem 'activesupport', '~> 5.1.7' +gem 'gitaly-proto', '~> 1.27.0' gem 'rdoc', '~> 4.2' gem 'gitlab-gollum-lib', '~> 4.2.7.7', require: false gem 'gitlab-gollum-rugged_adapter', '~> 0.4.4.2', require: false -gem 'grpc', '~> 1.15.0' +gem 'grpc', '~> 1.19.0' gem 'sentry-raven', '~> 2.9.0', require: false gem 'faraday', '~> 0.12' gem 'rbtrace', require: false @@ -20,10 +20,10 @@ gem 'rbtrace', require: false # This version needs to be in sync with GitLab CE/EE gem 'licensee', '~> 8.9.0' -gem 'google-protobuf', '~> 3.6' +gem 'google-protobuf', '~> 3.7.1' group :development, :test do - gem 'rubocop', '~> 0.50', require: false + gem 'rubocop', '~> 0.68', require: false gem 'rspec', require: false gem 'rspec-parameterized', require: false gem 'timecop', require: false diff --git a/ruby/Gemfile.lock b/ruby/Gemfile.lock index d3a8caad8..83bf0a938 100644 --- a/ruby/Gemfile.lock +++ b/ruby/Gemfile.lock @@ -2,7 +2,7 @@ GEM remote: https://rubygems.org/ specs: abstract_type (0.0.7) - activesupport (5.0.7.2) + activesupport (5.1.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -20,7 +20,7 @@ GEM concord (0.1.5) adamantium (~> 0.2.0) equalizer (~> 0.0.9) - concurrent-ruby (1.1.3) + concurrent-ruby (1.1.5) crack (0.4.3) safe_yaml (~> 1.0.0) crass (1.0.4) @@ -36,7 +36,7 @@ GEM ffi (1.10.0) gemojione (3.3.0) json - gitaly-proto (1.22.0) + gitaly-proto (1.27.0) grpc (~> 1.0) github-linguist (6.4.1) charlock_holmes (~> 0.7.6) @@ -66,13 +66,14 @@ GEM google-protobuf (3.7.1) googleapis-common-protos-types (1.0.4) google-protobuf (~> 3.0) - grpc (1.15.0) + grpc (1.19.0) google-protobuf (~> 3.1) googleapis-common-protos-types (~> 1.0.0) hashdiff (0.3.8) i18n (1.6.0) concurrent-ruby (~> 1.0) ice_nine (0.11.2) + jaro_winkler (1.5.2) json (2.2.0) licensee (8.9.2) rugged (~> 0.24) @@ -88,16 +89,15 @@ GEM msgpack (1.2.6) multi_json (1.13.1) multipart-post (2.0.0) - nokogiri (1.10.1) + nokogiri (1.10.3) mini_portile2 (~> 2.4.0) nokogumbo (1.5.0) nokogiri optimist (3.0.0) - parallel (1.12.1) + parallel (1.17.0) parser (2.5.3.0) ast (~> 2.4.0) posix-spawn (0.3.13) - powerpack (0.1.2) proc_to_ast (0.1.0) coderay parser @@ -133,13 +133,13 @@ GEM rspec (>= 2.13, < 4) unparser rspec-support (3.7.1) - rubocop (0.54.0) + rubocop (0.68.1) + jaro_winkler (~> 1.5.1) parallel (~> 1.10) - parser (>= 2.5) - powerpack (~> 0.1) + parser (>= 2.5, != 2.5.1.1) rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) - unicode-display_width (~> 1.0, >= 1.0.1) + unicode-display_width (>= 1.4.0, < 1.6) ruby-progressbar (1.10.0) rugged (0.28.1) safe_yaml (1.0.4) @@ -159,7 +159,7 @@ GEM timecop (0.9.1) tzinfo (1.2.5) thread_safe (~> 0.1) - unicode-display_width (1.4.0) + unicode-display_width (1.5.0) unparser (0.2.8) abstract_type (~> 0.0.7) adamantium (~> 0.2.0) @@ -178,17 +178,17 @@ PLATFORMS ruby DEPENDENCIES - activesupport (~> 5.0.2) - bundler (>= 1.16.5) + activesupport (~> 5.1.7) + bundler (>= 1.17.3) factory_bot faraday (~> 0.12) - gitaly-proto (~> 1.22.0) + gitaly-proto (~> 1.27.0) github-linguist (~> 6.1) gitlab-gollum-lib (~> 4.2.7.7) gitlab-gollum-rugged_adapter (~> 0.4.4.2) gitlab-markup (~> 1.7.0) - google-protobuf (~> 3.6) - grpc (~> 1.15.0) + google-protobuf (~> 3.7.1) + grpc (~> 1.19.0) licensee (~> 8.9.0) listen (~> 0.5.0) pry (~> 0.12.2) @@ -196,7 +196,7 @@ DEPENDENCIES rdoc (~> 4.2) rspec rspec-parameterized - rubocop (~> 0.50) + rubocop (~> 0.68) rugged (~> 0.28) sentry-raven (~> 2.9.0) simplecov (~> 0.9.0) diff --git a/ruby/lib/gitaly_server/operations_service.rb b/ruby/lib/gitaly_server/operations_service.rb index 64b52f6fb..4a3478419 100644 --- a/ruby/lib/gitaly_server/operations_service.rb +++ b/ruby/lib/gitaly_server/operations_service.rb @@ -201,6 +201,40 @@ module GitalyServer Gitaly::UserRevertResponse.new(pre_receive_error: set_utf8!(e.message)) end + def user_rebase_confirmable(session, call) + Enumerator.new do |y| + header = session.next.header + + repo = Gitlab::Git::Repository.from_gitaly(header.repository, call) + user = Gitlab::Git::User.from_gitaly(header.user) + remote_repository = Gitlab::Git::GitalyRemoteRepository.new(header.remote_repository, call) + + begin + repo.rebase( + user, + header.rebase_id, + branch: header.branch, + branch_sha: header.branch_sha, + remote_repository: remote_repository, + remote_branch: header.remote_branch + ) do |rebase_sha| + y << Gitaly::UserRebaseConfirmableResponse.new(rebase_sha: rebase_sha) + + raise GRPC::FailedPrecondition.new('rebase aborted by client') unless session.next.apply + end + + y << Gitaly::UserRebaseConfirmableResponse.new(rebase_applied: true) + rescue Gitlab::Git::PreReceiveError => e + Gitaly::UserRebaseConfirmableResponse.new(pre_receive_error: set_utf8!(e.message)) + rescue Gitlab::Git::Repository::GitError => e + Gitaly::UserRebaseConfirmableResponse.new(git_error: set_utf8!(e.message)) + rescue Gitlab::Git::CommitError => e + raise GRPC::FailedPrecondition.new(e.message) + end + end + end + + # DEPRECATED: https://gitlab.com/gitlab-org/gitaly/issues/1628 def user_rebase(request, call) repo = Gitlab::Git::Repository.from_gitaly(request.repository, call) user = Gitlab::Git::User.from_gitaly(request.user) diff --git a/ruby/lib/gitaly_server/remote_service.rb b/ruby/lib/gitaly_server/remote_service.rb index 983c4c786..39cc6e60e 100644 --- a/ruby/lib/gitaly_server/remote_service.rb +++ b/ruby/lib/gitaly_server/remote_service.rb @@ -40,25 +40,5 @@ module GitalyServer Gitaly::UpdateRemoteMirrorResponse.new end - - private - - def parse_refmaps(refmaps) - return unless refmaps.present? - - parsed_refmaps = refmaps.map do |refmap| - next unless refmap.present? - - refmap_spec = refmap.to_sym - - if Gitlab::Git::RepositoryMirroring::REFMAPS.has_key?(refmap_spec) - refmap_spec - else - refmap - end - end - - parsed_refmaps.compact.presence - end end end diff --git a/ruby/lib/gitaly_server/repository_service.rb b/ruby/lib/gitaly_server/repository_service.rb index 23e55b352..d01ac7e96 100644 --- a/ruby/lib/gitaly_server/repository_service.rb +++ b/ruby/lib/gitaly_server/repository_service.rb @@ -23,19 +23,37 @@ module GitalyServer def fetch_remote(request, call) gitlab_projects = Gitlab::Git::GitlabProjects.from_gitaly(request.repository, call) + remote_name = request.remote + + repository = nil + + if request.remote_params + params = request.remote_params + repository = Gitlab::Git::Repository.from_gitaly(request.repository, call) + + mirror_refmaps = parse_refmaps(params.mirror_refmaps) + + repository.add_remote(params.name, params.url, mirror_refmap: mirror_refmaps) + remote_name = params.name + end + success = Gitlab::Git::SshAuth.from_gitaly(request).setup do |env| - gitlab_projects.fetch_remote( - request.remote, - request.timeout, - force: request.force, - tags: !request.no_tags, - env: env - ) + Gitlab::Git::HttpAuth.from_gitaly(request, call) do + gitlab_projects.fetch_remote( + remote_name, + request.timeout, + force: request.force, + tags: !request.no_tags, + env: env + ) + end end raise GRPC::Unknown.new("Fetching remote #{request.remote} failed: #{gitlab_projects.output}") unless success Gitaly::FetchRemoteResponse.new + ensure + repository&.remove_remote(remote_name) end def write_config(request, call) @@ -84,11 +102,11 @@ module GitalyServer private OPERATION_MAP = { - added: Gitaly::GetRawChangesResponse::RawChange::Operation::ADDED, - copied: Gitaly::GetRawChangesResponse::RawChange::Operation::COPIED, - deleted: Gitaly::GetRawChangesResponse::RawChange::Operation::DELETED, - modified: Gitaly::GetRawChangesResponse::RawChange::Operation::MODIFIED, - renamed: Gitaly::GetRawChangesResponse::RawChange::Operation::RENAMED, + added: Gitaly::GetRawChangesResponse::RawChange::Operation::ADDED, + copied: Gitaly::GetRawChangesResponse::RawChange::Operation::COPIED, + deleted: Gitaly::GetRawChangesResponse::RawChange::Operation::DELETED, + modified: Gitaly::GetRawChangesResponse::RawChange::Operation::MODIFIED, + renamed: Gitaly::GetRawChangesResponse::RawChange::Operation::RENAMED, type_changed: Gitaly::GetRawChangesResponse::RawChange::Operation::TYPE_CHANGED }.freeze diff --git a/ruby/lib/gitaly_server/sentry.rb b/ruby/lib/gitaly_server/sentry.rb index b736cfe34..bb6d9100f 100644 --- a/ruby/lib/gitaly_server/sentry.rb +++ b/ruby/lib/gitaly_server/sentry.rb @@ -59,4 +59,5 @@ Raven.configure do |config| config.release = ENV['GITALY_VERSION'].presence config.sanitize_fields = %w[gitaly-servers authorization] config.processors += [GitalyServer::Sentry::URLSanitizer] + config.current_environment = ENV['SENTRY_ENVIRONMENT'].presence end diff --git a/ruby/lib/gitaly_server/utils.rb b/ruby/lib/gitaly_server/utils.rb index 925656d97..e81e148e2 100644 --- a/ruby/lib/gitaly_server/utils.rb +++ b/ruby/lib/gitaly_server/utils.rb @@ -1,7 +1,7 @@ module GitalyServer module Utils # See internal/logsanitizer/url.go for credits and explanation. - URL_HOST_PATTERN = %r{([a-z][a-z0-9+\-.]*://)([a-z0-9\-._~%!$&'()*+,;=:]+@)([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&'()*+,;=:]+\])}i + URL_HOST_PATTERN = %r{([a-z][a-z0-9+\-.]*://)?([a-z0-9\-._~%!$&'()*+,;=:]+@)([a-z0-9\-._~%]+|\[[a-z0-9\-._~%!$&'()*+,;=:]+\])}i.freeze def gitaly_commit_from_rugged(rugged_commit) message_split = rugged_commit.message.b.split("\n", 2) @@ -73,5 +73,21 @@ module GitalyServer def sanitize_url(str) str.gsub(URL_HOST_PATTERN, '\1[FILTERED]@\3\4') end + + def parse_refmaps(refmaps) + return unless refmaps.present? + + parsed_refmaps = refmaps.select(&:present?).map do |refmap| + refmap_spec = refmap.to_sym + + if Gitlab::Git::RepositoryMirroring::REFMAPS.key?(refmap_spec) + refmap_spec + else + refmap + end + end + + parsed_refmaps.presence + end end end diff --git a/ruby/lib/gitlab/git.rb b/ruby/lib/gitlab/git.rb index 09b6e8b37..3688b2be5 100644 --- a/ruby/lib/gitlab/git.rb +++ b/ruby/lib/gitlab/git.rb @@ -45,7 +45,7 @@ module Gitlab # See http://stackoverflow.com/a/40884093/1856239 and # https://github.com/git/git/blob/3ad8b5bf26362ac67c9020bf8c30eee54a84f56d/cache.h#L1011-L1012 EMPTY_TREE_ID = '4b825dc642cb6eb9a060e54bf8d69288fbee4904'.freeze - BLANK_SHA = ('0' * 40).freeze + BLANK_SHA = '0' * 40 TAG_REF_PREFIX = "refs/tags/".freeze BRANCH_REF_PREFIX = "refs/heads/".freeze diff --git a/ruby/lib/gitlab/git/gitaly_remote_repository.rb b/ruby/lib/gitlab/git/gitaly_remote_repository.rb index 6fa6657d0..237ca5472 100644 --- a/ruby/lib/gitlab/git/gitaly_remote_repository.rb +++ b/ruby/lib/gitlab/git/gitaly_remote_repository.rb @@ -2,7 +2,7 @@ module Gitlab module Git class GitalyRemoteRepository < RemoteRepository CLIENT_NAME = 'gitaly-ruby'.freeze - PEM_REXP = /[-]+BEGIN CERTIFICATE[-]+.+?[-]+END CERTIFICATE[-]+/m + PEM_REXP = /[-]+BEGIN CERTIFICATE[-]+.+?[-]+END CERTIFICATE[-]+/m.freeze attr_reader :gitaly_client diff --git a/ruby/lib/gitlab/git/gitlab_projects.rb b/ruby/lib/gitlab/git/gitlab_projects.rb index 3c7453961..b02cdc5ec 100644 --- a/ruby/lib/gitlab/git/gitlab_projects.rb +++ b/ruby/lib/gitlab/git/gitlab_projects.rb @@ -112,15 +112,6 @@ module Gitlab false end - def mask_password_in_url(url) - result = URI(url) - result.password = "*****" unless result.password.nil? - result.user = "*****" unless result.user.nil? # it's needed for oauth access_token - result - rescue - url - end - def remove_origin_in_repo cmd = %W(#{Gitlab.config.git.bin_path} remote rm origin) run(cmd, repository_absolute_path) diff --git a/ruby/lib/gitlab/git/http_auth.rb b/ruby/lib/gitlab/git/http_auth.rb new file mode 100644 index 000000000..de4e7287e --- /dev/null +++ b/ruby/lib/gitlab/git/http_auth.rb @@ -0,0 +1,33 @@ +module Gitlab + module Git + class HttpAuth + def self.from_gitaly(request, call) + params = request.remote_params + + return yield unless params.present? + return yield unless params.http_authorization_header.present? + + repo = Gitlab::Git::Repository.from_gitaly(request.repository, call) + + validate_remote_params(params) + + key = "http.#{params.url}.extraHeader" + repo.rugged.config[key] = "Authorization: #{params.http_authorization_header}" + + begin + yield + ensure + repo.rugged.config.delete(key) + end + end + + def self.validate_remote_params(remote_params) + begin + URI.parse(remote_params.url) + rescue URI::Error + raise GRPC::InvalidArgument, 'invalid remote url' + end + end + end + end +end diff --git a/ruby/lib/gitlab/git/operation_service.rb b/ruby/lib/gitlab/git/operation_service.rb index 74951ade0..2b3355c0d 100644 --- a/ruby/lib/gitlab/git/operation_service.rb +++ b/ruby/lib/gitlab/git/operation_service.rb @@ -73,14 +73,11 @@ module Gitlab # it would be created from `start_branch_name`. # If `start_repository` is passed, and the branch doesn't exist, # it would try to find the commits from it instead of current repository. - def with_branch( - branch_name, - start_branch_name: nil, - start_repository: repository, - force: false, - &block - ) - + def with_branch(branch_name, + start_branch_name: nil, + start_repository: repository, + force: false, + &block) Gitlab::Git.check_namespace!(start_repository) start_repository = RemoteRepository.new(start_repository) unless start_repository.is_a?(RemoteRepository) diff --git a/ruby/lib/gitlab/git/repository.rb b/ruby/lib/gitlab/git/repository.rb index 030bece0b..f511b3ef6 100644 --- a/ruby/lib/gitlab/git/repository.rb +++ b/ruby/lib/gitlab/git/repository.rb @@ -61,37 +61,6 @@ module Gitlab # Equivalent to `git --git-path=#{repo_path} init [--bare]` repo = Rugged::Repository.init_at(repo_path, true) repo.close - - # TODO: stop symlinking to the old hooks location in or after GitLab 12.0. - # https://gitlab.com/gitlab-org/gitaly/issues/1392 - create_hooks(repo_path, Gitlab::Git::Hook.legacy_hooks_directory) - end - - def create_hooks(repo_path, global_hooks_path) - local_hooks_path = File.join(repo_path, 'hooks') - real_local_hooks_path = :not_found - - begin - real_local_hooks_path = File.realpath(local_hooks_path) - rescue Errno::ENOENT - # real_local_hooks_path == :not_found - end - - # Do nothing if hooks already exist - unless real_local_hooks_path == File.realpath(global_hooks_path) - if File.exist?(local_hooks_path) - # Move the existing hooks somewhere safe - FileUtils.mv( - local_hooks_path, - "#{local_hooks_path}.old.#{Time.now.to_i}" - ) - end - - # Create the hooks symlink - FileUtils.ln_sf(global_hooks_path, local_hooks_path) - end - - true end end @@ -406,6 +375,8 @@ module Gitlab rebase_sha = run_git!(%w[rev-parse HEAD], chdir: rebase_path, env: env).strip + yield rebase_sha if block_given? + update_branch(branch, user: user, newrev: rebase_sha, oldrev: branch_sha) rebase_sha @@ -426,7 +397,7 @@ module Gitlab with_worktree(squash_path, branch, sparse_checkout_files: diff_files, env: env) do # Apply diff of the `diff_range` to the worktree diff = run_git!(%W[diff --binary #{diff_range}]) - run_git!(%w[apply --index --whitespace=nowarn], chdir: squash_path, env: env, include_stderr: true) do |stdin| + run_git!(%w[apply --index --3way --whitespace=nowarn], chdir: squash_path, env: env, include_stderr: true) do |stdin| stdin.binmode stdin.write(diff) end @@ -488,12 +459,9 @@ module Gitlab end # rubocop:disable Metrics/ParameterLists - def multi_action( - user, branch_name:, message:, actions:, - author_email: nil, author_name: nil, - start_branch_name: nil, start_repository: self, force: false - ) - + def multi_action(user, branch_name:, message:, actions:, + author_email: nil, author_name: nil, + start_branch_name: nil, start_repository: self, force: false) OperationService.new(user, self).with_branch( branch_name, start_branch_name: start_branch_name, diff --git a/ruby/spec/lib/gitaly_server/exception_sanitizer_interceptor_spec.rb b/ruby/spec/lib/gitaly_server/exception_sanitizer_interceptor_spec.rb index 06fabffc8..2e5516173 100644 --- a/ruby/spec/lib/gitaly_server/exception_sanitizer_interceptor_spec.rb +++ b/ruby/spec/lib/gitaly_server/exception_sanitizer_interceptor_spec.rb @@ -17,6 +17,15 @@ describe GitalyServer::ExceptionSanitizerInterceptor do end end + context 'with incomplete url in exception' do + let(:ex) { "unable to look up user:pass@non-existent.org (port 9418)" } + let(:ex_sanitized_message) { "unable to look up [FILTERED]@non-existent.org (port 9418)" } + + it 'sanitizes exception message' do + expect { subject }.to raise_error(ex_sanitized_message) + end + end + context 'GRPC::BadStatus exception' do let(:ex) { GRPC::Unknown.new(super().message) } diff --git a/ruby/spec/lib/gitlab/git/repository_spec.rb b/ruby/spec/lib/gitlab/git/repository_spec.rb index 962be8fc6..57b88ef59 100644 --- a/ruby/spec/lib/gitlab/git/repository_spec.rb +++ b/ruby/spec/lib/gitlab/git/repository_spec.rb @@ -37,53 +37,6 @@ describe Gitlab::Git::Repository do # rubocop:disable Metrics/BlockLength end end - describe '.create_hooks' do - let(:repo_path) { File.join(storage_path, 'hook-test.git') } - let(:hooks_dir) { File.join(repo_path, 'hooks') } - let(:target_hooks_dir) { Gitlab::Git::Hook.legacy_hooks_directory } - let(:existing_target) { File.join(repo_path, 'foobar') } - - before do - GitlabShellHelper.setup_gitlab_shell - - FileUtils.rm_rf(repo_path) - FileUtils.mkdir_p(repo_path) - end - - context 'hooks is a directory' do - let(:existing_file) { File.join(hooks_dir, 'my-file') } - - before do - FileUtils.mkdir_p(hooks_dir) - FileUtils.touch(existing_file) - described_class.create_hooks(repo_path, target_hooks_dir) - end - - it { expect(File.readlink(hooks_dir)).to eq(target_hooks_dir) } - it { expect(Dir[File.join(repo_path, "hooks.old.*/my-file")].count).to eq(1) } - end - - context 'hooks is a valid symlink' do - before do - FileUtils.mkdir_p existing_target - File.symlink(existing_target, hooks_dir) - described_class.create_hooks(repo_path, target_hooks_dir) - end - - it { expect(File.readlink(hooks_dir)).to eq(target_hooks_dir) } - end - - context 'hooks is a broken symlink' do - before do - FileUtils.rm_f(existing_target) - File.symlink(existing_target, hooks_dir) - described_class.create_hooks(repo_path, target_hooks_dir) - end - - it { expect(File.readlink(hooks_dir)).to eq(target_hooks_dir) } - end - end - describe "Respond to" do subject { repository } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/blob.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/blob.pb.go index f776e50df..c37faa72e 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/blob.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/blob.pb.go @@ -38,7 +38,7 @@ func (m *GetBlobRequest) Reset() { *m = GetBlobRequest{} } func (m *GetBlobRequest) String() string { return proto.CompactTextString(m) } func (*GetBlobRequest) ProtoMessage() {} func (*GetBlobRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{0} + return fileDescriptor_blob_b206716c944087ca, []int{0} } func (m *GetBlobRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlobRequest.Unmarshal(m, b) @@ -95,7 +95,7 @@ func (m *GetBlobResponse) Reset() { *m = GetBlobResponse{} } func (m *GetBlobResponse) String() string { return proto.CompactTextString(m) } func (*GetBlobResponse) ProtoMessage() {} func (*GetBlobResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{1} + return fileDescriptor_blob_b206716c944087ca, []int{1} } func (m *GetBlobResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlobResponse.Unmarshal(m, b) @@ -151,7 +151,7 @@ func (m *GetBlobsRequest) Reset() { *m = GetBlobsRequest{} } func (m *GetBlobsRequest) String() string { return proto.CompactTextString(m) } func (*GetBlobsRequest) ProtoMessage() {} func (*GetBlobsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{2} + return fileDescriptor_blob_b206716c944087ca, []int{2} } func (m *GetBlobsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlobsRequest.Unmarshal(m, b) @@ -204,7 +204,7 @@ func (m *GetBlobsRequest_RevisionPath) Reset() { *m = GetBlobsRequest_Re func (m *GetBlobsRequest_RevisionPath) String() string { return proto.CompactTextString(m) } func (*GetBlobsRequest_RevisionPath) ProtoMessage() {} func (*GetBlobsRequest_RevisionPath) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{2, 0} + return fileDescriptor_blob_b206716c944087ca, []int{2, 0} } func (m *GetBlobsRequest_RevisionPath) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlobsRequest_RevisionPath.Unmarshal(m, b) @@ -258,7 +258,7 @@ func (m *GetBlobsResponse) Reset() { *m = GetBlobsResponse{} } func (m *GetBlobsResponse) String() string { return proto.CompactTextString(m) } func (*GetBlobsResponse) ProtoMessage() {} func (*GetBlobsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{3} + return fileDescriptor_blob_b206716c944087ca, []int{3} } func (m *GetBlobsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlobsResponse.Unmarshal(m, b) @@ -340,7 +340,7 @@ func (m *LFSPointer) Reset() { *m = LFSPointer{} } func (m *LFSPointer) String() string { return proto.CompactTextString(m) } func (*LFSPointer) ProtoMessage() {} func (*LFSPointer) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{4} + return fileDescriptor_blob_b206716c944087ca, []int{4} } func (m *LFSPointer) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LFSPointer.Unmarshal(m, b) @@ -394,7 +394,7 @@ func (m *NewBlobObject) Reset() { *m = NewBlobObject{} } func (m *NewBlobObject) String() string { return proto.CompactTextString(m) } func (*NewBlobObject) ProtoMessage() {} func (*NewBlobObject) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{5} + return fileDescriptor_blob_b206716c944087ca, []int{5} } func (m *NewBlobObject) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NewBlobObject.Unmarshal(m, b) @@ -447,7 +447,7 @@ func (m *GetLFSPointersRequest) Reset() { *m = GetLFSPointersRequest{} } func (m *GetLFSPointersRequest) String() string { return proto.CompactTextString(m) } func (*GetLFSPointersRequest) ProtoMessage() {} func (*GetLFSPointersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{6} + return fileDescriptor_blob_b206716c944087ca, []int{6} } func (m *GetLFSPointersRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetLFSPointersRequest.Unmarshal(m, b) @@ -492,7 +492,7 @@ func (m *GetLFSPointersResponse) Reset() { *m = GetLFSPointersResponse{} func (m *GetLFSPointersResponse) String() string { return proto.CompactTextString(m) } func (*GetLFSPointersResponse) ProtoMessage() {} func (*GetLFSPointersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{7} + return fileDescriptor_blob_b206716c944087ca, []int{7} } func (m *GetLFSPointersResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetLFSPointersResponse.Unmarshal(m, b) @@ -535,7 +535,7 @@ func (m *GetNewLFSPointersRequest) Reset() { *m = GetNewLFSPointersReque func (m *GetNewLFSPointersRequest) String() string { return proto.CompactTextString(m) } func (*GetNewLFSPointersRequest) ProtoMessage() {} func (*GetNewLFSPointersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{8} + return fileDescriptor_blob_b206716c944087ca, []int{8} } func (m *GetNewLFSPointersRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetNewLFSPointersRequest.Unmarshal(m, b) @@ -601,7 +601,7 @@ func (m *GetNewLFSPointersResponse) Reset() { *m = GetNewLFSPointersResp func (m *GetNewLFSPointersResponse) String() string { return proto.CompactTextString(m) } func (*GetNewLFSPointersResponse) ProtoMessage() {} func (*GetNewLFSPointersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{9} + return fileDescriptor_blob_b206716c944087ca, []int{9} } func (m *GetNewLFSPointersResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetNewLFSPointersResponse.Unmarshal(m, b) @@ -640,7 +640,7 @@ func (m *GetAllLFSPointersRequest) Reset() { *m = GetAllLFSPointersReque func (m *GetAllLFSPointersRequest) String() string { return proto.CompactTextString(m) } func (*GetAllLFSPointersRequest) ProtoMessage() {} func (*GetAllLFSPointersRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{10} + return fileDescriptor_blob_b206716c944087ca, []int{10} } func (m *GetAllLFSPointersRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllLFSPointersRequest.Unmarshal(m, b) @@ -685,7 +685,7 @@ func (m *GetAllLFSPointersResponse) Reset() { *m = GetAllLFSPointersResp func (m *GetAllLFSPointersResponse) String() string { return proto.CompactTextString(m) } func (*GetAllLFSPointersResponse) ProtoMessage() {} func (*GetAllLFSPointersResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_blob_4ab5662dde31e5b6, []int{11} + return fileDescriptor_blob_b206716c944087ca, []int{11} } func (m *GetAllLFSPointersResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllLFSPointersResponse.Unmarshal(m, b) @@ -1073,49 +1073,48 @@ var _BlobService_serviceDesc = grpc.ServiceDesc{ Metadata: "blob.proto", } -func init() { proto.RegisterFile("blob.proto", fileDescriptor_blob_4ab5662dde31e5b6) } - -var fileDescriptor_blob_4ab5662dde31e5b6 = []byte{ - // 641 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcd, 0x4e, 0xdb, 0x4c, - 0x14, 0xfd, 0x1c, 0x93, 0x90, 0xdc, 0x04, 0x3e, 0x3a, 0x6a, 0xc1, 0x58, 0x2d, 0x32, 0x51, 0x17, - 0xde, 0x10, 0x50, 0xaa, 0x6e, 0xba, 0x40, 0x82, 0x05, 0x08, 0x51, 0x01, 0x9a, 0xec, 0xaa, 0x4a, - 0x91, 0x8d, 0x27, 0x30, 0xd5, 0xc4, 0xe3, 0x7a, 0x06, 0x10, 0x7d, 0x91, 0xae, 0xfb, 0x0c, 0x7d, - 0x87, 0x3e, 0x4f, 0xd5, 0x27, 0xa8, 0x66, 0xfc, 0x9b, 0xd8, 0x74, 0xe3, 0x76, 0x77, 0xe7, 0xce, - 0xfd, 0x39, 0xe7, 0xde, 0xe3, 0x31, 0x80, 0xcf, 0xb8, 0x3f, 0x8a, 0x62, 0x2e, 0x39, 0xea, 0xdc, - 0x50, 0xe9, 0xb1, 0x47, 0x7b, 0x20, 0x6e, 0xbd, 0x98, 0x04, 0x89, 0x77, 0x28, 0x61, 0xfd, 0x94, - 0xc8, 0x63, 0xc6, 0x7d, 0x4c, 0x3e, 0xdf, 0x11, 0x21, 0xd1, 0x18, 0x20, 0x26, 0x11, 0x17, 0x54, - 0xf2, 0xf8, 0xd1, 0x32, 0x1c, 0xc3, 0xed, 0x8f, 0xd1, 0x28, 0x49, 0x1e, 0xe1, 0xfc, 0x06, 0x97, - 0xa2, 0xd0, 0x06, 0x98, 0x9c, 0x06, 0x56, 0xcb, 0x31, 0xdc, 0x1e, 0x56, 0x26, 0x7a, 0x0e, 0x6d, - 0x46, 0xe7, 0x54, 0x5a, 0xa6, 0x63, 0xb8, 0x26, 0x4e, 0x0e, 0xef, 0x3a, 0xbf, 0xbe, 0xba, 0xad, - 0x6e, 0x6b, 0x78, 0x0e, 0xff, 0xe7, 0x5d, 0x45, 0xc4, 0x43, 0x41, 0x10, 0x82, 0x15, 0x41, 0xbf, - 0x10, 0xdd, 0xd0, 0xc4, 0xda, 0x56, 0xbe, 0xc0, 0x93, 0x9e, 0xae, 0x3b, 0xc0, 0xda, 0xce, 0x5a, - 0x99, 0x79, 0xab, 0xe1, 0x4f, 0x23, 0xaf, 0x26, 0x9a, 0x90, 0x38, 0x87, 0xf5, 0x98, 0xdc, 0x53, - 0x41, 0x79, 0x38, 0x8d, 0x3c, 0x79, 0x2b, 0xac, 0x96, 0x63, 0xba, 0xfd, 0xf1, 0xeb, 0x2c, 0x6f, - 0xa9, 0xc9, 0x08, 0xa7, 0xd1, 0x57, 0x9e, 0xbc, 0xc5, 0x6b, 0x71, 0xe9, 0x24, 0xea, 0xf9, 0xdb, - 0x87, 0x30, 0x28, 0x27, 0x21, 0x1b, 0xba, 0x59, 0x9a, 0x06, 0xd9, 0xc3, 0xf9, 0x59, 0x91, 0x57, - 0x28, 0x32, 0xf2, 0xca, 0xce, 0xe7, 0xf7, 0xdd, 0x80, 0x8d, 0x02, 0x4d, 0xd3, 0x09, 0xa2, 0x5d, - 0x18, 0x50, 0x31, 0x15, 0x77, 0xfe, 0x9c, 0x07, 0x77, 0x8c, 0x58, 0x2b, 0x8e, 0xe1, 0x76, 0x71, - 0x9f, 0x8a, 0x49, 0xe6, 0x52, 0x85, 0xe6, 0x3c, 0x20, 0x56, 0xdb, 0x31, 0xdc, 0x36, 0xd6, 0xf6, - 0x02, 0xfa, 0xce, 0x13, 0xe8, 0x57, 0x0b, 0xf4, 0xc3, 0x13, 0x80, 0xf7, 0x27, 0x93, 0x2b, 0x4e, - 0x43, 0x49, 0xe2, 0x06, 0x0b, 0x3f, 0x83, 0xb5, 0x0b, 0xf2, 0xa0, 0xc8, 0x5f, 0xfa, 0x9f, 0xc8, - 0xb5, 0xac, 0x2d, 0x55, 0x95, 0x64, 0x06, 0xc9, 0x2c, 0x41, 0x0a, 0xe1, 0xc5, 0x29, 0x91, 0x05, - 0xaa, 0x46, 0x02, 0xda, 0x86, 0xae, 0xfa, 0xde, 0xa6, 0x34, 0x48, 0xa4, 0xd3, 0xc3, 0xab, 0xea, - 0x7c, 0x16, 0x88, 0x7c, 0x71, 0x97, 0xb0, 0xb9, 0xdc, 0x2f, 0xdd, 0xde, 0x5b, 0x18, 0xb0, 0x99, - 0x98, 0x46, 0xa9, 0xdf, 0x32, 0xb4, 0xf6, 0xf2, 0x96, 0x45, 0x0a, 0xee, 0xb3, 0x99, 0xc8, 0xd2, - 0x87, 0x3f, 0x0c, 0xb0, 0x4e, 0x89, 0xbc, 0x20, 0x0f, 0x7f, 0x89, 0x44, 0x79, 0xa9, 0xc9, 0x1a, - 0x8a, 0xa5, 0x2e, 0x88, 0xba, 0x9d, 0x8a, 0x1a, 0xbd, 0x04, 0x08, 0xb9, 0x9c, 0xd2, 0x70, 0xea, - 0x31, 0x96, 0x6a, 0xa7, 0x1b, 0x72, 0x79, 0x16, 0x1e, 0x31, 0x86, 0x76, 0xa0, 0x9f, 0xde, 0xc6, - 0x64, 0x26, 0xac, 0xb6, 0x63, 0xba, 0x03, 0xdc, 0xd3, 0xd7, 0x98, 0xcc, 0x8a, 0xc9, 0x60, 0xd8, - 0xae, 0xe1, 0xd1, 0x6c, 0x38, 0xb1, 0x9e, 0xcd, 0x11, 0x63, 0xff, 0x7e, 0x36, 0x4b, 0x3c, 0x96, - 0x7b, 0x36, 0xe2, 0x31, 0xfe, 0x66, 0x42, 0x5f, 0xc9, 0x7d, 0x42, 0xe2, 0x7b, 0x7a, 0x4d, 0xd0, - 0x21, 0xac, 0xa6, 0x5f, 0x3f, 0xda, 0x5c, 0x7a, 0x9c, 0x52, 0x7a, 0xf6, 0x56, 0xc5, 0x9f, 0x40, - 0x18, 0xfe, 0x77, 0x60, 0xa0, 0x23, 0xe8, 0x66, 0xaf, 0x07, 0xda, 0x7a, 0xe2, 0x75, 0xb3, 0xad, - 0xea, 0x45, 0xa9, 0xc4, 0x44, 0xff, 0x37, 0x4a, 0x1c, 0xd1, 0xab, 0x52, 0x7c, 0x75, 0xde, 0xf6, - 0xce, 0x53, 0xd7, 0xa5, 0xa2, 0x1f, 0xe1, 0x59, 0x45, 0x03, 0xc8, 0x29, 0x25, 0xd6, 0xca, 0xdc, - 0xde, 0xfd, 0x43, 0x44, 0xa5, 0xfa, 0xe2, 0x66, 0x16, 0xaa, 0xd7, 0x0a, 0x65, 0xa1, 0x7a, 0xfd, - 0x5a, 0x55, 0xf5, 0xe3, 0x83, 0x0f, 0x2a, 0x8e, 0x79, 0xfe, 0xe8, 0x9a, 0xcf, 0xf7, 0x13, 0x73, - 0x8f, 0xc7, 0x37, 0xfb, 0x49, 0xf6, 0x9e, 0xfe, 0xdd, 0xee, 0xdf, 0xf0, 0xf4, 0x1c, 0xf9, 0x7e, - 0x47, 0xbb, 0xde, 0xfc, 0x0e, 0x00, 0x00, 0xff, 0xff, 0x20, 0xce, 0xf0, 0xda, 0xa5, 0x07, 0x00, - 0x00, +func init() { proto.RegisterFile("blob.proto", fileDescriptor_blob_b206716c944087ca) } + +var fileDescriptor_blob_b206716c944087ca = []byte{ + // 632 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcd, 0x4e, 0xdb, 0x40, + 0x10, 0x96, 0x63, 0x12, 0x92, 0x49, 0xa0, 0x74, 0xd5, 0x82, 0xb1, 0x5a, 0x64, 0xac, 0x1e, 0x7c, + 0x21, 0xa0, 0x54, 0xbd, 0x56, 0x02, 0x55, 0x44, 0x88, 0x0a, 0xd0, 0x72, 0x6a, 0x2f, 0x96, 0x8d, + 0x37, 0xb0, 0x68, 0xe3, 0x75, 0xbd, 0x1b, 0x10, 0x7d, 0x91, 0x3e, 0x48, 0xef, 0xed, 0xeb, 0xf4, + 0x19, 0x7a, 0xaa, 0xbc, 0xfe, 0x89, 0x13, 0x3b, 0xbd, 0xb8, 0xbd, 0xcd, 0xce, 0xec, 0xcc, 0xf7, + 0xcd, 0xcc, 0xe7, 0x35, 0x80, 0xcf, 0xb8, 0x3f, 0x8c, 0x62, 0x2e, 0x39, 0xea, 0xdc, 0x52, 0xe9, + 0xb1, 0x27, 0x73, 0x20, 0xee, 0xbc, 0x98, 0x04, 0xa9, 0xd7, 0x66, 0xb0, 0x39, 0x26, 0xf2, 0x84, + 0x71, 0x1f, 0x93, 0x2f, 0x33, 0x22, 0x24, 0x1a, 0x01, 0xc4, 0x24, 0xe2, 0x82, 0x4a, 0x1e, 0x3f, + 0x19, 0x9a, 0xa5, 0x39, 0xfd, 0x11, 0x1a, 0xa6, 0xc9, 0x43, 0x5c, 0x44, 0x70, 0xe9, 0x16, 0xda, + 0x02, 0x9d, 0xd3, 0xc0, 0x68, 0x59, 0x9a, 0xd3, 0xc3, 0x89, 0x89, 0x5e, 0x40, 0x9b, 0xd1, 0x29, + 0x95, 0x86, 0x6e, 0x69, 0x8e, 0x8e, 0xd3, 0x83, 0x7d, 0x0e, 0xcf, 0x0a, 0x34, 0x11, 0xf1, 0x50, + 0x10, 0x84, 0x60, 0x4d, 0xd0, 0xaf, 0x44, 0x01, 0xe9, 0x58, 0xd9, 0x89, 0x2f, 0xf0, 0xa4, 0xa7, + 0xea, 0x0d, 0xb0, 0xb2, 0x73, 0x08, 0xbd, 0x80, 0xb0, 0x7f, 0x69, 0x45, 0x35, 0xd1, 0x84, 0xfc, + 0x39, 0x6c, 0xc6, 0xe4, 0x81, 0x0a, 0xca, 0x43, 0x37, 0xf2, 0xe4, 0x9d, 0x30, 0x5a, 0x96, 0xee, + 0xf4, 0x47, 0x6f, 0xf2, 0xbc, 0x25, 0x90, 0x21, 0xce, 0x6e, 0x5f, 0x79, 0xf2, 0x0e, 0x6f, 0xc4, + 0xa5, 0x93, 0xa8, 0xef, 0xdb, 0x7c, 0x0f, 0x83, 0x72, 0x12, 0x32, 0xa1, 0x9b, 0xa7, 0x29, 0x92, + 0x3d, 0x5c, 0x9c, 0x93, 0xe6, 0x13, 0x16, 0x79, 0xf3, 0x89, 0x6d, 0x7f, 0xd7, 0x60, 0x6b, 0xce, + 0xa2, 0xe9, 0xe4, 0xd0, 0x3e, 0x0c, 0xa8, 0x70, 0xc5, 0xcc, 0x9f, 0xf2, 0x60, 0xc6, 0x88, 0xb1, + 0x66, 0x69, 0x4e, 0x17, 0xf7, 0xa9, 0xb8, 0xce, 0x5d, 0x49, 0xa1, 0x29, 0x0f, 0x88, 0xd1, 0xb6, + 0x34, 0xa7, 0x8d, 0x95, 0xbd, 0xc0, 0xba, 0xb3, 0x82, 0xf5, 0x7a, 0x89, 0xf5, 0x29, 0xc0, 0xc7, + 0xd3, 0xeb, 0x2b, 0x4e, 0x43, 0x49, 0xe2, 0x06, 0x8b, 0x3e, 0x83, 0x8d, 0x0b, 0xf2, 0x98, 0x34, + 0x7f, 0xe9, 0xdf, 0x93, 0x1b, 0x59, 0x5b, 0xaa, 0x2a, 0xc1, 0x9c, 0x92, 0x5e, 0xa2, 0x34, 0x81, + 0x97, 0x63, 0x22, 0xe7, 0xac, 0x1a, 0x09, 0x67, 0x17, 0xba, 0xc9, 0xf7, 0xe5, 0xd2, 0x20, 0x95, + 0x4c, 0x0f, 0xaf, 0x27, 0xe7, 0xb3, 0x40, 0xd8, 0x97, 0xb0, 0xbd, 0x8c, 0x93, 0x6d, 0xed, 0x1d, + 0x0c, 0xd8, 0x44, 0xb8, 0x51, 0xe6, 0x37, 0x34, 0xa5, 0xb5, 0x02, 0x6a, 0x9e, 0x82, 0xfb, 0x6c, + 0x22, 0xf2, 0x74, 0xfb, 0x87, 0x06, 0xc6, 0x98, 0xc8, 0x0b, 0xf2, 0xf8, 0x8f, 0xc8, 0x97, 0x97, + 0x99, 0x8e, 0x7f, 0xbe, 0xcc, 0x05, 0x11, 0xb7, 0x33, 0x11, 0xa3, 0x57, 0x00, 0x21, 0x97, 0x2e, + 0x0d, 0x5d, 0x8f, 0xb1, 0x4c, 0x33, 0xdd, 0x90, 0xcb, 0xb3, 0xf0, 0x98, 0x31, 0xb4, 0x07, 0xfd, + 0x2c, 0x1a, 0x93, 0x89, 0x30, 0xda, 0x96, 0xee, 0x0c, 0x70, 0x4f, 0x85, 0x31, 0x99, 0x08, 0x1b, + 0xc3, 0x6e, 0x0d, 0xff, 0x66, 0x43, 0xb9, 0x57, 0x33, 0x39, 0x66, 0xec, 0xff, 0xcf, 0x24, 0xe3, + 0xbf, 0x8c, 0xd5, 0x88, 0xff, 0xe8, 0xa7, 0x0e, 0xfd, 0x44, 0xd6, 0xd7, 0x24, 0x7e, 0xa0, 0x37, + 0x04, 0x7d, 0x80, 0xf5, 0xec, 0x2b, 0x47, 0xdb, 0x4b, 0x8f, 0x4f, 0xd6, 0x96, 0xb9, 0x53, 0xf1, + 0xa7, 0x14, 0xec, 0xce, 0xef, 0x6f, 0x4e, 0xab, 0xdb, 0x3a, 0xd2, 0xd0, 0x18, 0xba, 0xf9, 0x5b, + 0x81, 0x76, 0x56, 0xbc, 0x61, 0xa6, 0x51, 0x0d, 0x54, 0x0a, 0x7d, 0x52, 0xff, 0x86, 0x52, 0xbf, + 0xe8, 0x75, 0x29, 0xab, 0x3a, 0x73, 0x73, 0x6f, 0x55, 0xb8, 0x52, 0xda, 0x87, 0xe7, 0x15, 0x35, + 0x20, 0xab, 0x94, 0x5e, 0x2b, 0x74, 0x73, 0xff, 0x2f, 0x37, 0x56, 0x60, 0x2c, 0x6e, 0x6c, 0x01, + 0xa3, 0x56, 0x38, 0x0b, 0x18, 0xf5, 0xeb, 0x9e, 0x63, 0x9c, 0x1c, 0x7d, 0x4e, 0x6e, 0x33, 0xcf, + 0x1f, 0xde, 0xf0, 0xe9, 0x61, 0x6a, 0x1e, 0xf0, 0xf8, 0xf6, 0x30, 0xad, 0x71, 0xa0, 0x7e, 0xb2, + 0x87, 0xb7, 0x3c, 0x3b, 0x47, 0xbe, 0xdf, 0x51, 0xae, 0xb7, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, + 0xcc, 0xf2, 0xfb, 0xec, 0x9b, 0x07, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/cleanup.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/cleanup.pb.go index ae513b80e..fd60ab3bf 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/cleanup.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/cleanup.pb.go @@ -38,7 +38,7 @@ func (m *ApplyBfgObjectMapRequest) Reset() { *m = ApplyBfgObjectMapReque func (m *ApplyBfgObjectMapRequest) String() string { return proto.CompactTextString(m) } func (*ApplyBfgObjectMapRequest) ProtoMessage() {} func (*ApplyBfgObjectMapRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_cleanup_048c113e3f69de1a, []int{0} + return fileDescriptor_cleanup_8db38bed7bd810df, []int{0} } func (m *ApplyBfgObjectMapRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplyBfgObjectMapRequest.Unmarshal(m, b) @@ -82,7 +82,7 @@ func (m *ApplyBfgObjectMapResponse) Reset() { *m = ApplyBfgObjectMapResp func (m *ApplyBfgObjectMapResponse) String() string { return proto.CompactTextString(m) } func (*ApplyBfgObjectMapResponse) ProtoMessage() {} func (*ApplyBfgObjectMapResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_cleanup_048c113e3f69de1a, []int{1} + return fileDescriptor_cleanup_8db38bed7bd810df, []int{1} } func (m *ApplyBfgObjectMapResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplyBfgObjectMapResponse.Unmarshal(m, b) @@ -102,9 +102,226 @@ func (m *ApplyBfgObjectMapResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ApplyBfgObjectMapResponse proto.InternalMessageInfo +type ApplyBfgObjectMapStreamRequest struct { + // Only available on the first message + Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` + // A raw object-map file as generated by BFG: https://rtyley.github.io/bfg-repo-cleaner + // Each line in the file has two object SHAs, space-separated - the original + // SHA of the object, and the SHA after BFG has rewritten the object. + ObjectMap []byte `protobuf:"bytes,2,opt,name=object_map,json=objectMap,proto3" json:"object_map,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyBfgObjectMapStreamRequest) Reset() { *m = ApplyBfgObjectMapStreamRequest{} } +func (m *ApplyBfgObjectMapStreamRequest) String() string { return proto.CompactTextString(m) } +func (*ApplyBfgObjectMapStreamRequest) ProtoMessage() {} +func (*ApplyBfgObjectMapStreamRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cleanup_8db38bed7bd810df, []int{2} +} +func (m *ApplyBfgObjectMapStreamRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyBfgObjectMapStreamRequest.Unmarshal(m, b) +} +func (m *ApplyBfgObjectMapStreamRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyBfgObjectMapStreamRequest.Marshal(b, m, deterministic) +} +func (dst *ApplyBfgObjectMapStreamRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyBfgObjectMapStreamRequest.Merge(dst, src) +} +func (m *ApplyBfgObjectMapStreamRequest) XXX_Size() int { + return xxx_messageInfo_ApplyBfgObjectMapStreamRequest.Size(m) +} +func (m *ApplyBfgObjectMapStreamRequest) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyBfgObjectMapStreamRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyBfgObjectMapStreamRequest proto.InternalMessageInfo + +func (m *ApplyBfgObjectMapStreamRequest) GetRepository() *Repository { + if m != nil { + return m.Repository + } + return nil +} + +func (m *ApplyBfgObjectMapStreamRequest) GetObjectMap() []byte { + if m != nil { + return m.ObjectMap + } + return nil +} + +type ApplyBfgObjectMapStreamResponse struct { + Entries []*ApplyBfgObjectMapStreamResponse_Entry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyBfgObjectMapStreamResponse) Reset() { *m = ApplyBfgObjectMapStreamResponse{} } +func (m *ApplyBfgObjectMapStreamResponse) String() string { return proto.CompactTextString(m) } +func (*ApplyBfgObjectMapStreamResponse) ProtoMessage() {} +func (*ApplyBfgObjectMapStreamResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_cleanup_8db38bed7bd810df, []int{3} +} +func (m *ApplyBfgObjectMapStreamResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyBfgObjectMapStreamResponse.Unmarshal(m, b) +} +func (m *ApplyBfgObjectMapStreamResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyBfgObjectMapStreamResponse.Marshal(b, m, deterministic) +} +func (dst *ApplyBfgObjectMapStreamResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyBfgObjectMapStreamResponse.Merge(dst, src) +} +func (m *ApplyBfgObjectMapStreamResponse) XXX_Size() int { + return xxx_messageInfo_ApplyBfgObjectMapStreamResponse.Size(m) +} +func (m *ApplyBfgObjectMapStreamResponse) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyBfgObjectMapStreamResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyBfgObjectMapStreamResponse proto.InternalMessageInfo + +func (m *ApplyBfgObjectMapStreamResponse) GetEntries() []*ApplyBfgObjectMapStreamResponse_Entry { + if m != nil { + return m.Entries + } + return nil +} + +// We send back each parsed entry in the request's object map so the client +// can take action +type ApplyBfgObjectMapStreamResponse_Entry struct { + Type ObjectType `protobuf:"varint,1,opt,name=type,proto3,enum=gitaly.ObjectType" json:"type,omitempty"` + OldOid string `protobuf:"bytes,2,opt,name=old_oid,json=oldOid,proto3" json:"old_oid,omitempty"` + NewOid string `protobuf:"bytes,3,opt,name=new_oid,json=newOid,proto3" json:"new_oid,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyBfgObjectMapStreamResponse_Entry) Reset() { *m = ApplyBfgObjectMapStreamResponse_Entry{} } +func (m *ApplyBfgObjectMapStreamResponse_Entry) String() string { return proto.CompactTextString(m) } +func (*ApplyBfgObjectMapStreamResponse_Entry) ProtoMessage() {} +func (*ApplyBfgObjectMapStreamResponse_Entry) Descriptor() ([]byte, []int) { + return fileDescriptor_cleanup_8db38bed7bd810df, []int{3, 0} +} +func (m *ApplyBfgObjectMapStreamResponse_Entry) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyBfgObjectMapStreamResponse_Entry.Unmarshal(m, b) +} +func (m *ApplyBfgObjectMapStreamResponse_Entry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyBfgObjectMapStreamResponse_Entry.Marshal(b, m, deterministic) +} +func (dst *ApplyBfgObjectMapStreamResponse_Entry) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyBfgObjectMapStreamResponse_Entry.Merge(dst, src) +} +func (m *ApplyBfgObjectMapStreamResponse_Entry) XXX_Size() int { + return xxx_messageInfo_ApplyBfgObjectMapStreamResponse_Entry.Size(m) +} +func (m *ApplyBfgObjectMapStreamResponse_Entry) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyBfgObjectMapStreamResponse_Entry.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplyBfgObjectMapStreamResponse_Entry proto.InternalMessageInfo + +func (m *ApplyBfgObjectMapStreamResponse_Entry) GetType() ObjectType { + if m != nil { + return m.Type + } + return ObjectType_UNKNOWN +} + +func (m *ApplyBfgObjectMapStreamResponse_Entry) GetOldOid() string { + if m != nil { + return m.OldOid + } + return "" +} + +func (m *ApplyBfgObjectMapStreamResponse_Entry) GetNewOid() string { + if m != nil { + return m.NewOid + } + return "" +} + +type CloseSessionRequest struct { + SessionId string `protobuf:"bytes,1,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CloseSessionRequest) Reset() { *m = CloseSessionRequest{} } +func (m *CloseSessionRequest) String() string { return proto.CompactTextString(m) } +func (*CloseSessionRequest) ProtoMessage() {} +func (*CloseSessionRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_cleanup_8db38bed7bd810df, []int{4} +} +func (m *CloseSessionRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CloseSessionRequest.Unmarshal(m, b) +} +func (m *CloseSessionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CloseSessionRequest.Marshal(b, m, deterministic) +} +func (dst *CloseSessionRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloseSessionRequest.Merge(dst, src) +} +func (m *CloseSessionRequest) XXX_Size() int { + return xxx_messageInfo_CloseSessionRequest.Size(m) +} +func (m *CloseSessionRequest) XXX_DiscardUnknown() { + xxx_messageInfo_CloseSessionRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_CloseSessionRequest proto.InternalMessageInfo + +func (m *CloseSessionRequest) GetSessionId() string { + if m != nil { + return m.SessionId + } + return "" +} + +type CloseSessionResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CloseSessionResponse) Reset() { *m = CloseSessionResponse{} } +func (m *CloseSessionResponse) String() string { return proto.CompactTextString(m) } +func (*CloseSessionResponse) ProtoMessage() {} +func (*CloseSessionResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_cleanup_8db38bed7bd810df, []int{5} +} +func (m *CloseSessionResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CloseSessionResponse.Unmarshal(m, b) +} +func (m *CloseSessionResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CloseSessionResponse.Marshal(b, m, deterministic) +} +func (dst *CloseSessionResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloseSessionResponse.Merge(dst, src) +} +func (m *CloseSessionResponse) XXX_Size() int { + return xxx_messageInfo_CloseSessionResponse.Size(m) +} +func (m *CloseSessionResponse) XXX_DiscardUnknown() { + xxx_messageInfo_CloseSessionResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_CloseSessionResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*ApplyBfgObjectMapRequest)(nil), "gitaly.ApplyBfgObjectMapRequest") proto.RegisterType((*ApplyBfgObjectMapResponse)(nil), "gitaly.ApplyBfgObjectMapResponse") + proto.RegisterType((*ApplyBfgObjectMapStreamRequest)(nil), "gitaly.ApplyBfgObjectMapStreamRequest") + proto.RegisterType((*ApplyBfgObjectMapStreamResponse)(nil), "gitaly.ApplyBfgObjectMapStreamResponse") + proto.RegisterType((*ApplyBfgObjectMapStreamResponse_Entry)(nil), "gitaly.ApplyBfgObjectMapStreamResponse.Entry") + proto.RegisterType((*CloseSessionRequest)(nil), "gitaly.CloseSessionRequest") + proto.RegisterType((*CloseSessionResponse)(nil), "gitaly.CloseSessionResponse") } // Reference imports to suppress errors if they are not otherwise used. @@ -119,7 +336,10 @@ const _ = grpc.SupportPackageIsVersion4 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type CleanupServiceClient interface { + // Deprecated in favour of ApplyBfgObjectMapStream ApplyBfgObjectMap(ctx context.Context, opts ...grpc.CallOption) (CleanupService_ApplyBfgObjectMapClient, error) + ApplyBfgObjectMapStream(ctx context.Context, opts ...grpc.CallOption) (CleanupService_ApplyBfgObjectMapStreamClient, error) + CloseSession(ctx context.Context, in *CloseSessionRequest, opts ...grpc.CallOption) (*CloseSessionResponse, error) } type cleanupServiceClient struct { @@ -164,9 +384,52 @@ func (x *cleanupServiceApplyBfgObjectMapClient) CloseAndRecv() (*ApplyBfgObjectM return m, nil } +func (c *cleanupServiceClient) ApplyBfgObjectMapStream(ctx context.Context, opts ...grpc.CallOption) (CleanupService_ApplyBfgObjectMapStreamClient, error) { + stream, err := c.cc.NewStream(ctx, &_CleanupService_serviceDesc.Streams[1], "/gitaly.CleanupService/ApplyBfgObjectMapStream", opts...) + if err != nil { + return nil, err + } + x := &cleanupServiceApplyBfgObjectMapStreamClient{stream} + return x, nil +} + +type CleanupService_ApplyBfgObjectMapStreamClient interface { + Send(*ApplyBfgObjectMapStreamRequest) error + Recv() (*ApplyBfgObjectMapStreamResponse, error) + grpc.ClientStream +} + +type cleanupServiceApplyBfgObjectMapStreamClient struct { + grpc.ClientStream +} + +func (x *cleanupServiceApplyBfgObjectMapStreamClient) Send(m *ApplyBfgObjectMapStreamRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *cleanupServiceApplyBfgObjectMapStreamClient) Recv() (*ApplyBfgObjectMapStreamResponse, error) { + m := new(ApplyBfgObjectMapStreamResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *cleanupServiceClient) CloseSession(ctx context.Context, in *CloseSessionRequest, opts ...grpc.CallOption) (*CloseSessionResponse, error) { + out := new(CloseSessionResponse) + err := c.cc.Invoke(ctx, "/gitaly.CleanupService/CloseSession", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // CleanupServiceServer is the server API for CleanupService service. type CleanupServiceServer interface { + // Deprecated in favour of ApplyBfgObjectMapStream ApplyBfgObjectMap(CleanupService_ApplyBfgObjectMapServer) error + ApplyBfgObjectMapStream(CleanupService_ApplyBfgObjectMapStreamServer) error + CloseSession(context.Context, *CloseSessionRequest) (*CloseSessionResponse, error) } func RegisterCleanupServiceServer(s *grpc.Server, srv CleanupServiceServer) { @@ -199,37 +462,104 @@ func (x *cleanupServiceApplyBfgObjectMapServer) Recv() (*ApplyBfgObjectMapReques return m, nil } +func _CleanupService_ApplyBfgObjectMapStream_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(CleanupServiceServer).ApplyBfgObjectMapStream(&cleanupServiceApplyBfgObjectMapStreamServer{stream}) +} + +type CleanupService_ApplyBfgObjectMapStreamServer interface { + Send(*ApplyBfgObjectMapStreamResponse) error + Recv() (*ApplyBfgObjectMapStreamRequest, error) + grpc.ServerStream +} + +type cleanupServiceApplyBfgObjectMapStreamServer struct { + grpc.ServerStream +} + +func (x *cleanupServiceApplyBfgObjectMapStreamServer) Send(m *ApplyBfgObjectMapStreamResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *cleanupServiceApplyBfgObjectMapStreamServer) Recv() (*ApplyBfgObjectMapStreamRequest, error) { + m := new(ApplyBfgObjectMapStreamRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _CleanupService_CloseSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CloseSessionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CleanupServiceServer).CloseSession(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gitaly.CleanupService/CloseSession", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CleanupServiceServer).CloseSession(ctx, req.(*CloseSessionRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _CleanupService_serviceDesc = grpc.ServiceDesc{ ServiceName: "gitaly.CleanupService", HandlerType: (*CleanupServiceServer)(nil), - Methods: []grpc.MethodDesc{}, + Methods: []grpc.MethodDesc{ + { + MethodName: "CloseSession", + Handler: _CleanupService_CloseSession_Handler, + }, + }, Streams: []grpc.StreamDesc{ { StreamName: "ApplyBfgObjectMap", Handler: _CleanupService_ApplyBfgObjectMap_Handler, ClientStreams: true, }, + { + StreamName: "ApplyBfgObjectMapStream", + Handler: _CleanupService_ApplyBfgObjectMapStream_Handler, + ServerStreams: true, + ClientStreams: true, + }, }, Metadata: "cleanup.proto", } -func init() { proto.RegisterFile("cleanup.proto", fileDescriptor_cleanup_048c113e3f69de1a) } - -var fileDescriptor_cleanup_048c113e3f69de1a = []byte{ - // 234 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x4d, 0xce, 0x49, 0x4d, - 0xcc, 0x2b, 0x2d, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x4b, 0xcf, 0x2c, 0x49, 0xcc, - 0xa9, 0x94, 0xe2, 0x29, 0xce, 0x48, 0x2c, 0x4a, 0x4d, 0x81, 0x88, 0x2a, 0x95, 0x72, 0x49, 0x38, - 0x16, 0x14, 0xe4, 0x54, 0x3a, 0xa5, 0xa5, 0xfb, 0x27, 0x65, 0xa5, 0x26, 0x97, 0xf8, 0x26, 0x16, - 0x04, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x08, 0x19, 0x71, 0x71, 0x15, 0xa5, 0x16, 0xe4, 0x17, - 0x67, 0x96, 0xe4, 0x17, 0x55, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x09, 0xe9, 0x41, 0x8c, - 0xd1, 0x0b, 0x82, 0xcb, 0x04, 0x21, 0xa9, 0x12, 0x92, 0xe5, 0xe2, 0xca, 0x07, 0x9b, 0x13, 0x9f, - 0x9b, 0x58, 0x20, 0xc1, 0xa4, 0xc0, 0xa8, 0xc1, 0x13, 0xc4, 0x99, 0x0f, 0x33, 0xd9, 0x8a, 0xed, - 0xd3, 0x74, 0x0d, 0x26, 0x0e, 0x46, 0x25, 0x69, 0x2e, 0x49, 0x2c, 0xd6, 0x16, 0x17, 0xe4, 0xe7, - 0x15, 0xa7, 0x1a, 0xe5, 0x71, 0xf1, 0x39, 0x43, 0x9c, 0x1e, 0x9c, 0x5a, 0x54, 0x96, 0x99, 0x9c, - 0x2a, 0x14, 0xc3, 0x25, 0x88, 0xa1, 0x5c, 0x48, 0x01, 0xe6, 0x14, 0x5c, 0x1e, 0x90, 0x52, 0xc4, - 0xa3, 0x02, 0x62, 0x97, 0x12, 0x83, 0x06, 0xa3, 0x93, 0x41, 0x14, 0x48, 0x5d, 0x4e, 0x62, 0x92, - 0x5e, 0x72, 0x7e, 0xae, 0x3e, 0x84, 0xa9, 0x9b, 0x5f, 0x94, 0xae, 0x0f, 0xd1, 0xad, 0x0b, 0x0e, - 0x29, 0xfd, 0xf4, 0x7c, 0x28, 0xbf, 0x20, 0x29, 0x89, 0x0d, 0x2c, 0x64, 0x0c, 0x08, 0x00, 0x00, - 0xff, 0xff, 0x10, 0x0a, 0xea, 0x78, 0x63, 0x01, 0x00, 0x00, +func init() { proto.RegisterFile("cleanup.proto", fileDescriptor_cleanup_8db38bed7bd810df) } + +var fileDescriptor_cleanup_8db38bed7bd810df = []byte{ + // 421 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x53, 0xd1, 0x6e, 0xd3, 0x30, + 0x14, 0x95, 0x3b, 0xe8, 0xe8, 0x5d, 0x99, 0x84, 0x41, 0xac, 0x74, 0x0c, 0x4a, 0x1e, 0x46, 0x5e, + 0x9a, 0x4e, 0x81, 0x1f, 0x60, 0x13, 0x42, 0x3c, 0xa0, 0x0a, 0x97, 0x27, 0x5e, 0x2a, 0x27, 0xbe, + 0x04, 0xa3, 0x24, 0x36, 0xb6, 0xb7, 0x29, 0x5f, 0xc2, 0xe7, 0xf0, 0x05, 0xfc, 0x10, 0x4f, 0x68, + 0x76, 0xc2, 0x36, 0xad, 0xa5, 0xbc, 0xec, 0x2d, 0x39, 0xc7, 0xf7, 0x9c, 0x73, 0x8f, 0x13, 0xb8, + 0x9f, 0x97, 0xc8, 0xeb, 0x53, 0x9d, 0x68, 0xa3, 0x9c, 0xa2, 0xfd, 0x42, 0x3a, 0x5e, 0x36, 0xe3, + 0xa1, 0xfd, 0xca, 0x0d, 0x8a, 0x80, 0x46, 0x15, 0x8c, 0xde, 0x68, 0x5d, 0x36, 0xc7, 0x5f, 0x8a, + 0x79, 0xf6, 0x0d, 0x73, 0xf7, 0x81, 0x6b, 0x86, 0xdf, 0x4f, 0xd1, 0x3a, 0x9a, 0x02, 0x18, 0xd4, + 0xca, 0x4a, 0xa7, 0x4c, 0x33, 0x22, 0x13, 0x12, 0xef, 0xa4, 0x34, 0x09, 0x32, 0x09, 0xfb, 0xcb, + 0xb0, 0x2b, 0xa7, 0xe8, 0x01, 0x80, 0xf2, 0x3a, 0xcb, 0x8a, 0xeb, 0x51, 0x6f, 0x42, 0xe2, 0x21, + 0x1b, 0xa8, 0x4e, 0x39, 0xda, 0x87, 0x27, 0x2b, 0xec, 0xac, 0x56, 0xb5, 0xc5, 0xc8, 0xc2, 0xb3, + 0x1b, 0xe4, 0xc2, 0x19, 0xe4, 0xd5, 0x2d, 0x26, 0xfa, 0x45, 0xe0, 0xf9, 0x5a, 0xd7, 0x10, 0x8c, + 0xbe, 0x83, 0x6d, 0xac, 0x9d, 0x91, 0x68, 0x47, 0x64, 0xb2, 0x15, 0xef, 0xa4, 0xd3, 0xce, 0x73, + 0xc3, 0x64, 0xf2, 0xb6, 0x76, 0xa6, 0x61, 0xdd, 0xf4, 0x98, 0xc3, 0x5d, 0x8f, 0xd0, 0x43, 0xb8, + 0xe3, 0x1a, 0x8d, 0x7e, 0x85, 0xdd, 0xcb, 0x15, 0x82, 0xcc, 0xa7, 0x46, 0x23, 0xf3, 0x3c, 0xdd, + 0x83, 0x6d, 0x55, 0x8a, 0xa5, 0x92, 0xc2, 0x27, 0x1f, 0xb0, 0xbe, 0x2a, 0xc5, 0x5c, 0x8a, 0x0b, + 0xa2, 0xc6, 0x73, 0x4f, 0x6c, 0x05, 0xa2, 0xc6, 0xf3, 0xb9, 0x14, 0xd1, 0x6b, 0x78, 0x78, 0x52, + 0x2a, 0x8b, 0x0b, 0xb4, 0x56, 0xaa, 0xba, 0x6b, 0xee, 0x00, 0xc0, 0x06, 0x64, 0x29, 0x85, 0xb7, + 0x1d, 0xb0, 0x41, 0x8b, 0xbc, 0x17, 0xd1, 0x63, 0x78, 0x74, 0x7d, 0x2a, 0xe4, 0x4f, 0x7f, 0xf6, + 0x60, 0xf7, 0x24, 0x7c, 0x46, 0x0b, 0x34, 0x67, 0x32, 0x47, 0x9a, 0xc1, 0x83, 0x1b, 0x5b, 0xd3, + 0xc9, 0xda, 0x42, 0xda, 0x00, 0xe3, 0x17, 0xff, 0x38, 0xd1, 0xde, 0x7f, 0xff, 0xf7, 0x8f, 0xb8, + 0x77, 0x8f, 0xc4, 0x84, 0x9e, 0xc1, 0xde, 0x9a, 0x66, 0xe9, 0xe1, 0xc6, 0xea, 0x83, 0xdf, 0xcb, + 0xff, 0xbc, 0xa2, 0x4b, 0xd7, 0x23, 0x42, 0x3f, 0xc2, 0xf0, 0x6a, 0x0d, 0x74, 0xbf, 0x13, 0x59, + 0x51, 0xe9, 0xf8, 0xe9, 0x6a, 0xf2, 0xba, 0xec, 0xf1, 0xd1, 0xe7, 0x8b, 0x63, 0x25, 0xcf, 0x92, + 0x5c, 0x55, 0xb3, 0xf0, 0x38, 0x55, 0xa6, 0x98, 0x85, 0xe1, 0xa9, 0xff, 0x0d, 0x67, 0x85, 0x6a, + 0xdf, 0x75, 0x96, 0xf5, 0x3d, 0xf4, 0xea, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9e, 0xad, 0x67, + 0x57, 0xc0, 0x03, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/commit.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/commit.pb.go index 35384d9ae..d4ba71af6 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/commit.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/commit.pb.go @@ -24,6 +24,7 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +// TODO: Replace this enum with ObjectType in shared.proto type TreeEntryResponse_ObjectType int32 const ( @@ -50,9 +51,10 @@ func (x TreeEntryResponse_ObjectType) String() string { return proto.EnumName(TreeEntryResponse_ObjectType_name, int32(x)) } func (TreeEntryResponse_ObjectType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{5, 0} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{5, 0} } +// TODO: Replace this enum with ObjectType in shared.proto type TreeEntry_EntryType int32 const ( @@ -76,7 +78,7 @@ func (x TreeEntry_EntryType) String() string { return proto.EnumName(TreeEntry_EntryType_name, int32(x)) } func (TreeEntry_EntryType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{12, 0} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{12, 0} } type FindAllCommitsRequest_Order int32 @@ -102,7 +104,7 @@ func (x FindAllCommitsRequest_Order) String() string { return proto.EnumName(FindAllCommitsRequest_Order_name, int32(x)) } func (FindAllCommitsRequest_Order) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{21, 0} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{21, 0} } type CommitStatsRequest struct { @@ -117,7 +119,7 @@ func (m *CommitStatsRequest) Reset() { *m = CommitStatsRequest{} } func (m *CommitStatsRequest) String() string { return proto.CompactTextString(m) } func (*CommitStatsRequest) ProtoMessage() {} func (*CommitStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{0} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{0} } func (m *CommitStatsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitStatsRequest.Unmarshal(m, b) @@ -165,7 +167,7 @@ func (m *CommitStatsResponse) Reset() { *m = CommitStatsResponse{} } func (m *CommitStatsResponse) String() string { return proto.CompactTextString(m) } func (*CommitStatsResponse) ProtoMessage() {} func (*CommitStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{1} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{1} } func (m *CommitStatsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitStatsResponse.Unmarshal(m, b) @@ -219,7 +221,7 @@ func (m *CommitIsAncestorRequest) Reset() { *m = CommitIsAncestorRequest func (m *CommitIsAncestorRequest) String() string { return proto.CompactTextString(m) } func (*CommitIsAncestorRequest) ProtoMessage() {} func (*CommitIsAncestorRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{2} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{2} } func (m *CommitIsAncestorRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitIsAncestorRequest.Unmarshal(m, b) @@ -271,7 +273,7 @@ func (m *CommitIsAncestorResponse) Reset() { *m = CommitIsAncestorRespon func (m *CommitIsAncestorResponse) String() string { return proto.CompactTextString(m) } func (*CommitIsAncestorResponse) ProtoMessage() {} func (*CommitIsAncestorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{3} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{3} } func (m *CommitIsAncestorResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitIsAncestorResponse.Unmarshal(m, b) @@ -314,7 +316,7 @@ func (m *TreeEntryRequest) Reset() { *m = TreeEntryRequest{} } func (m *TreeEntryRequest) String() string { return proto.CompactTextString(m) } func (*TreeEntryRequest) ProtoMessage() {} func (*TreeEntryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{4} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{4} } func (m *TreeEntryRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TreeEntryRequest.Unmarshal(m, b) @@ -380,7 +382,7 @@ func (m *TreeEntryResponse) Reset() { *m = TreeEntryResponse{} } func (m *TreeEntryResponse) String() string { return proto.CompactTextString(m) } func (*TreeEntryResponse) ProtoMessage() {} func (*TreeEntryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{5} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{5} } func (m *TreeEntryResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TreeEntryResponse.Unmarshal(m, b) @@ -448,7 +450,7 @@ func (m *CommitsBetweenRequest) Reset() { *m = CommitsBetweenRequest{} } func (m *CommitsBetweenRequest) String() string { return proto.CompactTextString(m) } func (*CommitsBetweenRequest) ProtoMessage() {} func (*CommitsBetweenRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{6} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{6} } func (m *CommitsBetweenRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitsBetweenRequest.Unmarshal(m, b) @@ -500,7 +502,7 @@ func (m *CommitsBetweenResponse) Reset() { *m = CommitsBetweenResponse{} func (m *CommitsBetweenResponse) String() string { return proto.CompactTextString(m) } func (*CommitsBetweenResponse) ProtoMessage() {} func (*CommitsBetweenResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{7} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{7} } func (m *CommitsBetweenResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitsBetweenResponse.Unmarshal(m, b) @@ -545,7 +547,7 @@ func (m *CountCommitsRequest) Reset() { *m = CountCommitsRequest{} } func (m *CountCommitsRequest) String() string { return proto.CompactTextString(m) } func (*CountCommitsRequest) ProtoMessage() {} func (*CountCommitsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{8} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{8} } func (m *CountCommitsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CountCommitsRequest.Unmarshal(m, b) @@ -625,7 +627,7 @@ func (m *CountCommitsResponse) Reset() { *m = CountCommitsResponse{} } func (m *CountCommitsResponse) String() string { return proto.CompactTextString(m) } func (*CountCommitsResponse) ProtoMessage() {} func (*CountCommitsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{9} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{9} } func (m *CountCommitsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CountCommitsResponse.Unmarshal(m, b) @@ -666,7 +668,7 @@ func (m *CountDivergingCommitsRequest) Reset() { *m = CountDivergingComm func (m *CountDivergingCommitsRequest) String() string { return proto.CompactTextString(m) } func (*CountDivergingCommitsRequest) ProtoMessage() {} func (*CountDivergingCommitsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{10} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{10} } func (m *CountDivergingCommitsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CountDivergingCommitsRequest.Unmarshal(m, b) @@ -726,7 +728,7 @@ func (m *CountDivergingCommitsResponse) Reset() { *m = CountDivergingCom func (m *CountDivergingCommitsResponse) String() string { return proto.CompactTextString(m) } func (*CountDivergingCommitsResponse) ProtoMessage() {} func (*CountDivergingCommitsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{11} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{11} } func (m *CountDivergingCommitsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CountDivergingCommitsResponse.Unmarshal(m, b) @@ -783,7 +785,7 @@ func (m *TreeEntry) Reset() { *m = TreeEntry{} } func (m *TreeEntry) String() string { return proto.CompactTextString(m) } func (*TreeEntry) ProtoMessage() {} func (*TreeEntry) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{12} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{12} } func (m *TreeEntry) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TreeEntry.Unmarshal(m, b) @@ -866,7 +868,7 @@ func (m *GetTreeEntriesRequest) Reset() { *m = GetTreeEntriesRequest{} } func (m *GetTreeEntriesRequest) String() string { return proto.CompactTextString(m) } func (*GetTreeEntriesRequest) ProtoMessage() {} func (*GetTreeEntriesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{13} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{13} } func (m *GetTreeEntriesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetTreeEntriesRequest.Unmarshal(m, b) @@ -925,7 +927,7 @@ func (m *GetTreeEntriesResponse) Reset() { *m = GetTreeEntriesResponse{} func (m *GetTreeEntriesResponse) String() string { return proto.CompactTextString(m) } func (*GetTreeEntriesResponse) ProtoMessage() {} func (*GetTreeEntriesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{14} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{14} } func (m *GetTreeEntriesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetTreeEntriesResponse.Unmarshal(m, b) @@ -964,7 +966,7 @@ func (m *ListFilesRequest) Reset() { *m = ListFilesRequest{} } func (m *ListFilesRequest) String() string { return proto.CompactTextString(m) } func (*ListFilesRequest) ProtoMessage() {} func (*ListFilesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{15} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{15} } func (m *ListFilesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListFilesRequest.Unmarshal(m, b) @@ -1011,7 +1013,7 @@ func (m *ListFilesResponse) Reset() { *m = ListFilesResponse{} } func (m *ListFilesResponse) String() string { return proto.CompactTextString(m) } func (*ListFilesResponse) ProtoMessage() {} func (*ListFilesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{16} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{16} } func (m *ListFilesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListFilesResponse.Unmarshal(m, b) @@ -1050,7 +1052,7 @@ func (m *FindCommitRequest) Reset() { *m = FindCommitRequest{} } func (m *FindCommitRequest) String() string { return proto.CompactTextString(m) } func (*FindCommitRequest) ProtoMessage() {} func (*FindCommitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{17} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{17} } func (m *FindCommitRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindCommitRequest.Unmarshal(m, b) @@ -1096,7 +1098,7 @@ func (m *FindCommitResponse) Reset() { *m = FindCommitResponse{} } func (m *FindCommitResponse) String() string { return proto.CompactTextString(m) } func (*FindCommitResponse) ProtoMessage() {} func (*FindCommitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{18} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{18} } func (m *FindCommitResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindCommitResponse.Unmarshal(m, b) @@ -1135,7 +1137,7 @@ func (m *ListCommitsByOidRequest) Reset() { *m = ListCommitsByOidRequest func (m *ListCommitsByOidRequest) String() string { return proto.CompactTextString(m) } func (*ListCommitsByOidRequest) ProtoMessage() {} func (*ListCommitsByOidRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{19} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{19} } func (m *ListCommitsByOidRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListCommitsByOidRequest.Unmarshal(m, b) @@ -1180,7 +1182,7 @@ func (m *ListCommitsByOidResponse) Reset() { *m = ListCommitsByOidRespon func (m *ListCommitsByOidResponse) String() string { return proto.CompactTextString(m) } func (*ListCommitsByOidResponse) ProtoMessage() {} func (*ListCommitsByOidResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{20} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{20} } func (m *ListCommitsByOidResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListCommitsByOidResponse.Unmarshal(m, b) @@ -1223,7 +1225,7 @@ func (m *FindAllCommitsRequest) Reset() { *m = FindAllCommitsRequest{} } func (m *FindAllCommitsRequest) String() string { return proto.CompactTextString(m) } func (*FindAllCommitsRequest) ProtoMessage() {} func (*FindAllCommitsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{21} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{21} } func (m *FindAllCommitsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllCommitsRequest.Unmarshal(m, b) @@ -1290,7 +1292,7 @@ func (m *FindAllCommitsResponse) Reset() { *m = FindAllCommitsResponse{} func (m *FindAllCommitsResponse) String() string { return proto.CompactTextString(m) } func (*FindAllCommitsResponse) ProtoMessage() {} func (*FindAllCommitsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{22} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{22} } func (m *FindAllCommitsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllCommitsResponse.Unmarshal(m, b) @@ -1339,7 +1341,7 @@ func (m *FindCommitsRequest) Reset() { *m = FindCommitsRequest{} } func (m *FindCommitsRequest) String() string { return proto.CompactTextString(m) } func (*FindCommitsRequest) ProtoMessage() {} func (*FindCommitsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{23} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{23} } func (m *FindCommitsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindCommitsRequest.Unmarshal(m, b) @@ -1448,7 +1450,7 @@ func (m *FindCommitsResponse) Reset() { *m = FindCommitsResponse{} } func (m *FindCommitsResponse) String() string { return proto.CompactTextString(m) } func (*FindCommitsResponse) ProtoMessage() {} func (*FindCommitsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{24} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{24} } func (m *FindCommitsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindCommitsResponse.Unmarshal(m, b) @@ -1487,7 +1489,7 @@ func (m *CommitLanguagesRequest) Reset() { *m = CommitLanguagesRequest{} func (m *CommitLanguagesRequest) String() string { return proto.CompactTextString(m) } func (*CommitLanguagesRequest) ProtoMessage() {} func (*CommitLanguagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{25} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{25} } func (m *CommitLanguagesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitLanguagesRequest.Unmarshal(m, b) @@ -1532,7 +1534,7 @@ func (m *CommitLanguagesResponse) Reset() { *m = CommitLanguagesResponse func (m *CommitLanguagesResponse) String() string { return proto.CompactTextString(m) } func (*CommitLanguagesResponse) ProtoMessage() {} func (*CommitLanguagesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{26} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{26} } func (m *CommitLanguagesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitLanguagesResponse.Unmarshal(m, b) @@ -1572,7 +1574,7 @@ func (m *CommitLanguagesResponse_Language) Reset() { *m = CommitLanguage func (m *CommitLanguagesResponse_Language) String() string { return proto.CompactTextString(m) } func (*CommitLanguagesResponse_Language) ProtoMessage() {} func (*CommitLanguagesResponse_Language) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{26, 0} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{26, 0} } func (m *CommitLanguagesResponse_Language) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitLanguagesResponse_Language.Unmarshal(m, b) @@ -1626,7 +1628,7 @@ func (m *RawBlameRequest) Reset() { *m = RawBlameRequest{} } func (m *RawBlameRequest) String() string { return proto.CompactTextString(m) } func (*RawBlameRequest) ProtoMessage() {} func (*RawBlameRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{27} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{27} } func (m *RawBlameRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RawBlameRequest.Unmarshal(m, b) @@ -1678,7 +1680,7 @@ func (m *RawBlameResponse) Reset() { *m = RawBlameResponse{} } func (m *RawBlameResponse) String() string { return proto.CompactTextString(m) } func (*RawBlameResponse) ProtoMessage() {} func (*RawBlameResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{28} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{28} } func (m *RawBlameResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RawBlameResponse.Unmarshal(m, b) @@ -1718,7 +1720,7 @@ func (m *LastCommitForPathRequest) Reset() { *m = LastCommitForPathReque func (m *LastCommitForPathRequest) String() string { return proto.CompactTextString(m) } func (*LastCommitForPathRequest) ProtoMessage() {} func (*LastCommitForPathRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{29} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{29} } func (m *LastCommitForPathRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LastCommitForPathRequest.Unmarshal(m, b) @@ -1771,7 +1773,7 @@ func (m *LastCommitForPathResponse) Reset() { *m = LastCommitForPathResp func (m *LastCommitForPathResponse) String() string { return proto.CompactTextString(m) } func (*LastCommitForPathResponse) ProtoMessage() {} func (*LastCommitForPathResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{30} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{30} } func (m *LastCommitForPathResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LastCommitForPathResponse.Unmarshal(m, b) @@ -1814,7 +1816,7 @@ func (m *ListLastCommitsForTreeRequest) Reset() { *m = ListLastCommitsFo func (m *ListLastCommitsForTreeRequest) String() string { return proto.CompactTextString(m) } func (*ListLastCommitsForTreeRequest) ProtoMessage() {} func (*ListLastCommitsForTreeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{31} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{31} } func (m *ListLastCommitsForTreeRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListLastCommitsForTreeRequest.Unmarshal(m, b) @@ -1880,7 +1882,7 @@ func (m *ListLastCommitsForTreeResponse) Reset() { *m = ListLastCommitsF func (m *ListLastCommitsForTreeResponse) String() string { return proto.CompactTextString(m) } func (*ListLastCommitsForTreeResponse) ProtoMessage() {} func (*ListLastCommitsForTreeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{32} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{32} } func (m *ListLastCommitsForTreeResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListLastCommitsForTreeResponse.Unmarshal(m, b) @@ -1909,7 +1911,6 @@ func (m *ListLastCommitsForTreeResponse) GetCommits() []*ListLastCommitsForTreeR type ListLastCommitsForTreeResponse_CommitForTree struct { Commit *GitCommit `protobuf:"bytes,2,opt,name=commit,proto3" json:"commit,omitempty"` - Path string `protobuf:"bytes,3,opt,name=path,proto3" json:"path,omitempty"` // Deprecated: Do not use. PathBytes []byte `protobuf:"bytes,4,opt,name=path_bytes,json=pathBytes,proto3" json:"path_bytes,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1924,7 +1925,7 @@ func (m *ListLastCommitsForTreeResponse_CommitForTree) String() string { } func (*ListLastCommitsForTreeResponse_CommitForTree) ProtoMessage() {} func (*ListLastCommitsForTreeResponse_CommitForTree) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{32, 0} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{32, 0} } func (m *ListLastCommitsForTreeResponse_CommitForTree) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListLastCommitsForTreeResponse_CommitForTree.Unmarshal(m, b) @@ -1951,14 +1952,6 @@ func (m *ListLastCommitsForTreeResponse_CommitForTree) GetCommit() *GitCommit { return nil } -// Deprecated: Do not use. -func (m *ListLastCommitsForTreeResponse_CommitForTree) GetPath() string { - if m != nil { - return m.Path - } - return "" -} - func (m *ListLastCommitsForTreeResponse_CommitForTree) GetPathBytes() []byte { if m != nil { return m.PathBytes @@ -1982,7 +1975,7 @@ func (m *CommitsByMessageRequest) Reset() { *m = CommitsByMessageRequest func (m *CommitsByMessageRequest) String() string { return proto.CompactTextString(m) } func (*CommitsByMessageRequest) ProtoMessage() {} func (*CommitsByMessageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{33} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{33} } func (m *CommitsByMessageRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitsByMessageRequest.Unmarshal(m, b) @@ -2056,7 +2049,7 @@ func (m *CommitsByMessageResponse) Reset() { *m = CommitsByMessageRespon func (m *CommitsByMessageResponse) String() string { return proto.CompactTextString(m) } func (*CommitsByMessageResponse) ProtoMessage() {} func (*CommitsByMessageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{34} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{34} } func (m *CommitsByMessageResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitsByMessageResponse.Unmarshal(m, b) @@ -2095,7 +2088,7 @@ func (m *FilterShasWithSignaturesRequest) Reset() { *m = FilterShasWithS func (m *FilterShasWithSignaturesRequest) String() string { return proto.CompactTextString(m) } func (*FilterShasWithSignaturesRequest) ProtoMessage() {} func (*FilterShasWithSignaturesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{35} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{35} } func (m *FilterShasWithSignaturesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FilterShasWithSignaturesRequest.Unmarshal(m, b) @@ -2140,7 +2133,7 @@ func (m *FilterShasWithSignaturesResponse) Reset() { *m = FilterShasWith func (m *FilterShasWithSignaturesResponse) String() string { return proto.CompactTextString(m) } func (*FilterShasWithSignaturesResponse) ProtoMessage() {} func (*FilterShasWithSignaturesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{36} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{36} } func (m *FilterShasWithSignaturesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FilterShasWithSignaturesResponse.Unmarshal(m, b) @@ -2179,7 +2172,7 @@ func (m *ExtractCommitSignatureRequest) Reset() { *m = ExtractCommitSign func (m *ExtractCommitSignatureRequest) String() string { return proto.CompactTextString(m) } func (*ExtractCommitSignatureRequest) ProtoMessage() {} func (*ExtractCommitSignatureRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{37} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{37} } func (m *ExtractCommitSignatureRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExtractCommitSignatureRequest.Unmarshal(m, b) @@ -2227,7 +2220,7 @@ func (m *ExtractCommitSignatureResponse) Reset() { *m = ExtractCommitSig func (m *ExtractCommitSignatureResponse) String() string { return proto.CompactTextString(m) } func (*ExtractCommitSignatureResponse) ProtoMessage() {} func (*ExtractCommitSignatureResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{38} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{38} } func (m *ExtractCommitSignatureResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExtractCommitSignatureResponse.Unmarshal(m, b) @@ -2273,7 +2266,7 @@ func (m *GetCommitSignaturesRequest) Reset() { *m = GetCommitSignaturesR func (m *GetCommitSignaturesRequest) String() string { return proto.CompactTextString(m) } func (*GetCommitSignaturesRequest) ProtoMessage() {} func (*GetCommitSignaturesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{39} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{39} } func (m *GetCommitSignaturesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetCommitSignaturesRequest.Unmarshal(m, b) @@ -2322,7 +2315,7 @@ func (m *GetCommitSignaturesResponse) Reset() { *m = GetCommitSignatures func (m *GetCommitSignaturesResponse) String() string { return proto.CompactTextString(m) } func (*GetCommitSignaturesResponse) ProtoMessage() {} func (*GetCommitSignaturesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{40} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{40} } func (m *GetCommitSignaturesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetCommitSignaturesResponse.Unmarshal(m, b) @@ -2375,7 +2368,7 @@ func (m *GetCommitMessagesRequest) Reset() { *m = GetCommitMessagesReque func (m *GetCommitMessagesRequest) String() string { return proto.CompactTextString(m) } func (*GetCommitMessagesRequest) ProtoMessage() {} func (*GetCommitMessagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{41} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{41} } func (m *GetCommitMessagesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetCommitMessagesRequest.Unmarshal(m, b) @@ -2422,7 +2415,7 @@ func (m *GetCommitMessagesResponse) Reset() { *m = GetCommitMessagesResp func (m *GetCommitMessagesResponse) String() string { return proto.CompactTextString(m) } func (*GetCommitMessagesResponse) ProtoMessage() {} func (*GetCommitMessagesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_commit_7c6d8f89a2a6add9, []int{42} + return fileDescriptor_commit_f204cf5f75ab83d2, []int{42} } func (m *GetCommitMessagesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetCommitMessagesResponse.Unmarshal(m, b) @@ -3631,131 +3624,130 @@ var _CommitService_serviceDesc = grpc.ServiceDesc{ Metadata: "commit.proto", } -func init() { proto.RegisterFile("commit.proto", fileDescriptor_commit_7c6d8f89a2a6add9) } - -var fileDescriptor_commit_7c6d8f89a2a6add9 = []byte{ - // 1964 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x49, 0x6f, 0xe3, 0xc8, - 0x15, 0x36, 0xb5, 0x99, 0x7c, 0x52, 0x3c, 0x72, 0xf5, 0x46, 0xd3, 0x76, 0xdb, 0xc3, 0x99, 0x9e, - 0x78, 0x30, 0x19, 0xd9, 0x70, 0x16, 0x24, 0xb9, 0x04, 0xd6, 0xb4, 0xed, 0xb4, 0xd3, 0xdd, 0x1a, - 0xd0, 0x02, 0x1a, 0x19, 0x04, 0x10, 0x28, 0xb1, 0x24, 0x73, 0x4c, 0x89, 0x6a, 0xb2, 0x64, 0x5b, - 0x01, 0x72, 0x09, 0x82, 0xdc, 0x03, 0x04, 0xc9, 0x39, 0x3f, 0x60, 0x7e, 0x40, 0x8e, 0x39, 0xe6, - 0x9a, 0x7f, 0x92, 0x1c, 0x73, 0x0a, 0x6a, 0x21, 0x8b, 0x14, 0x49, 0xbb, 0xbb, 0xdd, 0xee, 0x5c, - 0x6c, 0xd6, 0xab, 0xe5, 0x2d, 0x55, 0xef, 0x7b, 0x8b, 0xa0, 0x31, 0xf0, 0xc7, 0x63, 0x97, 0xb4, - 0xa6, 0x81, 0x4f, 0x7c, 0x54, 0x1b, 0xb9, 0xc4, 0xf6, 0xe6, 0x46, 0x23, 0x3c, 0xb3, 0x03, 0xec, - 0x70, 0xaa, 0xb1, 0x35, 0xf2, 0xfd, 0x91, 0x87, 0x77, 0xd9, 0xa8, 0x3f, 0x1b, 0xee, 0x12, 0x77, - 0x8c, 0x43, 0x62, 0x8f, 0xa7, 0x7c, 0x81, 0xe9, 0x01, 0xfa, 0x8a, 0x1d, 0x73, 0x4a, 0x6c, 0x12, - 0x5a, 0xf8, 0xf5, 0x0c, 0x87, 0x04, 0xed, 0x03, 0x04, 0x78, 0xea, 0x87, 0x2e, 0xf1, 0x83, 0xb9, - 0xae, 0x6c, 0x2b, 0x3b, 0xf5, 0x7d, 0xd4, 0xe2, 0x1c, 0x5a, 0x56, 0x3c, 0x63, 0x25, 0x56, 0x21, - 0x03, 0xd4, 0x00, 0x5f, 0xb8, 0xa1, 0xeb, 0x4f, 0xf4, 0xd2, 0xb6, 0xb2, 0xd3, 0xb0, 0xe2, 0xf1, - 0xcf, 0x6b, 0xff, 0xf9, 0xeb, 0x4e, 0x49, 0x2d, 0x99, 0x03, 0xb8, 0x97, 0xe2, 0x16, 0x4e, 0xfd, - 0x49, 0x88, 0x51, 0x13, 0xca, 0xbe, 0xeb, 0x30, 0x3e, 0x9a, 0x45, 0x3f, 0xd1, 0x06, 0x68, 0xb6, - 0xe3, 0xb8, 0xc4, 0xf5, 0x27, 0x21, 0x3b, 0xad, 0x6a, 0x49, 0x02, 0x9d, 0x75, 0xb0, 0x87, 0xf9, - 0x6c, 0x99, 0xcf, 0xc6, 0x04, 0xf3, 0x4f, 0x0a, 0x3c, 0xe2, 0x5c, 0x9e, 0x85, 0x07, 0x93, 0x01, - 0x0e, 0x89, 0x1f, 0xdc, 0x46, 0xb1, 0x2d, 0xa8, 0xdb, 0xe2, 0x98, 0x9e, 0xeb, 0x30, 0x69, 0x34, - 0x0b, 0x22, 0xd2, 0x33, 0x07, 0xad, 0x81, 0x3a, 0x38, 0x73, 0x3d, 0x87, 0xce, 0x96, 0xd9, 0xec, - 0x32, 0x1b, 0x3f, 0x73, 0x62, 0xc5, 0xf7, 0x40, 0xcf, 0x8a, 0x24, 0xb4, 0xbf, 0x0f, 0xd5, 0x0b, - 0xdb, 0x9b, 0x61, 0x26, 0x8e, 0x6a, 0xf1, 0x81, 0xf9, 0x67, 0x05, 0x9a, 0xdd, 0x00, 0xe3, 0xc3, - 0x09, 0x09, 0xe6, 0x77, 0x74, 0x2f, 0x08, 0x41, 0x65, 0x6a, 0x93, 0x33, 0x26, 0x75, 0xc3, 0x62, - 0xdf, 0x54, 0x1c, 0xcf, 0x1d, 0xbb, 0x44, 0xaf, 0x6c, 0x2b, 0x3b, 0x65, 0x8b, 0x0f, 0x62, 0x45, - 0xfe, 0xa5, 0xc0, 0x6a, 0x42, 0x2c, 0xa1, 0xc2, 0x4f, 0xa1, 0x42, 0xe6, 0x53, 0xae, 0xc1, 0xca, - 0xfe, 0xa7, 0x91, 0x44, 0x99, 0x85, 0xad, 0x4e, 0xff, 0x5b, 0x3c, 0x20, 0xdd, 0xf9, 0x14, 0x5b, - 0x6c, 0x47, 0x74, 0xf5, 0x25, 0x79, 0xf5, 0x08, 0x2a, 0xa1, 0xfb, 0x5b, 0xcc, 0x64, 0x2a, 0x5b, - 0xec, 0x9b, 0xd2, 0xc6, 0xbe, 0x83, 0x99, 0x48, 0x55, 0x8b, 0x7d, 0x53, 0x9a, 0x63, 0x13, 0x5b, - 0xaf, 0x72, 0xd9, 0xe9, 0xb7, 0xf9, 0x63, 0x00, 0xc9, 0x01, 0x01, 0xd4, 0xbe, 0xea, 0xbc, 0x78, - 0xf1, 0xac, 0xdb, 0x5c, 0x42, 0x2a, 0x54, 0xda, 0xcf, 0x3b, 0xed, 0xa6, 0x42, 0xbf, 0xba, 0xd6, - 0xe1, 0x61, 0xb3, 0x84, 0x96, 0xa1, 0xdc, 0x3d, 0x38, 0x6e, 0x96, 0xcd, 0x4b, 0x78, 0xc0, 0x6f, - 0x27, 0x6c, 0x63, 0x72, 0x89, 0xf1, 0xe4, 0x36, 0xf6, 0x46, 0x50, 0x19, 0x06, 0xfe, 0x58, 0xd8, - 0x9a, 0x7d, 0xa3, 0x15, 0x28, 0x11, 0x5f, 0x58, 0xb9, 0x44, 0xfc, 0xd8, 0x9a, 0x87, 0xf0, 0x70, - 0x91, 0xb1, 0xb0, 0xe8, 0x17, 0xb0, 0xcc, 0xdd, 0x3b, 0xd4, 0x95, 0xed, 0xf2, 0x4e, 0x7d, 0x7f, - 0x35, 0x62, 0x7b, 0xec, 0x12, 0xbe, 0xc7, 0x8a, 0x56, 0x98, 0x7f, 0x29, 0x51, 0xbf, 0x9a, 0x4d, - 0xc4, 0xc4, 0x5d, 0xb9, 0x31, 0xda, 0x83, 0xaa, 0x3d, 0x24, 0x38, 0x60, 0x9a, 0xd4, 0xf7, 0x8d, - 0x16, 0x47, 0x97, 0x56, 0x84, 0x2e, 0xad, 0x6e, 0x84, 0x2e, 0x16, 0x5f, 0x88, 0xf6, 0xa1, 0xd6, - 0xc7, 0x43, 0x3f, 0xe0, 0x57, 0x77, 0xfd, 0x16, 0xb1, 0x32, 0x7e, 0x94, 0xd5, 0xc4, 0xa3, 0x5c, - 0x07, 0x6d, 0x6c, 0x5f, 0xf5, 0x06, 0x54, 0x49, 0xbd, 0xc6, 0x5e, 0x81, 0x3a, 0xb6, 0xaf, 0x98, - 0xd2, 0xf4, 0x0d, 0xd9, 0x9e, 0xa7, 0x2f, 0x33, 0xf7, 0xa1, 0x9f, 0xb1, 0x7d, 0x7f, 0x00, 0xf7, - 0xd3, 0x76, 0x91, 0x2e, 0xc7, 0x8f, 0x52, 0xd8, 0x51, 0x7c, 0x60, 0x7e, 0xa7, 0xc0, 0x06, 0x5b, - 0xfe, 0xd4, 0xbd, 0xc0, 0xc1, 0xc8, 0x9d, 0x8c, 0xde, 0x83, 0x3d, 0xdf, 0xe0, 0x39, 0xa4, 0xb5, - 0x5b, 0x4e, 0x6b, 0x17, 0xe9, 0x72, 0x52, 0x51, 0x2b, 0xcd, 0xea, 0x49, 0x45, 0xad, 0x36, 0x6b, - 0x27, 0x15, 0xb5, 0xd6, 0x5c, 0x36, 0x7b, 0xb0, 0x59, 0x20, 0xae, 0x50, 0x73, 0x13, 0xc0, 0xc3, - 0x43, 0xd2, 0x4b, 0xea, 0xaa, 0x51, 0x0a, 0xb7, 0xdb, 0x16, 0xd4, 0x03, 0x77, 0x74, 0x16, 0xcd, - 0x73, 0x98, 0x05, 0x46, 0x62, 0x0b, 0xcc, 0xff, 0x2a, 0xa0, 0xc5, 0x3e, 0x9c, 0x83, 0xd2, 0x6b, - 0xa0, 0x06, 0xbe, 0x4f, 0x7a, 0xd2, 0x83, 0x97, 0xe9, 0xb8, 0xc3, 0xbd, 0x38, 0x83, 0x2c, 0xbb, - 0x02, 0x25, 0x2a, 0x0c, 0x25, 0xd6, 0x33, 0x28, 0xd1, 0x62, 0x7f, 0x13, 0xe0, 0x10, 0xb9, 0x7d, - 0x35, 0xe1, 0xf6, 0x9b, 0x00, 0xfc, 0xd9, 0x33, 0xae, 0x35, 0xc6, 0x55, 0xe3, 0x14, 0xca, 0x77, - 0x1d, 0xb4, 0xa1, 0x67, 0x93, 0x1e, 0x63, 0xbe, 0xcc, 0xdf, 0x2f, 0x25, 0x7c, 0x6d, 0x93, 0x33, - 0xf3, 0x0b, 0xd0, 0x62, 0x16, 0x31, 0x22, 0x2c, 0xc5, 0x88, 0xa0, 0x24, 0x10, 0xa3, 0x6c, 0xfe, - 0x4d, 0x81, 0x07, 0xc7, 0x98, 0x44, 0xd2, 0xb9, 0x38, 0xfc, 0x90, 0x28, 0xbc, 0x01, 0x5a, 0x80, - 0x07, 0xb3, 0x20, 0x74, 0x2f, 0xb8, 0xc1, 0x54, 0x4b, 0x12, 0x92, 0xf8, 0xb1, 0x28, 0xa2, 0xc4, - 0x0f, 0xcc, 0x49, 0x8b, 0xf8, 0x21, 0x41, 0x39, 0x5a, 0x61, 0x7e, 0x0b, 0xcd, 0xe7, 0x6e, 0x48, - 0x8e, 0x5c, 0x0f, 0xdf, 0x79, 0x0a, 0xf0, 0x39, 0xac, 0x26, 0x78, 0x49, 0x7f, 0xa4, 0x5a, 0x73, - 0x59, 0x1b, 0x16, 0x1f, 0x98, 0xe7, 0xb0, 0x7a, 0xe4, 0x4e, 0x1c, 0x81, 0x76, 0x77, 0x2c, 0xd7, - 0x2f, 0x00, 0x25, 0x99, 0x09, 0xc1, 0x3e, 0x87, 0x1a, 0x7f, 0x5b, 0x82, 0x53, 0x0e, 0x0a, 0x8b, - 0x05, 0xe6, 0x08, 0x1e, 0x51, 0xc5, 0x22, 0x3c, 0x9f, 0x77, 0x5c, 0xe7, 0x36, 0x32, 0xc7, 0x81, - 0xb1, 0x2c, 0xbc, 0x2d, 0x96, 0xf4, 0x18, 0xf4, 0x2c, 0xa3, 0x77, 0x09, 0x1b, 0xbf, 0x2f, 0xc1, - 0x03, 0xaa, 0xf3, 0x81, 0xe7, 0xdd, 0x71, 0xe0, 0x48, 0x01, 0x5c, 0x79, 0x01, 0xbe, 0x69, 0xc0, - 0x3f, 0x77, 0xa7, 0x51, 0x70, 0xa7, 0xdf, 0xe8, 0x67, 0x50, 0xf5, 0x03, 0x07, 0x07, 0xcc, 0xf5, - 0x57, 0xf6, 0x3f, 0x89, 0x78, 0xe7, 0x8a, 0xdb, 0xea, 0xd0, 0xa5, 0x16, 0xdf, 0x61, 0x3e, 0x81, - 0x2a, 0x1b, 0x53, 0xb7, 0x7e, 0xd9, 0x79, 0x79, 0x28, 0x1c, 0xbc, 0xf3, 0x75, 0x87, 0x07, 0xff, - 0xa7, 0x07, 0xdd, 0xc3, 0x66, 0x29, 0xe9, 0x42, 0x8b, 0x87, 0xbe, 0x8b, 0x2d, 0xff, 0x50, 0x4e, - 0xbe, 0x9f, 0x3b, 0x33, 0x64, 0x9c, 0x9c, 0x71, 0x23, 0xf2, 0x01, 0x7a, 0x08, 0x35, 0x7f, 0x38, - 0x0c, 0x31, 0x11, 0x36, 0x14, 0x23, 0xe9, 0x56, 0xd5, 0x84, 0x5b, 0xd1, 0xd5, 0x43, 0xdf, 0xf3, - 0xfc, 0x4b, 0x86, 0x9e, 0xaa, 0x25, 0x46, 0x34, 0x1c, 0x50, 0xdb, 0xf7, 0xc6, 0x38, 0x18, 0xe1, - 0x50, 0x84, 0x53, 0xa0, 0xa4, 0x17, 0x8c, 0x82, 0x3e, 0x86, 0x86, 0xe3, 0x86, 0x76, 0xdf, 0xc3, - 0xbd, 0x4b, 0xdb, 0x3b, 0xd7, 0x55, 0xb6, 0xa2, 0x2e, 0x68, 0xaf, 0x6c, 0xef, 0x5c, 0x66, 0x08, - 0xda, 0xdb, 0x67, 0x08, 0xf0, 0xc6, 0x19, 0x82, 0x08, 0xf8, 0xf5, 0x6c, 0xc0, 0x6f, 0xc3, 0xbd, - 0xd4, 0x2d, 0xbc, 0xcb, 0x55, 0x4e, 0xa3, 0xa4, 0xec, 0xb9, 0x3d, 0x19, 0xcd, 0xec, 0xd1, 0xdd, - 0x63, 0xe2, 0x77, 0x71, 0xc5, 0x92, 0x60, 0x29, 0x44, 0x3f, 0x02, 0xcd, 0x8b, 0x88, 0x42, 0xf8, - 0x9d, 0x88, 0x65, 0xc1, 0x9e, 0x56, 0x44, 0xb1, 0xe4, 0x56, 0xe3, 0x04, 0xd4, 0x88, 0x4c, 0x3d, - 0x6e, 0x62, 0x8f, 0xb1, 0x08, 0xe5, 0xec, 0x9b, 0xbe, 0x15, 0x56, 0x39, 0x32, 0x21, 0x4b, 0x16, - 0x1f, 0xf0, 0x44, 0xc9, 0xf3, 0x03, 0x51, 0xd7, 0xf0, 0x81, 0xf9, 0x3b, 0xf8, 0xc8, 0xb2, 0x2f, - 0xdb, 0x9e, 0x3d, 0xc6, 0x1f, 0x30, 0x26, 0xc6, 0xe6, 0xfa, 0x0c, 0x9a, 0x92, 0xbd, 0x30, 0x53, - 0x54, 0x0d, 0x28, 0x89, 0x6a, 0xe0, 0x8f, 0x0a, 0xe8, 0xcf, 0xed, 0x08, 0x29, 0x8f, 0xfc, 0x80, - 0x26, 0x01, 0xff, 0x0f, 0x81, 0x8f, 0x60, 0x2d, 0x47, 0x8e, 0xb7, 0x0f, 0x31, 0x7f, 0x57, 0x60, - 0x93, 0x42, 0xbf, 0x3c, 0x2c, 0x3c, 0xf2, 0x03, 0x1a, 0xd0, 0xdf, 0xa7, 0x56, 0xda, 0xdb, 0x14, - 0x88, 0x39, 0x18, 0x54, 0x4d, 0x62, 0x50, 0x6c, 0x83, 0x7f, 0x2b, 0xf0, 0xb8, 0x48, 0x76, 0x61, - 0x89, 0x97, 0x8b, 0x5e, 0xfa, 0xa3, 0x48, 0xf2, 0xeb, 0x37, 0xb6, 0x62, 0xc3, 0x32, 0x6a, 0x74, - 0x88, 0x71, 0x09, 0xdf, 0x4b, 0xcd, 0x24, 0x4c, 0x5d, 0xba, 0xc1, 0xd4, 0xe8, 0x61, 0x42, 0x71, - 0xad, 0x5d, 0xd2, 0x15, 0xa1, 0xfc, 0x26, 0x00, 0xfd, 0xdf, 0xeb, 0xcf, 0x09, 0x0e, 0x99, 0x05, - 0x1a, 0x96, 0x46, 0x29, 0x6d, 0x4a, 0x38, 0xa9, 0xa8, 0x4a, 0x22, 0xb6, 0xfc, 0x33, 0xf6, 0xeb, - 0xb0, 0x3d, 0x7f, 0x81, 0xc3, 0x90, 0xfa, 0xe4, 0x1d, 0xbd, 0x3f, 0x69, 0xff, 0xf2, 0x62, 0x0c, - 0xc8, 0xb9, 0xad, 0xbc, 0x1a, 0xeb, 0x3e, 0x54, 0x5f, 0xcf, 0x70, 0x30, 0x17, 0x49, 0x35, 0x1f, - 0x24, 0xb3, 0x8e, 0xac, 0x2a, 0xef, 0x02, 0xaf, 0xaf, 0x61, 0xeb, 0xc8, 0xf5, 0x08, 0x0e, 0x4e, - 0xcf, 0xec, 0xf0, 0x95, 0x4b, 0xce, 0x4e, 0xdd, 0xd1, 0xc4, 0x26, 0xb3, 0x00, 0xdf, 0xb6, 0xce, - 0x0a, 0xcf, 0xec, 0x90, 0x25, 0x4c, 0x0d, 0x8b, 0x7d, 0xc7, 0xb2, 0xff, 0x04, 0xb6, 0x8b, 0x59, - 0x4a, 0x00, 0x61, 0xfb, 0x15, 0xb9, 0xdf, 0xbc, 0x82, 0xcd, 0xc3, 0x2b, 0x12, 0xd8, 0x03, 0xa1, - 0x44, 0xbc, 0xed, 0x36, 0x82, 0xae, 0x83, 0x28, 0x57, 0x64, 0x33, 0x49, 0xe5, 0x84, 0x44, 0xbf, - 0xa8, 0x07, 0x8f, 0x8b, 0x38, 0x0b, 0x79, 0x37, 0x40, 0x0b, 0x23, 0xa2, 0x40, 0x3d, 0x49, 0x60, - 0xb1, 0xdc, 0x1d, 0x4d, 0xb0, 0xd3, 0x23, 0xf8, 0x8a, 0x88, 0xc7, 0x02, 0x9c, 0xd4, 0xc5, 0x57, - 0xc4, 0xbc, 0x04, 0xe3, 0x18, 0x2f, 0x1e, 0x7e, 0xab, 0x0b, 0x90, 0x85, 0x99, 0xeb, 0x84, 0x22, - 0x6f, 0xd5, 0x22, 0xc5, 0xe4, 0x5d, 0xcc, 0x61, 0x3d, 0x97, 0xb1, 0x50, 0x2b, 0x65, 0x1d, 0x25, - 0x6d, 0x9d, 0xb4, 0xce, 0xa5, 0x1b, 0x74, 0x2e, 0x67, 0x74, 0x9e, 0x81, 0x1e, 0xb3, 0x16, 0x4f, - 0xf8, 0x43, 0x68, 0x6c, 0xc1, 0x5a, 0x0e, 0xdb, 0x37, 0xd1, 0x57, 0x87, 0xe5, 0x31, 0xdf, 0x20, - 0xb4, 0x8d, 0x86, 0xfb, 0xff, 0x58, 0x89, 0xb0, 0xed, 0x14, 0x07, 0x17, 0xee, 0x00, 0xa3, 0x57, - 0xd0, 0x5c, 0xec, 0x30, 0xa2, 0xad, 0x74, 0xa2, 0x90, 0x69, 0x87, 0x1a, 0xdb, 0xc5, 0x0b, 0xb8, - 0x7c, 0xe6, 0x12, 0x7a, 0x9a, 0xec, 0x01, 0xe8, 0x39, 0xad, 0x3d, 0x7e, 0xd4, 0x5a, 0x61, 0xd3, - 0xcf, 0x5c, 0xda, 0x53, 0xd0, 0x29, 0xac, 0xa4, 0x3b, 0x5d, 0x68, 0x33, 0xcd, 0x7b, 0xa1, 0xf5, - 0x66, 0x3c, 0x2e, 0x9a, 0x4e, 0x1c, 0xfa, 0x2b, 0x68, 0x24, 0xdb, 0x3b, 0x68, 0x5d, 0xee, 0xc9, - 0x34, 0xc3, 0x8c, 0x8d, 0xfc, 0xc9, 0x58, 0xcf, 0x21, 0x3c, 0xc8, 0xed, 0xa6, 0xa0, 0x4f, 0x53, - 0x1b, 0x0b, 0x7a, 0x43, 0xc6, 0x93, 0x1b, 0x56, 0xc5, 0x7c, 0x4e, 0x61, 0x25, 0x5d, 0xb3, 0x4b, - 0x4b, 0xe4, 0xb6, 0x1b, 0xa4, 0x25, 0xf2, 0x4b, 0x7d, 0x66, 0x89, 0xa7, 0xa0, 0xc5, 0x55, 0xb5, - 0xbc, 0xa4, 0xc5, 0xa2, 0x5e, 0x5e, 0x52, 0xa6, 0x04, 0x67, 0xa7, 0x1c, 0x02, 0xc8, 0xec, 0x19, - 0xad, 0x25, 0x8b, 0xae, 0x54, 0x11, 0x6e, 0x18, 0x79, 0x53, 0xb1, 0x86, 0xbf, 0x84, 0x7a, 0xa2, - 0xcb, 0x8f, 0x8c, 0xf4, 0x4d, 0x26, 0x7f, 0x68, 0x30, 0xd6, 0x73, 0xe7, 0x92, 0xb6, 0x4a, 0x17, - 0x67, 0xd2, 0x56, 0xb9, 0x95, 0xa0, 0xb4, 0x55, 0x7e, 0x4d, 0xc7, 0xb4, 0x3c, 0x81, 0x7a, 0xa2, - 0x46, 0x40, 0x39, 0xba, 0x64, 0xc5, 0xcb, 0x29, 0x2a, 0xd8, 0x59, 0x5d, 0xf8, 0x68, 0x21, 0x09, - 0x47, 0x8f, 0x0b, 0xb3, 0x73, 0x7e, 0xe6, 0xd6, 0x0d, 0xd9, 0xbb, 0xb9, 0x84, 0x0e, 0x40, 0x8d, - 0x12, 0x5c, 0xf4, 0x28, 0x06, 0xa1, 0x74, 0xc6, 0x6d, 0xe8, 0xd9, 0x89, 0x84, 0x60, 0xdf, 0xc0, - 0x6a, 0x26, 0xe5, 0x44, 0xb1, 0xbb, 0x17, 0x65, 0xc5, 0xc6, 0xc7, 0xd7, 0xac, 0x88, 0xc5, 0x3b, - 0x87, 0x87, 0xf9, 0x09, 0x19, 0x7a, 0x72, 0x53, 0xc2, 0xc6, 0xb9, 0x7c, 0xf6, 0x66, 0x79, 0x1d, - 0x53, 0xe4, 0xd7, 0x11, 0xae, 0xc9, 0xbc, 0x63, 0x11, 0xd7, 0x32, 0xc9, 0xd5, 0x22, 0xae, 0x65, - 0x53, 0x96, 0xe8, 0xe8, 0xc5, 0x46, 0x8a, 0x3c, 0xba, 0xa0, 0x97, 0x23, 0x8f, 0x2e, 0xea, 0xc1, - 0xb0, 0xa3, 0x43, 0xd0, 0x8b, 0x32, 0x0e, 0xf4, 0x7d, 0xf9, 0xa8, 0xae, 0x4d, 0x83, 0x8c, 0x9d, - 0x9b, 0x17, 0x46, 0x2c, 0x77, 0x94, 0x3d, 0x85, 0xde, 0x4b, 0x7e, 0xd2, 0x20, 0xef, 0xe5, 0xda, - 0x74, 0x46, 0xde, 0xcb, 0xf5, 0xb9, 0x07, 0xd3, 0xb0, 0x0f, 0xf7, 0x72, 0xe2, 0x38, 0x32, 0x13, - 0x60, 0x55, 0x90, 0x5d, 0x18, 0x9f, 0x5c, 0xbb, 0x26, 0xc1, 0xe3, 0x37, 0xb0, 0x9a, 0x89, 0x9c, - 0xf2, 0x11, 0x17, 0xc5, 0x72, 0xf9, 0x88, 0x0b, 0xc3, 0x2e, 0x3d, 0xbd, 0xbd, 0xf7, 0x0d, 0x5d, - 0xe7, 0xd9, 0xfd, 0xd6, 0xc0, 0x1f, 0xef, 0xf2, 0xcf, 0x2f, 0xfd, 0x60, 0xb4, 0xcb, 0x77, 0x7f, - 0xc9, 0x1a, 0x10, 0xbb, 0x23, 0x5f, 0x8c, 0xa7, 0xfd, 0x7e, 0x8d, 0x91, 0x7e, 0xf8, 0xbf, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x3a, 0x20, 0x66, 0x97, 0x7a, 0x1d, 0x00, 0x00, +func init() { proto.RegisterFile("commit.proto", fileDescriptor_commit_f204cf5f75ab83d2) } + +var fileDescriptor_commit_f204cf5f75ab83d2 = []byte{ + // 1937 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x5b, 0x6f, 0xdb, 0xc8, + 0x15, 0x5e, 0xea, 0x4a, 0x1e, 0xa9, 0x8e, 0x3c, 0xb9, 0xc9, 0xb4, 0x1d, 0x7b, 0xb9, 0x9b, 0xad, + 0x17, 0xdb, 0x95, 0x0d, 0xf7, 0x82, 0xf6, 0xa9, 0x88, 0x77, 0x6d, 0xc3, 0x6e, 0x12, 0xa5, 0x8c, + 0x80, 0xc5, 0x2e, 0x50, 0xa8, 0x94, 0x38, 0x92, 0xd8, 0x50, 0xa2, 0x42, 0x8e, 0x1c, 0xab, 0x0f, + 0x7d, 0x2f, 0x50, 0xf4, 0xb5, 0xe8, 0x0f, 0xe8, 0x63, 0x1f, 0xfa, 0x0b, 0x8a, 0xfe, 0x85, 0xbe, + 0xf4, 0xbf, 0x04, 0x7d, 0x58, 0xcc, 0x85, 0x1c, 0x5e, 0xed, 0xc4, 0x5e, 0xe5, 0x85, 0xe0, 0x9c, + 0x39, 0x33, 0xe7, 0x32, 0x73, 0xbe, 0x73, 0xce, 0x40, 0x73, 0xe8, 0x4d, 0xa7, 0x0e, 0xe9, 0xcc, + 0x7d, 0x8f, 0x78, 0xa8, 0x36, 0x76, 0x88, 0xe5, 0x2e, 0xf5, 0x66, 0x30, 0xb1, 0x7c, 0x6c, 0x73, + 0xaa, 0xbe, 0x33, 0xf6, 0xbc, 0xb1, 0x8b, 0xf7, 0xd9, 0x68, 0xb0, 0x18, 0xed, 0x13, 0x67, 0x8a, + 0x03, 0x62, 0x4d, 0xe7, 0x9c, 0xc1, 0xb0, 0x01, 0x7d, 0xc5, 0xb6, 0x79, 0x49, 0x2c, 0x12, 0x98, + 0xf8, 0xf5, 0x02, 0x07, 0x04, 0x1d, 0x02, 0xf8, 0x78, 0xee, 0x05, 0x0e, 0xf1, 0xfc, 0x65, 0x5b, + 0xd9, 0x55, 0xf6, 0x1a, 0x87, 0xa8, 0xc3, 0x25, 0x74, 0xcc, 0x68, 0xc6, 0x8c, 0x71, 0x21, 0x1d, + 0x54, 0x1f, 0x5f, 0x38, 0x81, 0xe3, 0xcd, 0xda, 0xa5, 0x5d, 0x65, 0xaf, 0x69, 0x46, 0x63, 0x63, + 0x08, 0x77, 0x13, 0x52, 0x82, 0xb9, 0x37, 0x0b, 0x30, 0x6a, 0x41, 0xd9, 0x73, 0x6c, 0xb6, 0xbf, + 0x66, 0xd2, 0x5f, 0xb4, 0x05, 0x9a, 0x65, 0xdb, 0x0e, 0x71, 0xbc, 0x59, 0xc0, 0x76, 0xa9, 0x9a, + 0x92, 0x40, 0x67, 0x6d, 0xec, 0x62, 0x3e, 0x5b, 0xe6, 0xb3, 0x11, 0xc1, 0xf8, 0xb3, 0x02, 0x0f, + 0xb9, 0x94, 0xb3, 0xe0, 0xc9, 0x6c, 0x88, 0x03, 0xe2, 0xf9, 0xb7, 0x31, 0x68, 0x07, 0x1a, 0x96, + 0xd8, 0xa6, 0xef, 0xd8, 0x4c, 0x1b, 0xcd, 0x84, 0x90, 0x74, 0x66, 0xa3, 0x0d, 0x50, 0x87, 0x13, + 0xc7, 0xb5, 0xe9, 0x6c, 0x99, 0xcd, 0xd6, 0xd9, 0xf8, 0xcc, 0x36, 0x0e, 0xa0, 0x9d, 0x55, 0x45, + 0x58, 0x7d, 0x0f, 0xaa, 0x17, 0x96, 0xbb, 0xc0, 0x4c, 0x0d, 0xd5, 0xe4, 0x03, 0xe3, 0x2f, 0x0a, + 0xb4, 0x7a, 0x3e, 0xc6, 0xc7, 0x33, 0xe2, 0x2f, 0x57, 0x74, 0x0e, 0x08, 0x41, 0x65, 0x6e, 0x91, + 0x09, 0xd3, 0xb6, 0x69, 0xb2, 0x7f, 0xaa, 0x8e, 0xeb, 0x4c, 0x1d, 0xd2, 0xae, 0xec, 0x2a, 0x7b, + 0x65, 0x93, 0x0f, 0x8c, 0xff, 0x2a, 0xb0, 0x1e, 0x53, 0x47, 0xa8, 0xfe, 0x4b, 0xa8, 0x90, 0xe5, + 0x9c, 0x6b, 0xbe, 0x76, 0xf8, 0x69, 0xa8, 0x49, 0x86, 0xb1, 0xd3, 0x1d, 0xfc, 0x01, 0x0f, 0x49, + 0x6f, 0x39, 0xc7, 0x26, 0x5b, 0x11, 0x1e, 0x75, 0x49, 0x1e, 0x35, 0x82, 0x4a, 0xe0, 0xfc, 0x11, + 0x33, 0x5d, 0xca, 0x26, 0xfb, 0xa7, 0xb4, 0xa9, 0x67, 0x63, 0xa6, 0x4a, 0xd5, 0x64, 0xff, 0x94, + 0x66, 0x5b, 0xc4, 0x6a, 0x57, 0xb9, 0xce, 0xf4, 0xdf, 0xf8, 0x39, 0x80, 0x94, 0x80, 0x00, 0x6a, + 0x5f, 0x75, 0x9f, 0x3d, 0x3b, 0xeb, 0xb5, 0x3e, 0x42, 0x2a, 0x54, 0x8e, 0x9e, 0x76, 0x8f, 0x5a, + 0x0a, 0xfd, 0xeb, 0x99, 0xc7, 0xc7, 0xad, 0x12, 0xaa, 0x43, 0xb9, 0xf7, 0xe4, 0xb4, 0x55, 0x36, + 0x3c, 0xb8, 0xcf, 0x4f, 0x25, 0x38, 0xc2, 0xe4, 0x0d, 0xc6, 0xb3, 0xdb, 0xf8, 0x19, 0x41, 0x65, + 0xe4, 0x7b, 0x53, 0xe1, 0x63, 0xf6, 0x8f, 0xd6, 0xa0, 0x44, 0x3c, 0xe1, 0xdd, 0x12, 0xf1, 0x8c, + 0x63, 0x78, 0x90, 0x16, 0x28, 0x3c, 0xf9, 0x05, 0xd4, 0x79, 0xf8, 0x06, 0x6d, 0x65, 0xb7, 0xbc, + 0xd7, 0x38, 0x5c, 0x0f, 0xc5, 0x9d, 0x3a, 0x84, 0xaf, 0x31, 0x43, 0x0e, 0xe3, 0xaf, 0x25, 0x1a, + 0x3f, 0x8b, 0x99, 0x98, 0x58, 0x55, 0x98, 0xa2, 0x03, 0xa8, 0x5a, 0x23, 0x82, 0x7d, 0x66, 0x41, + 0xe3, 0x50, 0xef, 0x70, 0xf4, 0xe8, 0x84, 0xe8, 0xd1, 0xe9, 0x85, 0xe8, 0x61, 0x72, 0x46, 0x74, + 0x08, 0xb5, 0x01, 0x1e, 0x79, 0x3e, 0x3f, 0xb2, 0xab, 0x97, 0x08, 0xce, 0xe8, 0x12, 0x56, 0x63, + 0x97, 0x70, 0x13, 0xb4, 0xa9, 0x75, 0xd9, 0x1f, 0x52, 0x23, 0xdb, 0x35, 0x76, 0xfa, 0xea, 0xd4, + 0xba, 0x64, 0x46, 0xd3, 0xbb, 0x63, 0xb9, 0x6e, 0xbb, 0xce, 0xc2, 0x85, 0xfe, 0x1a, 0x3f, 0x81, + 0x7b, 0x49, 0x7f, 0xc8, 0xd0, 0xe2, 0x5b, 0x28, 0x6c, 0x0b, 0x3e, 0x30, 0xfe, 0xa1, 0xc0, 0x16, + 0x63, 0xff, 0xda, 0xb9, 0xc0, 0xfe, 0xd8, 0x99, 0x8d, 0x7f, 0x00, 0x3f, 0xbe, 0xc3, 0xf1, 0x27, + 0xad, 0xaa, 0x27, 0xad, 0x3a, 0xaf, 0xa8, 0x95, 0x56, 0xf5, 0xbc, 0xa2, 0x56, 0x5b, 0xb5, 0xf3, + 0x8a, 0x5a, 0x6b, 0xd5, 0x8d, 0x3e, 0x6c, 0x17, 0xa8, 0x29, 0xcc, 0xdb, 0x06, 0x70, 0xf1, 0x88, + 0xf4, 0xe3, 0x36, 0x6a, 0x94, 0xc2, 0xfd, 0xb4, 0x03, 0x0d, 0xdf, 0x19, 0x4f, 0xc2, 0x79, 0x0e, + 0x9f, 0xc0, 0x48, 0x8c, 0xc1, 0x78, 0xab, 0x80, 0x16, 0xc5, 0x6a, 0x0e, 0xfa, 0x6e, 0x80, 0xea, + 0x7b, 0x1e, 0xe9, 0xcb, 0x48, 0xad, 0xd3, 0x71, 0x97, 0x47, 0x6b, 0x06, 0x39, 0xf6, 0x05, 0x1a, + 0x54, 0x18, 0x1a, 0x6c, 0x66, 0xd0, 0xa0, 0xc3, 0xbe, 0x31, 0x10, 0x08, 0xc3, 0xbb, 0x1a, 0x0b, + 0xef, 0x6d, 0x00, 0x7e, 0xcd, 0x99, 0xd4, 0x1a, 0x93, 0xaa, 0x71, 0x0a, 0x95, 0xbb, 0x09, 0xda, + 0xc8, 0xb5, 0x48, 0x9f, 0x09, 0xaf, 0xf3, 0xfb, 0x4a, 0x09, 0x2f, 0x2c, 0x32, 0x31, 0xbe, 0x00, + 0x2d, 0x12, 0x11, 0x45, 0xfe, 0x47, 0x51, 0xe4, 0x2b, 0x31, 0x64, 0x28, 0x1b, 0x7f, 0x57, 0xe0, + 0xfe, 0x29, 0x26, 0xa1, 0x76, 0x0e, 0x0e, 0x3e, 0x24, 0xca, 0x6e, 0x81, 0xe6, 0xe3, 0xe1, 0xc2, + 0x0f, 0x9c, 0x0b, 0xee, 0x30, 0xd5, 0x94, 0x04, 0x8a, 0x13, 0x69, 0xd5, 0x24, 0x4e, 0x60, 0x4e, + 0x4a, 0xe3, 0x84, 0x04, 0xdd, 0x90, 0xc3, 0x18, 0x40, 0xeb, 0xa9, 0x13, 0x90, 0x13, 0xc7, 0x5d, + 0x99, 0x71, 0xc6, 0xe7, 0xb0, 0x1e, 0x93, 0x21, 0xe3, 0x8e, 0x5a, 0xc9, 0x75, 0x6c, 0x9a, 0x7c, + 0x60, 0x0c, 0x61, 0xfd, 0xc4, 0x99, 0xd9, 0x02, 0xcd, 0x56, 0xa4, 0xcf, 0xaf, 0x01, 0xc5, 0x85, + 0x08, 0x85, 0x3e, 0x87, 0x1a, 0xbf, 0x43, 0x42, 0x42, 0x0e, 0xba, 0x0a, 0x06, 0xa3, 0x0f, 0x0f, + 0xa9, 0x41, 0x21, 0x4e, 0x2f, 0xbb, 0x8e, 0x7d, 0x1b, 0x5d, 0xa3, 0x44, 0x57, 0x16, 0x51, 0x65, + 0x9c, 0x42, 0x3b, 0x2b, 0xe0, 0x26, 0x69, 0xe0, 0xad, 0x02, 0xf7, 0xa9, 0xad, 0x4f, 0x5c, 0x77, + 0xc5, 0x89, 0x20, 0x01, 0x5c, 0xe5, 0x14, 0x1c, 0xd3, 0xc4, 0xfd, 0xca, 0x99, 0x87, 0x49, 0x9a, + 0xfe, 0xa3, 0x5f, 0x41, 0xd5, 0xf3, 0x6d, 0xec, 0xb3, 0xd0, 0x5e, 0x3b, 0xfc, 0x24, 0x94, 0x9d, + 0xab, 0x6e, 0xa7, 0x4b, 0x59, 0x4d, 0xbe, 0xc2, 0x78, 0x0c, 0x55, 0x36, 0xa6, 0x61, 0xfb, 0xbc, + 0xfb, 0xfc, 0x58, 0x04, 0x70, 0xf7, 0x45, 0x97, 0x27, 0xf1, 0xaf, 0x9f, 0xf4, 0x8e, 0x5b, 0x25, + 0x1a, 0x22, 0xe9, 0xcd, 0x6e, 0xe2, 0xc3, 0xff, 0x97, 0xe2, 0xf7, 0x65, 0x65, 0x0e, 0x8c, 0x8a, + 0x2a, 0xee, 0x3c, 0x3e, 0x40, 0x0f, 0xa0, 0xe6, 0x8d, 0x46, 0x01, 0x26, 0xc2, 0x77, 0x62, 0x24, + 0xc3, 0xa7, 0x1a, 0x0b, 0x1f, 0xca, 0x3d, 0xf2, 0x5c, 0xd7, 0x7b, 0xc3, 0x50, 0x51, 0x35, 0xc5, + 0x88, 0xc2, 0x3c, 0xf5, 0x79, 0x7f, 0x8a, 0xfd, 0x31, 0x0e, 0x44, 0x5a, 0x04, 0x4a, 0x7a, 0xc6, + 0x28, 0xe8, 0x63, 0x68, 0xda, 0x4e, 0x60, 0x0d, 0x5c, 0xdc, 0x7f, 0x63, 0xb9, 0xaf, 0xda, 0x2a, + 0xe3, 0x68, 0x08, 0xda, 0x37, 0x96, 0xfb, 0x4a, 0x66, 0x7a, 0xed, 0xfd, 0x33, 0x3d, 0xbc, 0x73, + 0xa6, 0x17, 0x89, 0xbb, 0x21, 0x13, 0xf7, 0x11, 0xdc, 0x4d, 0x78, 0xff, 0x26, 0x47, 0x38, 0x09, + 0x8b, 0xaa, 0xa7, 0xd6, 0x6c, 0xbc, 0xb0, 0xc6, 0xab, 0xc3, 0xba, 0x7f, 0x46, 0x1d, 0x45, 0x4c, + 0x94, 0x50, 0xf9, 0x04, 0x34, 0x37, 0x24, 0x0a, 0xa5, 0xf7, 0x42, 0x51, 0x05, 0x6b, 0x3a, 0x21, + 0xc5, 0x94, 0x4b, 0xf5, 0x73, 0x50, 0x43, 0x32, 0x8d, 0xac, 0x99, 0x35, 0xc5, 0x22, 0x25, 0xb3, + 0x7f, 0x7a, 0x37, 0x58, 0x47, 0xc7, 0x94, 0x2b, 0x99, 0x7c, 0xc0, 0x0b, 0x1d, 0xd7, 0xf3, 0x45, + 0xdf, 0xc1, 0x07, 0xc6, 0x02, 0xee, 0x98, 0xd6, 0x9b, 0x23, 0xd7, 0x9a, 0xe2, 0x0f, 0x98, 0xdb, + 0x8c, 0xcf, 0xa0, 0x25, 0xc5, 0x0a, 0xf7, 0x84, 0x55, 0xbb, 0x12, 0xab, 0xda, 0xff, 0x04, 0xed, + 0xa7, 0x56, 0x08, 0x84, 0x27, 0x9e, 0x4f, 0x73, 0xf8, 0x87, 0xd4, 0xf3, 0x04, 0x36, 0x72, 0xe4, + 0xbf, 0x7f, 0xc6, 0xf8, 0x97, 0x02, 0xdb, 0x14, 0xd1, 0xe5, 0x66, 0xc1, 0x89, 0xe7, 0xd3, 0x7c, + 0xfc, 0x43, 0x5a, 0xa3, 0xbd, 0x4f, 0xdf, 0x96, 0x03, 0x31, 0xd5, 0x38, 0xc4, 0x18, 0xff, 0x53, + 0xe0, 0x51, 0x91, 0xce, 0xc2, 0x03, 0xcf, 0xd3, 0x41, 0xf8, 0xb3, 0x50, 0xe3, 0xab, 0x17, 0x76, + 0x22, 0x87, 0x32, 0x6a, 0xb8, 0x89, 0x8e, 0xe1, 0x47, 0x89, 0x99, 0x98, 0x8b, 0x4b, 0xd7, 0xb8, + 0x98, 0x56, 0x85, 0xd4, 0xc8, 0xfe, 0x60, 0x49, 0x70, 0xc0, 0x2c, 0x6c, 0x9a, 0x1a, 0xa5, 0x1c, + 0x51, 0xc2, 0x79, 0x45, 0x55, 0x5a, 0xa5, 0xf3, 0x8a, 0x5a, 0x6e, 0x55, 0x8c, 0xff, 0x44, 0x41, + 0x1a, 0x1c, 0x2d, 0x9f, 0xe1, 0x20, 0xa0, 0x01, 0xb6, 0xa2, 0x5b, 0x25, 0xbd, 0x5b, 0x4e, 0x03, + 0x78, 0xce, 0x59, 0xe4, 0x35, 0x3a, 0xf7, 0xa0, 0xfa, 0x7a, 0x81, 0xfd, 0xa5, 0xa8, 0x74, 0xf9, + 0x80, 0x96, 0x08, 0x59, 0x13, 0x6e, 0x82, 0x8d, 0x0e, 0xec, 0x9c, 0x38, 0x2e, 0xc1, 0xfe, 0xcb, + 0x89, 0x15, 0x7c, 0xe3, 0x90, 0xc9, 0x4b, 0x67, 0x3c, 0xb3, 0xc8, 0xc2, 0xc7, 0xb7, 0x6d, 0x76, + 0x82, 0x89, 0x15, 0xb0, 0xaa, 0xa6, 0x69, 0xb2, 0x7f, 0xe3, 0x17, 0xb0, 0x5b, 0x2c, 0x4a, 0xa2, + 0x00, 0x5b, 0xa7, 0xc4, 0xd6, 0xcd, 0x61, 0xfb, 0xf8, 0x92, 0xf8, 0xd6, 0x50, 0x28, 0x1f, 0x2d, + 0xbb, 0x8d, 0x82, 0x9b, 0x20, 0x7a, 0x06, 0xf9, 0x52, 0xa3, 0x72, 0xc2, 0x99, 0x6d, 0xf4, 0xe1, + 0x51, 0x91, 0x44, 0xa1, 0xe7, 0x16, 0x68, 0x41, 0x48, 0x14, 0x90, 0x25, 0x09, 0x2c, 0xe1, 0x3a, + 0xe3, 0x19, 0xb6, 0xfb, 0x04, 0x5f, 0x12, 0x71, 0x29, 0x80, 0x93, 0x7a, 0xf8, 0x92, 0x18, 0x1e, + 0xe8, 0xa7, 0x38, 0xbd, 0xf9, 0xad, 0x1c, 0x2e, 0xbb, 0x22, 0xc7, 0x0e, 0x44, 0x31, 0xa9, 0x85, + 0x06, 0x05, 0xc6, 0x12, 0x36, 0x73, 0x05, 0x0a, 0x73, 0x12, 0xde, 0x50, 0x92, 0xde, 0x48, 0xda, + 0x5a, 0xba, 0xc6, 0xd6, 0x72, 0xc6, 0xd6, 0x29, 0xb4, 0x23, 0xd1, 0xe2, 0xaa, 0xae, 0xd2, 0x52, + 0x13, 0x36, 0x72, 0xc4, 0xbd, 0x8b, 0x9d, 0x6d, 0xa8, 0x4f, 0xf9, 0x02, 0x61, 0x65, 0x38, 0x3c, + 0xfc, 0xf7, 0x9d, 0x10, 0x99, 0x5e, 0x62, 0xff, 0xc2, 0x19, 0x62, 0xf4, 0x3b, 0x68, 0xa5, 0x9f, + 0xeb, 0xd0, 0x4e, 0x32, 0x9b, 0x67, 0xde, 0x14, 0xf5, 0xdd, 0x62, 0x06, 0xae, 0x9f, 0x51, 0x7b, + 0xfb, 0xb7, 0xbd, 0x92, 0x5a, 0x42, 0xe7, 0xf1, 0xb6, 0xbb, 0x9d, 0xf3, 0x6a, 0xc6, 0x37, 0xdc, + 0x28, 0x7c, 0x4f, 0x0b, 0x77, 0x3a, 0x50, 0xd0, 0xb7, 0xb0, 0x96, 0x7c, 0x52, 0x42, 0xdb, 0x49, + 0x3d, 0x52, 0x6f, 0x5b, 0xfa, 0xa3, 0xa2, 0xe9, 0xcc, 0xd6, 0xbf, 0x85, 0x66, 0xfc, 0x55, 0x05, + 0x6d, 0xca, 0x95, 0x99, 0xb7, 0x27, 0x7d, 0x2b, 0x7f, 0x32, 0x65, 0xb9, 0x0b, 0xf7, 0x73, 0x9f, + 0x34, 0xd0, 0xa7, 0x89, 0xe5, 0x05, 0x0f, 0x33, 0xfa, 0xe3, 0x6b, 0xb8, 0x52, 0xd2, 0xbe, 0x85, + 0xb5, 0x64, 0x1b, 0x2d, 0x7d, 0x93, 0xdb, 0xf9, 0x4b, 0xdf, 0xe4, 0x77, 0xdf, 0x31, 0xdf, 0x9c, + 0x83, 0x16, 0xb5, 0xbd, 0xf2, 0x08, 0xd3, 0xdd, 0xb6, 0x3c, 0xc2, 0x4c, 0x8f, 0x1c, 0xdb, 0xeb, + 0x37, 0x00, 0xb2, 0x08, 0x46, 0x1b, 0xf1, 0x5e, 0x29, 0xd1, 0x2b, 0xeb, 0x7a, 0xde, 0x54, 0xca, + 0xe6, 0xe7, 0xd0, 0x88, 0x3d, 0xad, 0x23, 0x3d, 0x79, 0xda, 0xf1, 0x57, 0x7d, 0x7d, 0x33, 0x77, + 0x2e, 0xeb, 0xc3, 0x64, 0x9f, 0x25, 0x7d, 0x98, 0xdb, 0xcc, 0x49, 0x1f, 0xe6, 0xb7, 0x67, 0x31, + 0xbb, 0x5f, 0x40, 0x23, 0x56, 0xfc, 0xa3, 0x1c, 0xeb, 0xb2, 0xaa, 0xe6, 0x74, 0x0b, 0xb1, 0x1d, + 0xbf, 0x83, 0x3b, 0xa9, 0x5a, 0x1b, 0x3d, 0x2a, 0x2c, 0xc2, 0xf9, 0xce, 0x3b, 0xd7, 0x14, 0xe9, + 0x91, 0x23, 0x4e, 0x41, 0x0d, 0xab, 0x5a, 0xf4, 0x30, 0x02, 0xb1, 0x64, 0x79, 0xad, 0xb7, 0xb3, + 0x13, 0x19, 0x25, 0x7f, 0x0f, 0xeb, 0x99, 0xb2, 0x13, 0x45, 0xe0, 0x51, 0x54, 0x11, 0xeb, 0x1f, + 0x5f, 0xc1, 0x91, 0x52, 0xf5, 0x35, 0x3c, 0xc8, 0x2f, 0xd1, 0xd0, 0xe3, 0xeb, 0x4a, 0x38, 0x2e, + 0xeb, 0xb3, 0x77, 0xab, 0xf4, 0x62, 0x46, 0xf5, 0x43, 0xc4, 0x94, 0x15, 0x4b, 0x1a, 0x31, 0x33, + 0xe5, 0x58, 0x1a, 0x31, 0xb3, 0xc5, 0x4e, 0x52, 0x40, 0xfa, 0xd5, 0x44, 0x0a, 0x28, 0x78, 0xb0, + 0x91, 0x02, 0x8a, 0x1e, 0x5c, 0x62, 0x02, 0x96, 0xd0, 0x2e, 0xaa, 0x5f, 0xd0, 0x8f, 0xe5, 0xf5, + 0xbb, 0xb2, 0x98, 0xd2, 0xf7, 0xae, 0x67, 0x4c, 0x0a, 0xde, 0x53, 0x0e, 0x14, 0x7a, 0x5e, 0xf9, + 0x05, 0x89, 0x3c, 0xaf, 0x2b, 0x4b, 0x24, 0x79, 0x5e, 0x57, 0xd7, 0x35, 0x31, 0x6b, 0x27, 0x70, + 0x37, 0xa7, 0x62, 0x40, 0x46, 0x0c, 0x00, 0x0b, 0xea, 0x17, 0xfd, 0x93, 0x2b, 0x79, 0x32, 0x92, + 0x06, 0xb0, 0x9e, 0xc9, 0xd8, 0xf2, 0xba, 0x17, 0xd5, 0x0e, 0xf2, 0xba, 0x17, 0xa6, 0x7b, 0x29, + 0xe3, 0xe8, 0xe0, 0x3b, 0xca, 0xed, 0x5a, 0x83, 0xce, 0xd0, 0x9b, 0xee, 0xf3, 0xdf, 0x2f, 0x3d, + 0x7f, 0xbc, 0xcf, 0xf7, 0xf8, 0x92, 0xbd, 0x49, 0xec, 0x8f, 0x3d, 0x31, 0x9e, 0x0f, 0x06, 0x35, + 0x46, 0xfa, 0xe9, 0xf7, 0x01, 0x00, 0x00, 0xff, 0xff, 0x56, 0x85, 0xef, 0x3a, 0x35, 0x1d, 0x00, + 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/conflicts.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/conflicts.pb.go index 5c90c331b..cc03d311d 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/conflicts.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/conflicts.pb.go @@ -36,7 +36,7 @@ func (m *ListConflictFilesRequest) Reset() { *m = ListConflictFilesReque func (m *ListConflictFilesRequest) String() string { return proto.CompactTextString(m) } func (*ListConflictFilesRequest) ProtoMessage() {} func (*ListConflictFilesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_conflicts_cfde09b9517b3e8b, []int{0} + return fileDescriptor_conflicts_152755a1cf53b399, []int{0} } func (m *ListConflictFilesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListConflictFilesRequest.Unmarshal(m, b) @@ -92,7 +92,7 @@ func (m *ConflictFileHeader) Reset() { *m = ConflictFileHeader{} } func (m *ConflictFileHeader) String() string { return proto.CompactTextString(m) } func (*ConflictFileHeader) ProtoMessage() {} func (*ConflictFileHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_conflicts_cfde09b9517b3e8b, []int{1} + return fileDescriptor_conflicts_152755a1cf53b399, []int{1} } func (m *ConflictFileHeader) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConflictFileHeader.Unmarshal(m, b) @@ -161,7 +161,7 @@ func (m *ConflictFile) Reset() { *m = ConflictFile{} } func (m *ConflictFile) String() string { return proto.CompactTextString(m) } func (*ConflictFile) ProtoMessage() {} func (*ConflictFile) Descriptor() ([]byte, []int) { - return fileDescriptor_conflicts_cfde09b9517b3e8b, []int{2} + return fileDescriptor_conflicts_152755a1cf53b399, []int{2} } func (m *ConflictFile) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConflictFile.Unmarshal(m, b) @@ -299,7 +299,7 @@ func (m *ListConflictFilesResponse) Reset() { *m = ListConflictFilesResp func (m *ListConflictFilesResponse) String() string { return proto.CompactTextString(m) } func (*ListConflictFilesResponse) ProtoMessage() {} func (*ListConflictFilesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_conflicts_cfde09b9517b3e8b, []int{3} + return fileDescriptor_conflicts_152755a1cf53b399, []int{3} } func (m *ListConflictFilesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListConflictFilesResponse.Unmarshal(m, b) @@ -344,7 +344,7 @@ func (m *ResolveConflictsRequestHeader) Reset() { *m = ResolveConflictsR func (m *ResolveConflictsRequestHeader) String() string { return proto.CompactTextString(m) } func (*ResolveConflictsRequestHeader) ProtoMessage() {} func (*ResolveConflictsRequestHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_conflicts_cfde09b9517b3e8b, []int{4} + return fileDescriptor_conflicts_152755a1cf53b399, []int{4} } func (m *ResolveConflictsRequestHeader) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResolveConflictsRequestHeader.Unmarshal(m, b) @@ -434,7 +434,7 @@ func (m *ResolveConflictsRequest) Reset() { *m = ResolveConflictsRequest func (m *ResolveConflictsRequest) String() string { return proto.CompactTextString(m) } func (*ResolveConflictsRequest) ProtoMessage() {} func (*ResolveConflictsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_conflicts_cfde09b9517b3e8b, []int{5} + return fileDescriptor_conflicts_152755a1cf53b399, []int{5} } func (m *ResolveConflictsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResolveConflictsRequest.Unmarshal(m, b) @@ -572,7 +572,7 @@ func (m *ResolveConflictsResponse) Reset() { *m = ResolveConflictsRespon func (m *ResolveConflictsResponse) String() string { return proto.CompactTextString(m) } func (*ResolveConflictsResponse) ProtoMessage() {} func (*ResolveConflictsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_conflicts_cfde09b9517b3e8b, []int{6} + return fileDescriptor_conflicts_152755a1cf53b399, []int{6} } func (m *ResolveConflictsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResolveConflictsResponse.Unmarshal(m, b) @@ -775,47 +775,47 @@ var _ConflictsService_serviceDesc = grpc.ServiceDesc{ Metadata: "conflicts.proto", } -func init() { proto.RegisterFile("conflicts.proto", fileDescriptor_conflicts_cfde09b9517b3e8b) } - -var fileDescriptor_conflicts_cfde09b9517b3e8b = []byte{ - // 622 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0xc1, 0x4e, 0xdb, 0x4e, - 0x10, 0xc6, 0x71, 0x80, 0x40, 0x06, 0x03, 0x61, 0xf5, 0xff, 0x0b, 0x13, 0x09, 0x61, 0x4c, 0x91, - 0xdc, 0x4a, 0x04, 0x94, 0xf6, 0xd4, 0x0b, 0x52, 0x10, 0x2d, 0xaa, 0x8a, 0x5a, 0xb9, 0xea, 0xa1, - 0x55, 0x25, 0xcb, 0xb1, 0x87, 0xc4, 0x95, 0xe3, 0x71, 0x77, 0xd7, 0x48, 0x79, 0x92, 0xbe, 0x41, - 0xd5, 0x87, 0xe8, 0x1b, 0xf4, 0x6d, 0x7a, 0xe9, 0xb5, 0xca, 0xae, 0x6d, 0x02, 0x49, 0x68, 0xd5, - 0xde, 0x92, 0x6f, 0x7e, 0x99, 0xfd, 0x66, 0xe7, 0xcb, 0xc2, 0x66, 0x48, 0xe9, 0x55, 0x12, 0x87, - 0x52, 0xb4, 0x33, 0x4e, 0x92, 0x58, 0xbd, 0x1f, 0xcb, 0x20, 0x19, 0xb5, 0x4c, 0x31, 0x08, 0x38, - 0x46, 0x5a, 0x75, 0xbe, 0x18, 0x60, 0xbd, 0x8c, 0x85, 0x3c, 0x2b, 0xe8, 0x67, 0x71, 0x82, 0xc2, - 0xc3, 0x4f, 0x39, 0x0a, 0xc9, 0x3a, 0x00, 0x1c, 0x33, 0x12, 0xb1, 0x24, 0x3e, 0xb2, 0x0c, 0xdb, - 0x70, 0xd7, 0x3a, 0xac, 0xad, 0xfb, 0xb4, 0xbd, 0xaa, 0xe2, 0x4d, 0x50, 0xec, 0x01, 0x6c, 0x50, - 0xce, 0xfd, 0x90, 0x86, 0xc3, 0x58, 0xfa, 0x14, 0x47, 0x56, 0xcd, 0x36, 0xdc, 0x86, 0x67, 0x52, - 0xce, 0xcf, 0x94, 0xf8, 0x2a, 0x8e, 0x98, 0x0b, 0x4d, 0x39, 0xc0, 0xf8, 0x16, 0xb7, 0xa8, 0xb8, - 0x0d, 0xa5, 0x57, 0xe4, 0xd3, 0xfa, 0x8f, 0xcf, 0x6e, 0x6d, 0xb5, 0xe6, 0x7c, 0x33, 0x80, 0x4d, - 0x9a, 0xbc, 0xc0, 0x20, 0x42, 0xfe, 0x57, 0x16, 0x77, 0x01, 0xa6, 0xec, 0x35, 0xc2, 0xca, 0xdb, - 0x2e, 0x80, 0xf6, 0x96, 0x05, 0x72, 0xa0, 0x5c, 0x99, 0x5e, 0x43, 0x29, 0xaf, 0x03, 0x39, 0x60, - 0x3b, 0xb0, 0x3a, 0x1e, 0x50, 0x15, 0x97, 0x54, 0x71, 0x85, 0xf2, 0x5b, 0xa5, 0x21, 0x45, 0x68, - 0x2d, 0xdb, 0x86, 0xbb, 0xac, 0x4a, 0x97, 0x14, 0xa1, 0x33, 0x02, 0x73, 0xd2, 0x3d, 0x7b, 0x02, - 0xf5, 0x81, 0x9a, 0xa0, 0xf0, 0xdc, 0x2a, 0x3d, 0x4f, 0xcf, 0x78, 0xb1, 0xe0, 0x15, 0x2c, 0x6b, - 0xc1, 0x4a, 0x48, 0xa9, 0xc4, 0x54, 0x2a, 0xdb, 0xe6, 0xc5, 0x82, 0x57, 0x0a, 0xdd, 0x6d, 0xf8, - 0xbf, 0x5c, 0xb9, 0x7f, 0x15, 0x27, 0xe8, 0x67, 0xc1, 0x28, 0xa1, 0x20, 0x72, 0x9e, 0xc3, 0xce, - 0x8c, 0x0d, 0x8b, 0x8c, 0x52, 0x81, 0xec, 0x11, 0x2c, 0x8f, 0x61, 0x61, 0x19, 0xf6, 0xa2, 0xbb, - 0xd6, 0xf9, 0x6f, 0x96, 0x0d, 0x4f, 0x23, 0xce, 0xcf, 0x1a, 0xec, 0x7a, 0x28, 0x28, 0xb9, 0xc6, - 0xb2, 0x5c, 0x46, 0xe5, 0x1f, 0xb6, 0xf1, 0x67, 0x81, 0x39, 0x85, 0x2d, 0x19, 0xf0, 0x3e, 0x4a, - 0x7f, 0xe2, 0x80, 0xc5, 0xb9, 0x07, 0x34, 0x35, 0x7c, 0xa3, 0xcc, 0x4c, 0xdc, 0xd2, 0xac, 0xc4, - 0xb1, 0x03, 0x58, 0x17, 0x94, 0xf3, 0x10, 0xfd, 0x1e, 0x0f, 0xd2, 0x70, 0xa0, 0x56, 0x69, 0x7a, - 0xa6, 0x16, 0xbb, 0x4a, 0x1b, 0x43, 0x85, 0x9f, 0x02, 0xaa, 0x6b, 0x48, 0x8b, 0x05, 0x74, 0x08, - 0x1b, 0xc5, 0x69, 0x43, 0x14, 0x22, 0xe8, 0xa3, 0xb5, 0xa2, 0xa8, 0x75, 0xad, 0x5e, 0x6a, 0x91, - 0xd9, 0xb0, 0x94, 0x0b, 0xe4, 0xd6, 0xaa, 0x1a, 0xc7, 0x2c, 0xc7, 0x79, 0x2b, 0x90, 0x7b, 0xaa, - 0xe2, 0x7c, 0x35, 0x60, 0x7b, 0xce, 0xcd, 0xb3, 0xd3, 0x3b, 0x49, 0x3a, 0xbc, 0xb9, 0x8e, 0x7b, - 0x56, 0x35, 0x11, 0xaa, 0x3d, 0x00, 0xb5, 0x5f, 0xff, 0xa3, 0xa0, 0xb4, 0xca, 0x55, 0x43, 0x69, - 0x2f, 0x04, 0xa5, 0xc5, 0x5f, 0xd0, 0xe8, 0x1e, 0xc0, 0x3e, 0xd7, 0x3d, 0xfd, 0xea, 0x71, 0xf1, - 0xb9, 0xee, 0x5a, 0xa5, 0xed, 0x1c, 0xac, 0xe9, 0x83, 0x8b, 0xb0, 0x3d, 0x84, 0xa6, 0x6a, 0x90, - 0xcb, 0x98, 0x52, 0x1f, 0x39, 0x27, 0x6d, 0xba, 0xe1, 0x6d, 0xde, 0xe8, 0xe7, 0x63, 0xb9, 0xf3, - 0xdd, 0x80, 0x66, 0xd5, 0xe0, 0x0d, 0xf2, 0xeb, 0x38, 0x44, 0xf6, 0x01, 0xb6, 0xa6, 0x92, 0xcc, - 0xec, 0x72, 0xde, 0x79, 0xcf, 0x58, 0x6b, 0xff, 0x1e, 0x42, 0x3b, 0x73, 0x16, 0x4e, 0x0c, 0xf6, - 0x0e, 0x9a, 0x77, 0x9d, 0xb3, 0xbd, 0xdf, 0x5c, 0x66, 0xcb, 0x9e, 0x0f, 0x94, 0xad, 0x5d, 0xa3, - 0x7b, 0xf2, 0x7e, 0x8c, 0x25, 0x41, 0xaf, 0x1d, 0xd2, 0xf0, 0x58, 0x7f, 0x3c, 0x22, 0xde, 0x3f, - 0xd6, 0x3f, 0x3e, 0x52, 0x6f, 0xf1, 0x71, 0x9f, 0x8a, 0xef, 0x59, 0xaf, 0x57, 0x57, 0xd2, 0xe3, - 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa1, 0x0c, 0xe9, 0xcc, 0xc7, 0x05, 0x00, 0x00, +func init() { proto.RegisterFile("conflicts.proto", fileDescriptor_conflicts_152755a1cf53b399) } + +var fileDescriptor_conflicts_152755a1cf53b399 = []byte{ + // 612 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x51, 0x4f, 0xd3, 0x50, + 0x14, 0xc7, 0xe9, 0x80, 0xc1, 0x0e, 0x05, 0xc6, 0x8d, 0x86, 0xb2, 0x84, 0x50, 0x8a, 0x24, 0xd5, + 0x84, 0x41, 0xa6, 0xef, 0x24, 0x23, 0x28, 0x31, 0x12, 0x4d, 0x8d, 0x2f, 0xbe, 0x34, 0x5d, 0x7b, + 0xd8, 0x6a, 0xba, 0x9e, 0x7a, 0xef, 0x2d, 0xc9, 0x3e, 0x89, 0x6f, 0xc6, 0x0f, 0xe2, 0xf7, 0xf0, + 0xa3, 0x98, 0xf8, 0x64, 0x76, 0x6f, 0x5b, 0x36, 0xb6, 0xa1, 0xd1, 0xb7, 0xed, 0x7f, 0x7e, 0x39, + 0xe7, 0x7f, 0x7a, 0xfe, 0xb9, 0xb0, 0x1d, 0x52, 0x7a, 0x93, 0xc4, 0xa1, 0x14, 0xed, 0x8c, 0x93, + 0x24, 0x56, 0xef, 0xc7, 0x32, 0x48, 0x46, 0x2d, 0x53, 0x0c, 0x02, 0x8e, 0x91, 0x56, 0x9d, 0xaf, + 0x06, 0x58, 0x6f, 0x62, 0x21, 0x2f, 0x0a, 0xfa, 0x65, 0x9c, 0xa0, 0xf0, 0xf0, 0x73, 0x8e, 0x42, + 0xb2, 0x0e, 0x00, 0xc7, 0x8c, 0x44, 0x2c, 0x89, 0x8f, 0x2c, 0xc3, 0x36, 0xdc, 0x8d, 0x0e, 0x6b, + 0xeb, 0x3e, 0x6d, 0xaf, 0xaa, 0x78, 0x13, 0x14, 0x7b, 0x02, 0x5b, 0x94, 0x73, 0x3f, 0xa4, 0xe1, + 0x30, 0x96, 0x3e, 0xc5, 0x91, 0x55, 0xb3, 0x0d, 0xb7, 0xe1, 0x99, 0x94, 0xf3, 0x0b, 0x25, 0xbe, + 0x8d, 0x23, 0xe6, 0x42, 0x53, 0x0e, 0x30, 0x9e, 0xe2, 0x96, 0x15, 0xb7, 0xa5, 0xf4, 0x8a, 0x74, + 0xbe, 0x1b, 0xc0, 0x26, 0xcd, 0x5d, 0x61, 0x10, 0x21, 0xff, 0x27, 0x6b, 0xfb, 0x00, 0x33, 0xb6, + 0x1a, 0x61, 0xe5, 0x69, 0x1f, 0x40, 0x7b, 0xca, 0x02, 0x39, 0x50, 0x6e, 0x4c, 0xaf, 0xa1, 0x94, + 0x77, 0x81, 0x1c, 0xb0, 0x3d, 0x58, 0x1f, 0x2f, 0xa6, 0x8a, 0x2b, 0xaa, 0xb8, 0x46, 0xf9, 0x54, + 0x69, 0x48, 0x11, 0x5a, 0xab, 0xb6, 0xe1, 0xae, 0xaa, 0xd2, 0x35, 0x45, 0xe8, 0x8c, 0xc0, 0x9c, + 0x74, 0xcf, 0x5e, 0x40, 0x7d, 0xa0, 0x36, 0x28, 0x3c, 0xb7, 0x4a, 0xcf, 0xb3, 0x3b, 0x5e, 0x2d, + 0x79, 0x05, 0xcb, 0x5a, 0xb0, 0x16, 0x52, 0x2a, 0x31, 0x95, 0xca, 0xb6, 0x79, 0xb5, 0xe4, 0x95, + 0x42, 0x77, 0x17, 0x1e, 0x97, 0xa7, 0xf6, 0x6f, 0xe2, 0x04, 0xfd, 0x2c, 0x18, 0x25, 0x14, 0x44, + 0xce, 0x2b, 0xd8, 0x9b, 0x73, 0x59, 0x91, 0x51, 0x2a, 0x90, 0x3d, 0x83, 0xd5, 0x31, 0x2c, 0x2c, + 0xc3, 0x5e, 0x76, 0x37, 0x3a, 0x8f, 0xe6, 0xd9, 0xf0, 0x34, 0xe2, 0xfc, 0xac, 0xc1, 0xbe, 0x87, + 0x82, 0x92, 0x5b, 0x2c, 0xcb, 0x65, 0x44, 0xfe, 0xe3, 0x1a, 0x7f, 0x17, 0x94, 0x73, 0xd8, 0x91, + 0x01, 0xef, 0xa3, 0xf4, 0x27, 0x06, 0x2c, 0x2f, 0x1c, 0xd0, 0xd4, 0xf0, 0x9d, 0x32, 0x37, 0x69, + 0x2b, 0xf3, 0x92, 0xc6, 0x8e, 0x60, 0x53, 0x50, 0xce, 0x43, 0xf4, 0x7b, 0x3c, 0x48, 0xc3, 0x81, + 0x3a, 0xa5, 0xe9, 0x99, 0x5a, 0xec, 0x2a, 0x6d, 0x0c, 0x15, 0x7e, 0x0a, 0xa8, 0xae, 0x21, 0x2d, + 0x16, 0xd0, 0x31, 0x6c, 0x15, 0xd3, 0x86, 0x28, 0x44, 0xd0, 0x47, 0x6b, 0x4d, 0x51, 0x9b, 0x5a, + 0xbd, 0xd6, 0x22, 0xb3, 0x61, 0x25, 0x17, 0xc8, 0xad, 0x75, 0xb5, 0x8e, 0x59, 0xae, 0xf3, 0x41, + 0x20, 0xf7, 0x54, 0xc5, 0xf9, 0x66, 0xc0, 0xee, 0x82, 0x2f, 0xcf, 0xce, 0xef, 0x25, 0xe9, 0xf8, + 0xee, 0x73, 0x3c, 0x70, 0xaa, 0x89, 0x50, 0x1d, 0x00, 0xa8, 0xfb, 0xfa, 0x9f, 0x04, 0xa5, 0x55, + 0xae, 0x1a, 0x4a, 0x7b, 0x2d, 0x28, 0xed, 0x1e, 0xc1, 0x21, 0xd7, 0xbd, 0xfc, 0xea, 0x31, 0xf1, + 0xb9, 0xee, 0x56, 0xa5, 0xec, 0x12, 0xac, 0xd9, 0x81, 0x45, 0xc8, 0x9e, 0x42, 0x53, 0x35, 0xc8, + 0x65, 0x4c, 0xa9, 0x8f, 0x9c, 0x93, 0x36, 0xdb, 0xf0, 0xb6, 0xef, 0xf4, 0xcb, 0xb1, 0xdc, 0xf9, + 0x61, 0x40, 0xb3, 0x6a, 0xf0, 0x1e, 0xf9, 0x6d, 0x1c, 0x22, 0xeb, 0xc1, 0xce, 0x4c, 0x82, 0x99, + 0x5d, 0xee, 0xb9, 0xe8, 0xd9, 0x6a, 0x1d, 0x3e, 0x40, 0x68, 0x67, 0x4e, 0xfd, 0xd7, 0x17, 0xb7, + 0xb6, 0x5e, 0x3b, 0x33, 0x98, 0x0f, 0xcd, 0xfb, 0xfe, 0xd9, 0xc1, 0x1f, 0x3e, 0x65, 0xcb, 0x5e, + 0x0c, 0x4c, 0x0d, 0x30, 0x5c, 0xa3, 0x7b, 0xf6, 0x71, 0x0c, 0x27, 0x41, 0xaf, 0x1d, 0xd2, 0xf0, + 0x54, 0xff, 0x3c, 0x21, 0xde, 0x3f, 0xd5, 0x2d, 0x4e, 0xd4, 0x3b, 0x7c, 0xda, 0xa7, 0xe2, 0x7f, + 0xd6, 0xeb, 0xd5, 0x95, 0xf4, 0xfc, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x76, 0x80, 0x69, 0xe9, + 0xc3, 0x05, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/diff.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/diff.pb.go index a1f8f2838..a7b25fb62 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/diff.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/diff.pb.go @@ -52,7 +52,7 @@ func (m *CommitDiffRequest) Reset() { *m = CommitDiffRequest{} } func (m *CommitDiffRequest) String() string { return proto.CompactTextString(m) } func (*CommitDiffRequest) ProtoMessage() {} func (*CommitDiffRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{0} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{0} } func (m *CommitDiffRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitDiffRequest.Unmarshal(m, b) @@ -200,7 +200,7 @@ func (m *CommitDiffResponse) Reset() { *m = CommitDiffResponse{} } func (m *CommitDiffResponse) String() string { return proto.CompactTextString(m) } func (*CommitDiffResponse) ProtoMessage() {} func (*CommitDiffResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{1} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{1} } func (m *CommitDiffResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitDiffResponse.Unmarshal(m, b) @@ -318,7 +318,7 @@ func (m *CommitDeltaRequest) Reset() { *m = CommitDeltaRequest{} } func (m *CommitDeltaRequest) String() string { return proto.CompactTextString(m) } func (*CommitDeltaRequest) ProtoMessage() {} func (*CommitDeltaRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{2} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{2} } func (m *CommitDeltaRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitDeltaRequest.Unmarshal(m, b) @@ -383,7 +383,7 @@ func (m *CommitDelta) Reset() { *m = CommitDelta{} } func (m *CommitDelta) String() string { return proto.CompactTextString(m) } func (*CommitDelta) ProtoMessage() {} func (*CommitDelta) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{3} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{3} } func (m *CommitDelta) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitDelta.Unmarshal(m, b) @@ -456,7 +456,7 @@ func (m *CommitDeltaResponse) Reset() { *m = CommitDeltaResponse{} } func (m *CommitDeltaResponse) String() string { return proto.CompactTextString(m) } func (*CommitDeltaResponse) ProtoMessage() {} func (*CommitDeltaResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{4} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{4} } func (m *CommitDeltaResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitDeltaResponse.Unmarshal(m, b) @@ -495,7 +495,7 @@ func (m *CommitPatchRequest) Reset() { *m = CommitPatchRequest{} } func (m *CommitPatchRequest) String() string { return proto.CompactTextString(m) } func (*CommitPatchRequest) ProtoMessage() {} func (*CommitPatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{5} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{5} } func (m *CommitPatchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitPatchRequest.Unmarshal(m, b) @@ -540,7 +540,7 @@ func (m *CommitPatchResponse) Reset() { *m = CommitPatchResponse{} } func (m *CommitPatchResponse) String() string { return proto.CompactTextString(m) } func (*CommitPatchResponse) ProtoMessage() {} func (*CommitPatchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{6} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{6} } func (m *CommitPatchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitPatchResponse.Unmarshal(m, b) @@ -580,7 +580,7 @@ func (m *RawDiffRequest) Reset() { *m = RawDiffRequest{} } func (m *RawDiffRequest) String() string { return proto.CompactTextString(m) } func (*RawDiffRequest) ProtoMessage() {} func (*RawDiffRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{7} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{7} } func (m *RawDiffRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RawDiffRequest.Unmarshal(m, b) @@ -632,7 +632,7 @@ func (m *RawDiffResponse) Reset() { *m = RawDiffResponse{} } func (m *RawDiffResponse) String() string { return proto.CompactTextString(m) } func (*RawDiffResponse) ProtoMessage() {} func (*RawDiffResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{8} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{8} } func (m *RawDiffResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RawDiffResponse.Unmarshal(m, b) @@ -672,7 +672,7 @@ func (m *RawPatchRequest) Reset() { *m = RawPatchRequest{} } func (m *RawPatchRequest) String() string { return proto.CompactTextString(m) } func (*RawPatchRequest) ProtoMessage() {} func (*RawPatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{9} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{9} } func (m *RawPatchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RawPatchRequest.Unmarshal(m, b) @@ -724,7 +724,7 @@ func (m *RawPatchResponse) Reset() { *m = RawPatchResponse{} } func (m *RawPatchResponse) String() string { return proto.CompactTextString(m) } func (*RawPatchResponse) ProtoMessage() {} func (*RawPatchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{10} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{10} } func (m *RawPatchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RawPatchResponse.Unmarshal(m, b) @@ -764,7 +764,7 @@ func (m *DiffStatsRequest) Reset() { *m = DiffStatsRequest{} } func (m *DiffStatsRequest) String() string { return proto.CompactTextString(m) } func (*DiffStatsRequest) ProtoMessage() {} func (*DiffStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{11} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{11} } func (m *DiffStatsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DiffStatsRequest.Unmarshal(m, b) @@ -818,7 +818,7 @@ func (m *DiffStats) Reset() { *m = DiffStats{} } func (m *DiffStats) String() string { return proto.CompactTextString(m) } func (*DiffStats) ProtoMessage() {} func (*DiffStats) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{12} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{12} } func (m *DiffStats) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DiffStats.Unmarshal(m, b) @@ -870,7 +870,7 @@ func (m *DiffStatsResponse) Reset() { *m = DiffStatsResponse{} } func (m *DiffStatsResponse) String() string { return proto.CompactTextString(m) } func (*DiffStatsResponse) ProtoMessage() {} func (*DiffStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_diff_696f647dc4d0db76, []int{13} + return fileDescriptor_diff_30d5eeb6dfe82880, []int{13} } func (m *DiffStatsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DiffStatsResponse.Unmarshal(m, b) @@ -1317,65 +1317,65 @@ var _DiffService_serviceDesc = grpc.ServiceDesc{ Metadata: "diff.proto", } -func init() { proto.RegisterFile("diff.proto", fileDescriptor_diff_696f647dc4d0db76) } - -var fileDescriptor_diff_696f647dc4d0db76 = []byte{ - // 909 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcf, 0x6f, 0xe3, 0x44, - 0x14, 0xc6, 0x4d, 0xe2, 0x3a, 0x2f, 0x6e, 0xda, 0x4e, 0x51, 0xd7, 0xcd, 0x72, 0x88, 0xa2, 0xfd, - 0x11, 0x84, 0xb6, 0x5d, 0x95, 0x0b, 0x42, 0x08, 0x89, 0x6e, 0x05, 0xea, 0xaa, 0x15, 0x2b, 0x73, - 0x40, 0x82, 0x83, 0x35, 0xc9, 0x8c, 0x93, 0x11, 0xb6, 0x27, 0xcc, 0x0c, 0x4d, 0xfb, 0x97, 0x20, - 0x01, 0x77, 0x2e, 0x1c, 0x91, 0xf8, 0xbf, 0x38, 0x71, 0x44, 0xf3, 0xc6, 0x76, 0x9c, 0x36, 0xda, - 0xcb, 0x6a, 0xa5, 0xde, 0x3c, 0xdf, 0xf7, 0xf9, 0xcd, 0xfb, 0xf1, 0x3d, 0x27, 0x00, 0x4c, 0xa4, - 0xe9, 0xf1, 0x42, 0x49, 0x23, 0x89, 0x3f, 0x13, 0x86, 0x66, 0xb7, 0x83, 0x50, 0xcf, 0xa9, 0xe2, - 0xcc, 0xa1, 0xa3, 0xbf, 0xda, 0xb0, 0xff, 0x4a, 0xe6, 0xb9, 0x30, 0xe7, 0x22, 0x4d, 0x63, 0xfe, - 0xf3, 0x2f, 0x5c, 0x1b, 0x72, 0x0a, 0xa0, 0xf8, 0x42, 0x6a, 0x61, 0xa4, 0xba, 0x8d, 0xbc, 0xa1, - 0x37, 0xee, 0x9d, 0x92, 0x63, 0x17, 0xe0, 0x38, 0xae, 0x99, 0xb8, 0xa1, 0x22, 0x4f, 0xa0, 0x9f, - 0xf1, 0xd4, 0x24, 0x53, 0x8c, 0x96, 0x08, 0x16, 0x6d, 0x0d, 0xbd, 0x71, 0x37, 0x0e, 0x2d, 0xea, - 0xae, 0xb8, 0x60, 0xe4, 0x19, 0xec, 0x2a, 0x31, 0x9b, 0x37, 0x65, 0x2d, 0x94, 0xed, 0x20, 0x5c, - 0xeb, 0x3e, 0x83, 0x48, 0xcc, 0x0a, 0xa9, 0x78, 0xb2, 0x9c, 0x0b, 0xc3, 0xf5, 0x82, 0x4e, 0x79, - 0x32, 0x9d, 0xd3, 0x62, 0xc6, 0xa3, 0xf6, 0xd0, 0x1b, 0x07, 0xf1, 0xa1, 0xe3, 0xbf, 0xaf, 0xe9, - 0x57, 0xc8, 0x92, 0x0f, 0xa1, 0xb3, 0xa0, 0x66, 0xae, 0xa3, 0xce, 0xb0, 0x35, 0x0e, 0x63, 0x77, - 0x20, 0x4f, 0xa1, 0x3f, 0x95, 0x59, 0x46, 0x17, 0x9a, 0x27, 0xb6, 0x29, 0x3a, 0xf2, 0x31, 0xca, - 0x4e, 0x85, 0xda, 0xf2, 0x51, 0xc6, 0x8b, 0x54, 0xaa, 0x29, 0x4f, 0x32, 0x91, 0x0b, 0xa3, 0xa3, - 0x6d, 0x27, 0x2b, 0xd1, 0x4b, 0x04, 0xc9, 0x63, 0xe8, 0xe6, 0xf4, 0x26, 0x49, 0x45, 0xc6, 0x75, - 0x14, 0x0c, 0xbd, 0x71, 0x27, 0x0e, 0x72, 0x7a, 0xf3, 0xb5, 0x3d, 0x57, 0x64, 0x26, 0x0a, 0xae, - 0xa3, 0x6e, 0x4d, 0x5e, 0xda, 0x73, 0x45, 0x4e, 0x6e, 0x0d, 0xd7, 0x11, 0xd4, 0xe4, 0x99, 0x3d, - 0xdb, 0xe6, 0x58, 0x72, 0x41, 0xcd, 0x74, 0x5e, 0x4a, 0xfa, 0x28, 0xd9, 0xc9, 0xe9, 0xcd, 0x1b, - 0x8b, 0x3a, 0xdd, 0x13, 0xe8, 0x6b, 0x9a, 0xf2, 0x64, 0x95, 0x43, 0x0f, 0x65, 0xa1, 0x45, 0xaf, - 0xaa, 0x3c, 0x9a, 0x2a, 0x97, 0x4c, 0xb8, 0xa6, 0x72, 0x09, 0x35, 0x55, 0xee, 0xca, 0x9d, 0x35, - 0x15, 0xde, 0xf8, 0xb9, 0xff, 0xef, 0xaf, 0xe3, 0xad, 0x60, 0x6b, 0xf4, 0xdf, 0x16, 0x90, 0xa6, - 0x5d, 0xf4, 0x42, 0x16, 0x9a, 0xdb, 0xaa, 0x52, 0x25, 0x73, 0x9b, 0xf9, 0x1c, 0xed, 0x12, 0xc6, - 0x81, 0x05, 0xde, 0x50, 0x33, 0x27, 0x8f, 0x60, 0xdb, 0x48, 0x47, 0x6d, 0x21, 0xe5, 0x1b, 0x59, - 0x11, 0xf8, 0x56, 0xed, 0x01, 0xdf, 0x1e, 0x2f, 0x18, 0x39, 0x80, 0x8e, 0x91, 0x16, 0x6e, 0x23, - 0xdc, 0x36, 0xf2, 0x82, 0x91, 0x23, 0x08, 0x64, 0xc6, 0x92, 0x5c, 0x32, 0x1e, 0x75, 0x30, 0xc5, - 0x6d, 0x99, 0xb1, 0x2b, 0xc9, 0xb8, 0xa5, 0x0a, 0xbe, 0x74, 0x94, 0xef, 0xa8, 0x82, 0x2f, 0x91, - 0x3a, 0x04, 0x7f, 0x22, 0x0a, 0xaa, 0x6e, 0xcb, 0x41, 0x96, 0x27, 0x5b, 0xb6, 0xa2, 0xcb, 0xb2, - 0xd5, 0x8c, 0x1a, 0x8a, 0x93, 0x0a, 0xe3, 0x50, 0xd1, 0x25, 0x76, 0xfa, 0x9c, 0x1a, 0x4a, 0x86, - 0x10, 0xf2, 0x82, 0x25, 0x32, 0x75, 0x42, 0x1c, 0x58, 0x10, 0x03, 0x2f, 0xd8, 0xb7, 0x29, 0xaa, - 0xc8, 0x73, 0xd8, 0x95, 0xd7, 0x5c, 0xa5, 0x99, 0x5c, 0x26, 0x39, 0x55, 0x3f, 0x71, 0x85, 0xb3, - 0x08, 0xe2, 0x7e, 0x05, 0x5f, 0x21, 0x4a, 0x3e, 0x82, 0x6e, 0x65, 0x35, 0x86, 0x83, 0x08, 0xe2, - 0x15, 0x60, 0x1b, 0x68, 0xa4, 0x4c, 0x32, 0xaa, 0x66, 0x1c, 0x07, 0x10, 0xc4, 0x81, 0x91, 0xf2, - 0xd2, 0x9e, 0x5f, 0xb7, 0x83, 0x60, 0xaf, 0x3b, 0xfa, 0xdb, 0xab, 0x5b, 0xcf, 0x33, 0x43, 0x1f, - 0xce, 0xaa, 0xd6, 0x0b, 0xd7, 0x6e, 0x2c, 0x5c, 0xed, 0x98, 0x3f, 0x3d, 0xe8, 0x35, 0xd2, 0x7e, - 0xb8, 0x56, 0x19, 0x9d, 0xc1, 0xc1, 0x5a, 0x7f, 0x4b, 0x6f, 0x7f, 0x02, 0x3e, 0xb3, 0x80, 0x8e, - 0xbc, 0x61, 0x6b, 0xdc, 0x3b, 0x3d, 0xa8, 0x9a, 0xdb, 0x14, 0x97, 0x92, 0x51, 0x56, 0xcd, 0x08, - 0xdd, 0xf1, 0x2e, 0x33, 0x1a, 0x40, 0xa0, 0xf8, 0xb5, 0xd0, 0x42, 0x16, 0x65, 0x2f, 0xea, 0x73, - 0xdd, 0xdb, 0x8f, 0xab, 0x8c, 0xcb, 0xdb, 0xca, 0x8c, 0x09, 0xb4, 0xd1, 0xd1, 0xae, 0xbb, 0xf8, - 0x3c, 0xfa, 0xcd, 0x83, 0x7e, 0x4c, 0x97, 0x0f, 0xea, 0x23, 0x5f, 0xd7, 0xf1, 0x14, 0x76, 0xeb, - 0xdc, 0xde, 0x52, 0xc3, 0xef, 0x1e, 0xea, 0xde, 0xb9, 0xb5, 0xef, 0xa7, 0x88, 0x67, 0xb0, 0xb7, - 0x4a, 0xee, 0x2d, 0x55, 0xfc, 0xe1, 0xc1, 0x9e, 0x2d, 0xf5, 0x3b, 0x43, 0x8d, 0x7e, 0x78, 0x65, - 0xfc, 0x08, 0xdd, 0x3a, 0x3b, 0x9b, 0x7f, 0x63, 0x4f, 0xf1, 0xd9, 0x7e, 0xc8, 0x28, 0x63, 0xc2, - 0x08, 0x59, 0x68, 0xbc, 0xb1, 0x13, 0xaf, 0x00, 0xcb, 0x32, 0x9e, 0x71, 0xc7, 0xb6, 0x1c, 0x5b, - 0x03, 0xa3, 0x2f, 0x60, 0xbf, 0x51, 0x7a, 0xd9, 0xa4, 0xe7, 0xd0, 0xd1, 0x16, 0x28, 0xf7, 0x6b, - 0xbf, 0x2a, 0x7b, 0xa5, 0x74, 0xfc, 0xe9, 0x3f, 0x2d, 0xe8, 0x21, 0xc8, 0xd5, 0xb5, 0x98, 0x72, - 0xf2, 0x0d, 0xc0, 0xea, 0xb7, 0x88, 0x1c, 0xdd, 0xd9, 0xcb, 0x95, 0xd3, 0x07, 0x83, 0x4d, 0x94, - 0xbb, 0x7d, 0xf4, 0xc1, 0x4b, 0x8f, 0xbc, 0x5e, 0xff, 0x44, 0x0d, 0x36, 0x6d, 0x78, 0x19, 0xea, - 0xf1, 0x46, 0x6e, 0x53, 0x2c, 0xf7, 0xfb, 0x70, 0x27, 0x56, 0xd3, 0xbb, 0x77, 0x63, 0xad, 0x59, - 0x07, 0x63, 0x7d, 0x09, 0xdb, 0xe5, 0x5e, 0x90, 0xc3, 0xda, 0x0c, 0x6b, 0x4b, 0x3c, 0x78, 0x74, - 0x0f, 0x6f, 0xbc, 0xff, 0x15, 0x04, 0x95, 0x25, 0x49, 0x53, 0xb8, 0x96, 0x45, 0x74, 0x9f, 0x68, - 0x84, 0x38, 0x6f, 0xda, 0x21, 0xba, 0x3f, 0x9a, 0x32, 0xc8, 0xd1, 0x06, 0x66, 0x15, 0xe5, 0xec, - 0xe5, 0x0f, 0x96, 0xcf, 0xe8, 0xe4, 0x78, 0x2a, 0xf3, 0x13, 0xf7, 0xf8, 0x42, 0xaa, 0xd9, 0x89, - 0x7b, 0xeb, 0x05, 0xfe, 0x17, 0x3d, 0x99, 0xc9, 0xf2, 0xbc, 0x98, 0x4c, 0x7c, 0x84, 0x3e, 0xfd, - 0x3f, 0x00, 0x00, 0xff, 0xff, 0x3f, 0xbe, 0x4d, 0xc2, 0xc2, 0x0a, 0x00, 0x00, +func init() { proto.RegisterFile("diff.proto", fileDescriptor_diff_30d5eeb6dfe82880) } + +var fileDescriptor_diff_30d5eeb6dfe82880 = []byte{ + // 901 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0x4d, 0x6f, 0xe3, 0x44, + 0x18, 0x96, 0xf3, 0xe1, 0x3a, 0x6f, 0xdc, 0xb4, 0x9d, 0xa2, 0xae, 0x9b, 0xe5, 0x10, 0x59, 0xfb, + 0x11, 0x84, 0xb6, 0x5d, 0x95, 0x0b, 0x07, 0x4e, 0xdd, 0x0a, 0xd4, 0x55, 0x2b, 0x2a, 0x73, 0x40, + 0x82, 0x83, 0x35, 0xc9, 0x8c, 0x93, 0x11, 0xb6, 0x27, 0xcc, 0x0c, 0x4d, 0xfb, 0x37, 0x00, 0x89, + 0x3f, 0x80, 0xc4, 0x85, 0x7f, 0xc4, 0x1f, 0x41, 0x9c, 0xd0, 0x7c, 0xd8, 0x71, 0x9a, 0xb2, 0x97, + 0x72, 0xc8, 0xcd, 0xef, 0xf3, 0x3c, 0x79, 0xe7, 0x99, 0xf7, 0xc3, 0x0e, 0x00, 0x61, 0x59, 0x76, + 0xb2, 0x10, 0x5c, 0x71, 0xe4, 0xcf, 0x98, 0xc2, 0xf9, 0xfd, 0x30, 0x94, 0x73, 0x2c, 0x28, 0xb1, + 0x68, 0xfc, 0x7b, 0x07, 0x0e, 0xde, 0xf1, 0xa2, 0x60, 0xea, 0x82, 0x65, 0x59, 0x42, 0x7f, 0xfc, + 0x89, 0x4a, 0x85, 0xce, 0x00, 0x04, 0x5d, 0x70, 0xc9, 0x14, 0x17, 0xf7, 0x91, 0x37, 0xf2, 0xc6, + 0xfd, 0x33, 0x74, 0x62, 0x13, 0x9c, 0x24, 0x35, 0x93, 0x34, 0x54, 0xe8, 0x05, 0x0c, 0x72, 0x9a, + 0xa9, 0x74, 0x6a, 0xb2, 0xa5, 0x8c, 0x44, 0xad, 0x91, 0x37, 0xee, 0x25, 0xa1, 0x46, 0xed, 0x11, + 0x97, 0x04, 0xbd, 0x82, 0x3d, 0xc1, 0x66, 0xf3, 0xa6, 0xac, 0x6d, 0x64, 0xbb, 0x06, 0xae, 0x75, + 0x9f, 0x43, 0xc4, 0x66, 0x25, 0x17, 0x34, 0x5d, 0xce, 0x99, 0xa2, 0x72, 0x81, 0xa7, 0x34, 0x9d, + 0xce, 0x71, 0x39, 0xa3, 0x51, 0x67, 0xe4, 0x8d, 0x83, 0xe4, 0xc8, 0xf2, 0xdf, 0xd6, 0xf4, 0x3b, + 0xc3, 0xa2, 0x8f, 0xa0, 0xbb, 0xc0, 0x6a, 0x2e, 0xa3, 0xee, 0xa8, 0x3d, 0x0e, 0x13, 0x1b, 0xa0, + 0x97, 0x30, 0x98, 0xf2, 0x3c, 0xc7, 0x0b, 0x49, 0x53, 0x5d, 0x14, 0x19, 0xf9, 0x26, 0xcb, 0x6e, + 0x85, 0xea, 0xeb, 0x1b, 0x19, 0x2d, 0x33, 0x2e, 0xa6, 0x34, 0xcd, 0x59, 0xc1, 0x94, 0x8c, 0x76, + 0xac, 0xcc, 0xa1, 0x57, 0x06, 0x44, 0xcf, 0xa1, 0x57, 0xe0, 0xbb, 0x34, 0x63, 0x39, 0x95, 0x51, + 0x30, 0xf2, 0xc6, 0xdd, 0x24, 0x28, 0xf0, 0xdd, 0x97, 0x3a, 0xae, 0xc8, 0x9c, 0x95, 0x54, 0x46, + 0xbd, 0x9a, 0xbc, 0xd2, 0x71, 0x45, 0x4e, 0xee, 0x15, 0x95, 0x11, 0xd4, 0xe4, 0xb9, 0x8e, 0x75, + 0x71, 0x34, 0xb9, 0xc0, 0x6a, 0x3a, 0x77, 0x92, 0x81, 0x91, 0xec, 0x16, 0xf8, 0xee, 0x46, 0xa3, + 0x56, 0xf7, 0x02, 0x06, 0x12, 0x67, 0x34, 0x5d, 0x79, 0xe8, 0x1b, 0x59, 0xa8, 0xd1, 0xeb, 0xca, + 0x47, 0x53, 0x65, 0xcd, 0x84, 0x6b, 0x2a, 0x6b, 0xa8, 0xa9, 0xb2, 0x47, 0xee, 0xae, 0xa9, 0xcc, + 0x89, 0xf1, 0xdf, 0x2d, 0x40, 0xcd, 0x31, 0x91, 0x0b, 0x5e, 0x4a, 0xaa, 0x6f, 0x93, 0x09, 0x5e, + 0x68, 0xc7, 0x73, 0x33, 0x26, 0x61, 0x12, 0x68, 0xe0, 0x06, 0xab, 0x39, 0x7a, 0x06, 0x3b, 0x8a, + 0x5b, 0xaa, 0x65, 0x28, 0x5f, 0xf1, 0x8a, 0x30, 0xbf, 0xaa, 0x7b, 0xef, 0xeb, 0xf0, 0x92, 0xa0, + 0x43, 0xe8, 0x2a, 0xae, 0xe1, 0x8e, 0x81, 0x3b, 0x8a, 0x5f, 0x12, 0x74, 0x0c, 0x01, 0xcf, 0x49, + 0x5a, 0x70, 0x42, 0xa3, 0xae, 0xb1, 0xb6, 0xc3, 0x73, 0x72, 0xcd, 0x09, 0xd5, 0x54, 0x49, 0x97, + 0x96, 0xf2, 0x2d, 0x55, 0xd2, 0xa5, 0xa1, 0x8e, 0xc0, 0x9f, 0xb0, 0x12, 0x8b, 0x7b, 0xd7, 0x40, + 0x17, 0xe9, 0xeb, 0x0a, 0xbc, 0x74, 0x25, 0x26, 0x58, 0x61, 0xd3, 0xa1, 0x30, 0x09, 0x05, 0x5e, + 0x9a, 0x0a, 0x5f, 0x60, 0x85, 0xd1, 0x08, 0x42, 0x5a, 0x92, 0x94, 0x67, 0x56, 0x68, 0x1a, 0x15, + 0x24, 0x40, 0x4b, 0xf2, 0x75, 0x66, 0x54, 0xe8, 0x35, 0xec, 0xf1, 0x5b, 0x2a, 0xb2, 0x9c, 0x2f, + 0xd3, 0x02, 0x8b, 0x1f, 0xa8, 0x30, 0x3d, 0x08, 0x92, 0x41, 0x05, 0x5f, 0x1b, 0x14, 0x7d, 0x0c, + 0xbd, 0x6a, 0xc4, 0x88, 0x69, 0x40, 0x90, 0xac, 0x00, 0x5d, 0x40, 0xc5, 0x79, 0x9a, 0x63, 0x31, + 0xa3, 0xa6, 0xf0, 0x41, 0x12, 0x28, 0xce, 0xaf, 0x74, 0xfc, 0xbe, 0x13, 0x04, 0xfb, 0xbd, 0xf8, + 0x4f, 0xaf, 0x2e, 0x3d, 0xcd, 0x15, 0xde, 0x9e, 0x15, 0xad, 0x17, 0xad, 0xd3, 0x58, 0xb4, 0xf8, + 0x0f, 0x0f, 0xfa, 0x0d, 0xbb, 0xdb, 0x3b, 0x22, 0xf1, 0x39, 0x1c, 0xae, 0xd5, 0xd5, 0xcd, 0xf4, + 0xa7, 0xe0, 0x13, 0x0d, 0xc8, 0xc8, 0x1b, 0xb5, 0xc7, 0xfd, 0xb3, 0xc3, 0xaa, 0xa8, 0x4d, 0xb1, + 0x93, 0xc4, 0xa4, 0xea, 0x8d, 0x99, 0x8a, 0xa7, 0xf4, 0x66, 0x08, 0x81, 0xa0, 0xb7, 0x4c, 0x32, + 0x5e, 0xba, 0x5a, 0xd4, 0x71, 0xfc, 0x49, 0xe5, 0xd4, 0x9d, 0xe2, 0x9c, 0x22, 0xe8, 0x98, 0x09, + 0xb6, 0x55, 0x35, 0xcf, 0xf1, 0xcf, 0x1e, 0x0c, 0x12, 0xbc, 0xdc, 0xaa, 0x97, 0x79, 0xfc, 0x12, + 0xf6, 0x6a, 0x4f, 0x1f, 0xf0, 0xfe, 0x8b, 0x67, 0x74, 0x4f, 0x2e, 0xe5, 0xff, 0x6b, 0xfe, 0x15, + 0xec, 0xaf, 0x4c, 0x7d, 0xc0, 0xfd, 0xaf, 0x1e, 0xec, 0xeb, 0x2b, 0x7e, 0xa3, 0xb0, 0x92, 0xdb, + 0x63, 0xff, 0x7b, 0xe8, 0xd5, 0xae, 0xb4, 0xef, 0xc6, 0x1e, 0x9a, 0x67, 0xfd, 0x82, 0xc2, 0x84, + 0x30, 0xc5, 0x78, 0x29, 0xcd, 0x49, 0xdd, 0x64, 0x05, 0x68, 0x96, 0xd0, 0x9c, 0x5a, 0xb6, 0x6d, + 0xd9, 0x1a, 0x88, 0xbf, 0x80, 0x83, 0xc6, 0x95, 0x5d, 0x71, 0x5e, 0x43, 0x57, 0x6a, 0xc0, 0xed, + 0xcf, 0x41, 0x75, 0xdd, 0x95, 0xd2, 0xf2, 0x67, 0x7f, 0xb5, 0xa1, 0x6f, 0x40, 0x2a, 0x6e, 0xd9, + 0x94, 0xa2, 0x6b, 0x80, 0xd5, 0x37, 0x06, 0x1d, 0x3f, 0xd8, 0xbb, 0xd5, 0x44, 0x0f, 0x87, 0x8f, + 0x51, 0xf6, 0xf4, 0xd8, 0xff, 0xe7, 0xb7, 0x71, 0x2b, 0x68, 0xbd, 0xf5, 0xd0, 0xcd, 0xfa, 0x8b, + 0x68, 0xf8, 0xd8, 0x1e, 0xbb, 0x84, 0xcf, 0x1f, 0xe5, 0xfe, 0x3b, 0xa3, 0xfd, 0x06, 0x3c, 0xc8, + 0xd8, 0x9c, 0xdb, 0x87, 0x19, 0xd7, 0xc6, 0xa7, 0x91, 0xf1, 0x02, 0x76, 0xdc, 0x66, 0xa0, 0xa3, + 0x7a, 0x2c, 0xd6, 0xd6, 0x77, 0xf8, 0x6c, 0x03, 0xdf, 0xc8, 0xf2, 0x15, 0x04, 0xd5, 0x88, 0xa2, + 0xa6, 0x7c, 0xcd, 0x51, 0xb4, 0x49, 0x6c, 0x24, 0x7a, 0xdf, 0x1c, 0x96, 0x68, 0xb3, 0x71, 0x2e, + 0xd5, 0xf1, 0x23, 0xcc, 0xc3, 0x5c, 0xe7, 0x6f, 0xbf, 0xd3, 0xaa, 0x1c, 0x4f, 0x4e, 0xa6, 0xbc, + 0x38, 0xb5, 0x8f, 0x6f, 0xb8, 0x98, 0x9d, 0xda, 0xdf, 0xbe, 0x31, 0xff, 0x3f, 0x4f, 0x67, 0xdc, + 0xc5, 0x8b, 0xc9, 0xc4, 0x37, 0xd0, 0x67, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x98, 0xe6, + 0x5d, 0xb6, 0x0a, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/namespace.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/namespace.pb.go index e8a310299..256fa9941 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/namespace.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/namespace.pb.go @@ -35,7 +35,7 @@ func (m *AddNamespaceRequest) Reset() { *m = AddNamespaceRequest{} } func (m *AddNamespaceRequest) String() string { return proto.CompactTextString(m) } func (*AddNamespaceRequest) ProtoMessage() {} func (*AddNamespaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_namespace_43c8213dcd148a76, []int{0} + return fileDescriptor_namespace_486935e822b7e725, []int{0} } func (m *AddNamespaceRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddNamespaceRequest.Unmarshal(m, b) @@ -81,7 +81,7 @@ func (m *RemoveNamespaceRequest) Reset() { *m = RemoveNamespaceRequest{} func (m *RemoveNamespaceRequest) String() string { return proto.CompactTextString(m) } func (*RemoveNamespaceRequest) ProtoMessage() {} func (*RemoveNamespaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_namespace_43c8213dcd148a76, []int{1} + return fileDescriptor_namespace_486935e822b7e725, []int{1} } func (m *RemoveNamespaceRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveNamespaceRequest.Unmarshal(m, b) @@ -128,7 +128,7 @@ func (m *RenameNamespaceRequest) Reset() { *m = RenameNamespaceRequest{} func (m *RenameNamespaceRequest) String() string { return proto.CompactTextString(m) } func (*RenameNamespaceRequest) ProtoMessage() {} func (*RenameNamespaceRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_namespace_43c8213dcd148a76, []int{2} + return fileDescriptor_namespace_486935e822b7e725, []int{2} } func (m *RenameNamespaceRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RenameNamespaceRequest.Unmarshal(m, b) @@ -181,7 +181,7 @@ func (m *NamespaceExistsRequest) Reset() { *m = NamespaceExistsRequest{} func (m *NamespaceExistsRequest) String() string { return proto.CompactTextString(m) } func (*NamespaceExistsRequest) ProtoMessage() {} func (*NamespaceExistsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_namespace_43c8213dcd148a76, []int{3} + return fileDescriptor_namespace_486935e822b7e725, []int{3} } func (m *NamespaceExistsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NamespaceExistsRequest.Unmarshal(m, b) @@ -226,7 +226,7 @@ func (m *NamespaceExistsResponse) Reset() { *m = NamespaceExistsResponse func (m *NamespaceExistsResponse) String() string { return proto.CompactTextString(m) } func (*NamespaceExistsResponse) ProtoMessage() {} func (*NamespaceExistsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_namespace_43c8213dcd148a76, []int{4} + return fileDescriptor_namespace_486935e822b7e725, []int{4} } func (m *NamespaceExistsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NamespaceExistsResponse.Unmarshal(m, b) @@ -263,7 +263,7 @@ func (m *AddNamespaceResponse) Reset() { *m = AddNamespaceResponse{} } func (m *AddNamespaceResponse) String() string { return proto.CompactTextString(m) } func (*AddNamespaceResponse) ProtoMessage() {} func (*AddNamespaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_namespace_43c8213dcd148a76, []int{5} + return fileDescriptor_namespace_486935e822b7e725, []int{5} } func (m *AddNamespaceResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddNamespaceResponse.Unmarshal(m, b) @@ -293,7 +293,7 @@ func (m *RemoveNamespaceResponse) Reset() { *m = RemoveNamespaceResponse func (m *RemoveNamespaceResponse) String() string { return proto.CompactTextString(m) } func (*RemoveNamespaceResponse) ProtoMessage() {} func (*RemoveNamespaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_namespace_43c8213dcd148a76, []int{6} + return fileDescriptor_namespace_486935e822b7e725, []int{6} } func (m *RemoveNamespaceResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveNamespaceResponse.Unmarshal(m, b) @@ -323,7 +323,7 @@ func (m *RenameNamespaceResponse) Reset() { *m = RenameNamespaceResponse func (m *RenameNamespaceResponse) String() string { return proto.CompactTextString(m) } func (*RenameNamespaceResponse) ProtoMessage() {} func (*RenameNamespaceResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_namespace_43c8213dcd148a76, []int{7} + return fileDescriptor_namespace_486935e822b7e725, []int{7} } func (m *RenameNamespaceResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RenameNamespaceResponse.Unmarshal(m, b) @@ -525,30 +525,29 @@ var _NamespaceService_serviceDesc = grpc.ServiceDesc{ Metadata: "namespace.proto", } -func init() { proto.RegisterFile("namespace.proto", fileDescriptor_namespace_43c8213dcd148a76) } - -var fileDescriptor_namespace_43c8213dcd148a76 = []byte{ - // 341 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0xcb, 0x4e, 0x02, 0x31, - 0x14, 0x86, 0xa1, 0x9a, 0x09, 0x1e, 0x89, 0x98, 0x6a, 0x00, 0xd1, 0x78, 0xe9, 0x8a, 0x0d, 0x83, - 0x97, 0x9d, 0x3b, 0x4d, 0x5c, 0x99, 0xb8, 0x18, 0x49, 0x4c, 0xdc, 0x98, 0x02, 0xc7, 0x91, 0x84, - 0xa1, 0x63, 0x5b, 0x89, 0x3e, 0x89, 0xcf, 0xe7, 0x2b, 0xf8, 0x04, 0xa6, 0xed, 0x00, 0x03, 0x94, - 0x8d, 0x61, 0xd7, 0xfe, 0xff, 0xe9, 0x77, 0xe6, 0x5c, 0x06, 0x2a, 0x23, 0x9e, 0xa0, 0x4a, 0x79, - 0x0f, 0xc3, 0x54, 0x0a, 0x2d, 0x68, 0x10, 0x0f, 0x34, 0x1f, 0x7e, 0x35, 0xca, 0xea, 0x8d, 0x4b, - 0xec, 0x3b, 0x95, 0x75, 0x60, 0xef, 0xa6, 0xdf, 0x7f, 0x98, 0xc4, 0x46, 0xf8, 0xfe, 0x81, 0x4a, - 0xd3, 0x33, 0x28, 0x2b, 0x2d, 0x24, 0x8f, 0xf1, 0xc5, 0x70, 0xea, 0xc5, 0xd3, 0x62, 0x73, 0x2b, - 0xda, 0xce, 0x34, 0x13, 0x4e, 0x29, 0x6c, 0x5a, 0x8b, 0x58, 0xcb, 0x9e, 0xaf, 0x83, 0xdf, 0xef, - 0x26, 0x29, 0x15, 0xd9, 0x13, 0x54, 0x23, 0x4c, 0xc4, 0x18, 0xd7, 0x0d, 0x8e, 0x0d, 0xd8, 0x28, - 0xff, 0x04, 0xbf, 0x4a, 0x91, 0x4c, 0xc0, 0xe6, 0x4c, 0x77, 0x80, 0x68, 0x51, 0xdf, 0xb0, 0x0a, - 0xd1, 0x22, 0x5f, 0xc1, 0x34, 0xc5, 0xdd, 0xe7, 0x40, 0x69, 0xb5, 0x96, 0x0a, 0x08, 0xbb, 0x80, - 0xda, 0x12, 0x58, 0xa5, 0x62, 0xa4, 0x90, 0x56, 0x21, 0x40, 0xab, 0x58, 0x66, 0x29, 0xca, 0x6e, - 0xac, 0x0a, 0xfb, 0xf3, 0x33, 0x72, 0xf1, 0xec, 0x00, 0x6a, 0x4b, 0x5d, 0xce, 0x5b, 0x0b, 0x7d, - 0x72, 0xd6, 0xe5, 0x0f, 0x81, 0xdd, 0xa9, 0xfa, 0x88, 0x72, 0x3c, 0xe8, 0x21, 0xbd, 0x87, 0x72, - 0x3e, 0x05, 0x3d, 0x0c, 0xdd, 0xb6, 0x84, 0x9e, 0xe5, 0x68, 0x1c, 0xf9, 0xcd, 0x2c, 0x75, 0x81, - 0x76, 0xa0, 0xb2, 0xf0, 0x5d, 0xf4, 0x78, 0xf2, 0xc4, 0xbf, 0x16, 0x8d, 0x93, 0x95, 0xfe, 0x3c, - 0x75, 0xae, 0xa4, 0x3c, 0xd5, 0xb7, 0x13, 0x79, 0xaa, 0xb7, 0x17, 0x8e, 0xba, 0x30, 0x8e, 0x19, - 0xd5, 0xbf, 0x00, 0x33, 0xea, 0x8a, 0x39, 0xb2, 0xc2, 0xed, 0xf9, 0xb3, 0x89, 0x19, 0xf2, 0x6e, - 0xd8, 0x13, 0x49, 0xdb, 0x1d, 0x5b, 0x42, 0xc6, 0x6d, 0xf7, 0xb2, 0x65, 0xff, 0xbd, 0x76, 0x2c, - 0xb2, 0x7b, 0xda, 0xed, 0x06, 0x56, 0xba, 0xfa, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xf7, 0xce, 0x4c, - 0xf1, 0xb7, 0x03, 0x00, 0x00, +func init() { proto.RegisterFile("namespace.proto", fileDescriptor_namespace_486935e822b7e725) } + +var fileDescriptor_namespace_486935e822b7e725 = []byte{ + // 335 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0xcd, 0x4e, 0xc2, 0x40, + 0x10, 0xc7, 0xc3, 0x6a, 0x1a, 0x1c, 0x89, 0x98, 0xd5, 0x00, 0xa2, 0xf1, 0xa3, 0x27, 0x2e, 0x14, + 0x3f, 0x9e, 0x40, 0x13, 0x6f, 0x46, 0x63, 0xbd, 0x71, 0x21, 0x0b, 0x8c, 0xb5, 0x09, 0x65, 0xeb, + 0xee, 0x4a, 0xf4, 0x49, 0x7c, 0x56, 0x3d, 0x99, 0xdd, 0x6d, 0xa1, 0x94, 0xe5, 0xa2, 0xde, 0x66, + 0xff, 0xff, 0xd9, 0xdf, 0x4e, 0x67, 0xa6, 0x50, 0x9f, 0xb2, 0x04, 0x65, 0xca, 0x46, 0x18, 0xa4, + 0x82, 0x2b, 0x4e, 0xbd, 0x28, 0x56, 0x6c, 0xf2, 0xd1, 0xae, 0xc9, 0x17, 0x26, 0x70, 0x6c, 0x55, + 0xff, 0x0e, 0xf6, 0xae, 0xc7, 0xe3, 0xfb, 0x3c, 0x37, 0xc4, 0xd7, 0x37, 0x94, 0x8a, 0x9e, 0x41, + 0x4d, 0x2a, 0x2e, 0x58, 0x84, 0x03, 0xcd, 0x69, 0x55, 0x4e, 0x2b, 0x9d, 0xad, 0x70, 0x3b, 0xd3, + 0x74, 0x3a, 0xa5, 0xb0, 0x69, 0x2c, 0x62, 0x2c, 0x13, 0xfb, 0x0f, 0xd0, 0x08, 0x31, 0xe1, 0x33, + 0xfc, 0x2f, 0xe0, 0x40, 0x03, 0x75, 0xf4, 0x4b, 0xe0, 0xb3, 0xe0, 0x49, 0x0e, 0xd4, 0x31, 0xdd, + 0x01, 0xa2, 0x78, 0x6b, 0xc3, 0x28, 0x44, 0x71, 0x5d, 0xf1, 0x1c, 0x7d, 0xfb, 0x1e, 0x4b, 0x25, + 0xff, 0x58, 0xf1, 0x05, 0x34, 0x57, 0x80, 0x32, 0xe5, 0x53, 0x89, 0xb4, 0x01, 0x1e, 0x1a, 0xc5, + 0xb0, 0xaa, 0x61, 0x76, 0xf2, 0x1b, 0xb0, 0xbf, 0x3c, 0x03, 0x9b, 0xef, 0x1f, 0x40, 0x73, 0xa5, + 0x9b, 0x45, 0xab, 0xd4, 0x17, 0x6b, 0x5d, 0x7e, 0x11, 0xd8, 0x9d, 0xab, 0x4f, 0x28, 0x66, 0xf1, + 0x08, 0xe9, 0x23, 0xd4, 0x8a, 0x4f, 0xd0, 0xc3, 0xc0, 0x6e, 0x43, 0xe0, 0x18, 0x7e, 0xfb, 0xc8, + 0x6d, 0x66, 0x4f, 0x7b, 0xdf, 0x9f, 0x1d, 0x52, 0xad, 0xd0, 0x3e, 0xd4, 0x4b, 0xd5, 0xd1, 0xe3, + 0xfc, 0xa2, 0x7b, 0x09, 0xda, 0x27, 0x6b, 0x7d, 0x17, 0x7b, 0xe9, 0xf3, 0x8a, 0x6c, 0xd7, 0x3e, + 0x14, 0xd9, 0xce, 0xbe, 0x14, 0xd9, 0xa5, 0x01, 0x2d, 0xd8, 0xee, 0x55, 0x58, 0xb0, 0xd7, 0x4c, + 0x36, 0x63, 0x93, 0x9b, 0xf3, 0xbe, 0xce, 0x9c, 0xb0, 0x61, 0x30, 0xe2, 0x49, 0xcf, 0x86, 0x5d, + 0x2e, 0xa2, 0x9e, 0xbd, 0xdf, 0x35, 0xff, 0x5c, 0x2f, 0xe2, 0xd9, 0x39, 0x1d, 0x0e, 0x3d, 0x23, + 0x5d, 0xfd, 0x04, 0x00, 0x00, 0xff, 0xff, 0x56, 0x5c, 0xab, 0xd2, 0xaf, 0x03, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/notifications.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/notifications.pb.go deleted file mode 100644 index 11dac57d3..000000000 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/notifications.pb.go +++ /dev/null @@ -1,189 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// source: notifications.proto - -package gitalypb // import "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" - -import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" -) - -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package - -type PostReceiveRequest struct { - Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PostReceiveRequest) Reset() { *m = PostReceiveRequest{} } -func (m *PostReceiveRequest) String() string { return proto.CompactTextString(m) } -func (*PostReceiveRequest) ProtoMessage() {} -func (*PostReceiveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_notifications_d4195fd8574bef8b, []int{0} -} -func (m *PostReceiveRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PostReceiveRequest.Unmarshal(m, b) -} -func (m *PostReceiveRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PostReceiveRequest.Marshal(b, m, deterministic) -} -func (dst *PostReceiveRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_PostReceiveRequest.Merge(dst, src) -} -func (m *PostReceiveRequest) XXX_Size() int { - return xxx_messageInfo_PostReceiveRequest.Size(m) -} -func (m *PostReceiveRequest) XXX_DiscardUnknown() { - xxx_messageInfo_PostReceiveRequest.DiscardUnknown(m) -} - -var xxx_messageInfo_PostReceiveRequest proto.InternalMessageInfo - -func (m *PostReceiveRequest) GetRepository() *Repository { - if m != nil { - return m.Repository - } - return nil -} - -type PostReceiveResponse struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PostReceiveResponse) Reset() { *m = PostReceiveResponse{} } -func (m *PostReceiveResponse) String() string { return proto.CompactTextString(m) } -func (*PostReceiveResponse) ProtoMessage() {} -func (*PostReceiveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_notifications_d4195fd8574bef8b, []int{1} -} -func (m *PostReceiveResponse) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PostReceiveResponse.Unmarshal(m, b) -} -func (m *PostReceiveResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PostReceiveResponse.Marshal(b, m, deterministic) -} -func (dst *PostReceiveResponse) XXX_Merge(src proto.Message) { - xxx_messageInfo_PostReceiveResponse.Merge(dst, src) -} -func (m *PostReceiveResponse) XXX_Size() int { - return xxx_messageInfo_PostReceiveResponse.Size(m) -} -func (m *PostReceiveResponse) XXX_DiscardUnknown() { - xxx_messageInfo_PostReceiveResponse.DiscardUnknown(m) -} - -var xxx_messageInfo_PostReceiveResponse proto.InternalMessageInfo - -func init() { - proto.RegisterType((*PostReceiveRequest)(nil), "gitaly.PostReceiveRequest") - proto.RegisterType((*PostReceiveResponse)(nil), "gitaly.PostReceiveResponse") -} - -// Reference imports to suppress errors if they are not otherwise used. -var _ context.Context -var _ grpc.ClientConn - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -const _ = grpc.SupportPackageIsVersion4 - -// NotificationServiceClient is the client API for NotificationService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type NotificationServiceClient interface { - PostReceive(ctx context.Context, in *PostReceiveRequest, opts ...grpc.CallOption) (*PostReceiveResponse, error) -} - -type notificationServiceClient struct { - cc *grpc.ClientConn -} - -func NewNotificationServiceClient(cc *grpc.ClientConn) NotificationServiceClient { - return ¬ificationServiceClient{cc} -} - -func (c *notificationServiceClient) PostReceive(ctx context.Context, in *PostReceiveRequest, opts ...grpc.CallOption) (*PostReceiveResponse, error) { - out := new(PostReceiveResponse) - err := c.cc.Invoke(ctx, "/gitaly.NotificationService/PostReceive", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// NotificationServiceServer is the server API for NotificationService service. -type NotificationServiceServer interface { - PostReceive(context.Context, *PostReceiveRequest) (*PostReceiveResponse, error) -} - -func RegisterNotificationServiceServer(s *grpc.Server, srv NotificationServiceServer) { - s.RegisterService(&_NotificationService_serviceDesc, srv) -} - -func _NotificationService_PostReceive_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PostReceiveRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(NotificationServiceServer).PostReceive(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gitaly.NotificationService/PostReceive", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(NotificationServiceServer).PostReceive(ctx, req.(*PostReceiveRequest)) - } - return interceptor(ctx, in, info, handler) -} - -var _NotificationService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "gitaly.NotificationService", - HandlerType: (*NotificationServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "PostReceive", - Handler: _NotificationService_PostReceive_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "notifications.proto", -} - -func init() { proto.RegisterFile("notifications.proto", fileDescriptor_notifications_d4195fd8574bef8b) } - -var fileDescriptor_notifications_d4195fd8574bef8b = []byte{ - // 209 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0xce, 0xcb, 0x2f, 0xc9, - 0x4c, 0xcb, 0x4c, 0x4e, 0x2c, 0xc9, 0xcc, 0xcf, 0x2b, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, - 0x62, 0x4b, 0xcf, 0x2c, 0x49, 0xcc, 0xa9, 0x94, 0xe2, 0x29, 0xce, 0x48, 0x2c, 0x4a, 0x4d, 0x81, - 0x88, 0x2a, 0x05, 0x70, 0x09, 0x05, 0xe4, 0x17, 0x97, 0x04, 0xa5, 0x26, 0xa7, 0x66, 0x96, 0xa5, - 0x06, 0xa5, 0x16, 0x96, 0xa6, 0x16, 0x97, 0x08, 0x19, 0x71, 0x71, 0x15, 0xa5, 0x16, 0xe4, 0x17, - 0x67, 0x96, 0xe4, 0x17, 0x55, 0x4a, 0x30, 0x2a, 0x30, 0x6a, 0x70, 0x1b, 0x09, 0xe9, 0x41, 0x0c, - 0xd0, 0x0b, 0x82, 0xcb, 0x04, 0x21, 0xa9, 0xb2, 0x62, 0xfb, 0x34, 0x5d, 0x83, 0x89, 0x83, 0x49, - 0x49, 0x94, 0x4b, 0x18, 0xc5, 0xc4, 0xe2, 0x82, 0xfc, 0xbc, 0xe2, 0x54, 0xa3, 0x78, 0x2e, 0x61, - 0x3f, 0x24, 0x57, 0x05, 0xa7, 0x16, 0x95, 0x65, 0x26, 0xa7, 0x0a, 0x79, 0x70, 0x71, 0x23, 0xa9, - 0x16, 0x92, 0x82, 0x59, 0x82, 0xe9, 0x28, 0x29, 0x69, 0xac, 0x72, 0x10, 0xe3, 0x95, 0x18, 0x9c, - 0x0c, 0xa2, 0x40, 0xf2, 0x39, 0x89, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, 0x10, 0xa6, 0x6e, 0x7e, - 0x51, 0xba, 0x3e, 0x44, 0x97, 0x2e, 0xd8, 0xbf, 0xfa, 0xe9, 0xf9, 0x50, 0x7e, 0x41, 0x52, 0x12, - 0x1b, 0x58, 0xc8, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x55, 0x04, 0xb1, 0x1c, 0x2f, 0x01, 0x00, - 0x00, -} diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/objectpool.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/objectpool.pb.go index bc6a03b2f..d28268274 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/objectpool.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/objectpool.pb.go @@ -37,7 +37,7 @@ func (m *CreateObjectPoolRequest) Reset() { *m = CreateObjectPoolRequest func (m *CreateObjectPoolRequest) String() string { return proto.CompactTextString(m) } func (*CreateObjectPoolRequest) ProtoMessage() {} func (*CreateObjectPoolRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_objectpool_52b9473682df345b, []int{0} + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{0} } func (m *CreateObjectPoolRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateObjectPoolRequest.Unmarshal(m, b) @@ -81,7 +81,7 @@ func (m *CreateObjectPoolResponse) Reset() { *m = CreateObjectPoolRespon func (m *CreateObjectPoolResponse) String() string { return proto.CompactTextString(m) } func (*CreateObjectPoolResponse) ProtoMessage() {} func (*CreateObjectPoolResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_objectpool_52b9473682df345b, []int{1} + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{1} } func (m *CreateObjectPoolResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateObjectPoolResponse.Unmarshal(m, b) @@ -114,7 +114,7 @@ func (m *DeleteObjectPoolRequest) Reset() { *m = DeleteObjectPoolRequest func (m *DeleteObjectPoolRequest) String() string { return proto.CompactTextString(m) } func (*DeleteObjectPoolRequest) ProtoMessage() {} func (*DeleteObjectPoolRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_objectpool_52b9473682df345b, []int{2} + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{2} } func (m *DeleteObjectPoolRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteObjectPoolRequest.Unmarshal(m, b) @@ -151,7 +151,7 @@ func (m *DeleteObjectPoolResponse) Reset() { *m = DeleteObjectPoolRespon func (m *DeleteObjectPoolResponse) String() string { return proto.CompactTextString(m) } func (*DeleteObjectPoolResponse) ProtoMessage() {} func (*DeleteObjectPoolResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_objectpool_52b9473682df345b, []int{3} + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{3} } func (m *DeleteObjectPoolResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteObjectPoolResponse.Unmarshal(m, b) @@ -183,7 +183,7 @@ func (m *LinkRepositoryToObjectPoolRequest) Reset() { *m = LinkRepositor func (m *LinkRepositoryToObjectPoolRequest) String() string { return proto.CompactTextString(m) } func (*LinkRepositoryToObjectPoolRequest) ProtoMessage() {} func (*LinkRepositoryToObjectPoolRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_objectpool_52b9473682df345b, []int{4} + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{4} } func (m *LinkRepositoryToObjectPoolRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LinkRepositoryToObjectPoolRequest.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *LinkRepositoryToObjectPoolResponse) Reset() { *m = LinkReposito func (m *LinkRepositoryToObjectPoolResponse) String() string { return proto.CompactTextString(m) } func (*LinkRepositoryToObjectPoolResponse) ProtoMessage() {} func (*LinkRepositoryToObjectPoolResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_objectpool_52b9473682df345b, []int{5} + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{5} } func (m *LinkRepositoryToObjectPoolResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LinkRepositoryToObjectPoolResponse.Unmarshal(m, b) @@ -261,7 +261,7 @@ func (m *UnlinkRepositoryFromObjectPoolRequest) Reset() { *m = UnlinkRep func (m *UnlinkRepositoryFromObjectPoolRequest) String() string { return proto.CompactTextString(m) } func (*UnlinkRepositoryFromObjectPoolRequest) ProtoMessage() {} func (*UnlinkRepositoryFromObjectPoolRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_objectpool_52b9473682df345b, []int{6} + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{6} } func (m *UnlinkRepositoryFromObjectPoolRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnlinkRepositoryFromObjectPoolRequest.Unmarshal(m, b) @@ -307,7 +307,7 @@ func (m *UnlinkRepositoryFromObjectPoolResponse) Reset() { func (m *UnlinkRepositoryFromObjectPoolResponse) String() string { return proto.CompactTextString(m) } func (*UnlinkRepositoryFromObjectPoolResponse) ProtoMessage() {} func (*UnlinkRepositoryFromObjectPoolResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_objectpool_52b9473682df345b, []int{7} + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{7} } func (m *UnlinkRepositoryFromObjectPoolResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UnlinkRepositoryFromObjectPoolResponse.Unmarshal(m, b) @@ -338,7 +338,7 @@ func (m *ReduplicateRepositoryRequest) Reset() { *m = ReduplicateReposit func (m *ReduplicateRepositoryRequest) String() string { return proto.CompactTextString(m) } func (*ReduplicateRepositoryRequest) ProtoMessage() {} func (*ReduplicateRepositoryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_objectpool_52b9473682df345b, []int{8} + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{8} } func (m *ReduplicateRepositoryRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduplicateRepositoryRequest.Unmarshal(m, b) @@ -375,7 +375,7 @@ func (m *ReduplicateRepositoryResponse) Reset() { *m = ReduplicateReposi func (m *ReduplicateRepositoryResponse) String() string { return proto.CompactTextString(m) } func (*ReduplicateRepositoryResponse) ProtoMessage() {} func (*ReduplicateRepositoryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_objectpool_52b9473682df345b, []int{9} + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{9} } func (m *ReduplicateRepositoryResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReduplicateRepositoryResponse.Unmarshal(m, b) @@ -395,6 +395,158 @@ func (m *ReduplicateRepositoryResponse) XXX_DiscardUnknown() { var xxx_messageInfo_ReduplicateRepositoryResponse proto.InternalMessageInfo +type DisconnectGitAlternatesRequest struct { + Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DisconnectGitAlternatesRequest) Reset() { *m = DisconnectGitAlternatesRequest{} } +func (m *DisconnectGitAlternatesRequest) String() string { return proto.CompactTextString(m) } +func (*DisconnectGitAlternatesRequest) ProtoMessage() {} +func (*DisconnectGitAlternatesRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{10} +} +func (m *DisconnectGitAlternatesRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DisconnectGitAlternatesRequest.Unmarshal(m, b) +} +func (m *DisconnectGitAlternatesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DisconnectGitAlternatesRequest.Marshal(b, m, deterministic) +} +func (dst *DisconnectGitAlternatesRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_DisconnectGitAlternatesRequest.Merge(dst, src) +} +func (m *DisconnectGitAlternatesRequest) XXX_Size() int { + return xxx_messageInfo_DisconnectGitAlternatesRequest.Size(m) +} +func (m *DisconnectGitAlternatesRequest) XXX_DiscardUnknown() { + xxx_messageInfo_DisconnectGitAlternatesRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_DisconnectGitAlternatesRequest proto.InternalMessageInfo + +func (m *DisconnectGitAlternatesRequest) GetRepository() *Repository { + if m != nil { + return m.Repository + } + return nil +} + +type DisconnectGitAlternatesResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DisconnectGitAlternatesResponse) Reset() { *m = DisconnectGitAlternatesResponse{} } +func (m *DisconnectGitAlternatesResponse) String() string { return proto.CompactTextString(m) } +func (*DisconnectGitAlternatesResponse) ProtoMessage() {} +func (*DisconnectGitAlternatesResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{11} +} +func (m *DisconnectGitAlternatesResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DisconnectGitAlternatesResponse.Unmarshal(m, b) +} +func (m *DisconnectGitAlternatesResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DisconnectGitAlternatesResponse.Marshal(b, m, deterministic) +} +func (dst *DisconnectGitAlternatesResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_DisconnectGitAlternatesResponse.Merge(dst, src) +} +func (m *DisconnectGitAlternatesResponse) XXX_Size() int { + return xxx_messageInfo_DisconnectGitAlternatesResponse.Size(m) +} +func (m *DisconnectGitAlternatesResponse) XXX_DiscardUnknown() { + xxx_messageInfo_DisconnectGitAlternatesResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_DisconnectGitAlternatesResponse proto.InternalMessageInfo + +type FetchIntoObjectPoolRequest struct { + Origin *Repository `protobuf:"bytes,1,opt,name=origin,proto3" json:"origin,omitempty"` + ObjectPool *ObjectPool `protobuf:"bytes,2,opt,name=object_pool,json=objectPool,proto3" json:"object_pool,omitempty"` + Repack bool `protobuf:"varint,3,opt,name=repack,proto3" json:"repack,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FetchIntoObjectPoolRequest) Reset() { *m = FetchIntoObjectPoolRequest{} } +func (m *FetchIntoObjectPoolRequest) String() string { return proto.CompactTextString(m) } +func (*FetchIntoObjectPoolRequest) ProtoMessage() {} +func (*FetchIntoObjectPoolRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{12} +} +func (m *FetchIntoObjectPoolRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FetchIntoObjectPoolRequest.Unmarshal(m, b) +} +func (m *FetchIntoObjectPoolRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FetchIntoObjectPoolRequest.Marshal(b, m, deterministic) +} +func (dst *FetchIntoObjectPoolRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_FetchIntoObjectPoolRequest.Merge(dst, src) +} +func (m *FetchIntoObjectPoolRequest) XXX_Size() int { + return xxx_messageInfo_FetchIntoObjectPoolRequest.Size(m) +} +func (m *FetchIntoObjectPoolRequest) XXX_DiscardUnknown() { + xxx_messageInfo_FetchIntoObjectPoolRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_FetchIntoObjectPoolRequest proto.InternalMessageInfo + +func (m *FetchIntoObjectPoolRequest) GetOrigin() *Repository { + if m != nil { + return m.Origin + } + return nil +} + +func (m *FetchIntoObjectPoolRequest) GetObjectPool() *ObjectPool { + if m != nil { + return m.ObjectPool + } + return nil +} + +func (m *FetchIntoObjectPoolRequest) GetRepack() bool { + if m != nil { + return m.Repack + } + return false +} + +type FetchIntoObjectPoolResponse struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FetchIntoObjectPoolResponse) Reset() { *m = FetchIntoObjectPoolResponse{} } +func (m *FetchIntoObjectPoolResponse) String() string { return proto.CompactTextString(m) } +func (*FetchIntoObjectPoolResponse) ProtoMessage() {} +func (*FetchIntoObjectPoolResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_objectpool_9f08c40ea75d0855, []int{13} +} +func (m *FetchIntoObjectPoolResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FetchIntoObjectPoolResponse.Unmarshal(m, b) +} +func (m *FetchIntoObjectPoolResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FetchIntoObjectPoolResponse.Marshal(b, m, deterministic) +} +func (dst *FetchIntoObjectPoolResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_FetchIntoObjectPoolResponse.Merge(dst, src) +} +func (m *FetchIntoObjectPoolResponse) XXX_Size() int { + return xxx_messageInfo_FetchIntoObjectPoolResponse.Size(m) +} +func (m *FetchIntoObjectPoolResponse) XXX_DiscardUnknown() { + xxx_messageInfo_FetchIntoObjectPoolResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_FetchIntoObjectPoolResponse proto.InternalMessageInfo + func init() { proto.RegisterType((*CreateObjectPoolRequest)(nil), "gitaly.CreateObjectPoolRequest") proto.RegisterType((*CreateObjectPoolResponse)(nil), "gitaly.CreateObjectPoolResponse") @@ -406,6 +558,10 @@ func init() { proto.RegisterType((*UnlinkRepositoryFromObjectPoolResponse)(nil), "gitaly.UnlinkRepositoryFromObjectPoolResponse") proto.RegisterType((*ReduplicateRepositoryRequest)(nil), "gitaly.ReduplicateRepositoryRequest") proto.RegisterType((*ReduplicateRepositoryResponse)(nil), "gitaly.ReduplicateRepositoryResponse") + proto.RegisterType((*DisconnectGitAlternatesRequest)(nil), "gitaly.DisconnectGitAlternatesRequest") + proto.RegisterType((*DisconnectGitAlternatesResponse)(nil), "gitaly.DisconnectGitAlternatesResponse") + proto.RegisterType((*FetchIntoObjectPoolRequest)(nil), "gitaly.FetchIntoObjectPoolRequest") + proto.RegisterType((*FetchIntoObjectPoolResponse)(nil), "gitaly.FetchIntoObjectPoolResponse") } // Reference imports to suppress errors if they are not otherwise used. @@ -426,6 +582,8 @@ type ObjectPoolServiceClient interface { LinkRepositoryToObjectPool(ctx context.Context, in *LinkRepositoryToObjectPoolRequest, opts ...grpc.CallOption) (*LinkRepositoryToObjectPoolResponse, error) UnlinkRepositoryFromObjectPool(ctx context.Context, in *UnlinkRepositoryFromObjectPoolRequest, opts ...grpc.CallOption) (*UnlinkRepositoryFromObjectPoolResponse, error) ReduplicateRepository(ctx context.Context, in *ReduplicateRepositoryRequest, opts ...grpc.CallOption) (*ReduplicateRepositoryResponse, error) + DisconnectGitAlternates(ctx context.Context, in *DisconnectGitAlternatesRequest, opts ...grpc.CallOption) (*DisconnectGitAlternatesResponse, error) + FetchIntoObjectPool(ctx context.Context, in *FetchIntoObjectPoolRequest, opts ...grpc.CallOption) (*FetchIntoObjectPoolResponse, error) } type objectPoolServiceClient struct { @@ -481,6 +639,24 @@ func (c *objectPoolServiceClient) ReduplicateRepository(ctx context.Context, in return out, nil } +func (c *objectPoolServiceClient) DisconnectGitAlternates(ctx context.Context, in *DisconnectGitAlternatesRequest, opts ...grpc.CallOption) (*DisconnectGitAlternatesResponse, error) { + out := new(DisconnectGitAlternatesResponse) + err := c.cc.Invoke(ctx, "/gitaly.ObjectPoolService/DisconnectGitAlternates", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *objectPoolServiceClient) FetchIntoObjectPool(ctx context.Context, in *FetchIntoObjectPoolRequest, opts ...grpc.CallOption) (*FetchIntoObjectPoolResponse, error) { + out := new(FetchIntoObjectPoolResponse) + err := c.cc.Invoke(ctx, "/gitaly.ObjectPoolService/FetchIntoObjectPool", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ObjectPoolServiceServer is the server API for ObjectPoolService service. type ObjectPoolServiceServer interface { CreateObjectPool(context.Context, *CreateObjectPoolRequest) (*CreateObjectPoolResponse, error) @@ -489,6 +665,8 @@ type ObjectPoolServiceServer interface { LinkRepositoryToObjectPool(context.Context, *LinkRepositoryToObjectPoolRequest) (*LinkRepositoryToObjectPoolResponse, error) UnlinkRepositoryFromObjectPool(context.Context, *UnlinkRepositoryFromObjectPoolRequest) (*UnlinkRepositoryFromObjectPoolResponse, error) ReduplicateRepository(context.Context, *ReduplicateRepositoryRequest) (*ReduplicateRepositoryResponse, error) + DisconnectGitAlternates(context.Context, *DisconnectGitAlternatesRequest) (*DisconnectGitAlternatesResponse, error) + FetchIntoObjectPool(context.Context, *FetchIntoObjectPoolRequest) (*FetchIntoObjectPoolResponse, error) } func RegisterObjectPoolServiceServer(s *grpc.Server, srv ObjectPoolServiceServer) { @@ -585,6 +763,42 @@ func _ObjectPoolService_ReduplicateRepository_Handler(srv interface{}, ctx conte return interceptor(ctx, in, info, handler) } +func _ObjectPoolService_DisconnectGitAlternates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DisconnectGitAlternatesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ObjectPoolServiceServer).DisconnectGitAlternates(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gitaly.ObjectPoolService/DisconnectGitAlternates", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ObjectPoolServiceServer).DisconnectGitAlternates(ctx, req.(*DisconnectGitAlternatesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ObjectPoolService_FetchIntoObjectPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FetchIntoObjectPoolRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ObjectPoolServiceServer).FetchIntoObjectPool(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gitaly.ObjectPoolService/FetchIntoObjectPool", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ObjectPoolServiceServer).FetchIntoObjectPool(ctx, req.(*FetchIntoObjectPoolRequest)) + } + return interceptor(ctx, in, info, handler) +} + var _ObjectPoolService_serviceDesc = grpc.ServiceDesc{ ServiceName: "gitaly.ObjectPoolService", HandlerType: (*ObjectPoolServiceServer)(nil), @@ -609,39 +823,54 @@ var _ObjectPoolService_serviceDesc = grpc.ServiceDesc{ MethodName: "ReduplicateRepository", Handler: _ObjectPoolService_ReduplicateRepository_Handler, }, + { + MethodName: "DisconnectGitAlternates", + Handler: _ObjectPoolService_DisconnectGitAlternates_Handler, + }, + { + MethodName: "FetchIntoObjectPool", + Handler: _ObjectPoolService_FetchIntoObjectPool_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "objectpool.proto", } -func init() { proto.RegisterFile("objectpool.proto", fileDescriptor_objectpool_52b9473682df345b) } - -var fileDescriptor_objectpool_52b9473682df345b = []byte{ - // 415 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x94, 0xcd, 0x4e, 0xfa, 0x40, - 0x14, 0xc5, 0x19, 0xf2, 0x4f, 0xf3, 0xcf, 0xc5, 0x05, 0x4e, 0x62, 0x20, 0x8d, 0x0a, 0x36, 0x60, - 0x90, 0x84, 0x62, 0x60, 0xe7, 0x52, 0x8d, 0x2b, 0x13, 0x4d, 0xfd, 0x4a, 0xd8, 0x98, 0xb6, 0x8c, - 0xb5, 0x5a, 0x7a, 0xeb, 0xb4, 0x98, 0xb0, 0xd4, 0x67, 0x30, 0xd1, 0x47, 0xf0, 0xf9, 0x7c, 0x02, - 0x03, 0xfd, 0x04, 0x2c, 0x54, 0xc3, 0x6e, 0x98, 0x9c, 0x39, 0xe7, 0x77, 0x67, 0x0e, 0x85, 0x22, - 0x6a, 0x0f, 0x4c, 0xf7, 0x1c, 0x44, 0x4b, 0x76, 0x38, 0x7a, 0x48, 0x05, 0xc3, 0xf4, 0x54, 0x6b, - 0x24, 0xae, 0xb9, 0xf7, 0x2a, 0x67, 0x7d, 0x7f, 0x57, 0x7a, 0x25, 0x50, 0x3a, 0xe2, 0x4c, 0xf5, - 0xd8, 0xd9, 0xe4, 0xc0, 0x39, 0xa2, 0xa5, 0xb0, 0xa7, 0x21, 0x73, 0x3d, 0xda, 0x85, 0x82, 0xef, - 0x72, 0x3b, 0xb6, 0x29, 0x93, 0x2a, 0x69, 0x14, 0x3a, 0x54, 0xf6, 0x7d, 0xe4, 0x84, 0x1e, 0x30, - 0x5a, 0xd3, 0x26, 0x08, 0xc8, 0x4d, 0xc3, 0xb4, 0xcb, 0xf9, 0x69, 0xbd, 0xc2, 0x1c, 0x74, 0x4d, - 0x0f, 0xf9, 0x48, 0x09, 0x14, 0x07, 0xc2, 0xd7, 0x7b, 0x23, 0xff, 0x9f, 0x48, 0x22, 0x94, 0xe7, - 0x19, 0x5c, 0x07, 0x6d, 0x97, 0x49, 0xd7, 0x50, 0x3a, 0x66, 0x16, 0x5b, 0x15, 0x5f, 0x32, 0x73, - 0xde, 0x37, 0xc8, 0x7c, 0x23, 0xb0, 0x73, 0x6a, 0xda, 0x8f, 0x31, 0xf2, 0x25, 0xae, 0xe8, 0x7a, - 0x3a, 0x00, 0x3c, 0x72, 0x5d, 0x70, 0x45, 0x09, 0x55, 0x84, 0x5c, 0x03, 0x69, 0x11, 0x55, 0x00, - 0xff, 0x41, 0xa0, 0x7e, 0x65, 0x5b, 0x53, 0xc2, 0x13, 0x8e, 0x83, 0xf9, 0x01, 0xa6, 0x59, 0x48, - 0x16, 0x96, 0xd9, 0xa1, 0xf3, 0xbf, 0xba, 0xf3, 0x06, 0xec, 0x2e, 0x23, 0x0b, 0x86, 0xe8, 0xc1, - 0xa6, 0xc2, 0xfa, 0x43, 0xc7, 0x32, 0x75, 0xd5, 0x63, 0x09, 0x96, 0xbf, 0xa3, 0x47, 0x14, 0x15, - 0xd8, 0x4a, 0xf1, 0xf6, 0xc3, 0x3b, 0x9f, 0xff, 0x60, 0x3d, 0x66, 0xba, 0x60, 0xfc, 0xd9, 0xd4, - 0x19, 0xbd, 0x81, 0xe2, 0x6c, 0x49, 0x69, 0x25, 0x8c, 0x4c, 0xf9, 0x0b, 0x89, 0xd5, 0x74, 0x41, - 0x30, 0x69, 0x6e, 0x6c, 0x3c, 0xdb, 0xc4, 0xd8, 0x38, 0xa5, 0xfb, 0xb1, 0x71, 0x6a, 0x89, 0x73, - 0x74, 0x08, 0x62, 0x7a, 0x5f, 0xe8, 0x5e, 0xe8, 0xb0, 0xb4, 0xe9, 0x62, 0x33, 0x8b, 0x34, 0x8a, - 0x7d, 0x21, 0xb0, 0xbd, 0xf8, 0x99, 0x69, 0x2b, 0x34, 0xcc, 0x54, 0x54, 0x51, 0xce, 0x2a, 0x8f, - 0x18, 0xee, 0x60, 0xe3, 0xc7, 0x37, 0xa6, 0xb5, 0xb8, 0x24, 0xe9, 0xf5, 0x12, 0xeb, 0x4b, 0x54, - 0x61, 0xce, 0xe1, 0x7e, 0x6f, 0xac, 0xb4, 0x54, 0x4d, 0xd6, 0x71, 0xd0, 0xf6, 0x97, 0x2d, 0xe4, - 0x46, 0xdb, 0x3f, 0xdf, 0x9a, 0x7c, 0x64, 0xdb, 0x06, 0x06, 0xbf, 0x1d, 0x4d, 0x13, 0x26, 0x5b, - 0xdd, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x8b, 0xa8, 0x1d, 0x02, 0xa1, 0x05, 0x00, 0x00, +func init() { proto.RegisterFile("objectpool.proto", fileDescriptor_objectpool_9f08c40ea75d0855) } + +var fileDescriptor_objectpool_9f08c40ea75d0855 = []byte{ + // 520 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xc1, 0x6f, 0xd3, 0x30, + 0x14, 0xc6, 0xe5, 0x22, 0x45, 0xd3, 0x1b, 0x87, 0x61, 0x04, 0xad, 0x0c, 0x5b, 0xbb, 0xb0, 0x8d, + 0x32, 0xa9, 0x29, 0xea, 0xfe, 0x02, 0x60, 0x1a, 0x42, 0x42, 0x80, 0xc2, 0xb8, 0x20, 0x21, 0x94, + 0x66, 0x8f, 0x2e, 0x2c, 0xcb, 0x0b, 0x8e, 0x87, 0x34, 0xf8, 0x03, 0xb8, 0x70, 0xe0, 0x82, 0xb8, + 0xf3, 0x67, 0x72, 0x42, 0x6d, 0x9c, 0xa6, 0x4d, 0xeb, 0x24, 0xda, 0x7a, 0x8b, 0xad, 0x4f, 0xdf, + 0xf7, 0xeb, 0xb3, 0x3f, 0x17, 0x36, 0x68, 0xf8, 0x19, 0x7d, 0x15, 0x13, 0x85, 0x4e, 0x2c, 0x49, + 0x11, 0xb7, 0x46, 0x81, 0xf2, 0xc2, 0x4b, 0x71, 0x33, 0x39, 0xf5, 0x24, 0x9e, 0xa4, 0xbb, 0xf6, + 0x37, 0x68, 0x3e, 0x93, 0xe8, 0x29, 0x7c, 0x3d, 0xd1, 0xbf, 0x21, 0x0a, 0x5d, 0xfc, 0x72, 0x81, + 0x89, 0xe2, 0x07, 0xb0, 0x9e, 0x9a, 0x7c, 0x1c, 0xbb, 0xb4, 0x58, 0x87, 0x75, 0xd7, 0x07, 0xdc, + 0x49, 0x6d, 0x9c, 0x19, 0x3d, 0xd0, 0xf4, 0x9b, 0xef, 0x83, 0x45, 0x32, 0x18, 0x05, 0x51, 0xab, + 0x31, 0xaf, 0x77, 0x31, 0xa6, 0x24, 0x50, 0x24, 0x2f, 0x5d, 0xad, 0xb0, 0x05, 0xb4, 0x16, 0xb3, + 0x93, 0x98, 0xa2, 0x04, 0xed, 0x57, 0xd0, 0x3c, 0xc4, 0x10, 0x57, 0xc5, 0x35, 0xce, 0x5a, 0xf4, + 0xd3, 0x59, 0x3f, 0x19, 0x6c, 0xbf, 0x0c, 0xa2, 0xb3, 0x1c, 0xf1, 0x98, 0x56, 0x34, 0x8e, 0x01, + 0x80, 0x9c, 0xba, 0x96, 0x8c, 0x64, 0x46, 0x65, 0xef, 0x80, 0x5d, 0x46, 0xa3, 0xa1, 0x7f, 0x31, + 0xd8, 0x7d, 0x17, 0x85, 0x73, 0xc2, 0x23, 0x49, 0xe7, 0x8b, 0xe0, 0xf3, 0x0c, 0xac, 0x0e, 0x43, + 0xf1, 0xc7, 0x36, 0x6a, 0xcd, 0xb8, 0x0b, 0x7b, 0x55, 0x44, 0x1a, 0xde, 0x85, 0xfb, 0x2e, 0x9e, + 0x5c, 0xc4, 0x61, 0xe0, 0x7b, 0x0a, 0x67, 0x18, 0xae, 0x8e, 0x6c, 0xb7, 0x61, 0xd3, 0xe0, 0xa9, + 0x43, 0x8f, 0x61, 0xeb, 0x30, 0x48, 0x7c, 0x8a, 0x22, 0xf4, 0xd5, 0xf3, 0x40, 0x3d, 0x09, 0x15, + 0xca, 0xc8, 0x53, 0x98, 0x5c, 0x27, 0x76, 0x1b, 0xda, 0x46, 0x57, 0x1d, 0xfc, 0x9b, 0x81, 0x38, + 0x42, 0xe5, 0x9f, 0xbe, 0x88, 0xd4, 0x92, 0x8b, 0x95, 0x57, 0x86, 0x55, 0x55, 0xe6, 0x4a, 0xe7, + 0xc2, 0xef, 0x82, 0x25, 0x31, 0xf6, 0xfc, 0xb3, 0xd6, 0x8d, 0x0e, 0xeb, 0xae, 0xb9, 0x7a, 0x65, + 0x6f, 0xc2, 0xbd, 0xa5, 0x58, 0x29, 0xf6, 0xe0, 0xaf, 0x05, 0xb7, 0xf2, 0xed, 0xb7, 0x28, 0xbf, + 0x06, 0x3e, 0xf2, 0x0f, 0xb0, 0x51, 0x2c, 0x2d, 0x6f, 0x67, 0x00, 0x86, 0xa7, 0x44, 0x74, 0xcc, + 0x02, 0x3d, 0x23, 0xeb, 0xdf, 0x9f, 0x6e, 0x63, 0x8d, 0x8d, 0xed, 0x8b, 0x3d, 0xcd, 0xed, 0x0d, + 0x2f, 0x42, 0x6e, 0x6f, 0xac, 0x78, 0x66, 0xff, 0x1d, 0x84, 0xb9, 0x5b, 0xfc, 0x51, 0xe6, 0x53, + 0xf9, 0x1a, 0x88, 0xfd, 0x3a, 0xd2, 0x42, 0xf8, 0x0f, 0x06, 0x5b, 0xe5, 0x05, 0xe1, 0xbd, 0xcc, + 0xb6, 0x56, 0xb5, 0x85, 0x53, 0x57, 0x5e, 0x20, 0x09, 0xe1, 0xce, 0xd2, 0xae, 0xf0, 0x9d, 0xfc, + 0xee, 0x99, 0xeb, 0x29, 0x76, 0x2b, 0x54, 0x85, 0x34, 0x09, 0x4d, 0x43, 0x45, 0xf8, 0xde, 0xf4, + 0xe4, 0x4a, 0x9b, 0x29, 0x1e, 0x56, 0xea, 0x0a, 0x99, 0x9f, 0xe0, 0xf6, 0x92, 0xbb, 0xcd, 0xed, + 0xcc, 0xc7, 0xdc, 0x47, 0xf1, 0xa0, 0x54, 0x33, 0x9f, 0xf3, 0xf4, 0xf1, 0xfb, 0xb1, 0x3a, 0xf4, + 0x86, 0x8e, 0x4f, 0xe7, 0xfd, 0xf4, 0xb3, 0x47, 0x72, 0xd4, 0x4f, 0x3d, 0x7a, 0x93, 0x7f, 0xd9, + 0xfe, 0x88, 0xf4, 0x3a, 0x1e, 0x0e, 0xad, 0xc9, 0xd6, 0xc1, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x31, 0x3d, 0xeb, 0x4f, 0xa2, 0x07, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/operations.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/operations.pb.go index be561decc..e5cfe0f68 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/operations.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/operations.pb.go @@ -55,7 +55,7 @@ func (x UserCommitFilesActionHeader_ActionType) String() string { return proto.EnumName(UserCommitFilesActionHeader_ActionType_name, int32(x)) } func (UserCommitFilesActionHeader_ActionType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{21, 0} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{21, 0} } type UserCreateBranchRequest struct { @@ -72,7 +72,7 @@ func (m *UserCreateBranchRequest) Reset() { *m = UserCreateBranchRequest func (m *UserCreateBranchRequest) String() string { return proto.CompactTextString(m) } func (*UserCreateBranchRequest) ProtoMessage() {} func (*UserCreateBranchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{0} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{0} } func (m *UserCreateBranchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCreateBranchRequest.Unmarshal(m, b) @@ -134,7 +134,7 @@ func (m *UserCreateBranchResponse) Reset() { *m = UserCreateBranchRespon func (m *UserCreateBranchResponse) String() string { return proto.CompactTextString(m) } func (*UserCreateBranchResponse) ProtoMessage() {} func (*UserCreateBranchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{1} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{1} } func (m *UserCreateBranchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCreateBranchResponse.Unmarshal(m, b) @@ -183,7 +183,7 @@ func (m *UserUpdateBranchRequest) Reset() { *m = UserUpdateBranchRequest func (m *UserUpdateBranchRequest) String() string { return proto.CompactTextString(m) } func (*UserUpdateBranchRequest) ProtoMessage() {} func (*UserUpdateBranchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{2} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{2} } func (m *UserUpdateBranchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserUpdateBranchRequest.Unmarshal(m, b) @@ -249,7 +249,7 @@ func (m *UserUpdateBranchResponse) Reset() { *m = UserUpdateBranchRespon func (m *UserUpdateBranchResponse) String() string { return proto.CompactTextString(m) } func (*UserUpdateBranchResponse) ProtoMessage() {} func (*UserUpdateBranchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{3} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{3} } func (m *UserUpdateBranchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserUpdateBranchResponse.Unmarshal(m, b) @@ -289,7 +289,7 @@ func (m *UserDeleteBranchRequest) Reset() { *m = UserDeleteBranchRequest func (m *UserDeleteBranchRequest) String() string { return proto.CompactTextString(m) } func (*UserDeleteBranchRequest) ProtoMessage() {} func (*UserDeleteBranchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{4} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{4} } func (m *UserDeleteBranchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDeleteBranchRequest.Unmarshal(m, b) @@ -341,7 +341,7 @@ func (m *UserDeleteBranchResponse) Reset() { *m = UserDeleteBranchRespon func (m *UserDeleteBranchResponse) String() string { return proto.CompactTextString(m) } func (*UserDeleteBranchResponse) ProtoMessage() {} func (*UserDeleteBranchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{5} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{5} } func (m *UserDeleteBranchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDeleteBranchResponse.Unmarshal(m, b) @@ -381,7 +381,7 @@ func (m *UserDeleteTagRequest) Reset() { *m = UserDeleteTagRequest{} } func (m *UserDeleteTagRequest) String() string { return proto.CompactTextString(m) } func (*UserDeleteTagRequest) ProtoMessage() {} func (*UserDeleteTagRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{6} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{6} } func (m *UserDeleteTagRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDeleteTagRequest.Unmarshal(m, b) @@ -433,7 +433,7 @@ func (m *UserDeleteTagResponse) Reset() { *m = UserDeleteTagResponse{} } func (m *UserDeleteTagResponse) String() string { return proto.CompactTextString(m) } func (*UserDeleteTagResponse) ProtoMessage() {} func (*UserDeleteTagResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{7} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{7} } func (m *UserDeleteTagResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserDeleteTagResponse.Unmarshal(m, b) @@ -475,7 +475,7 @@ func (m *UserCreateTagRequest) Reset() { *m = UserCreateTagRequest{} } func (m *UserCreateTagRequest) String() string { return proto.CompactTextString(m) } func (*UserCreateTagRequest) ProtoMessage() {} func (*UserCreateTagRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{8} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{8} } func (m *UserCreateTagRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCreateTagRequest.Unmarshal(m, b) @@ -543,7 +543,7 @@ func (m *UserCreateTagResponse) Reset() { *m = UserCreateTagResponse{} } func (m *UserCreateTagResponse) String() string { return proto.CompactTextString(m) } func (*UserCreateTagResponse) ProtoMessage() {} func (*UserCreateTagResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{9} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{9} } func (m *UserCreateTagResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCreateTagResponse.Unmarshal(m, b) @@ -603,7 +603,7 @@ func (m *UserMergeBranchRequest) Reset() { *m = UserMergeBranchRequest{} func (m *UserMergeBranchRequest) String() string { return proto.CompactTextString(m) } func (*UserMergeBranchRequest) ProtoMessage() {} func (*UserMergeBranchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{10} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{10} } func (m *UserMergeBranchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserMergeBranchRequest.Unmarshal(m, b) @@ -682,7 +682,7 @@ func (m *UserMergeBranchResponse) Reset() { *m = UserMergeBranchResponse func (m *UserMergeBranchResponse) String() string { return proto.CompactTextString(m) } func (*UserMergeBranchResponse) ProtoMessage() {} func (*UserMergeBranchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{11} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{11} } func (m *UserMergeBranchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserMergeBranchResponse.Unmarshal(m, b) @@ -745,7 +745,7 @@ func (m *UserMergeToRefRequest) Reset() { *m = UserMergeToRefRequest{} } func (m *UserMergeToRefRequest) String() string { return proto.CompactTextString(m) } func (*UserMergeToRefRequest) ProtoMessage() {} func (*UserMergeToRefRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{12} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{12} } func (m *UserMergeToRefRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserMergeToRefRequest.Unmarshal(m, b) @@ -819,7 +819,7 @@ func (m *UserMergeToRefResponse) Reset() { *m = UserMergeToRefResponse{} func (m *UserMergeToRefResponse) String() string { return proto.CompactTextString(m) } func (*UserMergeToRefResponse) ProtoMessage() {} func (*UserMergeToRefResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{13} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{13} } func (m *UserMergeToRefResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserMergeToRefResponse.Unmarshal(m, b) @@ -869,7 +869,7 @@ func (m *OperationBranchUpdate) Reset() { *m = OperationBranchUpdate{} } func (m *OperationBranchUpdate) String() string { return proto.CompactTextString(m) } func (*OperationBranchUpdate) ProtoMessage() {} func (*OperationBranchUpdate) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{14} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{14} } func (m *OperationBranchUpdate) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperationBranchUpdate.Unmarshal(m, b) @@ -924,7 +924,7 @@ func (m *UserFFBranchRequest) Reset() { *m = UserFFBranchRequest{} } func (m *UserFFBranchRequest) String() string { return proto.CompactTextString(m) } func (*UserFFBranchRequest) ProtoMessage() {} func (*UserFFBranchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{15} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{15} } func (m *UserFFBranchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserFFBranchRequest.Unmarshal(m, b) @@ -984,7 +984,7 @@ func (m *UserFFBranchResponse) Reset() { *m = UserFFBranchResponse{} } func (m *UserFFBranchResponse) String() string { return proto.CompactTextString(m) } func (*UserFFBranchResponse) ProtoMessage() {} func (*UserFFBranchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{16} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{16} } func (m *UserFFBranchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserFFBranchResponse.Unmarshal(m, b) @@ -1035,7 +1035,7 @@ func (m *UserCherryPickRequest) Reset() { *m = UserCherryPickRequest{} } func (m *UserCherryPickRequest) String() string { return proto.CompactTextString(m) } func (*UserCherryPickRequest) ProtoMessage() {} func (*UserCherryPickRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{17} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{17} } func (m *UserCherryPickRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCherryPickRequest.Unmarshal(m, b) @@ -1118,7 +1118,7 @@ func (m *UserCherryPickResponse) Reset() { *m = UserCherryPickResponse{} func (m *UserCherryPickResponse) String() string { return proto.CompactTextString(m) } func (*UserCherryPickResponse) ProtoMessage() {} func (*UserCherryPickResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{18} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{18} } func (m *UserCherryPickResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCherryPickResponse.Unmarshal(m, b) @@ -1183,7 +1183,7 @@ func (m *UserRevertRequest) Reset() { *m = UserRevertRequest{} } func (m *UserRevertRequest) String() string { return proto.CompactTextString(m) } func (*UserRevertRequest) ProtoMessage() {} func (*UserRevertRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{19} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{19} } func (m *UserRevertRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserRevertRequest.Unmarshal(m, b) @@ -1266,7 +1266,7 @@ func (m *UserRevertResponse) Reset() { *m = UserRevertResponse{} } func (m *UserRevertResponse) String() string { return proto.CompactTextString(m) } func (*UserRevertResponse) ProtoMessage() {} func (*UserRevertResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{20} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{20} } func (m *UserRevertResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserRevertResponse.Unmarshal(m, b) @@ -1333,7 +1333,7 @@ func (m *UserCommitFilesActionHeader) Reset() { *m = UserCommitFilesActi func (m *UserCommitFilesActionHeader) String() string { return proto.CompactTextString(m) } func (*UserCommitFilesActionHeader) ProtoMessage() {} func (*UserCommitFilesActionHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{21} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{21} } func (m *UserCommitFilesActionHeader) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCommitFilesActionHeader.Unmarshal(m, b) @@ -1409,7 +1409,7 @@ func (m *UserCommitFilesAction) Reset() { *m = UserCommitFilesAction{} } func (m *UserCommitFilesAction) String() string { return proto.CompactTextString(m) } func (*UserCommitFilesAction) ProtoMessage() {} func (*UserCommitFilesAction) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{22} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{22} } func (m *UserCommitFilesAction) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCommitFilesAction.Unmarshal(m, b) @@ -1555,7 +1555,7 @@ func (m *UserCommitFilesRequestHeader) Reset() { *m = UserCommitFilesReq func (m *UserCommitFilesRequestHeader) String() string { return proto.CompactTextString(m) } func (*UserCommitFilesRequestHeader) ProtoMessage() {} func (*UserCommitFilesRequestHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{23} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{23} } func (m *UserCommitFilesRequestHeader) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCommitFilesRequestHeader.Unmarshal(m, b) @@ -1652,7 +1652,7 @@ func (m *UserCommitFilesRequest) Reset() { *m = UserCommitFilesRequest{} func (m *UserCommitFilesRequest) String() string { return proto.CompactTextString(m) } func (*UserCommitFilesRequest) ProtoMessage() {} func (*UserCommitFilesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{24} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{24} } func (m *UserCommitFilesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCommitFilesRequest.Unmarshal(m, b) @@ -1796,7 +1796,7 @@ func (m *UserCommitFilesResponse) Reset() { *m = UserCommitFilesResponse func (m *UserCommitFilesResponse) String() string { return proto.CompactTextString(m) } func (*UserCommitFilesResponse) ProtoMessage() {} func (*UserCommitFilesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{25} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{25} } func (m *UserCommitFilesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserCommitFilesResponse.Unmarshal(m, b) @@ -1837,6 +1837,9 @@ func (m *UserCommitFilesResponse) GetPreReceiveError() string { return "" } +// DEPRECATED: https://gitlab.com/gitlab-org/gitaly/issues/1628 +// +// Deprecated: Do not use. type UserRebaseRequest struct { Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` @@ -1854,7 +1857,7 @@ func (m *UserRebaseRequest) Reset() { *m = UserRebaseRequest{} } func (m *UserRebaseRequest) String() string { return proto.CompactTextString(m) } func (*UserRebaseRequest) ProtoMessage() {} func (*UserRebaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{26} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{26} } func (m *UserRebaseRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserRebaseRequest.Unmarshal(m, b) @@ -1923,6 +1926,9 @@ func (m *UserRebaseRequest) GetRemoteBranch() []byte { return nil } +// DEPRECATED: https://gitlab.com/gitlab-org/gitaly/issues/1628 +// +// Deprecated: Do not use. type UserRebaseResponse struct { RebaseSha string `protobuf:"bytes,1,opt,name=rebase_sha,json=rebaseSha,proto3" json:"rebase_sha,omitempty"` PreReceiveError string `protobuf:"bytes,2,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"` @@ -1936,7 +1942,7 @@ func (m *UserRebaseResponse) Reset() { *m = UserRebaseResponse{} } func (m *UserRebaseResponse) String() string { return proto.CompactTextString(m) } func (*UserRebaseResponse) ProtoMessage() {} func (*UserRebaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{27} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{27} } func (m *UserRebaseResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserRebaseResponse.Unmarshal(m, b) @@ -1977,6 +1983,396 @@ func (m *UserRebaseResponse) GetGitError() string { return "" } +type UserRebaseConfirmableRequest struct { + // Types that are valid to be assigned to UserRebaseConfirmableRequestPayload: + // *UserRebaseConfirmableRequest_Header_ + // *UserRebaseConfirmableRequest_Apply + UserRebaseConfirmableRequestPayload isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload `protobuf_oneof:"user_rebase_confirmable_request_payload"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserRebaseConfirmableRequest) Reset() { *m = UserRebaseConfirmableRequest{} } +func (m *UserRebaseConfirmableRequest) String() string { return proto.CompactTextString(m) } +func (*UserRebaseConfirmableRequest) ProtoMessage() {} +func (*UserRebaseConfirmableRequest) Descriptor() ([]byte, []int) { + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{28} +} +func (m *UserRebaseConfirmableRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserRebaseConfirmableRequest.Unmarshal(m, b) +} +func (m *UserRebaseConfirmableRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserRebaseConfirmableRequest.Marshal(b, m, deterministic) +} +func (dst *UserRebaseConfirmableRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserRebaseConfirmableRequest.Merge(dst, src) +} +func (m *UserRebaseConfirmableRequest) XXX_Size() int { + return xxx_messageInfo_UserRebaseConfirmableRequest.Size(m) +} +func (m *UserRebaseConfirmableRequest) XXX_DiscardUnknown() { + xxx_messageInfo_UserRebaseConfirmableRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_UserRebaseConfirmableRequest proto.InternalMessageInfo + +type isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload interface { + isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload() +} + +type UserRebaseConfirmableRequest_Header_ struct { + Header *UserRebaseConfirmableRequest_Header `protobuf:"bytes,1,opt,name=header,proto3,oneof"` +} + +type UserRebaseConfirmableRequest_Apply struct { + Apply bool `protobuf:"varint,2,opt,name=apply,proto3,oneof"` +} + +func (*UserRebaseConfirmableRequest_Header_) isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload() { +} + +func (*UserRebaseConfirmableRequest_Apply) isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload() { +} + +func (m *UserRebaseConfirmableRequest) GetUserRebaseConfirmableRequestPayload() isUserRebaseConfirmableRequest_UserRebaseConfirmableRequestPayload { + if m != nil { + return m.UserRebaseConfirmableRequestPayload + } + return nil +} + +func (m *UserRebaseConfirmableRequest) GetHeader() *UserRebaseConfirmableRequest_Header { + if x, ok := m.GetUserRebaseConfirmableRequestPayload().(*UserRebaseConfirmableRequest_Header_); ok { + return x.Header + } + return nil +} + +func (m *UserRebaseConfirmableRequest) GetApply() bool { + if x, ok := m.GetUserRebaseConfirmableRequestPayload().(*UserRebaseConfirmableRequest_Apply); ok { + return x.Apply + } + return false +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*UserRebaseConfirmableRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _UserRebaseConfirmableRequest_OneofMarshaler, _UserRebaseConfirmableRequest_OneofUnmarshaler, _UserRebaseConfirmableRequest_OneofSizer, []interface{}{ + (*UserRebaseConfirmableRequest_Header_)(nil), + (*UserRebaseConfirmableRequest_Apply)(nil), + } +} + +func _UserRebaseConfirmableRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*UserRebaseConfirmableRequest) + // user_rebase_confirmable_request_payload + switch x := m.UserRebaseConfirmableRequestPayload.(type) { + case *UserRebaseConfirmableRequest_Header_: + b.EncodeVarint(1<<3 | proto.WireBytes) + if err := b.EncodeMessage(x.Header); err != nil { + return err + } + case *UserRebaseConfirmableRequest_Apply: + t := uint64(0) + if x.Apply { + t = 1 + } + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(t) + case nil: + default: + return fmt.Errorf("UserRebaseConfirmableRequest.UserRebaseConfirmableRequestPayload has unexpected type %T", x) + } + return nil +} + +func _UserRebaseConfirmableRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*UserRebaseConfirmableRequest) + switch tag { + case 1: // user_rebase_confirmable_request_payload.header + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + msg := new(UserRebaseConfirmableRequest_Header) + err := b.DecodeMessage(msg) + m.UserRebaseConfirmableRequestPayload = &UserRebaseConfirmableRequest_Header_{msg} + return true, err + case 2: // user_rebase_confirmable_request_payload.apply + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.UserRebaseConfirmableRequestPayload = &UserRebaseConfirmableRequest_Apply{x != 0} + return true, err + default: + return false, nil + } +} + +func _UserRebaseConfirmableRequest_OneofSizer(msg proto.Message) (n int) { + m := msg.(*UserRebaseConfirmableRequest) + // user_rebase_confirmable_request_payload + switch x := m.UserRebaseConfirmableRequestPayload.(type) { + case *UserRebaseConfirmableRequest_Header_: + s := proto.Size(x.Header) + n += 1 // tag and wire + n += proto.SizeVarint(uint64(s)) + n += s + case *UserRebaseConfirmableRequest_Apply: + n += 1 // tag and wire + n += 1 + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + +type UserRebaseConfirmableRequest_Header struct { + Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` + User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` + RebaseId string `protobuf:"bytes,3,opt,name=rebase_id,json=rebaseId,proto3" json:"rebase_id,omitempty"` + Branch []byte `protobuf:"bytes,4,opt,name=branch,proto3" json:"branch,omitempty"` + BranchSha string `protobuf:"bytes,5,opt,name=branch_sha,json=branchSha,proto3" json:"branch_sha,omitempty"` + RemoteRepository *Repository `protobuf:"bytes,6,opt,name=remote_repository,json=remoteRepository,proto3" json:"remote_repository,omitempty"` + RemoteBranch []byte `protobuf:"bytes,7,opt,name=remote_branch,json=remoteBranch,proto3" json:"remote_branch,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserRebaseConfirmableRequest_Header) Reset() { *m = UserRebaseConfirmableRequest_Header{} } +func (m *UserRebaseConfirmableRequest_Header) String() string { return proto.CompactTextString(m) } +func (*UserRebaseConfirmableRequest_Header) ProtoMessage() {} +func (*UserRebaseConfirmableRequest_Header) Descriptor() ([]byte, []int) { + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{28, 0} +} +func (m *UserRebaseConfirmableRequest_Header) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserRebaseConfirmableRequest_Header.Unmarshal(m, b) +} +func (m *UserRebaseConfirmableRequest_Header) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserRebaseConfirmableRequest_Header.Marshal(b, m, deterministic) +} +func (dst *UserRebaseConfirmableRequest_Header) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserRebaseConfirmableRequest_Header.Merge(dst, src) +} +func (m *UserRebaseConfirmableRequest_Header) XXX_Size() int { + return xxx_messageInfo_UserRebaseConfirmableRequest_Header.Size(m) +} +func (m *UserRebaseConfirmableRequest_Header) XXX_DiscardUnknown() { + xxx_messageInfo_UserRebaseConfirmableRequest_Header.DiscardUnknown(m) +} + +var xxx_messageInfo_UserRebaseConfirmableRequest_Header proto.InternalMessageInfo + +func (m *UserRebaseConfirmableRequest_Header) GetRepository() *Repository { + if m != nil { + return m.Repository + } + return nil +} + +func (m *UserRebaseConfirmableRequest_Header) GetUser() *User { + if m != nil { + return m.User + } + return nil +} + +func (m *UserRebaseConfirmableRequest_Header) GetRebaseId() string { + if m != nil { + return m.RebaseId + } + return "" +} + +func (m *UserRebaseConfirmableRequest_Header) GetBranch() []byte { + if m != nil { + return m.Branch + } + return nil +} + +func (m *UserRebaseConfirmableRequest_Header) GetBranchSha() string { + if m != nil { + return m.BranchSha + } + return "" +} + +func (m *UserRebaseConfirmableRequest_Header) GetRemoteRepository() *Repository { + if m != nil { + return m.RemoteRepository + } + return nil +} + +func (m *UserRebaseConfirmableRequest_Header) GetRemoteBranch() []byte { + if m != nil { + return m.RemoteBranch + } + return nil +} + +type UserRebaseConfirmableResponse struct { + // Types that are valid to be assigned to UserRebaseConfirmableResponsePayload: + // *UserRebaseConfirmableResponse_RebaseSha + // *UserRebaseConfirmableResponse_RebaseApplied + UserRebaseConfirmableResponsePayload isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload `protobuf_oneof:"user_rebase_confirmable_response_payload"` + PreReceiveError string `protobuf:"bytes,3,opt,name=pre_receive_error,json=preReceiveError,proto3" json:"pre_receive_error,omitempty"` + GitError string `protobuf:"bytes,4,opt,name=git_error,json=gitError,proto3" json:"git_error,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserRebaseConfirmableResponse) Reset() { *m = UserRebaseConfirmableResponse{} } +func (m *UserRebaseConfirmableResponse) String() string { return proto.CompactTextString(m) } +func (*UserRebaseConfirmableResponse) ProtoMessage() {} +func (*UserRebaseConfirmableResponse) Descriptor() ([]byte, []int) { + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{29} +} +func (m *UserRebaseConfirmableResponse) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserRebaseConfirmableResponse.Unmarshal(m, b) +} +func (m *UserRebaseConfirmableResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserRebaseConfirmableResponse.Marshal(b, m, deterministic) +} +func (dst *UserRebaseConfirmableResponse) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserRebaseConfirmableResponse.Merge(dst, src) +} +func (m *UserRebaseConfirmableResponse) XXX_Size() int { + return xxx_messageInfo_UserRebaseConfirmableResponse.Size(m) +} +func (m *UserRebaseConfirmableResponse) XXX_DiscardUnknown() { + xxx_messageInfo_UserRebaseConfirmableResponse.DiscardUnknown(m) +} + +var xxx_messageInfo_UserRebaseConfirmableResponse proto.InternalMessageInfo + +type isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload interface { + isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload() +} + +type UserRebaseConfirmableResponse_RebaseSha struct { + RebaseSha string `protobuf:"bytes,1,opt,name=rebase_sha,json=rebaseSha,proto3,oneof"` +} + +type UserRebaseConfirmableResponse_RebaseApplied struct { + RebaseApplied bool `protobuf:"varint,2,opt,name=rebase_applied,json=rebaseApplied,proto3,oneof"` +} + +func (*UserRebaseConfirmableResponse_RebaseSha) isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload() { +} + +func (*UserRebaseConfirmableResponse_RebaseApplied) isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload() { +} + +func (m *UserRebaseConfirmableResponse) GetUserRebaseConfirmableResponsePayload() isUserRebaseConfirmableResponse_UserRebaseConfirmableResponsePayload { + if m != nil { + return m.UserRebaseConfirmableResponsePayload + } + return nil +} + +func (m *UserRebaseConfirmableResponse) GetRebaseSha() string { + if x, ok := m.GetUserRebaseConfirmableResponsePayload().(*UserRebaseConfirmableResponse_RebaseSha); ok { + return x.RebaseSha + } + return "" +} + +func (m *UserRebaseConfirmableResponse) GetRebaseApplied() bool { + if x, ok := m.GetUserRebaseConfirmableResponsePayload().(*UserRebaseConfirmableResponse_RebaseApplied); ok { + return x.RebaseApplied + } + return false +} + +func (m *UserRebaseConfirmableResponse) GetPreReceiveError() string { + if m != nil { + return m.PreReceiveError + } + return "" +} + +func (m *UserRebaseConfirmableResponse) GetGitError() string { + if m != nil { + return m.GitError + } + return "" +} + +// XXX_OneofFuncs is for the internal use of the proto package. +func (*UserRebaseConfirmableResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { + return _UserRebaseConfirmableResponse_OneofMarshaler, _UserRebaseConfirmableResponse_OneofUnmarshaler, _UserRebaseConfirmableResponse_OneofSizer, []interface{}{ + (*UserRebaseConfirmableResponse_RebaseSha)(nil), + (*UserRebaseConfirmableResponse_RebaseApplied)(nil), + } +} + +func _UserRebaseConfirmableResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { + m := msg.(*UserRebaseConfirmableResponse) + // user_rebase_confirmable_response_payload + switch x := m.UserRebaseConfirmableResponsePayload.(type) { + case *UserRebaseConfirmableResponse_RebaseSha: + b.EncodeVarint(1<<3 | proto.WireBytes) + b.EncodeStringBytes(x.RebaseSha) + case *UserRebaseConfirmableResponse_RebaseApplied: + t := uint64(0) + if x.RebaseApplied { + t = 1 + } + b.EncodeVarint(2<<3 | proto.WireVarint) + b.EncodeVarint(t) + case nil: + default: + return fmt.Errorf("UserRebaseConfirmableResponse.UserRebaseConfirmableResponsePayload has unexpected type %T", x) + } + return nil +} + +func _UserRebaseConfirmableResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { + m := msg.(*UserRebaseConfirmableResponse) + switch tag { + case 1: // user_rebase_confirmable_response_payload.rebase_sha + if wire != proto.WireBytes { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeStringBytes() + m.UserRebaseConfirmableResponsePayload = &UserRebaseConfirmableResponse_RebaseSha{x} + return true, err + case 2: // user_rebase_confirmable_response_payload.rebase_applied + if wire != proto.WireVarint { + return true, proto.ErrInternalBadWireType + } + x, err := b.DecodeVarint() + m.UserRebaseConfirmableResponsePayload = &UserRebaseConfirmableResponse_RebaseApplied{x != 0} + return true, err + default: + return false, nil + } +} + +func _UserRebaseConfirmableResponse_OneofSizer(msg proto.Message) (n int) { + m := msg.(*UserRebaseConfirmableResponse) + // user_rebase_confirmable_response_payload + switch x := m.UserRebaseConfirmableResponsePayload.(type) { + case *UserRebaseConfirmableResponse_RebaseSha: + n += 1 // tag and wire + n += proto.SizeVarint(uint64(len(x.RebaseSha))) + n += len(x.RebaseSha) + case *UserRebaseConfirmableResponse_RebaseApplied: + n += 1 // tag and wire + n += 1 + case nil: + default: + panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) + } + return n +} + type UserSquashRequest struct { Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` @@ -1995,7 +2391,7 @@ func (m *UserSquashRequest) Reset() { *m = UserSquashRequest{} } func (m *UserSquashRequest) String() string { return proto.CompactTextString(m) } func (*UserSquashRequest) ProtoMessage() {} func (*UserSquashRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{28} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{30} } func (m *UserSquashRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSquashRequest.Unmarshal(m, b) @@ -2083,7 +2479,7 @@ func (m *UserSquashResponse) Reset() { *m = UserSquashResponse{} } func (m *UserSquashResponse) String() string { return proto.CompactTextString(m) } func (*UserSquashResponse) ProtoMessage() {} func (*UserSquashResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{29} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{31} } func (m *UserSquashResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSquashResponse.Unmarshal(m, b) @@ -2131,7 +2527,7 @@ func (m *UserApplyPatchRequest) Reset() { *m = UserApplyPatchRequest{} } func (m *UserApplyPatchRequest) String() string { return proto.CompactTextString(m) } func (*UserApplyPatchRequest) ProtoMessage() {} func (*UserApplyPatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{30} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{32} } func (m *UserApplyPatchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserApplyPatchRequest.Unmarshal(m, b) @@ -2271,7 +2667,7 @@ func (m *UserApplyPatchRequest_Header) Reset() { *m = UserApplyPatchRequ func (m *UserApplyPatchRequest_Header) String() string { return proto.CompactTextString(m) } func (*UserApplyPatchRequest_Header) ProtoMessage() {} func (*UserApplyPatchRequest_Header) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{30, 0} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{32, 0} } func (m *UserApplyPatchRequest_Header) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserApplyPatchRequest_Header.Unmarshal(m, b) @@ -2323,7 +2719,7 @@ func (m *UserApplyPatchResponse) Reset() { *m = UserApplyPatchResponse{} func (m *UserApplyPatchResponse) String() string { return proto.CompactTextString(m) } func (*UserApplyPatchResponse) ProtoMessage() {} func (*UserApplyPatchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{31} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{33} } func (m *UserApplyPatchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserApplyPatchResponse.Unmarshal(m, b) @@ -2366,7 +2762,7 @@ func (m *UserUpdateSubmoduleRequest) Reset() { *m = UserUpdateSubmoduleR func (m *UserUpdateSubmoduleRequest) String() string { return proto.CompactTextString(m) } func (*UserUpdateSubmoduleRequest) ProtoMessage() {} func (*UserUpdateSubmoduleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{32} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{34} } func (m *UserUpdateSubmoduleRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserUpdateSubmoduleRequest.Unmarshal(m, b) @@ -2441,7 +2837,7 @@ func (m *UserUpdateSubmoduleResponse) Reset() { *m = UserUpdateSubmodule func (m *UserUpdateSubmoduleResponse) String() string { return proto.CompactTextString(m) } func (*UserUpdateSubmoduleResponse) ProtoMessage() {} func (*UserUpdateSubmoduleResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_operations_3e6454468a1f158c, []int{33} + return fileDescriptor_operations_3ef7b709b3ba32d7, []int{35} } func (m *UserUpdateSubmoduleResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserUpdateSubmoduleResponse.Unmarshal(m, b) @@ -2511,6 +2907,9 @@ func init() { proto.RegisterType((*UserCommitFilesResponse)(nil), "gitaly.UserCommitFilesResponse") proto.RegisterType((*UserRebaseRequest)(nil), "gitaly.UserRebaseRequest") proto.RegisterType((*UserRebaseResponse)(nil), "gitaly.UserRebaseResponse") + proto.RegisterType((*UserRebaseConfirmableRequest)(nil), "gitaly.UserRebaseConfirmableRequest") + proto.RegisterType((*UserRebaseConfirmableRequest_Header)(nil), "gitaly.UserRebaseConfirmableRequest.Header") + proto.RegisterType((*UserRebaseConfirmableResponse)(nil), "gitaly.UserRebaseConfirmableResponse") proto.RegisterType((*UserSquashRequest)(nil), "gitaly.UserSquashRequest") proto.RegisterType((*UserSquashResponse)(nil), "gitaly.UserSquashResponse") proto.RegisterType((*UserApplyPatchRequest)(nil), "gitaly.UserApplyPatchRequest") @@ -2542,9 +2941,10 @@ type OperationServiceClient interface { UserMergeBranch(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserMergeBranchClient, error) UserFFBranch(ctx context.Context, in *UserFFBranchRequest, opts ...grpc.CallOption) (*UserFFBranchResponse, error) UserCherryPick(ctx context.Context, in *UserCherryPickRequest, opts ...grpc.CallOption) (*UserCherryPickResponse, error) - UserRevert(ctx context.Context, in *UserRevertRequest, opts ...grpc.CallOption) (*UserRevertResponse, error) UserCommitFiles(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserCommitFilesClient, error) UserRebase(ctx context.Context, in *UserRebaseRequest, opts ...grpc.CallOption) (*UserRebaseResponse, error) + UserRebaseConfirmable(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserRebaseConfirmableClient, error) + UserRevert(ctx context.Context, in *UserRevertRequest, opts ...grpc.CallOption) (*UserRevertResponse, error) UserSquash(ctx context.Context, in *UserSquashRequest, opts ...grpc.CallOption) (*UserSquashResponse, error) UserApplyPatch(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserApplyPatchClient, error) UserUpdateSubmodule(ctx context.Context, in *UserUpdateSubmoduleRequest, opts ...grpc.CallOption) (*UserUpdateSubmoduleResponse, error) @@ -2661,15 +3061,6 @@ func (c *operationServiceClient) UserCherryPick(ctx context.Context, in *UserChe return out, nil } -func (c *operationServiceClient) UserRevert(ctx context.Context, in *UserRevertRequest, opts ...grpc.CallOption) (*UserRevertResponse, error) { - out := new(UserRevertResponse) - err := c.cc.Invoke(ctx, "/gitaly.OperationService/UserRevert", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *operationServiceClient) UserCommitFiles(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserCommitFilesClient, error) { stream, err := c.cc.NewStream(ctx, &_OperationService_serviceDesc.Streams[1], "/gitaly.OperationService/UserCommitFiles", opts...) if err != nil { @@ -2704,6 +3095,7 @@ func (x *operationServiceUserCommitFilesClient) CloseAndRecv() (*UserCommitFiles return m, nil } +// Deprecated: Do not use. func (c *operationServiceClient) UserRebase(ctx context.Context, in *UserRebaseRequest, opts ...grpc.CallOption) (*UserRebaseResponse, error) { out := new(UserRebaseResponse) err := c.cc.Invoke(ctx, "/gitaly.OperationService/UserRebase", in, out, opts...) @@ -2713,6 +3105,46 @@ func (c *operationServiceClient) UserRebase(ctx context.Context, in *UserRebaseR return out, nil } +func (c *operationServiceClient) UserRebaseConfirmable(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserRebaseConfirmableClient, error) { + stream, err := c.cc.NewStream(ctx, &_OperationService_serviceDesc.Streams[2], "/gitaly.OperationService/UserRebaseConfirmable", opts...) + if err != nil { + return nil, err + } + x := &operationServiceUserRebaseConfirmableClient{stream} + return x, nil +} + +type OperationService_UserRebaseConfirmableClient interface { + Send(*UserRebaseConfirmableRequest) error + Recv() (*UserRebaseConfirmableResponse, error) + grpc.ClientStream +} + +type operationServiceUserRebaseConfirmableClient struct { + grpc.ClientStream +} + +func (x *operationServiceUserRebaseConfirmableClient) Send(m *UserRebaseConfirmableRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *operationServiceUserRebaseConfirmableClient) Recv() (*UserRebaseConfirmableResponse, error) { + m := new(UserRebaseConfirmableResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *operationServiceClient) UserRevert(ctx context.Context, in *UserRevertRequest, opts ...grpc.CallOption) (*UserRevertResponse, error) { + out := new(UserRevertResponse) + err := c.cc.Invoke(ctx, "/gitaly.OperationService/UserRevert", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *operationServiceClient) UserSquash(ctx context.Context, in *UserSquashRequest, opts ...grpc.CallOption) (*UserSquashResponse, error) { out := new(UserSquashResponse) err := c.cc.Invoke(ctx, "/gitaly.OperationService/UserSquash", in, out, opts...) @@ -2723,7 +3155,7 @@ func (c *operationServiceClient) UserSquash(ctx context.Context, in *UserSquashR } func (c *operationServiceClient) UserApplyPatch(ctx context.Context, opts ...grpc.CallOption) (OperationService_UserApplyPatchClient, error) { - stream, err := c.cc.NewStream(ctx, &_OperationService_serviceDesc.Streams[2], "/gitaly.OperationService/UserApplyPatch", opts...) + stream, err := c.cc.NewStream(ctx, &_OperationService_serviceDesc.Streams[3], "/gitaly.OperationService/UserApplyPatch", opts...) if err != nil { return nil, err } @@ -2776,9 +3208,10 @@ type OperationServiceServer interface { UserMergeBranch(OperationService_UserMergeBranchServer) error UserFFBranch(context.Context, *UserFFBranchRequest) (*UserFFBranchResponse, error) UserCherryPick(context.Context, *UserCherryPickRequest) (*UserCherryPickResponse, error) - UserRevert(context.Context, *UserRevertRequest) (*UserRevertResponse, error) UserCommitFiles(OperationService_UserCommitFilesServer) error UserRebase(context.Context, *UserRebaseRequest) (*UserRebaseResponse, error) + UserRebaseConfirmable(OperationService_UserRebaseConfirmableServer) error + UserRevert(context.Context, *UserRevertRequest) (*UserRevertResponse, error) UserSquash(context.Context, *UserSquashRequest) (*UserSquashResponse, error) UserApplyPatch(OperationService_UserApplyPatchServer) error UserUpdateSubmodule(context.Context, *UserUpdateSubmoduleRequest) (*UserUpdateSubmoduleResponse, error) @@ -2958,24 +3391,6 @@ func _OperationService_UserCherryPick_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } -func _OperationService_UserRevert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UserRevertRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OperationServiceServer).UserRevert(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/gitaly.OperationService/UserRevert", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OperationServiceServer).UserRevert(ctx, req.(*UserRevertRequest)) - } - return interceptor(ctx, in, info, handler) -} - func _OperationService_UserCommitFiles_Handler(srv interface{}, stream grpc.ServerStream) error { return srv.(OperationServiceServer).UserCommitFiles(&operationServiceUserCommitFilesServer{stream}) } @@ -3020,6 +3435,50 @@ func _OperationService_UserRebase_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _OperationService_UserRebaseConfirmable_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(OperationServiceServer).UserRebaseConfirmable(&operationServiceUserRebaseConfirmableServer{stream}) +} + +type OperationService_UserRebaseConfirmableServer interface { + Send(*UserRebaseConfirmableResponse) error + Recv() (*UserRebaseConfirmableRequest, error) + grpc.ServerStream +} + +type operationServiceUserRebaseConfirmableServer struct { + grpc.ServerStream +} + +func (x *operationServiceUserRebaseConfirmableServer) Send(m *UserRebaseConfirmableResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *operationServiceUserRebaseConfirmableServer) Recv() (*UserRebaseConfirmableRequest, error) { + m := new(UserRebaseConfirmableRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _OperationService_UserRevert_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserRevertRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OperationServiceServer).UserRevert(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gitaly.OperationService/UserRevert", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OperationServiceServer).UserRevert(ctx, req.(*UserRevertRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _OperationService_UserSquash_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UserSquashRequest) if err := dec(in); err != nil { @@ -3119,14 +3578,14 @@ var _OperationService_serviceDesc = grpc.ServiceDesc{ Handler: _OperationService_UserCherryPick_Handler, }, { - MethodName: "UserRevert", - Handler: _OperationService_UserRevert_Handler, - }, - { MethodName: "UserRebase", Handler: _OperationService_UserRebase_Handler, }, { + MethodName: "UserRevert", + Handler: _OperationService_UserRevert_Handler, + }, + { MethodName: "UserSquash", Handler: _OperationService_UserSquash_Handler, }, @@ -3148,6 +3607,12 @@ var _OperationService_serviceDesc = grpc.ServiceDesc{ ClientStreams: true, }, { + StreamName: "UserRebaseConfirmable", + Handler: _OperationService_UserRebaseConfirmable_Handler, + ServerStreams: true, + ClientStreams: true, + }, + { StreamName: "UserApplyPatch", Handler: _OperationService_UserApplyPatch_Handler, ClientStreams: true, @@ -3156,126 +3621,135 @@ var _OperationService_serviceDesc = grpc.ServiceDesc{ Metadata: "operations.proto", } -func init() { proto.RegisterFile("operations.proto", fileDescriptor_operations_3e6454468a1f158c) } - -var fileDescriptor_operations_3e6454468a1f158c = []byte{ - // 1881 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x59, 0xcd, 0x6f, 0x23, 0x59, - 0x11, 0x77, 0xdb, 0x4e, 0xc7, 0xae, 0x38, 0x89, 0xf3, 0xf6, 0xcb, 0xeb, 0x99, 0x30, 0xd9, 0xce, - 0x2e, 0xcc, 0xae, 0x58, 0xcf, 0x6a, 0x40, 0x20, 0x21, 0x2d, 0x68, 0x92, 0x38, 0xcc, 0x2e, 0xcc, - 0x4e, 0xe8, 0x64, 0x16, 0x84, 0x90, 0x9a, 0x8e, 0xfd, 0x62, 0xb7, 0xb0, 0xdd, 0xbd, 0xaf, 0xdb, - 0x61, 0x82, 0x10, 0x17, 0x24, 0xae, 0xdc, 0x00, 0x89, 0x33, 0x12, 0x5f, 0xff, 0x00, 0x17, 0x0e, - 0x1c, 0x10, 0x5c, 0xe1, 0xc0, 0x81, 0x33, 0x57, 0x0e, 0x48, 0x70, 0x46, 0xef, 0x55, 0xf5, 0xc7, - 0xeb, 0x6e, 0x5b, 0x93, 0x21, 0xd1, 0x8c, 0xd0, 0xde, 0xdc, 0xf5, 0xea, 0xd5, 0xab, 0xfa, 0x55, - 0xbd, 0xaa, 0x7a, 0x65, 0x68, 0xfb, 0x01, 0x17, 0x6e, 0xe4, 0xf9, 0xb3, 0xb0, 0x17, 0x08, 0x3f, - 0xf2, 0x99, 0x39, 0xf2, 0x22, 0x77, 0x72, 0xd1, 0x6d, 0x85, 0x63, 0x57, 0xf0, 0x21, 0x52, 0xad, - 0xdf, 0x19, 0xf0, 0xca, 0xa3, 0x90, 0x8b, 0x7d, 0xc1, 0xdd, 0x88, 0xef, 0x09, 0x77, 0x36, 0x18, - 0xdb, 0xfc, 0xa3, 0x39, 0x0f, 0x23, 0x76, 0x17, 0x40, 0xf0, 0xc0, 0x0f, 0xbd, 0xc8, 0x17, 0x17, - 0x1d, 0x63, 0xc7, 0xb8, 0xbd, 0x76, 0x97, 0xf5, 0x50, 0x4c, 0xcf, 0x4e, 0x56, 0xec, 0x0c, 0x17, - 0xbb, 0x05, 0x6b, 0xa7, 0x4a, 0x88, 0x33, 0x73, 0xa7, 0xbc, 0x53, 0xdd, 0x31, 0x6e, 0xb7, 0x6c, - 0x40, 0xd2, 0x07, 0xee, 0x94, 0xb3, 0x1d, 0xa8, 0xcf, 0x43, 0x2e, 0x3a, 0x35, 0x25, 0xae, 0x15, - 0x8b, 0x93, 0x3a, 0xd8, 0x6a, 0x45, 0x8a, 0x08, 0x23, 0x57, 0x44, 0x4e, 0xe0, 0x7b, 0xb3, 0xa8, - 0x53, 0x47, 0x11, 0x8a, 0x74, 0x24, 0x29, 0x5f, 0x30, 0xff, 0xf5, 0xd3, 0xdb, 0xd5, 0x86, 0x61, - 0xcd, 0xa0, 0x53, 0x54, 0x3d, 0x0c, 0xfc, 0x59, 0xc8, 0xd9, 0x27, 0xc1, 0xc4, 0x43, 0x49, 0xef, - 0x8d, 0xf8, 0x20, 0xe2, 0xa3, 0x55, 0xf6, 0x16, 0x6c, 0x05, 0x82, 0x3b, 0x82, 0x0f, 0xb8, 0x77, - 0xce, 0x1d, 0x2e, 0x84, 0x2f, 0x94, 0xd6, 0x4d, 0x7b, 0x33, 0x10, 0xdc, 0x46, 0x7a, 0x5f, 0x92, - 0xad, 0x3f, 0x11, 0x56, 0x8f, 0x82, 0xe1, 0xf3, 0x82, 0xd5, 0xcb, 0x60, 0xce, 0xf8, 0x77, 0x05, - 0x3f, 0x27, 0x98, 0xe8, 0x4b, 0xd2, 0xfd, 0xc9, 0x50, 0xd2, 0x57, 0x90, 0x8e, 0x5f, 0x09, 0x74, - 0x87, 0x08, 0x9d, 0x6e, 0x09, 0x41, 0x57, 0x0a, 0x89, 0x51, 0x0e, 0xc9, 0xcf, 0x08, 0x92, 0x03, - 0x3e, 0xe1, 0xcf, 0x07, 0x24, 0x79, 0x13, 0x75, 0xcd, 0x9e, 0xc2, 0xc4, 0x1f, 0x1b, 0xf0, 0x62, - 0x2a, 0xe8, 0xc4, 0x1d, 0xfd, 0x2f, 0xf6, 0xbd, 0x0a, 0x8d, 0xc8, 0x1d, 0x65, 0x8d, 0x5b, 0x8d, - 0xdc, 0xd1, 0x25, 0x2d, 0xdb, 0x87, 0x97, 0x72, 0x0a, 0x3d, 0x85, 0x59, 0x7f, 0x21, 0xb3, 0xf0, - 0xf6, 0x3c, 0x43, 0xb3, 0xd8, 0xa7, 0x60, 0x33, 0x72, 0xc5, 0x88, 0x47, 0x8e, 0xe0, 0xe7, 0x5e, - 0xe8, 0xf9, 0x33, 0x0a, 0xe6, 0x0d, 0x24, 0xdb, 0x44, 0x65, 0x1d, 0x58, 0x9d, 0xf2, 0x30, 0x74, - 0x47, 0x9c, 0xa2, 0x3a, 0xfe, 0x4c, 0x90, 0xf9, 0x1e, 0x22, 0x93, 0xb1, 0x89, 0x90, 0xd9, 0x86, - 0x5a, 0xe4, 0x8e, 0xc8, 0x9a, 0xb5, 0x58, 0x09, 0xc9, 0x21, 0xe9, 0xf2, 0xba, 0xf0, 0xc7, 0x5e, - 0x18, 0x85, 0x4a, 0xfb, 0x86, 0x4d, 0x5f, 0xe5, 0x80, 0xd6, 0xca, 0x01, 0xfd, 0xbb, 0x01, 0x2f, - 0xcb, 0xc3, 0x1f, 0x70, 0x31, 0xba, 0x82, 0x9b, 0x10, 0xe3, 0x56, 0x5d, 0x88, 0xdb, 0x0d, 0x68, - 0x0e, 0xfc, 0xe9, 0xd4, 0x8b, 0x1c, 0x6f, 0x48, 0x4a, 0x35, 0x90, 0xf0, 0xde, 0x50, 0x5a, 0x44, - 0xf9, 0x8f, 0x12, 0x03, 0xe5, 0xbb, 0x85, 0x18, 0xb2, 0x17, 0x61, 0xc5, 0x0d, 0x82, 0xc9, 0x45, - 0xc7, 0x54, 0x10, 0xe0, 0x47, 0x82, 0xec, 0x6f, 0xe9, 0xa2, 0x6b, 0xd6, 0x11, 0xb8, 0x9a, 0x22, - 0x46, 0x4e, 0x91, 0x3d, 0x58, 0xa7, 0x1b, 0x3d, 0x57, 0xc9, 0x86, 0x02, 0x61, 0x3b, 0x36, 0xe8, - 0x61, 0x5c, 0xa7, 0x50, 0x28, 0x66, 0x24, 0xbb, 0x75, 0x9a, 0xf9, 0x2a, 0x77, 0x43, 0xbd, 0xd4, - 0x0d, 0xef, 0xd7, 0x1b, 0xd5, 0x76, 0xcd, 0xfa, 0x87, 0x81, 0x91, 0xa0, 0xd4, 0x3d, 0xf1, 0x6d, - 0x7e, 0x76, 0xbd, 0xbe, 0xd8, 0x06, 0x08, 0xfd, 0xb9, 0x18, 0x70, 0x27, 0x1c, 0xbb, 0xe4, 0x8c, - 0x26, 0x52, 0x8e, 0xc7, 0xee, 0x42, 0x6f, 0x6c, 0x03, 0x24, 0xa1, 0x7f, 0x46, 0x0e, 0x69, 0xc6, - 0x51, 0x7f, 0x96, 0x75, 0x96, 0x59, 0x1e, 0xf0, 0x6e, 0x26, 0xe6, 0xc8, 0xcc, 0x27, 0x71, 0xca, - 0x65, 0xaa, 0xde, 0x0f, 0xe0, 0xa5, 0x52, 0x1f, 0x2d, 0x3f, 0xe1, 0x35, 0x68, 0x49, 0x00, 0x9d, - 0x81, 0xba, 0x8a, 0x43, 0xba, 0x57, 0x6b, 0x92, 0x86, 0xb7, 0x73, 0xc8, 0xde, 0x80, 0x0d, 0x8a, - 0x8c, 0x98, 0xa9, 0xa6, 0x98, 0x28, 0x5e, 0x88, 0xcd, 0xfa, 0xa5, 0x01, 0x2f, 0x48, 0x1b, 0x0f, - 0x0f, 0x9f, 0xd7, 0x4b, 0x95, 0x78, 0xe3, 0x47, 0x94, 0x53, 0x53, 0x55, 0xc9, 0x19, 0x85, 0x4b, - 0x60, 0x5c, 0xd1, 0x25, 0x58, 0xe0, 0xb3, 0x3f, 0x56, 0x29, 0x11, 0x8e, 0xb9, 0x10, 0x17, 0x47, - 0xde, 0xe0, 0x3b, 0xd7, 0x8b, 0xda, 0x9b, 0x60, 0x22, 0x48, 0x74, 0xbb, 0xb7, 0x62, 0x9e, 0x2f, - 0x7b, 0xd1, 0xbe, 0x5a, 0xb0, 0x89, 0x21, 0x5f, 0xe1, 0xeb, 0x85, 0x0a, 0xbf, 0x38, 0x43, 0xbd, - 0x05, 0x5b, 0xd8, 0x18, 0x66, 0x05, 0xe0, 0xc5, 0xd8, 0x54, 0x0b, 0x7b, 0xa9, 0x94, 0x77, 0xa1, - 0x8d, 0xbc, 0x19, 0x6b, 0x57, 0x17, 0x5a, 0x8b, 0xdb, 0x53, 0x42, 0xe2, 0xd1, 0xbf, 0x51, 0x52, - 0xcf, 0x02, 0x79, 0xb5, 0x3e, 0xc5, 0xd8, 0x77, 0x22, 0xc1, 0x73, 0x3e, 0xc5, 0x85, 0x13, 0xc1, - 0xd1, 0xa7, 0xf2, 0x46, 0x51, 0x64, 0x66, 0xcb, 0xd0, 0x1a, 0xd2, 0x90, 0xe5, 0x12, 0x79, 0xd2, - 0xfa, 0x43, 0x15, 0xb6, 0x94, 0x07, 0xf9, 0x39, 0x97, 0xa6, 0x7f, 0x1c, 0x1e, 0x4f, 0x11, 0x1e, - 0x7f, 0x35, 0x80, 0x65, 0x41, 0xfc, 0xff, 0x08, 0x8d, 0x7f, 0x57, 0xe1, 0x86, 0x0a, 0x7a, 0xb5, - 0xff, 0xd0, 0x9b, 0xf0, 0xf0, 0xde, 0x40, 0xaa, 0x7b, 0x9f, 0xbb, 0x43, 0x2e, 0xd8, 0x21, 0x98, - 0xae, 0xfa, 0x56, 0x76, 0x6d, 0xdc, 0xed, 0x65, 0x5d, 0xbe, 0x60, 0x53, 0x0f, 0x3f, 0x4e, 0x2e, - 0x02, 0x6e, 0xd3, 0x6e, 0x99, 0x6b, 0xcf, 0xbc, 0x09, 0x77, 0x02, 0x37, 0x1a, 0x53, 0xdb, 0xd8, - 0x90, 0x84, 0x23, 0x37, 0x1a, 0xb3, 0x5d, 0x58, 0x0f, 0x64, 0x3f, 0xe8, 0xcf, 0x43, 0x64, 0xa8, - 0x29, 0x86, 0x56, 0x4c, 0x54, 0x4c, 0xb2, 0x84, 0xb8, 0x21, 0xff, 0xdc, 0x67, 0x9d, 0x81, 0x3f, - 0x8b, 0x38, 0xbd, 0x16, 0x65, 0x09, 0x51, 0xd4, 0x7d, 0x24, 0xb2, 0x37, 0xa1, 0xcd, 0x1f, 0xf3, - 0xc1, 0x3c, 0xe2, 0x8e, 0x94, 0x3f, 0xf5, 0x87, 0x18, 0x3c, 0x0d, 0x7b, 0x93, 0xe8, 0x87, 0x44, - 0x96, 0xc7, 0x7a, 0xb3, 0x33, 0x2e, 0x12, 0x81, 0xd8, 0x0d, 0xb5, 0x14, 0x91, 0xe4, 0x59, 0x8f, - 0x00, 0x52, 0x73, 0x18, 0x80, 0xb9, 0x6f, 0xf7, 0xef, 0x9d, 0xf4, 0xdb, 0x15, 0xb6, 0x01, 0x80, - 0xbf, 0x9d, 0x83, 0xf7, 0xec, 0xb6, 0x21, 0xd7, 0x1e, 0x1d, 0x1d, 0xc8, 0xb5, 0x2a, 0x6b, 0x40, - 0xfd, 0xc1, 0xc3, 0x0f, 0xfb, 0xed, 0x9a, 0xa4, 0x1e, 0xf4, 0xbf, 0xda, 0x3f, 0xe9, 0xb7, 0xeb, - 0xac, 0x09, 0x2b, 0xfb, 0xf7, 0x1f, 0x3c, 0x3c, 0x68, 0xaf, 0x58, 0x3f, 0xa1, 0xa6, 0xa5, 0x00, - 0x21, 0x7b, 0x17, 0xcc, 0xb1, 0x82, 0x91, 0x22, 0x69, 0xf7, 0x09, 0x10, 0xbf, 0x5f, 0xb1, 0x69, - 0x13, 0xeb, 0xc2, 0x6a, 0x6c, 0x8e, 0x82, 0xf9, 0x7e, 0xc5, 0x8e, 0x09, 0x7b, 0x16, 0xec, 0xc8, - 0x3b, 0xea, 0x50, 0x00, 0x49, 0x7c, 0x42, 0x07, 0x1d, 0xe4, 0x04, 0xee, 0xc5, 0xc4, 0x77, 0x87, - 0xd6, 0xcf, 0x6b, 0x70, 0x33, 0x77, 0x12, 0x25, 0x0c, 0x8a, 0x88, 0xeb, 0x49, 0x1b, 0xb9, 0x5c, - 0x50, 0x2b, 0xe4, 0x82, 0x37, 0x60, 0x83, 0xd4, 0x8e, 0x53, 0x02, 0xe6, 0x8b, 0x75, 0xa4, 0x3e, - 0xa0, 0xc4, 0xf0, 0x69, 0x60, 0xc4, 0xe6, 0xce, 0xa3, 0xb1, 0x2f, 0x50, 0x1c, 0x66, 0x8f, 0x36, - 0xae, 0xdc, 0x53, 0x0b, 0x4a, 0x68, 0x0f, 0x5e, 0xd0, 0xb9, 0xf9, 0xd4, 0xf5, 0x26, 0x94, 0x48, - 0xb6, 0xb2, 0xec, 0x7d, 0xb9, 0x50, 0x9e, 0x76, 0x56, 0x9f, 0x3c, 0xed, 0x34, 0x9e, 0x38, 0xed, - 0xc8, 0x16, 0xfd, 0xcc, 0x17, 0x03, 0xde, 0x69, 0x62, 0x8b, 0xae, 0x3e, 0xac, 0xdf, 0xc7, 0x35, - 0xaa, 0xe0, 0x1d, 0xf6, 0xc5, 0x5c, 0xdc, 0xbc, 0xbe, 0x20, 0x6e, 0x34, 0x6f, 0x66, 0x02, 0xe7, - 0xf3, 0xc9, 0x4d, 0xaf, 0xea, 0x19, 0xac, 0x3c, 0xee, 0x2a, 0xf1, 0xd5, 0x8e, 0x13, 0xe4, 0xde, - 0x2e, 0xbc, 0x56, 0x8c, 0x2e, 0x81, 0xa7, 0x25, 0xe1, 0xf5, 0xeb, 0x78, 0x06, 0x95, 0x55, 0xe8, - 0x0a, 0x53, 0xe9, 0x2d, 0x58, 0xf3, 0x66, 0x43, 0xfe, 0x58, 0x4b, 0xa2, 0xa0, 0x48, 0x4b, 0x92, - 0xe3, 0x82, 0x67, 0xde, 0x6f, 0x92, 0xba, 0x29, 0x73, 0xcc, 0xb5, 0x37, 0xa3, 0x42, 0x1d, 0x93, - 0x69, 0x46, 0x91, 0xb0, 0xe4, 0x85, 0xb7, 0x0d, 0x74, 0x45, 0xd4, 0x53, 0x64, 0x05, 0x9f, 0x22, - 0x48, 0x91, 0x4f, 0x91, 0x2f, 0xc1, 0x96, 0xe0, 0x53, 0x3f, 0xe2, 0xd9, 0x18, 0x34, 0x17, 0x2a, - 0xdc, 0x46, 0xe6, 0x4c, 0x10, 0xee, 0xc2, 0x3a, 0x09, 0xa0, 0xe3, 0x31, 0xd6, 0x5b, 0x48, 0xdc, - 0xd3, 0x3b, 0xe2, 0xef, 0xc7, 0xf5, 0x11, 0xc1, 0x4a, 0x5e, 0xe3, 0x40, 0x76, 0x49, 0x15, 0xf1, - 0xe9, 0x40, 0x96, 0x4a, 0x15, 0x2f, 0xd1, 0xe9, 0x4a, 0x88, 0x46, 0xb9, 0xba, 0xd7, 0x18, 0x51, - 0xd1, 0xb3, 0x7e, 0x45, 0xbe, 0x3a, 0xfe, 0x68, 0xee, 0x86, 0xd7, 0xff, 0x70, 0x08, 0xd5, 0x31, - 0x19, 0x5f, 0x21, 0x61, 0x89, 0xaf, 0xe4, 0x26, 0x95, 0x0f, 0x52, 0x57, 0x35, 0x14, 0x41, 0xc2, - 0xf0, 0x0a, 0xac, 0xf2, 0xd9, 0x50, 0x2d, 0x99, 0x6a, 0xc9, 0xe4, 0xb3, 0xa1, 0x5c, 0x78, 0x1d, - 0x4c, 0x4c, 0x4d, 0xd4, 0xb2, 0xe8, 0xea, 0xd0, 0x5a, 0x49, 0x72, 0x6c, 0x94, 0x24, 0xc7, 0xc4, - 0x53, 0x1e, 0x7a, 0x2a, 0x86, 0x2a, 0xf5, 0x14, 0x59, 0x95, 0xf1, 0x14, 0x52, 0xa4, 0x26, 0xcb, - 0xd0, 0xc7, 0x97, 0xb8, 0x5d, 0x74, 0xa5, 0xf5, 0x0b, 0x7a, 0x9d, 0xdc, 0x0b, 0x82, 0xc9, 0xc5, - 0x91, 0x1b, 0xa5, 0x6f, 0xba, 0xa5, 0xf9, 0xaa, 0xc0, 0xde, 0x2b, 0x2b, 0x74, 0x81, 0x64, 0xe0, - 0x61, 0x5a, 0xe8, 0x88, 0xd0, 0xfd, 0xa1, 0x01, 0xe6, 0xb5, 0x96, 0xab, 0x5d, 0x58, 0xa7, 0xc7, - 0x3c, 0xf9, 0x9a, 0x3a, 0x16, 0x24, 0xea, 0x17, 0x23, 0x29, 0xbb, 0x6a, 0xca, 0xe2, 0x28, 0x1d, - 0x0b, 0x79, 0xf1, 0x5b, 0x98, 0xd7, 0xb3, 0x76, 0x5f, 0x5d, 0x56, 0xb4, 0xfe, 0x63, 0x40, 0x37, - 0x9d, 0x01, 0x1f, 0xcf, 0x4f, 0xa7, 0xfe, 0x70, 0x3e, 0xe1, 0xd7, 0x3e, 0x27, 0xa1, 0xa0, 0xcc, - 0xcc, 0x49, 0x90, 0xb2, 0x6c, 0x4e, 0x72, 0x13, 0x9a, 0x61, 0xac, 0x60, 0x3c, 0x26, 0x49, 0x08, - 0x25, 0x91, 0x6e, 0x2e, 0x8b, 0xf4, 0x3f, 0x1b, 0xd8, 0xde, 0x16, 0x0c, 0x7f, 0x36, 0x8f, 0xf5, - 0x42, 0xf7, 0x5e, 0x2f, 0x74, 0xef, 0xef, 0xd7, 0x1b, 0xb5, 0x76, 0xdd, 0x2e, 0x3e, 0x08, 0xee, - 0xfe, 0xb3, 0x09, 0xed, 0x44, 0x9f, 0x63, 0x2e, 0xce, 0xbd, 0x01, 0x67, 0x5f, 0x87, 0x76, 0xfe, - 0x7f, 0x11, 0x76, 0x4b, 0xab, 0xdc, 0xc5, 0x3f, 0x7b, 0xba, 0x3b, 0x8b, 0x19, 0x10, 0x17, 0xab, - 0x12, 0x0b, 0xce, 0xfe, 0x6b, 0xa0, 0x0b, 0x2e, 0xf9, 0x67, 0x44, 0x17, 0x5c, 0xf6, 0x87, 0x43, - 0x2a, 0x38, 0x3b, 0xab, 0xd7, 0x05, 0x97, 0xfc, 0xbf, 0xa0, 0x0b, 0x2e, 0x1b, 0xf3, 0x5b, 0x15, - 0xf6, 0x01, 0xac, 0x6b, 0x03, 0x61, 0x76, 0xb3, 0x68, 0x66, 0x3a, 0xfb, 0xee, 0x6e, 0x2f, 0x58, - 0xcd, 0xcb, 0x4b, 0x46, 0xef, 0xba, 0xbc, 0xfc, 0x5f, 0x04, 0xba, 0xbc, 0xc2, 0xbc, 0xde, 0xaa, - 0xb0, 0xaf, 0xc1, 0x86, 0x3e, 0xbf, 0x63, 0xda, 0x96, 0xc2, 0xf8, 0xb2, 0xfb, 0x89, 0x45, 0xcb, - 0x89, 0xc8, 0x6f, 0xc0, 0x66, 0x6e, 0x50, 0xcb, 0x8a, 0x9b, 0x74, 0x24, 0x6f, 0x2d, 0x5c, 0x8f, - 0xa5, 0xde, 0x36, 0xde, 0x31, 0xd8, 0x57, 0xa0, 0x95, 0x9d, 0x6e, 0xb1, 0x1b, 0xd9, 0x6d, 0xb9, - 0xf1, 0x5c, 0xf7, 0x66, 0xf9, 0x62, 0xde, 0xf2, 0x74, 0xb0, 0xa2, 0x5b, 0x5e, 0x98, 0x5c, 0xe9, - 0x96, 0x17, 0xe7, 0x31, 0x56, 0x85, 0xf5, 0x01, 0xd2, 0xc7, 0x38, 0x7b, 0x55, 0x4b, 0x3f, 0xd9, - 0x29, 0x47, 0xb7, 0x5b, 0xb6, 0x94, 0x88, 0xf9, 0x10, 0x01, 0xcc, 0x74, 0xa3, 0x3a, 0x80, 0xc5, - 0xbe, 0x59, 0x07, 0xb0, 0xa4, 0x8d, 0x95, 0x00, 0xa6, 0xea, 0xc9, 0x3e, 0x27, 0xaf, 0x5e, 0xa6, - 0x99, 0xcc, 0xab, 0x97, 0x6d, 0x9d, 0x52, 0x2b, 0xb1, 0x50, 0xeb, 0x62, 0xb4, 0x3e, 0x47, 0x17, - 0xa3, 0xd7, 0x75, 0xab, 0xc2, 0x8e, 0x11, 0xff, 0xb4, 0xb8, 0xe8, 0xf8, 0x17, 0x8a, 0xad, 0x8e, - 0x7f, 0xb1, 0x26, 0x29, 0x13, 0xbf, 0x8d, 0xa3, 0xda, 0x5c, 0x66, 0x65, 0x56, 0x31, 0x05, 0xe4, - 0xeb, 0x4d, 0x77, 0x77, 0x29, 0x4f, 0x7c, 0xc6, 0xde, 0x3b, 0xdf, 0x94, 0x7c, 0x13, 0xf7, 0xb4, - 0x37, 0xf0, 0xa7, 0x77, 0xf0, 0xe7, 0xdb, 0xbe, 0x18, 0xdd, 0xc1, 0xdd, 0x6f, 0xab, 0x7f, 0xb5, - 0xef, 0x8c, 0x7c, 0xfa, 0x0e, 0x4e, 0x4f, 0x4d, 0x45, 0xfa, 0xcc, 0x7f, 0x03, 0x00, 0x00, 0xff, - 0xff, 0xcd, 0x80, 0x54, 0x9c, 0x12, 0x1f, 0x00, 0x00, +func init() { proto.RegisterFile("operations.proto", fileDescriptor_operations_3ef7b709b3ba32d7) } + +var fileDescriptor_operations_3ef7b709b3ba32d7 = []byte{ + // 2019 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0xcf, 0x6f, 0x23, 0x49, + 0x15, 0x4e, 0xdb, 0x9e, 0x8e, 0xf3, 0xe2, 0x24, 0x4e, 0xed, 0xee, 0xac, 0xd7, 0x33, 0x21, 0xd9, + 0xce, 0x0c, 0x93, 0x19, 0x58, 0xcf, 0x6a, 0x40, 0x20, 0x21, 0x2d, 0x68, 0x92, 0x38, 0x64, 0x17, + 0x66, 0x27, 0xf4, 0x64, 0x40, 0xa0, 0x85, 0x56, 0xc7, 0xae, 0xd8, 0x2d, 0x6c, 0x77, 0x6f, 0x75, + 0x3b, 0x4c, 0x38, 0x20, 0x24, 0x24, 0xe0, 0xc8, 0x09, 0x90, 0x10, 0x12, 0x9c, 0x90, 0x10, 0x17, + 0x2e, 0x1c, 0x90, 0x40, 0x48, 0x9c, 0xe0, 0xba, 0x07, 0x4e, 0xf0, 0x27, 0x70, 0xe3, 0xc2, 0x09, + 0x55, 0xbd, 0xd7, 0xed, 0xae, 0xfe, 0x11, 0x92, 0x25, 0xd1, 0x0e, 0x88, 0x9b, 0xfb, 0xd5, 0xeb, + 0xd7, 0xef, 0x7d, 0xef, 0xab, 0x57, 0xaf, 0xaa, 0x0c, 0x4d, 0x3f, 0xe0, 0xc2, 0x8d, 0x3c, 0x7f, + 0x12, 0x76, 0x02, 0xe1, 0x47, 0x3e, 0x33, 0x07, 0x5e, 0xe4, 0x8e, 0x4e, 0xdb, 0x8d, 0x70, 0xe8, + 0x0a, 0xde, 0x47, 0xa9, 0xf5, 0x6b, 0x03, 0x5e, 0x7e, 0x1a, 0x72, 0xb1, 0x23, 0xb8, 0x1b, 0xf1, + 0x6d, 0xe1, 0x4e, 0x7a, 0x43, 0x9b, 0xbf, 0x3b, 0xe5, 0x61, 0xc4, 0x1e, 0x00, 0x08, 0x1e, 0xf8, + 0xa1, 0x17, 0xf9, 0xe2, 0xb4, 0x65, 0x6c, 0x18, 0x5b, 0x8b, 0x0f, 0x58, 0x07, 0xcd, 0x74, 0xec, + 0x64, 0xc4, 0x4e, 0x69, 0xb1, 0x75, 0x58, 0x3c, 0x52, 0x46, 0x9c, 0x89, 0x3b, 0xe6, 0xad, 0xca, + 0x86, 0xb1, 0xd5, 0xb0, 0x01, 0x45, 0x6f, 0xbb, 0x63, 0xce, 0x36, 0xa0, 0x36, 0x0d, 0xb9, 0x68, + 0x55, 0x95, 0xb9, 0x46, 0x6c, 0x4e, 0xfa, 0x60, 0xab, 0x11, 0x69, 0x22, 0x8c, 0x5c, 0x11, 0x39, + 0x81, 0xef, 0x4d, 0xa2, 0x56, 0x0d, 0x4d, 0x28, 0xd1, 0x81, 0x94, 0x58, 0x13, 0x68, 0xe5, 0x5d, + 0x0e, 0x03, 0x7f, 0x12, 0x72, 0xf6, 0x61, 0x30, 0xf1, 0x63, 0xe4, 0xef, 0x72, 0xfc, 0x01, 0xd2, + 0xa3, 0x51, 0x76, 0x0f, 0x56, 0x03, 0xc1, 0x1d, 0xc1, 0x7b, 0xdc, 0x3b, 0xe1, 0x0e, 0x17, 0xc2, + 0x17, 0xca, 0xdb, 0x05, 0x7b, 0x25, 0x10, 0xdc, 0x46, 0x79, 0x57, 0x8a, 0xad, 0x3f, 0x10, 0x46, + 0x4f, 0x83, 0xfe, 0xf3, 0x82, 0xd1, 0x75, 0x30, 0x27, 0xfc, 0x1b, 0x82, 0x9f, 0x10, 0x3c, 0xf4, + 0x24, 0xe5, 0xfe, 0xa8, 0x2f, 0xe5, 0xd7, 0x50, 0x8e, 0x4f, 0xd6, 0x1e, 0x42, 0xa6, 0x47, 0x40, + 0x90, 0x15, 0x42, 0x61, 0x14, 0x43, 0xf1, 0x03, 0x82, 0x62, 0x97, 0x8f, 0xf8, 0xf3, 0x01, 0x45, + 0x1c, 0x9a, 0xee, 0xd1, 0xfb, 0x08, 0xed, 0x7b, 0x06, 0xbc, 0x38, 0x33, 0x74, 0xe8, 0x0e, 0xfe, + 0x93, 0xb8, 0x5e, 0x81, 0x7a, 0xe4, 0x0e, 0xd2, 0x41, 0xcd, 0x47, 0xee, 0xe0, 0x9c, 0x11, 0xed, + 0xc0, 0x4b, 0x19, 0x47, 0xde, 0x47, 0x38, 0x7f, 0xa6, 0x70, 0x70, 0x96, 0x7c, 0x80, 0xe1, 0xb0, + 0x3b, 0xb0, 0x12, 0xb9, 0x62, 0xc0, 0x23, 0x47, 0xf0, 0x13, 0x2f, 0xf4, 0xfc, 0x09, 0x91, 0x76, + 0x19, 0xc5, 0x36, 0x49, 0x59, 0x0b, 0xe6, 0xc7, 0x3c, 0x0c, 0xdd, 0x01, 0x27, 0xf6, 0xc6, 0x8f, + 0xd6, 0x37, 0x11, 0x91, 0x54, 0x2c, 0x84, 0xc8, 0x1a, 0x54, 0x23, 0x77, 0x40, 0x51, 0x2c, 0xc6, + 0x1f, 0x97, 0x1a, 0x52, 0x2e, 0xa7, 0x03, 0x7f, 0xe6, 0x85, 0x51, 0xa8, 0xbc, 0xae, 0xdb, 0xf4, + 0x54, 0x0c, 0x64, 0xb5, 0x18, 0xc8, 0xf7, 0x0c, 0xb8, 0x2e, 0x3f, 0xfe, 0x88, 0x8b, 0xc1, 0x25, + 0x30, 0x3e, 0xc6, 0xab, 0x52, 0x8a, 0xd7, 0x0d, 0x58, 0xe8, 0xf9, 0xe3, 0xb1, 0x17, 0x39, 0x5e, + 0x9f, 0x9c, 0xaa, 0xa3, 0xe0, 0xcd, 0xbe, 0x8c, 0x88, 0xea, 0x1b, 0x4d, 0x7c, 0xaa, 0x67, 0xa5, + 0xd8, 0xb1, 0x17, 0xe1, 0x9a, 0x1b, 0x04, 0xa3, 0xd3, 0x96, 0xa9, 0x20, 0xc0, 0x07, 0xeb, 0x57, + 0x34, 0x91, 0xb5, 0xa8, 0x08, 0x54, 0xcd, 0x01, 0x23, 0xe3, 0xc0, 0x36, 0x2c, 0xd1, 0x8c, 0x9d, + 0xaa, 0x62, 0x42, 0x89, 0x5f, 0x8b, 0x03, 0x79, 0x1c, 0xaf, 0x3b, 0x68, 0x14, 0x2b, 0x8e, 0xdd, + 0x38, 0x4a, 0x3d, 0x15, 0xc3, 0x5f, 0x2b, 0x84, 0xff, 0xad, 0x5a, 0xbd, 0xd2, 0xac, 0x5a, 0x7f, + 0x35, 0x90, 0x01, 0xca, 0xdd, 0x43, 0xdf, 0xe6, 0xc7, 0x57, 0x9b, 0x83, 0x35, 0x80, 0xd0, 0x9f, + 0x8a, 0x1e, 0x77, 0xc2, 0xa1, 0x4b, 0x49, 0x58, 0x40, 0xc9, 0x93, 0xa1, 0x5b, 0x9a, 0x85, 0x35, + 0x80, 0x84, 0xea, 0xc7, 0x94, 0x88, 0x85, 0x98, 0xe5, 0xc7, 0xe9, 0x24, 0x99, 0x3a, 0xc1, 0xdd, + 0x14, 0xc7, 0x28, 0xbc, 0xf3, 0x24, 0xe3, 0x22, 0xab, 0xd8, 0xb7, 0xe0, 0xa5, 0xc2, 0xdc, 0x9c, + 0xfd, 0x85, 0x57, 0xa1, 0x21, 0x81, 0x73, 0x7a, 0x6a, 0xea, 0xf5, 0x69, 0x1e, 0x2d, 0x4a, 0x19, + 0xce, 0xc6, 0x3e, 0xbb, 0x0d, 0xcb, 0xc4, 0x88, 0x58, 0xa9, 0xaa, 0x94, 0x88, 0x27, 0xa4, 0x66, + 0xfd, 0xcc, 0x80, 0x17, 0x64, 0x8c, 0x7b, 0x7b, 0xcf, 0xeb, 0x24, 0xb2, 0xbe, 0x4b, 0x35, 0x73, + 0xe6, 0x22, 0x25, 0x21, 0x47, 0x7a, 0xe3, 0x92, 0x48, 0x5f, 0x92, 0xab, 0xdf, 0x57, 0xa8, 0xe0, + 0x0d, 0xb9, 0x10, 0xa7, 0x07, 0x5e, 0xef, 0xeb, 0x57, 0x8b, 0xd6, 0x5d, 0x30, 0x11, 0x1c, 0x9a, + 0xcd, 0xab, 0xb1, 0xce, 0x67, 0xbd, 0x68, 0x47, 0x0d, 0xd8, 0xa4, 0x90, 0x5d, 0xb1, 0x6b, 0xb9, + 0x15, 0xbb, 0xbc, 0x12, 0xdd, 0x83, 0x55, 0x6c, 0xec, 0xd2, 0x06, 0x70, 0x22, 0xac, 0xa8, 0x81, + 0xed, 0x99, 0x95, 0x37, 0xa0, 0x89, 0xba, 0xa9, 0x68, 0xe7, 0x4b, 0xa3, 0xc5, 0xd7, 0x67, 0x02, + 0xeb, 0x2f, 0x54, 0xb4, 0xd3, 0x00, 0x5e, 0x6e, 0x2e, 0x91, 0xeb, 0x4e, 0x24, 0x78, 0x26, 0x97, + 0x38, 0x70, 0x28, 0x38, 0xe6, 0x52, 0xce, 0x20, 0x62, 0x62, 0x7a, 0x99, 0x59, 0x44, 0x19, 0xaa, + 0x5c, 0xa0, 0x1e, 0x5a, 0xbf, 0xad, 0xc0, 0xaa, 0xca, 0x1c, 0x3f, 0xe1, 0x32, 0xe4, 0xff, 0xd3, + 0xe2, 0x02, 0xb4, 0x78, 0xcf, 0x00, 0x96, 0x06, 0xef, 0x7f, 0x83, 0x12, 0xff, 0xa8, 0xc0, 0x0d, + 0x45, 0x76, 0xf5, 0xfe, 0x9e, 0x37, 0xe2, 0xe1, 0xc3, 0x9e, 0x74, 0x77, 0x9f, 0xbb, 0x7d, 0x2e, + 0xd8, 0x1e, 0x98, 0xae, 0x7a, 0x56, 0x71, 0x2d, 0x3f, 0xe8, 0xa4, 0x53, 0x5d, 0xf2, 0x52, 0x07, + 0x1f, 0x0e, 0x4f, 0x03, 0x6e, 0xd3, 0xdb, 0xb2, 0xa6, 0x1e, 0x7b, 0x23, 0xee, 0x04, 0x6e, 0x34, + 0xa4, 0x36, 0xb0, 0x2e, 0x05, 0x07, 0x6e, 0x34, 0x64, 0x9b, 0xb0, 0x14, 0xc8, 0xfe, 0xce, 0x9f, + 0x86, 0xa8, 0x50, 0x55, 0x0a, 0x8d, 0x58, 0xa8, 0x94, 0xe4, 0x52, 0xe1, 0x86, 0xfc, 0x13, 0x1f, + 0x77, 0x7a, 0xfe, 0x24, 0xe2, 0xb4, 0xbb, 0x93, 0x4b, 0x85, 0x92, 0xee, 0xa0, 0x90, 0xdd, 0x85, + 0x26, 0x7f, 0xc6, 0x7b, 0xd3, 0x88, 0x3b, 0xd2, 0xfe, 0xd8, 0xef, 0x23, 0x69, 0xea, 0xf6, 0x0a, + 0xc9, 0xf7, 0x48, 0x2c, 0x3f, 0xeb, 0x4d, 0x8e, 0xb9, 0x48, 0x0c, 0x62, 0x97, 0xd3, 0x50, 0x42, + 0xb2, 0x67, 0x3d, 0x05, 0x98, 0x85, 0xc3, 0x00, 0xcc, 0x1d, 0xbb, 0xfb, 0xf0, 0xb0, 0xdb, 0x9c, + 0x63, 0xcb, 0x00, 0xf8, 0xdb, 0xd9, 0x7d, 0xd3, 0x6e, 0x1a, 0x72, 0xec, 0xe9, 0xc1, 0xae, 0x1c, + 0xab, 0xb0, 0x3a, 0xd4, 0x1e, 0x3d, 0xfe, 0x62, 0xb7, 0x59, 0x95, 0xd2, 0xdd, 0xee, 0xe7, 0xbb, + 0x87, 0xdd, 0x66, 0x8d, 0x2d, 0xc0, 0xb5, 0x9d, 0xfd, 0x47, 0x8f, 0x77, 0x9b, 0xd7, 0xac, 0x1f, + 0x52, 0x53, 0x92, 0x83, 0x90, 0xbd, 0x01, 0xe6, 0x50, 0xc1, 0x48, 0x4c, 0xda, 0x3c, 0x07, 0xe2, + 0xfb, 0x73, 0x36, 0xbd, 0xc4, 0xda, 0x30, 0x1f, 0x87, 0xa3, 0x60, 0xde, 0x9f, 0xb3, 0x63, 0xc1, + 0xb6, 0x05, 0x1b, 0x72, 0x6e, 0x3a, 0x44, 0x20, 0x89, 0x4f, 0xe8, 0x60, 0x82, 0x9c, 0xc0, 0x3d, + 0x1d, 0xf9, 0x6e, 0xdf, 0xfa, 0x49, 0x15, 0x6e, 0x66, 0xbe, 0x44, 0x85, 0x82, 0x18, 0x71, 0x35, + 0xe5, 0x22, 0x53, 0x03, 0xaa, 0xb9, 0x1a, 0x70, 0x1b, 0x96, 0xc9, 0xed, 0xb8, 0x14, 0x60, 0x9d, + 0x58, 0x42, 0xe9, 0x23, 0x2a, 0x08, 0x1f, 0x05, 0x46, 0x6a, 0xee, 0x34, 0x1a, 0xfa, 0x02, 0xcd, + 0x61, 0xd5, 0x68, 0xe2, 0xc8, 0x43, 0x35, 0xa0, 0x8c, 0x76, 0xe0, 0x05, 0x5d, 0x9b, 0x8f, 0x5d, + 0x6f, 0x44, 0x05, 0x64, 0x35, 0xad, 0xde, 0x95, 0x03, 0xc5, 0xe5, 0x66, 0xfe, 0xfc, 0xe5, 0xa6, + 0x7e, 0xee, 0x72, 0x23, 0x5b, 0xef, 0x63, 0x5f, 0xf4, 0x78, 0x6b, 0x01, 0x5b, 0x6f, 0xf5, 0x60, + 0xfd, 0x26, 0x5e, 0x9b, 0x72, 0xd9, 0x61, 0x9f, 0xce, 0xf0, 0xe6, 0x56, 0x09, 0x6f, 0xb4, 0x6c, + 0xa6, 0x88, 0xf3, 0xc9, 0x64, 0xa6, 0x57, 0xf4, 0x0a, 0x56, 0xcc, 0xbb, 0xb9, 0x78, 0x6a, 0x6f, + 0x6f, 0xc2, 0xab, 0x79, 0x56, 0x09, 0xfc, 0x4a, 0x42, 0xab, 0x5f, 0xc6, 0x67, 0x45, 0x69, 0x47, + 0x2e, 0xb1, 0x84, 0xae, 0xc3, 0xa2, 0x37, 0xe9, 0xf3, 0x67, 0x5a, 0xf1, 0x04, 0x25, 0x3a, 0xa3, + 0x28, 0x96, 0x6c, 0xdb, 0x7e, 0x91, 0xac, 0x93, 0xb2, 0xb6, 0x5c, 0x79, 0xb3, 0x29, 0xd4, 0x67, + 0x52, 0xcd, 0x26, 0x0a, 0xce, 0xd8, 0xb1, 0xad, 0x01, 0x4d, 0x0d, 0xb5, 0xc5, 0xb8, 0x86, 0x5b, + 0x0c, 0x94, 0xc8, 0x2d, 0xc6, 0x67, 0x60, 0x55, 0xf0, 0xb1, 0x1f, 0xf1, 0x34, 0xf7, 0xcc, 0x52, + 0x87, 0x9b, 0xa8, 0x9c, 0x22, 0xdf, 0x26, 0x2c, 0x91, 0x01, 0xfa, 0x3c, 0x72, 0xbc, 0x81, 0x42, + 0x4c, 0xc3, 0xa7, 0x2a, 0x2d, 0xc3, 0xfa, 0x76, 0xb2, 0x28, 0x22, 0x52, 0xc9, 0xd6, 0x1a, 0x28, + 0x28, 0xe9, 0x1f, 0xee, 0x0b, 0x28, 0x4c, 0xe9, 0xdf, 0x05, 0xda, 0x59, 0x89, 0xcf, 0x20, 0xb3, + 0xd8, 0xd5, 0x07, 0xb4, 0xd2, 0x29, 0x17, 0xfe, 0x48, 0x05, 0x0b, 0x5d, 0xd8, 0xf1, 0x27, 0xc7, + 0x9e, 0x18, 0xbb, 0x47, 0xa3, 0x24, 0x6f, 0xdd, 0xcc, 0xc4, 0xf8, 0x88, 0x96, 0x85, 0x92, 0xb7, + 0x3a, 0xb9, 0xf9, 0x71, 0x3d, 0xde, 0x0b, 0xab, 0x6d, 0xcc, 0xfe, 0x1c, 0xed, 0x86, 0xdb, 0x3f, + 0xae, 0x80, 0x79, 0xa5, 0xa5, 0xf1, 0xbf, 0x96, 0x21, 0xdb, 0x77, 0xe1, 0x8e, 0xaa, 0x0c, 0xe4, + 0x7e, 0x6f, 0x86, 0x72, 0xae, 0x3e, 0xfc, 0xcd, 0x80, 0xb5, 0x92, 0x7c, 0x10, 0xa7, 0xd6, 0xf3, + 0x9c, 0xda, 0x9f, 0x4b, 0xb3, 0xea, 0x0e, 0x2c, 0x93, 0x82, 0x4c, 0x8c, 0x17, 0x6f, 0x38, 0xf7, + 0xe7, 0xec, 0x25, 0x94, 0x3f, 0x44, 0xf1, 0x45, 0x4a, 0x81, 0x4e, 0xbf, 0x9a, 0x4e, 0xbf, 0xed, + 0x7b, 0xb0, 0x55, 0x1e, 0x1f, 0xba, 0x9d, 0x04, 0xf8, 0x73, 0xaa, 0x29, 0x4f, 0xde, 0x9d, 0xba, + 0xe1, 0xd5, 0x6f, 0x60, 0x43, 0xf5, 0x99, 0x14, 0x63, 0x50, 0x70, 0x06, 0x63, 0xe4, 0x4b, 0x6a, + 0xbd, 0x9a, 0x11, 0xa6, 0xae, 0x04, 0x12, 0xdb, 0x97, 0x61, 0x9e, 0x4f, 0xfa, 0x6a, 0xc8, 0x54, + 0x43, 0x26, 0x9f, 0xf4, 0xe5, 0xc0, 0x2d, 0x30, 0x71, 0xe9, 0xa4, 0x56, 0x5a, 0x77, 0x87, 0xc6, + 0x0a, 0x16, 0xef, 0x7a, 0xc1, 0xe2, 0x6d, 0x79, 0x58, 0x4c, 0x62, 0x88, 0x66, 0xc5, 0x84, 0xa2, + 0x49, 0x15, 0x13, 0x94, 0x48, 0x0f, 0xce, 0x2a, 0x10, 0x78, 0x02, 0x64, 0xe7, 0xd3, 0x6d, 0xfd, + 0x94, 0x76, 0xc9, 0x92, 0x13, 0xa7, 0x07, 0x6e, 0x34, 0x3b, 0x53, 0x38, 0x73, 0x1d, 0xcd, 0xa9, + 0x77, 0x8a, 0x1a, 0xb0, 0x40, 0x2a, 0xf0, 0x70, 0xd6, 0x80, 0x91, 0xa0, 0xfd, 0x1d, 0xe3, 0x8a, + 0x6b, 0xc5, 0x26, 0x2c, 0xd1, 0x21, 0x12, 0xe5, 0x98, 0x3a, 0x69, 0x14, 0xd2, 0xb4, 0x8c, 0xdb, + 0x40, 0x55, 0xbf, 0x1c, 0xe5, 0x5b, 0x6e, 0x3e, 0xbe, 0x83, 0x7d, 0x46, 0x3a, 0xde, 0xcb, 0x5b, + 0xad, 0xad, 0xbf, 0x1b, 0xd0, 0x9e, 0xdd, 0x29, 0x3c, 0x99, 0x1e, 0x8d, 0xfd, 0xfe, 0x74, 0xc4, + 0xaf, 0xfc, 0x5c, 0x8e, 0x48, 0x98, 0x3a, 0x97, 0x43, 0xc9, 0x59, 0xe7, 0x72, 0x37, 0x61, 0x21, + 0x8c, 0x1d, 0x8c, 0x8f, 0xe5, 0x12, 0x41, 0x01, 0xb3, 0xcd, 0x22, 0x66, 0xff, 0xc9, 0xc0, 0x6d, + 0x56, 0x2e, 0xe0, 0x0f, 0xe6, 0x90, 0x28, 0xb7, 0x8b, 0xac, 0xe5, 0x76, 0x91, 0x6f, 0xd5, 0xea, + 0xd5, 0x66, 0xcd, 0xce, 0x6f, 0x4c, 0x1f, 0xfc, 0x6e, 0x11, 0x9a, 0x89, 0x3f, 0x4f, 0xb8, 0x38, + 0xf1, 0x7a, 0x9c, 0x7d, 0x15, 0x9a, 0xd9, 0x7b, 0x35, 0xb6, 0xae, 0x75, 0x90, 0xf9, 0x4b, 0xc2, + 0xf6, 0x46, 0xb9, 0x02, 0xe2, 0x62, 0x99, 0xff, 0xfc, 0xd1, 0x56, 0xa5, 0x6e, 0xc4, 0xe6, 0xd3, + 0x77, 0x50, 0xba, 0xf9, 0x82, 0xfb, 0x35, 0xdd, 0x7c, 0xd1, 0xf5, 0x55, 0xd6, 0x7c, 0xfa, 0x1e, + 0x48, 0x37, 0x5f, 0x70, 0x67, 0xa5, 0x9b, 0x2f, 0xba, 0x42, 0x4a, 0xcc, 0x1f, 0xc2, 0x92, 0x76, + 0x05, 0xc1, 0x6e, 0xe6, 0x03, 0x9f, 0xdd, 0xb2, 0xb4, 0xd7, 0x4a, 0x46, 0x8b, 0xad, 0x26, 0x57, + 0x3d, 0xba, 0xd5, 0xec, 0x55, 0x94, 0x6e, 0x35, 0x77, 0x3f, 0x94, 0x58, 0xfd, 0x12, 0x2c, 0xeb, + 0xa7, 0xc9, 0x4c, 0x7b, 0x31, 0x77, 0x88, 0xde, 0xfe, 0x50, 0xd9, 0x70, 0xc6, 0xf0, 0xd7, 0x60, + 0x25, 0x73, 0x69, 0xc0, 0xf2, 0xaf, 0xea, 0x08, 0xaf, 0x97, 0x8e, 0xeb, 0xb6, 0xb7, 0x8c, 0xd7, + 0x0d, 0xf6, 0x05, 0x68, 0xa4, 0xcf, 0x5f, 0xd9, 0x8d, 0xf4, 0xcb, 0x99, 0x83, 0xe3, 0xf6, 0xcd, + 0xe2, 0xc1, 0x62, 0x2c, 0x66, 0x07, 0x81, 0x3a, 0x16, 0xb9, 0x13, 0x56, 0x1d, 0x8b, 0xfc, 0xf9, + 0x61, 0x62, 0xf8, 0x1d, 0xc4, 0x22, 0xb5, 0x19, 0xd2, 0xb1, 0xc8, 0x6f, 0xd7, 0x74, 0x2c, 0x0a, + 0x76, 0x51, 0x33, 0x2c, 0xd8, 0xdb, 0x00, 0xb3, 0x56, 0x8a, 0xbd, 0x92, 0x6f, 0x77, 0x63, 0x9b, + 0xed, 0xa2, 0x21, 0x32, 0xb7, 0x80, 0xe6, 0xbe, 0x5f, 0x31, 0x58, 0x80, 0x4b, 0x65, 0xae, 0x35, + 0x63, 0xb7, 0xce, 0xd3, 0x49, 0xb7, 0x6f, 0xff, 0x1b, 0xad, 0x82, 0x5c, 0x7e, 0x2e, 0x8e, 0xe0, + 0x84, 0x8b, 0x28, 0x1b, 0x41, 0xea, 0xec, 0x32, 0x1b, 0x41, 0xfa, 0x64, 0x2e, 0x01, 0x9b, 0x8c, + 0x61, 0x57, 0xa1, 0x1b, 0xd3, 0x9a, 0x31, 0xdd, 0x98, 0xde, 0x84, 0x24, 0xc6, 0xbe, 0x8c, 0x94, + 0x98, 0xad, 0x8b, 0x3a, 0x25, 0x72, 0xfd, 0x81, 0x4e, 0x89, 0xfc, 0x72, 0x9a, 0x4a, 0xdb, 0x31, + 0xde, 0x71, 0x64, 0x96, 0x08, 0x66, 0xe5, 0xab, 0x58, 0x76, 0xc1, 0x6c, 0x6f, 0x9e, 0xa9, 0xa3, + 0x7f, 0x69, 0xfb, 0xf5, 0xaf, 0x48, 0xed, 0x91, 0x7b, 0xd4, 0xe9, 0xf9, 0xe3, 0xfb, 0xf8, 0xf3, + 0x35, 0x5f, 0x0c, 0xee, 0xa3, 0x8d, 0xd7, 0xd4, 0x9f, 0x3b, 0xee, 0x0f, 0x7c, 0x7a, 0x0e, 0x8e, + 0x8e, 0x4c, 0x25, 0xfa, 0xd8, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x2b, 0x37, 0x92, 0x19, + 0x22, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/protolist.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/protolist.go new file mode 100644 index 000000000..c85049d62 --- /dev/null +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/protolist.go @@ -0,0 +1,24 @@ +package gitalypb + +// Code generated by protoc-gen-gitaly. DO NOT EDIT + +// GitalyProtos is a list of gitaly protobuf files +var GitalyProtos = []string{ + "blob.proto", + "cleanup.proto", + "commit.proto", + "conflicts.proto", + "diff.proto", + "namespace.proto", + "objectpool.proto", + "operations.proto", + "ref.proto", + "remote.proto", + "repository-service.proto", + "server.proto", + "shared.proto", + "smarthttp.proto", + "ssh.proto", + "storage.proto", + "wiki.proto", +} diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/ref.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/ref.pb.go index 8f5d8a870..5f2e608a6 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/ref.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/ref.pb.go @@ -47,7 +47,7 @@ func (x FindLocalBranchesRequest_SortBy) String() string { return proto.EnumName(FindLocalBranchesRequest_SortBy_name, int32(x)) } func (FindLocalBranchesRequest_SortBy) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{10, 0} + return fileDescriptor_ref_3e762b6865bf84bd, []int{10, 0} } type CreateBranchResponse_Status int32 @@ -76,7 +76,7 @@ func (x CreateBranchResponse_Status) String() string { return proto.EnumName(CreateBranchResponse_Status_name, int32(x)) } func (CreateBranchResponse_Status) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{21, 0} + return fileDescriptor_ref_3e762b6865bf84bd, []int{21, 0} } type ListNewBlobsRequest struct { @@ -94,7 +94,7 @@ func (m *ListNewBlobsRequest) Reset() { *m = ListNewBlobsRequest{} } func (m *ListNewBlobsRequest) String() string { return proto.CompactTextString(m) } func (*ListNewBlobsRequest) ProtoMessage() {} func (*ListNewBlobsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{0} + return fileDescriptor_ref_3e762b6865bf84bd, []int{0} } func (m *ListNewBlobsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListNewBlobsRequest.Unmarshal(m, b) @@ -146,7 +146,7 @@ func (m *ListNewBlobsResponse) Reset() { *m = ListNewBlobsResponse{} } func (m *ListNewBlobsResponse) String() string { return proto.CompactTextString(m) } func (*ListNewBlobsResponse) ProtoMessage() {} func (*ListNewBlobsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{1} + return fileDescriptor_ref_3e762b6865bf84bd, []int{1} } func (m *ListNewBlobsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListNewBlobsResponse.Unmarshal(m, b) @@ -184,7 +184,7 @@ func (m *FindDefaultBranchNameRequest) Reset() { *m = FindDefaultBranchN func (m *FindDefaultBranchNameRequest) String() string { return proto.CompactTextString(m) } func (*FindDefaultBranchNameRequest) ProtoMessage() {} func (*FindDefaultBranchNameRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{2} + return fileDescriptor_ref_3e762b6865bf84bd, []int{2} } func (m *FindDefaultBranchNameRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindDefaultBranchNameRequest.Unmarshal(m, b) @@ -222,7 +222,7 @@ func (m *FindDefaultBranchNameResponse) Reset() { *m = FindDefaultBranch func (m *FindDefaultBranchNameResponse) String() string { return proto.CompactTextString(m) } func (*FindDefaultBranchNameResponse) ProtoMessage() {} func (*FindDefaultBranchNameResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{3} + return fileDescriptor_ref_3e762b6865bf84bd, []int{3} } func (m *FindDefaultBranchNameResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindDefaultBranchNameResponse.Unmarshal(m, b) @@ -260,7 +260,7 @@ func (m *FindAllBranchNamesRequest) Reset() { *m = FindAllBranchNamesReq func (m *FindAllBranchNamesRequest) String() string { return proto.CompactTextString(m) } func (*FindAllBranchNamesRequest) ProtoMessage() {} func (*FindAllBranchNamesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{4} + return fileDescriptor_ref_3e762b6865bf84bd, []int{4} } func (m *FindAllBranchNamesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllBranchNamesRequest.Unmarshal(m, b) @@ -298,7 +298,7 @@ func (m *FindAllBranchNamesResponse) Reset() { *m = FindAllBranchNamesRe func (m *FindAllBranchNamesResponse) String() string { return proto.CompactTextString(m) } func (*FindAllBranchNamesResponse) ProtoMessage() {} func (*FindAllBranchNamesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{5} + return fileDescriptor_ref_3e762b6865bf84bd, []int{5} } func (m *FindAllBranchNamesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllBranchNamesResponse.Unmarshal(m, b) @@ -336,7 +336,7 @@ func (m *FindAllTagNamesRequest) Reset() { *m = FindAllTagNamesRequest{} func (m *FindAllTagNamesRequest) String() string { return proto.CompactTextString(m) } func (*FindAllTagNamesRequest) ProtoMessage() {} func (*FindAllTagNamesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{6} + return fileDescriptor_ref_3e762b6865bf84bd, []int{6} } func (m *FindAllTagNamesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllTagNamesRequest.Unmarshal(m, b) @@ -374,7 +374,7 @@ func (m *FindAllTagNamesResponse) Reset() { *m = FindAllTagNamesResponse func (m *FindAllTagNamesResponse) String() string { return proto.CompactTextString(m) } func (*FindAllTagNamesResponse) ProtoMessage() {} func (*FindAllTagNamesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{7} + return fileDescriptor_ref_3e762b6865bf84bd, []int{7} } func (m *FindAllTagNamesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllTagNamesResponse.Unmarshal(m, b) @@ -416,7 +416,7 @@ func (m *FindRefNameRequest) Reset() { *m = FindRefNameRequest{} } func (m *FindRefNameRequest) String() string { return proto.CompactTextString(m) } func (*FindRefNameRequest) ProtoMessage() {} func (*FindRefNameRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{8} + return fileDescriptor_ref_3e762b6865bf84bd, []int{8} } func (m *FindRefNameRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindRefNameRequest.Unmarshal(m, b) @@ -469,7 +469,7 @@ func (m *FindRefNameResponse) Reset() { *m = FindRefNameResponse{} } func (m *FindRefNameResponse) String() string { return proto.CompactTextString(m) } func (*FindRefNameResponse) ProtoMessage() {} func (*FindRefNameResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{9} + return fileDescriptor_ref_3e762b6865bf84bd, []int{9} } func (m *FindRefNameResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindRefNameResponse.Unmarshal(m, b) @@ -508,7 +508,7 @@ func (m *FindLocalBranchesRequest) Reset() { *m = FindLocalBranchesReque func (m *FindLocalBranchesRequest) String() string { return proto.CompactTextString(m) } func (*FindLocalBranchesRequest) ProtoMessage() {} func (*FindLocalBranchesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{10} + return fileDescriptor_ref_3e762b6865bf84bd, []int{10} } func (m *FindLocalBranchesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindLocalBranchesRequest.Unmarshal(m, b) @@ -553,7 +553,7 @@ func (m *FindLocalBranchesResponse) Reset() { *m = FindLocalBranchesResp func (m *FindLocalBranchesResponse) String() string { return proto.CompactTextString(m) } func (*FindLocalBranchesResponse) ProtoMessage() {} func (*FindLocalBranchesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{11} + return fileDescriptor_ref_3e762b6865bf84bd, []int{11} } func (m *FindLocalBranchesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindLocalBranchesResponse.Unmarshal(m, b) @@ -595,7 +595,7 @@ func (m *FindLocalBranchResponse) Reset() { *m = FindLocalBranchResponse func (m *FindLocalBranchResponse) String() string { return proto.CompactTextString(m) } func (*FindLocalBranchResponse) ProtoMessage() {} func (*FindLocalBranchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{12} + return fileDescriptor_ref_3e762b6865bf84bd, []int{12} } func (m *FindLocalBranchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindLocalBranchResponse.Unmarshal(m, b) @@ -663,7 +663,7 @@ func (m *FindLocalBranchCommitAuthor) Reset() { *m = FindLocalBranchComm func (m *FindLocalBranchCommitAuthor) String() string { return proto.CompactTextString(m) } func (*FindLocalBranchCommitAuthor) ProtoMessage() {} func (*FindLocalBranchCommitAuthor) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{13} + return fileDescriptor_ref_3e762b6865bf84bd, []int{13} } func (m *FindLocalBranchCommitAuthor) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindLocalBranchCommitAuthor.Unmarshal(m, b) @@ -720,7 +720,7 @@ func (m *FindAllBranchesRequest) Reset() { *m = FindAllBranchesRequest{} func (m *FindAllBranchesRequest) String() string { return proto.CompactTextString(m) } func (*FindAllBranchesRequest) ProtoMessage() {} func (*FindAllBranchesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{14} + return fileDescriptor_ref_3e762b6865bf84bd, []int{14} } func (m *FindAllBranchesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllBranchesRequest.Unmarshal(m, b) @@ -772,7 +772,7 @@ func (m *FindAllBranchesResponse) Reset() { *m = FindAllBranchesResponse func (m *FindAllBranchesResponse) String() string { return proto.CompactTextString(m) } func (*FindAllBranchesResponse) ProtoMessage() {} func (*FindAllBranchesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{15} + return fileDescriptor_ref_3e762b6865bf84bd, []int{15} } func (m *FindAllBranchesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllBranchesResponse.Unmarshal(m, b) @@ -811,7 +811,7 @@ func (m *FindAllBranchesResponse_Branch) Reset() { *m = FindAllBranchesR func (m *FindAllBranchesResponse_Branch) String() string { return proto.CompactTextString(m) } func (*FindAllBranchesResponse_Branch) ProtoMessage() {} func (*FindAllBranchesResponse_Branch) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{15, 0} + return fileDescriptor_ref_3e762b6865bf84bd, []int{15, 0} } func (m *FindAllBranchesResponse_Branch) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllBranchesResponse_Branch.Unmarshal(m, b) @@ -856,7 +856,7 @@ func (m *FindAllTagsRequest) Reset() { *m = FindAllTagsRequest{} } func (m *FindAllTagsRequest) String() string { return proto.CompactTextString(m) } func (*FindAllTagsRequest) ProtoMessage() {} func (*FindAllTagsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{16} + return fileDescriptor_ref_3e762b6865bf84bd, []int{16} } func (m *FindAllTagsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllTagsRequest.Unmarshal(m, b) @@ -894,7 +894,7 @@ func (m *FindAllTagsResponse) Reset() { *m = FindAllTagsResponse{} } func (m *FindAllTagsResponse) String() string { return proto.CompactTextString(m) } func (*FindAllTagsResponse) ProtoMessage() {} func (*FindAllTagsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{17} + return fileDescriptor_ref_3e762b6865bf84bd, []int{17} } func (m *FindAllTagsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllTagsResponse.Unmarshal(m, b) @@ -934,7 +934,7 @@ func (m *RefExistsRequest) Reset() { *m = RefExistsRequest{} } func (m *RefExistsRequest) String() string { return proto.CompactTextString(m) } func (*RefExistsRequest) ProtoMessage() {} func (*RefExistsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{18} + return fileDescriptor_ref_3e762b6865bf84bd, []int{18} } func (m *RefExistsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RefExistsRequest.Unmarshal(m, b) @@ -979,7 +979,7 @@ func (m *RefExistsResponse) Reset() { *m = RefExistsResponse{} } func (m *RefExistsResponse) String() string { return proto.CompactTextString(m) } func (*RefExistsResponse) ProtoMessage() {} func (*RefExistsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{19} + return fileDescriptor_ref_3e762b6865bf84bd, []int{19} } func (m *RefExistsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RefExistsResponse.Unmarshal(m, b) @@ -1019,7 +1019,7 @@ func (m *CreateBranchRequest) Reset() { *m = CreateBranchRequest{} } func (m *CreateBranchRequest) String() string { return proto.CompactTextString(m) } func (*CreateBranchRequest) ProtoMessage() {} func (*CreateBranchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{20} + return fileDescriptor_ref_3e762b6865bf84bd, []int{20} } func (m *CreateBranchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateBranchRequest.Unmarshal(m, b) @@ -1072,7 +1072,7 @@ func (m *CreateBranchResponse) Reset() { *m = CreateBranchResponse{} } func (m *CreateBranchResponse) String() string { return proto.CompactTextString(m) } func (*CreateBranchResponse) ProtoMessage() {} func (*CreateBranchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{21} + return fileDescriptor_ref_3e762b6865bf84bd, []int{21} } func (m *CreateBranchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateBranchResponse.Unmarshal(m, b) @@ -1118,7 +1118,7 @@ func (m *DeleteBranchRequest) Reset() { *m = DeleteBranchRequest{} } func (m *DeleteBranchRequest) String() string { return proto.CompactTextString(m) } func (*DeleteBranchRequest) ProtoMessage() {} func (*DeleteBranchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{22} + return fileDescriptor_ref_3e762b6865bf84bd, []int{22} } func (m *DeleteBranchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteBranchRequest.Unmarshal(m, b) @@ -1163,7 +1163,7 @@ func (m *DeleteBranchResponse) Reset() { *m = DeleteBranchResponse{} } func (m *DeleteBranchResponse) String() string { return proto.CompactTextString(m) } func (*DeleteBranchResponse) ProtoMessage() {} func (*DeleteBranchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{23} + return fileDescriptor_ref_3e762b6865bf84bd, []int{23} } func (m *DeleteBranchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteBranchResponse.Unmarshal(m, b) @@ -1196,7 +1196,7 @@ func (m *FindBranchRequest) Reset() { *m = FindBranchRequest{} } func (m *FindBranchRequest) String() string { return proto.CompactTextString(m) } func (*FindBranchRequest) ProtoMessage() {} func (*FindBranchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{24} + return fileDescriptor_ref_3e762b6865bf84bd, []int{24} } func (m *FindBranchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindBranchRequest.Unmarshal(m, b) @@ -1241,7 +1241,7 @@ func (m *FindBranchResponse) Reset() { *m = FindBranchResponse{} } func (m *FindBranchResponse) String() string { return proto.CompactTextString(m) } func (*FindBranchResponse) ProtoMessage() {} func (*FindBranchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{25} + return fileDescriptor_ref_3e762b6865bf84bd, []int{25} } func (m *FindBranchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindBranchResponse.Unmarshal(m, b) @@ -1282,7 +1282,7 @@ func (m *DeleteRefsRequest) Reset() { *m = DeleteRefsRequest{} } func (m *DeleteRefsRequest) String() string { return proto.CompactTextString(m) } func (*DeleteRefsRequest) ProtoMessage() {} func (*DeleteRefsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{26} + return fileDescriptor_ref_3e762b6865bf84bd, []int{26} } func (m *DeleteRefsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteRefsRequest.Unmarshal(m, b) @@ -1334,7 +1334,7 @@ func (m *DeleteRefsResponse) Reset() { *m = DeleteRefsResponse{} } func (m *DeleteRefsResponse) String() string { return proto.CompactTextString(m) } func (*DeleteRefsResponse) ProtoMessage() {} func (*DeleteRefsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{27} + return fileDescriptor_ref_3e762b6865bf84bd, []int{27} } func (m *DeleteRefsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteRefsResponse.Unmarshal(m, b) @@ -1378,7 +1378,7 @@ func (m *ListBranchNamesContainingCommitRequest) Reset() { func (m *ListBranchNamesContainingCommitRequest) String() string { return proto.CompactTextString(m) } func (*ListBranchNamesContainingCommitRequest) ProtoMessage() {} func (*ListBranchNamesContainingCommitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{28} + return fileDescriptor_ref_3e762b6865bf84bd, []int{28} } func (m *ListBranchNamesContainingCommitRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListBranchNamesContainingCommitRequest.Unmarshal(m, b) @@ -1432,7 +1432,7 @@ func (m *ListBranchNamesContainingCommitResponse) Reset() { func (m *ListBranchNamesContainingCommitResponse) String() string { return proto.CompactTextString(m) } func (*ListBranchNamesContainingCommitResponse) ProtoMessage() {} func (*ListBranchNamesContainingCommitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{29} + return fileDescriptor_ref_3e762b6865bf84bd, []int{29} } func (m *ListBranchNamesContainingCommitResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListBranchNamesContainingCommitResponse.Unmarshal(m, b) @@ -1474,7 +1474,7 @@ func (m *ListTagNamesContainingCommitRequest) Reset() { *m = ListTagName func (m *ListTagNamesContainingCommitRequest) String() string { return proto.CompactTextString(m) } func (*ListTagNamesContainingCommitRequest) ProtoMessage() {} func (*ListTagNamesContainingCommitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{30} + return fileDescriptor_ref_3e762b6865bf84bd, []int{30} } func (m *ListTagNamesContainingCommitRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListTagNamesContainingCommitRequest.Unmarshal(m, b) @@ -1526,7 +1526,7 @@ func (m *ListTagNamesContainingCommitResponse) Reset() { *m = ListTagNam func (m *ListTagNamesContainingCommitResponse) String() string { return proto.CompactTextString(m) } func (*ListTagNamesContainingCommitResponse) ProtoMessage() {} func (*ListTagNamesContainingCommitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{31} + return fileDescriptor_ref_3e762b6865bf84bd, []int{31} } func (m *ListTagNamesContainingCommitResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListTagNamesContainingCommitResponse.Unmarshal(m, b) @@ -1565,7 +1565,7 @@ func (m *GetTagMessagesRequest) Reset() { *m = GetTagMessagesRequest{} } func (m *GetTagMessagesRequest) String() string { return proto.CompactTextString(m) } func (*GetTagMessagesRequest) ProtoMessage() {} func (*GetTagMessagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{32} + return fileDescriptor_ref_3e762b6865bf84bd, []int{32} } func (m *GetTagMessagesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetTagMessagesRequest.Unmarshal(m, b) @@ -1612,7 +1612,7 @@ func (m *GetTagMessagesResponse) Reset() { *m = GetTagMessagesResponse{} func (m *GetTagMessagesResponse) String() string { return proto.CompactTextString(m) } func (*GetTagMessagesResponse) ProtoMessage() {} func (*GetTagMessagesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{33} + return fileDescriptor_ref_3e762b6865bf84bd, []int{33} } func (m *GetTagMessagesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetTagMessagesResponse.Unmarshal(m, b) @@ -1658,7 +1658,7 @@ func (m *ListNewCommitsRequest) Reset() { *m = ListNewCommitsRequest{} } func (m *ListNewCommitsRequest) String() string { return proto.CompactTextString(m) } func (*ListNewCommitsRequest) ProtoMessage() {} func (*ListNewCommitsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{34} + return fileDescriptor_ref_3e762b6865bf84bd, []int{34} } func (m *ListNewCommitsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListNewCommitsRequest.Unmarshal(m, b) @@ -1703,7 +1703,7 @@ func (m *ListNewCommitsResponse) Reset() { *m = ListNewCommitsResponse{} func (m *ListNewCommitsResponse) String() string { return proto.CompactTextString(m) } func (*ListNewCommitsResponse) ProtoMessage() {} func (*ListNewCommitsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{35} + return fileDescriptor_ref_3e762b6865bf84bd, []int{35} } func (m *ListNewCommitsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListNewCommitsResponse.Unmarshal(m, b) @@ -1742,7 +1742,7 @@ func (m *FindAllRemoteBranchesRequest) Reset() { *m = FindAllRemoteBranc func (m *FindAllRemoteBranchesRequest) String() string { return proto.CompactTextString(m) } func (*FindAllRemoteBranchesRequest) ProtoMessage() {} func (*FindAllRemoteBranchesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{36} + return fileDescriptor_ref_3e762b6865bf84bd, []int{36} } func (m *FindAllRemoteBranchesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllRemoteBranchesRequest.Unmarshal(m, b) @@ -1787,7 +1787,7 @@ func (m *FindAllRemoteBranchesResponse) Reset() { *m = FindAllRemoteBran func (m *FindAllRemoteBranchesResponse) String() string { return proto.CompactTextString(m) } func (*FindAllRemoteBranchesResponse) ProtoMessage() {} func (*FindAllRemoteBranchesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{37} + return fileDescriptor_ref_3e762b6865bf84bd, []int{37} } func (m *FindAllRemoteBranchesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindAllRemoteBranchesResponse.Unmarshal(m, b) @@ -1826,7 +1826,7 @@ func (m *PackRefsRequest) Reset() { *m = PackRefsRequest{} } func (m *PackRefsRequest) String() string { return proto.CompactTextString(m) } func (*PackRefsRequest) ProtoMessage() {} func (*PackRefsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{38} + return fileDescriptor_ref_3e762b6865bf84bd, []int{38} } func (m *PackRefsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PackRefsRequest.Unmarshal(m, b) @@ -1870,7 +1870,7 @@ func (m *PackRefsResponse) Reset() { *m = PackRefsResponse{} } func (m *PackRefsResponse) String() string { return proto.CompactTextString(m) } func (*PackRefsResponse) ProtoMessage() {} func (*PackRefsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ref_f2115157855aba0a, []int{39} + return fileDescriptor_ref_3e762b6865bf84bd, []int{39} } func (m *PackRefsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PackRefsResponse.Unmarshal(m, b) @@ -2906,112 +2906,111 @@ var _RefService_serviceDesc = grpc.ServiceDesc{ Metadata: "ref.proto", } -func init() { proto.RegisterFile("ref.proto", fileDescriptor_ref_f2115157855aba0a) } - -var fileDescriptor_ref_f2115157855aba0a = []byte{ - // 1652 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4b, 0x73, 0xdb, 0x46, - 0x12, 0x16, 0x28, 0x89, 0x22, 0x9b, 0x34, 0x05, 0x8d, 0x5e, 0x14, 0x64, 0x5b, 0x32, 0xfc, 0x92, - 0xd7, 0x36, 0xe5, 0xa5, 0x6b, 0xf7, 0xb0, 0xbb, 0x55, 0x5e, 0x4a, 0xe2, 0xda, 0xf2, 0x83, 0x52, - 0x0d, 0xb9, 0xb6, 0xd7, 0xb5, 0x55, 0x08, 0x48, 0x0e, 0x21, 0x24, 0x20, 0xc1, 0x00, 0x23, 0xcb, - 0xaa, 0x94, 0x6f, 0x89, 0x2f, 0x39, 0xb9, 0x2a, 0x55, 0xbe, 0xe5, 0x98, 0x3f, 0x93, 0x43, 0xfe, - 0x4b, 0x7e, 0x41, 0x0a, 0x33, 0x83, 0x17, 0x09, 0x52, 0xaa, 0x50, 0xae, 0xe4, 0x44, 0x4e, 0x4f, - 0xf7, 0x37, 0xdd, 0x3d, 0x3d, 0x3d, 0xdf, 0x00, 0xb2, 0x0e, 0xe9, 0x94, 0xfa, 0x8e, 0x4d, 0x6d, - 0x94, 0x36, 0x4c, 0xaa, 0x5b, 0xa7, 0x0a, 0x34, 0x2d, 0xbb, 0xc9, 0x65, 0x4a, 0xde, 0x3d, 0xd2, - 0x1d, 0xd2, 0x16, 0xa3, 0x0d, 0xc3, 0xb6, 0x0d, 0x8b, 0x6c, 0xb3, 0x51, 0xf3, 0xb8, 0xb3, 0x4d, - 0xcd, 0x2e, 0x71, 0xa9, 0xde, 0xed, 0x73, 0x05, 0xf5, 0x5b, 0x09, 0x16, 0x9f, 0x9b, 0x2e, 0xad, - 0x91, 0x93, 0x1d, 0xcb, 0x6e, 0xba, 0x98, 0x7c, 0x7d, 0x4c, 0x5c, 0x8a, 0xca, 0x00, 0x0e, 0xe9, - 0xdb, 0xae, 0x49, 0x6d, 0xe7, 0xb4, 0x28, 0x6d, 0x4a, 0x5b, 0xb9, 0x32, 0x2a, 0xf1, 0xf5, 0x4a, - 0x38, 0x98, 0xc1, 0x11, 0x2d, 0xb4, 0x0e, 0xd9, 0x96, 0xdd, 0xed, 0x9a, 0x54, 0x33, 0xdb, 0xc5, - 0xd4, 0xa6, 0xb4, 0x95, 0xc5, 0x19, 0x2e, 0xd8, 0x6f, 0xa3, 0x25, 0x98, 0xb5, 0xcc, 0xae, 0x49, - 0x8b, 0xd3, 0x9b, 0xd2, 0xd6, 0x25, 0xcc, 0x07, 0xff, 0x48, 0xff, 0xfa, 0x69, 0x2b, 0x95, 0x49, - 0xa9, 0xaf, 0x60, 0x29, 0xee, 0x85, 0xdb, 0xb7, 0x7b, 0x2e, 0x41, 0x8f, 0x40, 0xee, 0x91, 0x13, - 0xcd, 0x8b, 0x4f, 0xb3, 0x9b, 0x5f, 0x92, 0x16, 0x75, 0x8b, 0xd2, 0xe6, 0xf4, 0x56, 0xae, 0xbc, - 0xec, 0x3b, 0x23, 0x6c, 0x0e, 0xd8, 0x2c, 0x2e, 0xf4, 0xa2, 0x43, 0x57, 0x7d, 0x03, 0x97, 0xff, - 0x63, 0xf6, 0xda, 0x7b, 0xa4, 0xa3, 0x1f, 0x5b, 0x74, 0xc7, 0xd1, 0x7b, 0xad, 0xa3, 0x9a, 0xde, - 0x25, 0x13, 0xc4, 0x19, 0x38, 0xfd, 0x10, 0xae, 0x8c, 0xc0, 0x16, 0xde, 0x23, 0x98, 0xe9, 0xe9, - 0x5d, 0xc2, 0x60, 0xf3, 0x98, 0xfd, 0x57, 0x5f, 0xc1, 0x9a, 0x67, 0x54, 0xb1, 0xac, 0xd0, 0xc0, - 0xbd, 0x08, 0x6f, 0xca, 0xa0, 0x24, 0x01, 0x0b, 0x57, 0x96, 0x60, 0xd6, 0x5b, 0x9e, 0x67, 0x2f, - 0x8f, 0xf9, 0x40, 0x6d, 0xc0, 0x8a, 0xb0, 0x69, 0xe8, 0xc6, 0x85, 0x79, 0xb2, 0x0d, 0xab, 0x43, - 0xa8, 0x63, 0xdd, 0xf8, 0x4e, 0x02, 0xe4, 0x59, 0x60, 0xd2, 0x99, 0x70, 0x6f, 0xc6, 0xd7, 0xe0, - 0x0a, 0xa4, 0xfb, 0x0e, 0xe9, 0x98, 0xef, 0x58, 0x11, 0xe6, 0xb1, 0x18, 0x05, 0x8e, 0xdf, 0x81, - 0xc5, 0x98, 0x1b, 0x63, 0xb6, 0xf1, 0x17, 0x09, 0x8a, 0x9e, 0xee, 0x73, 0xbb, 0xa5, 0x8b, 0x84, - 0x4f, 0x94, 0x3c, 0xf4, 0x6f, 0x98, 0x73, 0x6d, 0x87, 0x6a, 0xcd, 0x53, 0xe6, 0x76, 0xa1, 0x7c, - 0xdb, 0x37, 0x18, 0xb5, 0x4c, 0xa9, 0x6e, 0x3b, 0x74, 0xe7, 0x14, 0xa7, 0x5d, 0xf6, 0xab, 0xfe, - 0x0d, 0xd2, 0x5c, 0x82, 0x32, 0x30, 0x53, 0xab, 0xbc, 0xa8, 0xca, 0x53, 0x68, 0x1e, 0x72, 0xff, - 0x3d, 0xdc, 0xab, 0x34, 0xaa, 0x7b, 0x5a, 0xa5, 0xbe, 0x2b, 0x4b, 0x48, 0x86, 0xbc, 0x2f, 0xd8, - 0xab, 0xd6, 0x77, 0xe5, 0x54, 0x10, 0xfc, 0x6b, 0x5e, 0x98, 0x03, 0x2b, 0x89, 0x14, 0xfc, 0x13, - 0x32, 0x4d, 0x21, 0x13, 0xe7, 0x6f, 0x63, 0x84, 0x7b, 0xbe, 0x09, 0x0e, 0x0c, 0xd4, 0xef, 0x53, - 0xbc, 0x20, 0x12, 0xb4, 0x92, 0x72, 0x3b, 0x7e, 0x0f, 0x6f, 0x42, 0x41, 0x4c, 0xba, 0xc7, 0xec, - 0x8c, 0x8b, 0xbd, 0xbc, 0xc4, 0xa5, 0x75, 0x2e, 0x44, 0x4f, 0x40, 0x08, 0x34, 0xfd, 0x98, 0x1e, - 0xd9, 0x4e, 0x71, 0x86, 0xed, 0xc2, 0xf5, 0x11, 0x5e, 0xef, 0x32, 0xdd, 0x0a, 0x53, 0xc5, 0xf9, - 0x56, 0x64, 0x84, 0x6a, 0x20, 0x0b, 0x24, 0xfe, 0x43, 0x89, 0x53, 0x9c, 0x3d, 0x3f, 0xd8, 0x3c, - 0xb7, 0xda, 0xf5, 0x6d, 0xd5, 0x13, 0x58, 0x1f, 0xa3, 0x9f, 0x98, 0x90, 0x25, 0x98, 0x25, 0x5d, - 0xdd, 0xb4, 0x58, 0x32, 0xf2, 0x98, 0x0f, 0x50, 0x09, 0x66, 0xda, 0x3a, 0x25, 0x2c, 0xfe, 0x5c, - 0x59, 0x29, 0xf1, 0x56, 0x5f, 0xf2, 0x5b, 0x7d, 0xa9, 0xe1, 0xb7, 0x7a, 0xcc, 0xf4, 0xd4, 0x1f, - 0xa5, 0xe0, 0xb4, 0x5f, 0x44, 0xc1, 0x6e, 0x40, 0xae, 0x4b, 0x1c, 0x83, 0xb4, 0x35, 0xbb, 0x67, - 0xf1, 0xa2, 0xcd, 0x60, 0xe0, 0xa2, 0x83, 0x9e, 0x75, 0x8a, 0x6e, 0xc3, 0xbc, 0x50, 0x08, 0x4a, - 0x67, 0x9a, 0x9d, 0xfa, 0x02, 0x17, 0xfb, 0x4e, 0x04, 0x15, 0xf8, 0x93, 0x14, 0x34, 0x8e, 0xa1, - 0x02, 0xdc, 0x19, 0x2a, 0xc0, 0x5b, 0xd1, 0xec, 0x27, 0x98, 0x94, 0x44, 0xa5, 0x05, 0x76, 0xca, - 0x63, 0x48, 0x73, 0x59, 0x62, 0x92, 0xef, 0x40, 0x9a, 0xea, 0x8e, 0x41, 0x28, 0x0b, 0x25, 0x57, - 0x5e, 0xf0, 0xf1, 0x1f, 0xfb, 0xbb, 0x87, 0x85, 0x82, 0x7a, 0xc8, 0xdb, 0x15, 0x6f, 0x70, 0x17, - 0xd2, 0x32, 0xff, 0xce, 0x3b, 0x4f, 0x80, 0x28, 0xa2, 0xde, 0x80, 0x19, 0xaa, 0x1b, 0x7e, 0xc4, - 0x39, 0x1f, 0xac, 0xa1, 0x1b, 0x98, 0x4d, 0xa8, 0x5f, 0x80, 0x8c, 0x49, 0xa7, 0xfa, 0xce, 0x74, - 0xe9, 0x44, 0x9b, 0x29, 0xc3, 0xb4, 0x43, 0x3a, 0xa2, 0xbe, 0xbc, 0xbf, 0x91, 0x9e, 0xb8, 0x10, - 0x59, 0x21, 0x6c, 0xe3, 0x6f, 0x75, 0xeb, 0x98, 0x27, 0x30, 0x83, 0xf9, 0x40, 0xfd, 0x20, 0xc1, - 0xe2, 0xae, 0x43, 0x74, 0x4a, 0xfc, 0x43, 0xfe, 0xfb, 0x1d, 0xf2, 0x77, 0x28, 0x15, 0xd9, 0xa1, - 0x0d, 0xc8, 0xb9, 0x54, 0x77, 0xa8, 0xd6, 0xb7, 0xcd, 0x9e, 0x7f, 0xee, 0x81, 0x89, 0x0e, 0x3d, - 0x49, 0xe0, 0xf3, 0xcf, 0x12, 0x2c, 0xc5, 0x1d, 0x09, 0xda, 0x58, 0xda, 0xa5, 0x3a, 0x3d, 0x76, - 0x99, 0x17, 0x85, 0xf0, 0x04, 0x27, 0x69, 0x97, 0xea, 0x4c, 0x15, 0x0b, 0x13, 0x74, 0x0b, 0xd2, - 0xbc, 0x94, 0x44, 0x81, 0x14, 0x7c, 0x63, 0x61, 0x26, 0x66, 0xd5, 0x1a, 0xa4, 0xb9, 0x25, 0x4a, - 0x43, 0xea, 0xe0, 0x99, 0x3c, 0x85, 0x0a, 0x00, 0x55, 0x8c, 0xb5, 0xea, 0xeb, 0xfd, 0x7a, 0xa3, - 0x2e, 0x4b, 0x5e, 0x57, 0xf6, 0xc6, 0xfb, 0xb5, 0x97, 0x95, 0xe7, 0xfb, 0x7b, 0x72, 0x0a, 0xad, - 0xc3, 0x6a, 0x44, 0xa0, 0xd5, 0x1b, 0x15, 0xdc, 0xd0, 0x0e, 0x0f, 0xf6, 0x6b, 0x0d, 0x79, 0x5a, - 0x25, 0xb0, 0xb8, 0x47, 0x2c, 0xf2, 0x99, 0xb2, 0x1a, 0x24, 0x6d, 0x05, 0x96, 0xe2, 0xcb, 0xf0, - 0x2c, 0xa8, 0x2d, 0x58, 0xf0, 0x4a, 0xf3, 0xf3, 0x2e, 0xfe, 0x2f, 0x7e, 0xa2, 0x06, 0xb6, 0x2b, - 0xcc, 0xb8, 0x34, 0x36, 0xe3, 0x1f, 0x25, 0x58, 0xe0, 0xbe, 0x63, 0xd2, 0x99, 0xe8, 0x1c, 0xdc, - 0x03, 0x44, 0xde, 0xb5, 0x48, 0x9f, 0x6a, 0x27, 0x26, 0x3d, 0xd2, 0x04, 0x5b, 0x48, 0xb1, 0xb6, - 0x25, 0xf3, 0x99, 0x57, 0x26, 0x3d, 0x3a, 0x64, 0x72, 0x2f, 0x22, 0x87, 0x74, 0xfc, 0xb6, 0xc6, - 0xfe, 0x07, 0x11, 0xfd, 0x15, 0x50, 0xd4, 0x25, 0x11, 0xd1, 0x3a, 0x64, 0x0d, 0x93, 0x6a, 0xc4, - 0x71, 0x6c, 0x87, 0xb9, 0x94, 0xc5, 0x19, 0xc3, 0xa4, 0x55, 0x6f, 0xac, 0x7e, 0x92, 0xe0, 0x96, - 0xc7, 0x82, 0x23, 0xfc, 0x6d, 0xd7, 0xee, 0x51, 0xdd, 0xec, 0x99, 0x3d, 0x43, 0xb4, 0xa0, 0x3f, - 0x86, 0x9e, 0x63, 0xb8, 0x7d, 0xa6, 0x63, 0x22, 0xc2, 0x6b, 0x90, 0xe7, 0xbb, 0xa2, 0x71, 0xa2, - 0xc7, 0x73, 0x97, 0x6b, 0x86, 0xa6, 0x4f, 0x67, 0x32, 0x92, 0x9c, 0x52, 0x7f, 0x90, 0xe0, 0xba, - 0x07, 0xea, 0x73, 0xc4, 0x3f, 0x49, 0xa8, 0xfb, 0x70, 0x63, 0xbc, 0x57, 0xe1, 0x4e, 0x52, 0xdd, - 0x88, 0x05, 0x99, 0xa1, 0xc2, 0x48, 0x44, 0xf8, 0x1e, 0x96, 0x1f, 0x13, 0x0f, 0xe9, 0x05, 0x71, - 0x5d, 0xdd, 0x98, 0xec, 0xba, 0x5d, 0x85, 0x39, 0x6f, 0x3d, 0xb3, 0xcd, 0xcb, 0x2d, 0xeb, 0x5d, - 0x46, 0xc6, 0x7e, 0x3b, 0x28, 0xb8, 0xa7, 0x33, 0x99, 0x94, 0x3c, 0x8d, 0x43, 0xa7, 0xd4, 0xff, - 0xc1, 0xca, 0xe0, 0xf2, 0xc2, 0xf7, 0x22, 0xcc, 0x75, 0xb9, 0x4c, 0x1c, 0x46, 0x7f, 0x88, 0x96, - 0xbd, 0x4b, 0xd0, 0x5b, 0x85, 0x25, 0x27, 0x8b, 0x67, 0xd9, 0x22, 0x3c, 0x1e, 0x16, 0x1f, 0xc3, - 0x56, 0xfb, 0xb0, 0x2c, 0x9e, 0x6b, 0x3c, 0x2b, 0x9f, 0xed, 0xd9, 0x18, 0x6c, 0x4b, 0x15, 0x56, - 0x06, 0x57, 0x14, 0xc1, 0xdc, 0x85, 0x39, 0xae, 0xed, 0x5f, 0x93, 0x09, 0x17, 0xb7, 0xaf, 0xa1, - 0x7e, 0xc3, 0x9f, 0x83, 0x15, 0xcb, 0xc2, 0xa4, 0x6b, 0xfb, 0xbd, 0x6e, 0x62, 0x22, 0xe4, 0x30, - 0x30, 0x2d, 0x68, 0x6f, 0x59, 0x4f, 0xc1, 0x13, 0xd5, 0xa2, 0x4d, 0xee, 0x19, 0x7f, 0x2f, 0x26, - 0x2c, 0x2e, 0x42, 0xf9, 0xcb, 0x10, 0xc9, 0x19, 0xec, 0x78, 0x21, 0xa9, 0x3e, 0x82, 0xf9, 0x43, - 0xbd, 0xf5, 0xd5, 0xa4, 0x0d, 0x6f, 0x0d, 0x32, 0xba, 0x65, 0x69, 0xac, 0x8d, 0x71, 0x0a, 0x37, - 0xa7, 0x7b, 0xfe, 0x05, 0x9d, 0x4c, 0x52, 0x11, 0xc8, 0xe1, 0x4a, 0xdc, 0xd3, 0xf2, 0xc7, 0x4b, - 0x00, 0x98, 0x74, 0xea, 0xc4, 0x79, 0x6b, 0xb6, 0x08, 0xea, 0xc0, 0x72, 0xe2, 0x4b, 0x18, 0xdd, - 0x88, 0x92, 0xb4, 0x51, 0x8f, 0x70, 0xe5, 0xe6, 0x19, 0x5a, 0xe2, 0x26, 0x9a, 0x42, 0x5a, 0x40, - 0xbc, 0x22, 0xad, 0x08, 0x5d, 0x4b, 0x64, 0x82, 0xd1, 0xe7, 0xac, 0xa2, 0x8e, 0x53, 0xf1, 0xe1, - 0x1f, 0x48, 0xe8, 0x25, 0xcc, 0x0f, 0x3c, 0x5d, 0xd1, 0xd5, 0x01, 0xd3, 0x81, 0x97, 0xb2, 0xb2, - 0x31, 0x72, 0x3e, 0x82, 0xfb, 0x04, 0x72, 0x91, 0x97, 0x25, 0x52, 0xa2, 0x36, 0xf1, 0x57, 0xaf, - 0xb2, 0x9e, 0x38, 0x17, 0xa4, 0xe0, 0xff, 0xfc, 0x3a, 0x8e, 0x3d, 0xd3, 0xd0, 0xe6, 0x59, 0x6f, - 0x45, 0xe5, 0xda, 0x18, 0x8d, 0xc4, 0xf8, 0x03, 0xec, 0xab, 0x23, 0x79, 0x76, 0x72, 0xfc, 0x89, - 0xb8, 0x4f, 0x79, 0xfc, 0x82, 0xdf, 0xc6, 0xe3, 0x8f, 0xd3, 0xe8, 0x78, 0xfc, 0x03, 0x84, 0x98, - 0x61, 0x1d, 0xf1, 0x62, 0x1b, 0x3a, 0x46, 0xf1, 0x62, 0x1b, 0x75, 0xc4, 0xe3, 0xc5, 0x36, 0xf2, - 0x2c, 0xb2, 0x95, 0x76, 0x20, 0x1b, 0x70, 0x5f, 0x54, 0x0c, 0x4f, 0x52, 0x9c, 0x70, 0x2b, 0x6b, - 0x09, 0x33, 0xc1, 0x7e, 0x3d, 0x83, 0x7c, 0x94, 0x5c, 0xa2, 0xf5, 0x64, 0xca, 0xc9, 0x91, 0x2e, - 0x8f, 0xe3, 0xa3, 0x1c, 0x2c, 0xca, 0xd1, 0x42, 0xb0, 0x04, 0x82, 0x18, 0x82, 0x25, 0xd2, 0xba, - 0x29, 0x54, 0x05, 0x08, 0x39, 0x17, 0x5a, 0x8b, 0xa6, 0x25, 0x0e, 0xa4, 0x24, 0x4d, 0x45, 0x61, - 0x42, 0xa2, 0x13, 0xc2, 0x0c, 0xf1, 0xb1, 0x10, 0x66, 0x98, 0x17, 0xa9, 0x53, 0xe8, 0x83, 0x04, - 0x1b, 0x67, 0x70, 0x0c, 0x54, 0xf2, 0x11, 0xce, 0xc7, 0x92, 0x94, 0xed, 0x73, 0xeb, 0x47, 0x36, - 0xfd, 0x3d, 0x5c, 0x1e, 0x47, 0x00, 0xd0, 0xdd, 0x28, 0xe8, 0x19, 0xe4, 0x45, 0xb9, 0x77, 0x3e, - 0xe5, 0xc8, 0xf2, 0x75, 0x28, 0xc4, 0x6f, 0x6d, 0x74, 0x25, 0xb8, 0xcf, 0x92, 0xc8, 0x84, 0x72, - 0x75, 0xd4, 0x74, 0x1c, 0x34, 0x7e, 0x7b, 0x86, 0xa0, 0x89, 0xf7, 0x78, 0x08, 0x9a, 0x7c, 0xe9, - 0x32, 0xd0, 0x17, 0x90, 0x8f, 0x7e, 0xb3, 0x0d, 0x8b, 0x31, 0xe1, 0x7b, 0x72, 0x58, 0x8c, 0x49, - 0x9f, 0x79, 0x19, 0xdc, 0x23, 0xc8, 0xf8, 0xd7, 0x0c, 0x5a, 0xf5, 0xb5, 0x07, 0xae, 0x38, 0xa5, - 0x38, 0x3c, 0xe1, 0x43, 0xec, 0x3c, 0x78, 0xe3, 0x4d, 0x5a, 0x7a, 0xb3, 0xd4, 0xb2, 0xbb, 0xdb, - 0xfc, 0xef, 0x7d, 0xdb, 0x31, 0xb6, 0xb9, 0xc9, 0x7d, 0xf6, 0x61, 0x64, 0xdb, 0xb0, 0xc5, 0xb8, - 0xdf, 0x6c, 0xa6, 0x99, 0xe8, 0xe1, 0x6f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x3a, 0xaa, 0x8a, 0xcf, - 0x53, 0x17, 0x00, 0x00, +func init() { proto.RegisterFile("ref.proto", fileDescriptor_ref_3e762b6865bf84bd) } + +var fileDescriptor_ref_3e762b6865bf84bd = []byte{ + // 1635 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x5b, 0x73, 0xdb, 0xb8, + 0x15, 0x0e, 0x65, 0x5b, 0x96, 0x8e, 0x14, 0x99, 0x86, 0x6f, 0x32, 0x9d, 0xc4, 0x0e, 0x72, 0x73, + 0x9a, 0x44, 0x4e, 0x95, 0x69, 0x5f, 0xda, 0x99, 0x56, 0xb6, 0xd5, 0xc4, 0xb5, 0x23, 0xbb, 0x90, + 0xda, 0x24, 0xbd, 0x0c, 0x4b, 0x49, 0x10, 0xcd, 0x96, 0x12, 0x55, 0x12, 0x8a, 0xe3, 0x99, 0xb6, + 0x2f, 0xed, 0x4b, 0xa7, 0x99, 0xd9, 0xb7, 0xdd, 0x7f, 0xb0, 0x7f, 0x65, 0x1f, 0xf6, 0x1f, 0xed, + 0xd3, 0x0e, 0x01, 0x50, 0x24, 0x25, 0x4a, 0xf6, 0xac, 0x36, 0xbb, 0x4f, 0x12, 0x80, 0x73, 0xbe, + 0x73, 0xc1, 0xc1, 0xc1, 0x07, 0x42, 0xd6, 0xa5, 0x9d, 0x52, 0xdf, 0x75, 0x98, 0x83, 0xd2, 0xa6, + 0xc5, 0x0c, 0xfb, 0x52, 0x83, 0xa6, 0xed, 0x34, 0xc5, 0x9c, 0x96, 0xf7, 0xce, 0x0d, 0x97, 0xb6, + 0xe5, 0x68, 0xdb, 0x74, 0x1c, 0xd3, 0xa6, 0x7b, 0x7c, 0xd4, 0x1c, 0x74, 0xf6, 0x98, 0xd5, 0xa5, + 0x1e, 0x33, 0xba, 0x7d, 0x21, 0x80, 0xff, 0x09, 0x2b, 0x27, 0x96, 0xc7, 0x6a, 0xf4, 0x62, 0xdf, + 0x76, 0x9a, 0x1e, 0xa1, 0xff, 0x18, 0x50, 0x8f, 0xa1, 0x32, 0x80, 0x4b, 0xfb, 0x8e, 0x67, 0x31, + 0xc7, 0xbd, 0x2c, 0x2a, 0x3b, 0xca, 0x6e, 0xae, 0x8c, 0x4a, 0xc2, 0x5c, 0x89, 0x0c, 0x57, 0x48, + 0x44, 0x0a, 0x6d, 0x41, 0xb6, 0xe5, 0x74, 0xbb, 0x16, 0xd3, 0xad, 0x76, 0x31, 0xb5, 0xa3, 0xec, + 0x66, 0x49, 0x46, 0x4c, 0x1c, 0xb5, 0xd1, 0x2a, 0x2c, 0xd8, 0x56, 0xd7, 0x62, 0xc5, 0xb9, 0x1d, + 0x65, 0xf7, 0x26, 0x11, 0x03, 0xfc, 0x06, 0x56, 0xe3, 0xd6, 0xbd, 0xbe, 0xd3, 0xf3, 0x28, 0xfa, + 0x15, 0xa8, 0x3d, 0x7a, 0xa1, 0xfb, 0x61, 0xe9, 0x4e, 0xf3, 0x6f, 0xb4, 0xc5, 0xbc, 0xa2, 0xb2, + 0x33, 0xb7, 0x9b, 0x2b, 0xaf, 0x05, 0x4e, 0x48, 0x9d, 0x53, 0xbe, 0x4a, 0x0a, 0xbd, 0xe8, 0xd0, + 0xc3, 0x04, 0x6e, 0xfd, 0xc6, 0xea, 0xb5, 0x0f, 0x69, 0xc7, 0x18, 0xd8, 0x6c, 0xdf, 0x35, 0x7a, + 0xad, 0xf3, 0x9a, 0xd1, 0xa5, 0x33, 0xc4, 0x87, 0x5f, 0xc0, 0xed, 0x09, 0x98, 0xd2, 0x6b, 0x04, + 0xf3, 0x3d, 0xa3, 0x4b, 0x39, 0x5c, 0x9e, 0xf0, 0xff, 0xf8, 0x14, 0x36, 0x7d, 0xa5, 0x8a, 0x6d, + 0x87, 0x0a, 0xb3, 0x64, 0x19, 0x97, 0x41, 0x4b, 0x02, 0x94, 0x2e, 0xac, 0xc2, 0x82, 0x6f, 0x56, + 0x64, 0x2b, 0x4f, 0xc4, 0x00, 0x9f, 0xc0, 0xba, 0xd4, 0x69, 0x18, 0xe6, 0xcc, 0x1e, 0xec, 0xc1, + 0xc6, 0x18, 0xda, 0x54, 0xf3, 0xff, 0x02, 0xe4, 0x2b, 0x10, 0xda, 0x99, 0x71, 0x0b, 0xa6, 0x97, + 0xd8, 0x3a, 0xa4, 0xfb, 0x2e, 0xed, 0x58, 0x1f, 0x78, 0x8d, 0xe5, 0x89, 0x1c, 0xe1, 0xc7, 0xb0, + 0x12, 0x33, 0x3f, 0x65, 0xb7, 0xbe, 0x52, 0xa0, 0xe8, 0xcb, 0x9e, 0x38, 0x2d, 0x43, 0xe6, 0x77, + 0xa6, 0x5c, 0xa1, 0x5f, 0xc3, 0xa2, 0xe7, 0xb8, 0x4c, 0x6f, 0x5e, 0x72, 0x77, 0x0b, 0xe5, 0x47, + 0x81, 0xc2, 0x24, 0x33, 0xa5, 0xba, 0xe3, 0xb2, 0xfd, 0x4b, 0x92, 0xf6, 0xf8, 0x2f, 0xfe, 0x19, + 0xa4, 0xc5, 0x0c, 0xca, 0xc0, 0x7c, 0xad, 0xf2, 0xba, 0xaa, 0xde, 0x40, 0x4b, 0x90, 0xfb, 0xfd, + 0xd9, 0x61, 0xa5, 0x51, 0x3d, 0xd4, 0x2b, 0xf5, 0x03, 0x55, 0x41, 0x2a, 0xe4, 0x83, 0x89, 0xc3, + 0x6a, 0xfd, 0x40, 0x4d, 0xe1, 0xb7, 0xa2, 0xee, 0x46, 0x2c, 0xc8, 0xd0, 0x7f, 0x01, 0x99, 0xa6, + 0x9c, 0x93, 0xc7, 0x6a, 0x7b, 0x82, 0x5b, 0x81, 0x0a, 0x19, 0x2a, 0xe0, 0xff, 0xa7, 0xc4, 0xfe, + 0x27, 0x48, 0x25, 0xe5, 0x74, 0xfa, 0x9e, 0x3d, 0x80, 0x82, 0x5c, 0xf4, 0x06, 0xfc, 0xe8, 0xca, + 0xbd, 0xbb, 0x29, 0x66, 0xeb, 0x62, 0x12, 0xbd, 0x02, 0x39, 0xa1, 0x1b, 0x03, 0x76, 0xee, 0xb8, + 0xc5, 0x79, 0x9e, 0xfd, 0x7b, 0x13, 0xbc, 0x3e, 0xe0, 0xb2, 0x15, 0x2e, 0x4a, 0xf2, 0xad, 0xc8, + 0x08, 0xd5, 0x40, 0x95, 0x48, 0xe2, 0x87, 0x51, 0xb7, 0xb8, 0x70, 0x7d, 0xb0, 0x25, 0xa1, 0x75, + 0x10, 0xe8, 0xe2, 0x0b, 0xd8, 0x9a, 0x22, 0x9f, 0x98, 0x90, 0x55, 0x58, 0xa0, 0x5d, 0xc3, 0xb2, + 0x79, 0x32, 0xf2, 0x44, 0x0c, 0x50, 0x09, 0xe6, 0xdb, 0x06, 0xa3, 0x3c, 0xfe, 0x5c, 0x59, 0x2b, + 0x89, 0xc6, 0x5d, 0x0a, 0x1a, 0x77, 0xa9, 0x11, 0x34, 0x6e, 0xc2, 0xe5, 0xf0, 0xe7, 0xca, 0xf0, + 0x50, 0x7f, 0x1f, 0x85, 0xba, 0x0d, 0xb9, 0x2e, 0x75, 0x4d, 0xda, 0xd6, 0x9d, 0x9e, 0x2d, 0x8a, + 0x35, 0x43, 0x40, 0x4c, 0x9d, 0xf6, 0xec, 0x4b, 0xf4, 0x08, 0x96, 0xa4, 0xc0, 0xb0, 0x74, 0xe6, + 0xf8, 0x21, 0x2f, 0x88, 0xe9, 0xc0, 0x09, 0xfc, 0xa5, 0x32, 0xec, 0x0f, 0x63, 0x85, 0xb7, 0x3f, + 0x56, 0x78, 0x0f, 0xa3, 0x59, 0x4f, 0x50, 0x29, 0xc9, 0x0a, 0x1b, 0xea, 0x69, 0x2f, 0x21, 0x2d, + 0xe6, 0x12, 0x93, 0xfb, 0x18, 0xd2, 0xcc, 0x70, 0x4d, 0xca, 0x78, 0x08, 0xb9, 0xf2, 0x72, 0x80, + 0xff, 0x32, 0xd8, 0x35, 0x22, 0x05, 0xf0, 0x2b, 0xd1, 0x96, 0x44, 0x1f, 0x9b, 0xa9, 0x23, 0xfe, + 0x5c, 0x74, 0x98, 0x21, 0x92, 0x8c, 0x76, 0x1b, 0xe6, 0x99, 0x61, 0x06, 0x91, 0xe6, 0x02, 0x90, + 0x86, 0x61, 0x12, 0xbe, 0x80, 0xdf, 0x82, 0x4a, 0x68, 0xa7, 0xfa, 0xc1, 0xf2, 0xd8, 0x4c, 0x9b, + 0xa7, 0xc2, 0x9c, 0x4b, 0x3b, 0xb2, 0x9e, 0xfc, 0xbf, 0xf8, 0x31, 0x2c, 0x47, 0x90, 0xc3, 0xee, + 0xfc, 0xde, 0xb0, 0x07, 0x22, 0x61, 0x19, 0x22, 0x06, 0xf8, 0xdf, 0xb0, 0x72, 0xe0, 0x52, 0x83, + 0xd1, 0xe0, 0x2c, 0x7f, 0x77, 0x3f, 0x82, 0x0d, 0x49, 0x45, 0x36, 0x64, 0x1b, 0x72, 0x1e, 0x33, + 0x5c, 0xa6, 0xf7, 0x1d, 0xab, 0x17, 0x1c, 0x6f, 0xe0, 0x53, 0x67, 0xfe, 0x0c, 0xfe, 0x5a, 0x81, + 0xd5, 0xb8, 0x03, 0xc3, 0x2e, 0x95, 0xf6, 0x98, 0xc1, 0x06, 0x1e, 0xb7, 0x5e, 0x08, 0x0f, 0x68, + 0x92, 0x74, 0xa9, 0xce, 0x45, 0x89, 0x54, 0x41, 0x0f, 0x21, 0x2d, 0x2a, 0x46, 0xd6, 0x41, 0x21, + 0x50, 0x96, 0x6a, 0x72, 0x15, 0xd7, 0x20, 0x2d, 0x34, 0x51, 0x1a, 0x52, 0xa7, 0xc7, 0xea, 0x0d, + 0x54, 0x00, 0xa8, 0x12, 0xa2, 0x57, 0xdf, 0x1e, 0xd5, 0x1b, 0x75, 0x55, 0xf1, 0x9b, 0xad, 0x3f, + 0x3e, 0xaa, 0xfd, 0xa1, 0x72, 0x72, 0x74, 0xa8, 0xa6, 0xd0, 0x16, 0x6c, 0x44, 0x26, 0xf4, 0x7a, + 0xa3, 0x42, 0x1a, 0xfa, 0xd9, 0xe9, 0x51, 0xad, 0xa1, 0xce, 0xe1, 0xbf, 0xc0, 0xca, 0x21, 0xb5, + 0xe9, 0x27, 0xca, 0x26, 0x5e, 0x87, 0xd5, 0x38, 0xbc, 0x88, 0x1e, 0xff, 0x09, 0x96, 0xfd, 0x0a, + 0xfc, 0x34, 0x46, 0x7f, 0x29, 0x0e, 0xca, 0xc8, 0xf6, 0x84, 0x19, 0x56, 0xa6, 0x66, 0xf8, 0x7f, + 0x0a, 0x2c, 0x0b, 0x9f, 0x09, 0xed, 0xcc, 0x54, 0xe6, 0x4f, 0x01, 0xd1, 0x0f, 0x2d, 0xda, 0x67, + 0xfa, 0x85, 0xc5, 0xce, 0x75, 0x79, 0xd9, 0xa7, 0x78, 0x17, 0x52, 0xc5, 0xca, 0x1b, 0x8b, 0x9d, + 0x9f, 0xf1, 0x79, 0x3f, 0x12, 0x97, 0x76, 0x82, 0x2e, 0xc5, 0xff, 0xe3, 0x9f, 0x02, 0x8a, 0xba, + 0x22, 0x23, 0xd9, 0x82, 0xac, 0x69, 0x31, 0x9d, 0xba, 0xae, 0xe3, 0x72, 0x57, 0xb2, 0x24, 0x63, + 0x5a, 0xac, 0xea, 0x8f, 0xf1, 0x67, 0x0a, 0x3c, 0xf4, 0x39, 0x6a, 0x84, 0x6d, 0x1d, 0x38, 0x3d, + 0x66, 0x58, 0x3d, 0xab, 0x67, 0xca, 0x8e, 0xf2, 0xc3, 0x92, 0x66, 0x02, 0x8f, 0xae, 0x74, 0x48, + 0x46, 0x76, 0x17, 0xf2, 0x62, 0x17, 0x74, 0x41, 0xcb, 0x44, 0xae, 0x72, 0xcd, 0x50, 0xf5, 0xb7, + 0xf3, 0x19, 0x45, 0x4d, 0xe1, 0x8f, 0x0a, 0xdc, 0xf3, 0x41, 0x03, 0x46, 0xf7, 0x23, 0x87, 0x78, + 0x04, 0xf7, 0xa7, 0x7b, 0x13, 0xee, 0x1c, 0x33, 0xcc, 0x58, 0x70, 0x19, 0x26, 0x95, 0x64, 0x64, + 0x03, 0x58, 0x7b, 0x49, 0x7d, 0xa4, 0xd7, 0xd4, 0xf3, 0x0c, 0x73, 0xb6, 0x5b, 0x72, 0x03, 0x16, + 0x7d, 0x7b, 0x56, 0x5b, 0x94, 0x55, 0xd6, 0xbf, 0x4b, 0xcc, 0xa3, 0xb6, 0x6f, 0x2b, 0xa5, 0xce, + 0x91, 0xd0, 0x19, 0xfc, 0x0e, 0xd6, 0x47, 0xcd, 0x4a, 0x9f, 0x8b, 0xb0, 0xd8, 0x15, 0x73, 0xf2, + 0x90, 0x05, 0x43, 0xb4, 0xe6, 0xdf, 0x5d, 0x3e, 0x3a, 0x4f, 0x46, 0x96, 0x2c, 0x70, 0x70, 0x11, + 0x07, 0x8f, 0x8b, 0x63, 0xe3, 0x73, 0x58, 0x93, 0x8f, 0x26, 0x91, 0x8d, 0x4f, 0xf6, 0x68, 0xc3, + 0x55, 0x58, 0x1f, 0xb5, 0x24, 0x83, 0x78, 0x02, 0x8b, 0x42, 0x2a, 0xb8, 0xdd, 0x12, 0xee, 0xd9, + 0x40, 0x02, 0x7b, 0xe2, 0x31, 0x56, 0xb1, 0x6d, 0x42, 0xbb, 0x4e, 0xd0, 0xbb, 0x66, 0xe6, 0x2b, + 0x2e, 0x07, 0xd3, 0x87, 0xed, 0x2a, 0xeb, 0x0b, 0xf8, 0x53, 0xfe, 0xf6, 0xe3, 0x63, 0xf1, 0x5a, + 0x4b, 0x30, 0x2a, 0x43, 0xf8, 0xc9, 0x18, 0x17, 0x19, 0xed, 0x60, 0x21, 0xe7, 0xfd, 0x2b, 0x2c, + 0x9d, 0x19, 0xad, 0xbf, 0xcf, 0xda, 0xc0, 0x36, 0x21, 0x63, 0xd8, 0xb6, 0xce, 0xdb, 0x92, 0x60, + 0x58, 0x8b, 0x86, 0xef, 0x5f, 0xc7, 0xc3, 0x08, 0xd4, 0xd0, 0x82, 0xf0, 0xb0, 0xfc, 0xdf, 0x02, + 0x00, 0xa1, 0x9d, 0x3a, 0x75, 0xdf, 0x5b, 0x2d, 0x8a, 0x6c, 0x58, 0x4b, 0x7c, 0x7f, 0xa2, 0xfb, + 0x51, 0x0e, 0x35, 0xe9, 0xc9, 0xab, 0x3d, 0xb8, 0x42, 0x4a, 0xde, 0x24, 0xe9, 0x6f, 0xbe, 0xd8, + 0x4d, 0x65, 0x52, 0x88, 0x0e, 0xd9, 0x51, 0xa4, 0xd1, 0xa0, 0xbb, 0x89, 0x74, 0x2d, 0xfa, 0xa4, + 0xd4, 0xf0, 0x34, 0x91, 0xb8, 0x91, 0xe7, 0x0a, 0xfa, 0x33, 0x2c, 0x8d, 0x3c, 0x26, 0xd1, 0x9d, + 0x11, 0x80, 0x91, 0x37, 0xab, 0xb6, 0x3d, 0x71, 0x7d, 0x0c, 0xbd, 0x06, 0xb9, 0xc8, 0xd3, 0x0f, + 0x69, 0x51, 0xcd, 0xf8, 0x73, 0x54, 0xdb, 0x4a, 0x5c, 0x1b, 0x49, 0x4a, 0x53, 0x5c, 0xb3, 0xb1, + 0x57, 0x15, 0xda, 0xb9, 0xea, 0x49, 0xa7, 0xdd, 0x9d, 0x22, 0x31, 0x25, 0x23, 0x43, 0x0b, 0x77, + 0x26, 0x92, 0xe4, 0xe4, 0x8c, 0x4c, 0x41, 0x3f, 0x13, 0x19, 0x91, 0x54, 0x35, 0x9e, 0x91, 0x38, + 0x13, 0x8e, 0x67, 0x64, 0x84, 0xdb, 0x46, 0x10, 0x7b, 0xa2, 0x2c, 0xc7, 0x0e, 0x5a, 0xbc, 0x2c, + 0x27, 0x1d, 0xfe, 0x78, 0x59, 0x4e, 0x3c, 0xad, 0x11, 0x7b, 0xaf, 0x20, 0x3b, 0xa4, 0xb6, 0xa8, + 0x18, 0x9e, 0xb8, 0x38, 0x8f, 0xd6, 0x36, 0x13, 0x56, 0x46, 0x76, 0xf3, 0x77, 0x90, 0x8f, 0x52, + 0x49, 0xb4, 0x95, 0x4c, 0x30, 0x05, 0xde, 0xad, 0x69, 0xec, 0x53, 0x42, 0x2a, 0x3e, 0x64, 0x94, + 0x9f, 0x85, 0x90, 0x09, 0xa4, 0x30, 0x84, 0x4c, 0xa4, 0x74, 0x01, 0xe4, 0x31, 0x40, 0xc8, 0xbe, + 0xd0, 0x66, 0x34, 0x5d, 0x71, 0x38, 0x2d, 0x69, 0x69, 0x24, 0xe4, 0x63, 0x80, 0x90, 0x00, 0x85, + 0x60, 0x63, 0xfc, 0x2c, 0x04, 0x1b, 0xe7, 0x4b, 0x43, 0xcf, 0x3e, 0x2a, 0xb0, 0x7d, 0x05, 0x13, + 0x41, 0xa5, 0x00, 0xe7, 0x7a, 0x1c, 0x4a, 0xdb, 0xbb, 0xb6, 0xfc, 0x58, 0x61, 0xfc, 0x47, 0x81, + 0x5b, 0xd3, 0x58, 0x03, 0x7a, 0x12, 0xc5, 0xbe, 0x82, 0xe9, 0x68, 0x4f, 0xaf, 0x27, 0x3c, 0xe6, + 0xc5, 0x3b, 0x28, 0xc4, 0x2f, 0x7e, 0x74, 0x7b, 0x78, 0x35, 0x26, 0xf1, 0x10, 0xed, 0xce, 0xa4, + 0xe5, 0x24, 0xe8, 0xf8, 0x75, 0x1c, 0x42, 0x27, 0x12, 0x82, 0x10, 0x3a, 0xf9, 0x16, 0x8f, 0x40, + 0xd7, 0x21, 0x1f, 0xfd, 0x10, 0x1b, 0xd6, 0x6d, 0xc2, 0xc7, 0xe1, 0xb0, 0x6e, 0x93, 0xbe, 0xdd, + 0x46, 0x40, 0xab, 0x90, 0x09, 0xee, 0x34, 0xb4, 0x11, 0xe8, 0x8c, 0xdc, 0xa3, 0x5a, 0x71, 0x7c, + 0x21, 0x5e, 0x66, 0xfb, 0xcf, 0xff, 0xe8, 0x8b, 0xd8, 0x46, 0xb3, 0xd4, 0x72, 0xba, 0x7b, 0xe2, + 0xef, 0x33, 0xc7, 0x35, 0xf7, 0x84, 0xe2, 0x33, 0xfe, 0x89, 0x64, 0xcf, 0x74, 0xe4, 0xb8, 0xdf, + 0x6c, 0xa6, 0xf9, 0xd4, 0x8b, 0x6f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x19, 0xd8, 0x90, 0x51, 0x2b, + 0x17, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/remote.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/remote.pb.go index b32251ceb..29f988f2a 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/remote.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/remote.pb.go @@ -38,7 +38,7 @@ func (m *AddRemoteRequest) Reset() { *m = AddRemoteRequest{} } func (m *AddRemoteRequest) String() string { return proto.CompactTextString(m) } func (*AddRemoteRequest) ProtoMessage() {} func (*AddRemoteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{0} + return fileDescriptor_remote_52e228b7e9549034, []int{0} } func (m *AddRemoteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddRemoteRequest.Unmarshal(m, b) @@ -96,7 +96,7 @@ func (m *AddRemoteResponse) Reset() { *m = AddRemoteResponse{} } func (m *AddRemoteResponse) String() string { return proto.CompactTextString(m) } func (*AddRemoteResponse) ProtoMessage() {} func (*AddRemoteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{1} + return fileDescriptor_remote_52e228b7e9549034, []int{1} } func (m *AddRemoteResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddRemoteResponse.Unmarshal(m, b) @@ -128,7 +128,7 @@ func (m *RemoveRemoteRequest) Reset() { *m = RemoveRemoteRequest{} } func (m *RemoveRemoteRequest) String() string { return proto.CompactTextString(m) } func (*RemoveRemoteRequest) ProtoMessage() {} func (*RemoveRemoteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{2} + return fileDescriptor_remote_52e228b7e9549034, []int{2} } func (m *RemoveRemoteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveRemoteRequest.Unmarshal(m, b) @@ -173,7 +173,7 @@ func (m *RemoveRemoteResponse) Reset() { *m = RemoveRemoteResponse{} } func (m *RemoveRemoteResponse) String() string { return proto.CompactTextString(m) } func (*RemoveRemoteResponse) ProtoMessage() {} func (*RemoveRemoteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{3} + return fileDescriptor_remote_52e228b7e9549034, []int{3} } func (m *RemoveRemoteResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveRemoteResponse.Unmarshal(m, b) @@ -212,7 +212,7 @@ func (m *FetchInternalRemoteRequest) Reset() { *m = FetchInternalRemoteR func (m *FetchInternalRemoteRequest) String() string { return proto.CompactTextString(m) } func (*FetchInternalRemoteRequest) ProtoMessage() {} func (*FetchInternalRemoteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{4} + return fileDescriptor_remote_52e228b7e9549034, []int{4} } func (m *FetchInternalRemoteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FetchInternalRemoteRequest.Unmarshal(m, b) @@ -257,7 +257,7 @@ func (m *FetchInternalRemoteResponse) Reset() { *m = FetchInternalRemote func (m *FetchInternalRemoteResponse) String() string { return proto.CompactTextString(m) } func (*FetchInternalRemoteResponse) ProtoMessage() {} func (*FetchInternalRemoteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{5} + return fileDescriptor_remote_52e228b7e9549034, []int{5} } func (m *FetchInternalRemoteResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FetchInternalRemoteResponse.Unmarshal(m, b) @@ -299,7 +299,7 @@ func (m *UpdateRemoteMirrorRequest) Reset() { *m = UpdateRemoteMirrorReq func (m *UpdateRemoteMirrorRequest) String() string { return proto.CompactTextString(m) } func (*UpdateRemoteMirrorRequest) ProtoMessage() {} func (*UpdateRemoteMirrorRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{6} + return fileDescriptor_remote_52e228b7e9549034, []int{6} } func (m *UpdateRemoteMirrorRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateRemoteMirrorRequest.Unmarshal(m, b) @@ -364,7 +364,7 @@ func (m *UpdateRemoteMirrorResponse) Reset() { *m = UpdateRemoteMirrorRe func (m *UpdateRemoteMirrorResponse) String() string { return proto.CompactTextString(m) } func (*UpdateRemoteMirrorResponse) ProtoMessage() {} func (*UpdateRemoteMirrorResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{7} + return fileDescriptor_remote_52e228b7e9549034, []int{7} } func (m *UpdateRemoteMirrorResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateRemoteMirrorResponse.Unmarshal(m, b) @@ -395,7 +395,7 @@ func (m *FindRemoteRepositoryRequest) Reset() { *m = FindRemoteRepositor func (m *FindRemoteRepositoryRequest) String() string { return proto.CompactTextString(m) } func (*FindRemoteRepositoryRequest) ProtoMessage() {} func (*FindRemoteRepositoryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{8} + return fileDescriptor_remote_52e228b7e9549034, []int{8} } func (m *FindRemoteRepositoryRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindRemoteRepositoryRequest.Unmarshal(m, b) @@ -435,7 +435,7 @@ func (m *FindRemoteRepositoryResponse) Reset() { *m = FindRemoteReposito func (m *FindRemoteRepositoryResponse) String() string { return proto.CompactTextString(m) } func (*FindRemoteRepositoryResponse) ProtoMessage() {} func (*FindRemoteRepositoryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{9} + return fileDescriptor_remote_52e228b7e9549034, []int{9} } func (m *FindRemoteRepositoryResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindRemoteRepositoryResponse.Unmarshal(m, b) @@ -474,7 +474,7 @@ func (m *FindRemoteRootRefRequest) Reset() { *m = FindRemoteRootRefReque func (m *FindRemoteRootRefRequest) String() string { return proto.CompactTextString(m) } func (*FindRemoteRootRefRequest) ProtoMessage() {} func (*FindRemoteRootRefRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{10} + return fileDescriptor_remote_52e228b7e9549034, []int{10} } func (m *FindRemoteRootRefRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindRemoteRootRefRequest.Unmarshal(m, b) @@ -519,7 +519,7 @@ func (m *FindRemoteRootRefResponse) Reset() { *m = FindRemoteRootRefResp func (m *FindRemoteRootRefResponse) String() string { return proto.CompactTextString(m) } func (*FindRemoteRootRefResponse) ProtoMessage() {} func (*FindRemoteRootRefResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{11} + return fileDescriptor_remote_52e228b7e9549034, []int{11} } func (m *FindRemoteRootRefResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindRemoteRootRefResponse.Unmarshal(m, b) @@ -557,7 +557,7 @@ func (m *ListRemotesRequest) Reset() { *m = ListRemotesRequest{} } func (m *ListRemotesRequest) String() string { return proto.CompactTextString(m) } func (*ListRemotesRequest) ProtoMessage() {} func (*ListRemotesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{12} + return fileDescriptor_remote_52e228b7e9549034, []int{12} } func (m *ListRemotesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListRemotesRequest.Unmarshal(m, b) @@ -595,7 +595,7 @@ func (m *ListRemotesResponse) Reset() { *m = ListRemotesResponse{} } func (m *ListRemotesResponse) String() string { return proto.CompactTextString(m) } func (*ListRemotesResponse) ProtoMessage() {} func (*ListRemotesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{13} + return fileDescriptor_remote_52e228b7e9549034, []int{13} } func (m *ListRemotesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListRemotesResponse.Unmarshal(m, b) @@ -635,7 +635,7 @@ func (m *ListRemotesResponse_Remote) Reset() { *m = ListRemotesResponse_ func (m *ListRemotesResponse_Remote) String() string { return proto.CompactTextString(m) } func (*ListRemotesResponse_Remote) ProtoMessage() {} func (*ListRemotesResponse_Remote) Descriptor() ([]byte, []int) { - return fileDescriptor_remote_8f251117f9f2149f, []int{13, 0} + return fileDescriptor_remote_52e228b7e9549034, []int{13, 0} } func (m *ListRemotesResponse_Remote) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListRemotesResponse_Remote.Unmarshal(m, b) @@ -1026,53 +1026,53 @@ var _RemoteService_serviceDesc = grpc.ServiceDesc{ Metadata: "remote.proto", } -func init() { proto.RegisterFile("remote.proto", fileDescriptor_remote_8f251117f9f2149f) } +func init() { proto.RegisterFile("remote.proto", fileDescriptor_remote_52e228b7e9549034) } -var fileDescriptor_remote_8f251117f9f2149f = []byte{ - // 718 bytes of a gzipped FileDescriptorProto +var fileDescriptor_remote_52e228b7e9549034 = []byte{ + // 708 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0xae, 0x93, 0x34, 0x3f, 0x93, 0x14, 0xa5, 0x9b, 0xaa, 0x38, 0x4e, 0x25, 0x52, 0x03, 0x92, - 0x2f, 0x4d, 0xab, 0xf0, 0x73, 0x40, 0x20, 0x44, 0x0f, 0x15, 0xb4, 0x14, 0x21, 0x43, 0x2f, 0xbd, - 0x18, 0x27, 0xd9, 0xc4, 0x56, 0x1d, 0xaf, 0xd9, 0x75, 0x0a, 0x79, 0x12, 0xc4, 0x23, 0x70, 0xe3, - 0x99, 0x78, 0x02, 0xc4, 0x13, 0xa0, 0xf5, 0xae, 0x37, 0x2e, 0x75, 0x82, 0x44, 0xc5, 0x6d, 0xe7, - 0xff, 0xfb, 0xc6, 0x33, 0x63, 0x68, 0x50, 0x3c, 0x25, 0x31, 0xee, 0x45, 0x94, 0xc4, 0x04, 0x95, - 0x27, 0x7e, 0xec, 0x06, 0x73, 0xa3, 0xc1, 0x3c, 0x97, 0xe2, 0x91, 0xd0, 0x9a, 0xdf, 0x35, 0x68, - 0xbe, 0x18, 0x8d, 0xec, 0xc4, 0xd3, 0xc6, 0x1f, 0x67, 0x98, 0xc5, 0xa8, 0x0f, 0x40, 0x71, 0x44, - 0x98, 0x1f, 0x13, 0x3a, 0xd7, 0xb5, 0xae, 0x66, 0xd5, 0xfb, 0xa8, 0x27, 0xe2, 0x7b, 0xb6, 0xb2, - 0xd8, 0x19, 0x2f, 0x84, 0xa0, 0x14, 0xba, 0x53, 0xac, 0x17, 0xba, 0x9a, 0x55, 0xb3, 0x93, 0x37, - 0x6a, 0x42, 0x71, 0x46, 0x03, 0xbd, 0x98, 0xa8, 0xf8, 0x13, 0xdd, 0x87, 0x5b, 0x53, 0x9f, 0x52, - 0x42, 0x1d, 0x8a, 0xc7, 0x53, 0x37, 0x62, 0xfa, 0x7a, 0xb7, 0x68, 0xd5, 0xec, 0x0d, 0xa1, 0xb5, - 0x85, 0xf2, 0x49, 0xf9, 0xd7, 0x17, 0xab, 0x50, 0xd5, 0x8e, 0x4b, 0xd5, 0x52, 0x73, 0x3d, 0x35, - 0xca, 0x10, 0xb3, 0x05, 0x9b, 0x19, 0xc4, 0x2c, 0x22, 0x21, 0xc3, 0x26, 0x86, 0x16, 0xd7, 0x5c, - 0xe2, 0xff, 0xc2, 0x24, 0x05, 0x64, 0xf6, 0x60, 0xeb, 0x6a, 0x19, 0x51, 0x1e, 0x6d, 0x43, 0x99, - 0x62, 0x36, 0x0b, 0xe2, 0xa4, 0x46, 0xd5, 0x96, 0x92, 0xf9, 0x55, 0x03, 0xe3, 0x08, 0xc7, 0x43, - 0xef, 0x55, 0x18, 0x63, 0x1a, 0xba, 0xc1, 0xcd, 0xe1, 0x3d, 0x87, 0x4d, 0xf1, 0x5d, 0x9d, 0x4c, - 0x68, 0x61, 0x69, 0x68, 0x93, 0xca, 0x8a, 0xa9, 0x46, 0x71, 0x79, 0x04, 0x9d, 0x5c, 0x68, 0x7f, - 0xa1, 0xf4, 0x43, 0x83, 0xf6, 0x59, 0x34, 0x72, 0x63, 0xd9, 0x83, 0x53, 0xf9, 0xe5, 0xfe, 0x9d, - 0x51, 0x1b, 0xaa, 0x14, 0x8f, 0x9d, 0x4c, 0xd3, 0x2b, 0x14, 0x8f, 0xdf, 0xf0, 0x09, 0x7a, 0x08, - 0xdb, 0x24, 0x0c, 0xe6, 0xce, 0x80, 0xba, 0xe1, 0xd0, 0xc3, 0xcc, 0x99, 0xba, 0xf1, 0xd0, 0xf3, - 0xc3, 0x89, 0x5e, 0xec, 0x16, 0xad, 0x86, 0xbd, 0xc5, 0xad, 0x87, 0xd2, 0x78, 0x2a, 0x6d, 0xe8, - 0x36, 0x54, 0x18, 0xf3, 0x9c, 0x0b, 0x3c, 0xd7, 0x4b, 0x49, 0xbe, 0x32, 0x63, 0xde, 0x09, 0x9e, - 0xa3, 0x3b, 0x50, 0xbf, 0x08, 0xc9, 0xa7, 0xd0, 0xf1, 0x08, 0x8b, 0xf9, 0xec, 0x71, 0x23, 0x24, - 0xaa, 0x97, 0x5c, 0xa3, 0x7a, 0xb3, 0x03, 0x46, 0x1e, 0x47, 0x39, 0x6c, 0xcf, 0xa0, 0x73, 0xe4, - 0x87, 0x6a, 0x04, 0x15, 0x29, 0xd9, 0x83, 0xa4, 0x73, 0xdc, 0x94, 0xf0, 0xaf, 0xd9, 0x52, 0x92, - 0xc9, 0x0b, 0xe6, 0x63, 0xd8, 0xc9, 0x0f, 0x5f, 0x74, 0x1e, 0x7f, 0xf6, 0x39, 0x40, 0xd9, 0x79, - 0x21, 0x99, 0x21, 0xe8, 0x99, 0x38, 0x42, 0x62, 0x1b, 0x8f, 0x6f, 0xd2, 0xf7, 0x05, 0xce, 0x42, - 0x2e, 0xce, 0x3d, 0x68, 0xe7, 0xd4, 0x93, 0x20, 0x9b, 0x50, 0xa4, 0x78, 0x2c, 0x19, 0xf2, 0xa7, - 0xf9, 0x16, 0xd0, 0x6b, 0x9f, 0xc5, 0xc2, 0x9d, 0xdd, 0x00, 0x98, 0x02, 0xf0, 0x4d, 0x83, 0xd6, - 0x95, 0x94, 0xb2, 0xf6, 0x53, 0xa8, 0x08, 0xa8, 0xbc, 0x43, 0x45, 0xab, 0xde, 0x37, 0xd3, 0x84, - 0x39, 0xde, 0x3d, 0x89, 0x3f, 0x0d, 0x31, 0xde, 0x43, 0x59, 0xa8, 0xd4, 0xa6, 0x6b, 0x99, 0x9b, - 0xd5, 0x81, 0xda, 0x98, 0x6f, 0x85, 0xc3, 0x2f, 0x97, 0xe8, 0x4b, 0x35, 0x51, 0x9c, 0xd1, 0x80, - 0x4f, 0x6a, 0x34, 0x63, 0xc2, 0x26, 0xae, 0x5a, 0x85, 0xcb, 0x67, 0x34, 0xe8, 0xff, 0x2c, 0xc1, - 0x86, 0x48, 0xfb, 0x0e, 0xd3, 0x4b, 0x7f, 0x88, 0xd1, 0x21, 0xd4, 0xd4, 0x9d, 0x42, 0x7a, 0x8a, - 0xf0, 0xcf, 0x63, 0x6b, 0xb4, 0x73, 0x2c, 0x72, 0xce, 0xd6, 0xd0, 0x07, 0x68, 0xe5, 0xec, 0x28, - 0x52, 0x7c, 0x97, 0xdf, 0x16, 0xe3, 0xee, 0x4a, 0x1f, 0x55, 0xe1, 0x04, 0x1a, 0xd9, 0x8b, 0x86, - 0x3a, 0x8b, 0x6f, 0x73, 0xed, 0x9c, 0x1a, 0x3b, 0xf9, 0x46, 0x95, 0xcc, 0x01, 0x74, 0x7d, 0x6d, - 0xd0, 0x6e, 0x1a, 0xb5, 0xf4, 0x6c, 0x18, 0xe6, 0x2a, 0x97, 0x34, 0xbd, 0xa5, 0xa1, 0x21, 0x6c, - 0xe5, 0xad, 0x0e, 0x5a, 0x90, 0x5d, 0xbe, 0x97, 0xc6, 0xbd, 0xd5, 0x4e, 0x8a, 0xc5, 0x39, 0x6c, - 0x5e, 0x9b, 0x7b, 0xd4, 0xcd, 0x09, 0xbe, 0xb2, 0x82, 0xc6, 0xee, 0x0a, 0x0f, 0x95, 0xfb, 0x18, - 0xea, 0x99, 0x19, 0x45, 0x46, 0xee, 0xe0, 0x8a, 0x7c, 0x9d, 0x15, 0x43, 0x6d, 0xae, 0x1d, 0x68, - 0x87, 0x07, 0xe7, 0xdc, 0x23, 0x70, 0x07, 0xbd, 0x21, 0x99, 0xee, 0x8b, 0xe7, 0x1e, 0xa1, 0x93, - 0x7d, 0x11, 0xb7, 0x97, 0xfc, 0xe1, 0xf7, 0x27, 0x44, 0xca, 0xd1, 0x60, 0x50, 0x4e, 0x54, 0x0f, - 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0xcd, 0x9e, 0xcb, 0xe7, 0x1a, 0x08, 0x00, 0x00, + 0x10, 0x96, 0x93, 0x34, 0x3f, 0x93, 0x14, 0xa5, 0x9b, 0xaa, 0x38, 0x4e, 0x25, 0x52, 0x03, 0x92, + 0x2f, 0x4d, 0xab, 0xf0, 0x73, 0x42, 0x42, 0xf4, 0x80, 0xca, 0x4f, 0x11, 0x18, 0x7a, 0x41, 0x42, + 0xc6, 0x49, 0xd6, 0xb1, 0x55, 0xc7, 0x6b, 0x76, 0x37, 0x85, 0x3c, 0x06, 0x27, 0x24, 0x9e, 0x00, + 0x5e, 0x89, 0x47, 0xe1, 0x84, 0xd6, 0xbb, 0x4e, 0x9c, 0xd4, 0x09, 0x12, 0x15, 0xb7, 0x9d, 0x6f, + 0x7e, 0xbf, 0xf1, 0xcc, 0x18, 0x1a, 0x14, 0x4f, 0x08, 0xc7, 0xbd, 0x98, 0x12, 0x4e, 0x50, 0x79, + 0x1c, 0x70, 0x37, 0x9c, 0x19, 0x0d, 0xe6, 0xbb, 0x14, 0x8f, 0x24, 0x6a, 0xfe, 0xd0, 0xa0, 0xf9, + 0x64, 0x34, 0xb2, 0x13, 0x4b, 0x1b, 0x7f, 0x9a, 0x62, 0xc6, 0x51, 0x1f, 0x80, 0xe2, 0x98, 0xb0, + 0x80, 0x13, 0x3a, 0xd3, 0xb5, 0xae, 0x66, 0xd5, 0xfb, 0xa8, 0x27, 0xfd, 0x7b, 0xf6, 0x5c, 0x63, + 0x67, 0xac, 0x10, 0x82, 0x52, 0xe4, 0x4e, 0xb0, 0x5e, 0xe8, 0x6a, 0x56, 0xcd, 0x4e, 0xde, 0xa8, + 0x09, 0xc5, 0x29, 0x0d, 0xf5, 0x62, 0x02, 0x89, 0x27, 0xba, 0x0b, 0x37, 0x26, 0x01, 0xa5, 0x84, + 0x3a, 0x14, 0x7b, 0x13, 0x37, 0x66, 0xfa, 0x56, 0xb7, 0x68, 0xd5, 0xec, 0x6d, 0x89, 0xda, 0x12, + 0x7c, 0x5e, 0xaa, 0x96, 0x9a, 0x5b, 0x29, 0xa8, 0x4c, 0xcd, 0x16, 0xec, 0x64, 0x2a, 0x65, 0x31, + 0x89, 0x18, 0x36, 0x3f, 0x40, 0x4b, 0x20, 0x97, 0xf8, 0xbf, 0x30, 0x30, 0x7b, 0xb0, 0xbb, 0x1c, + 0x5e, 0xa6, 0x45, 0x7b, 0x50, 0xa6, 0x98, 0x4d, 0x43, 0x9e, 0xc4, 0xae, 0xda, 0x4a, 0x32, 0xbf, + 0x6a, 0x60, 0x3c, 0xc5, 0x7c, 0xe8, 0x3f, 0x8b, 0x38, 0xa6, 0x91, 0x1b, 0x5e, 0xbf, 0xac, 0xc7, + 0xb0, 0x23, 0xbf, 0xa3, 0x93, 0x71, 0x2d, 0xac, 0x75, 0x6d, 0x52, 0x95, 0x31, 0x45, 0xcc, 0x07, + 0xd0, 0xc9, 0x2d, 0xe9, 0x2f, 0x54, 0x7e, 0x69, 0xd0, 0x3e, 0x8f, 0x47, 0x2e, 0x57, 0xdc, 0xcf, + 0xd4, 0x17, 0xfa, 0x77, 0x26, 0x6d, 0xa8, 0x52, 0xec, 0x39, 0x99, 0x26, 0x57, 0x28, 0xf6, 0x5e, + 0x89, 0x49, 0xb9, 0x0f, 0x7b, 0x24, 0x0a, 0x67, 0xce, 0x80, 0xba, 0xd1, 0xd0, 0xc7, 0xcc, 0x99, + 0xb8, 0x7c, 0xe8, 0x07, 0xd1, 0x58, 0x2f, 0x76, 0x8b, 0x56, 0xc3, 0xde, 0x15, 0xda, 0x13, 0xa5, + 0x3c, 0x53, 0x3a, 0x74, 0x13, 0x2a, 0x8c, 0xf9, 0xce, 0x05, 0x9e, 0xe9, 0xa5, 0x24, 0x5e, 0x99, + 0x31, 0xff, 0x05, 0x9e, 0xa1, 0x5b, 0x50, 0xbf, 0x88, 0xc8, 0xe7, 0xc8, 0xf1, 0x09, 0xe3, 0x62, + 0xc6, 0x84, 0x12, 0x12, 0xe8, 0x54, 0x20, 0xe6, 0x3e, 0x18, 0x79, 0xdc, 0xd4, 0x50, 0x89, 0x8e, + 0x05, 0xd1, 0x7c, 0xd4, 0xe6, 0x64, 0x14, 0xf7, 0xa4, 0x63, 0x42, 0x95, 0xf0, 0xae, 0xd9, 0x4a, + 0x32, 0x1f, 0xc2, 0x7e, 0xbe, 0xdb, 0xa2, 0xd3, 0xf8, 0x4b, 0x20, 0x0a, 0x52, 0x9d, 0x96, 0x92, + 0xe9, 0x81, 0x9e, 0xf1, 0x23, 0x84, 0xdb, 0xd8, 0xbb, 0x4e, 0x9f, 0x17, 0xf5, 0x15, 0x96, 0xea, + 0x3b, 0x84, 0x76, 0x4e, 0x1e, 0x55, 0x5c, 0x13, 0x8a, 0x14, 0x7b, 0x8a, 0x91, 0x78, 0x9a, 0xa7, + 0x80, 0x5e, 0x06, 0x8c, 0x4b, 0x73, 0x76, 0x8d, 0x82, 0xcc, 0x9f, 0x1a, 0xb4, 0x96, 0x42, 0xa9, + 0x9c, 0x8f, 0xa0, 0x22, 0x4b, 0x13, 0x1d, 0x29, 0x5a, 0xf5, 0xbe, 0x99, 0x06, 0xca, 0xb1, 0xee, + 0xa9, 0xba, 0x53, 0x17, 0xe3, 0x1d, 0x94, 0x25, 0x34, 0xdf, 0x5c, 0x2d, 0x73, 0x7b, 0x3a, 0x50, + 0xf3, 0xc4, 0xd4, 0x3b, 0xe2, 0x02, 0xc9, 0x3e, 0x54, 0x13, 0xe0, 0x9c, 0x86, 0x62, 0x12, 0xe3, + 0x29, 0x93, 0x3a, 0x79, 0x9d, 0x2a, 0x42, 0x3e, 0xa7, 0x61, 0xff, 0xfb, 0x16, 0x6c, 0xcb, 0xb0, + 0x6f, 0x31, 0xbd, 0x0c, 0x86, 0x18, 0x9d, 0x42, 0x6d, 0x7e, 0x77, 0x90, 0x9e, 0x56, 0xb8, 0x7a, + 0x34, 0x8d, 0x76, 0x8e, 0x46, 0xcd, 0x53, 0xf9, 0xf7, 0x37, 0xab, 0x50, 0xd5, 0x90, 0x07, 0xad, + 0x9c, 0x4d, 0x44, 0x73, 0xd6, 0xeb, 0x2f, 0x87, 0x71, 0x7b, 0xa3, 0xcd, 0x4a, 0x9e, 0x37, 0xd0, + 0xc8, 0x5e, 0x2d, 0xd4, 0x59, 0x7c, 0x9f, 0x2b, 0xa7, 0xd2, 0xd8, 0xcf, 0x57, 0xae, 0x84, 0xc4, + 0x80, 0xae, 0x2e, 0x0c, 0x3a, 0x48, 0x7d, 0xd7, 0x1e, 0x0a, 0xc3, 0xdc, 0x64, 0xb2, 0x9c, 0xc4, + 0xd2, 0x50, 0x00, 0xbb, 0x79, 0x2b, 0x84, 0x16, 0xf4, 0xd7, 0xef, 0xa5, 0x71, 0x67, 0xb3, 0xd1, + 0x52, 0xb2, 0x02, 0xfa, 0x08, 0x3b, 0x57, 0xb6, 0x01, 0x75, 0x73, 0x42, 0x2c, 0x2d, 0xa4, 0x71, + 0xb0, 0xc1, 0x62, 0x25, 0xc3, 0x6b, 0xa8, 0x67, 0xe6, 0x18, 0x19, 0xb9, 0xc3, 0x2d, 0xa3, 0x76, + 0x36, 0x0c, 0x7e, 0x1a, 0xef, 0x58, 0x3b, 0x39, 0x7e, 0x2f, 0xec, 0x42, 0x77, 0xd0, 0x1b, 0x92, + 0xc9, 0x91, 0x7c, 0x1e, 0x12, 0x3a, 0x3e, 0x92, 0xde, 0x87, 0xc9, 0x3f, 0xfd, 0x68, 0x4c, 0x94, + 0x1c, 0x0f, 0x06, 0xe5, 0x04, 0xba, 0xf7, 0x27, 0x00, 0x00, 0xff, 0xff, 0xb4, 0x60, 0x93, 0x12, + 0x0c, 0x08, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/repository-service.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/repository-service.pb.go index e9abe8cca..abf9e107d 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/repository-service.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/repository-service.pb.go @@ -49,7 +49,7 @@ func (x GetArchiveRequest_Format) String() string { return proto.EnumName(GetArchiveRequest_Format_name, int32(x)) } func (GetArchiveRequest_Format) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{18, 0} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{18, 0} } type GetRawChangesResponse_RawChange_Operation int32 @@ -87,7 +87,7 @@ func (x GetRawChangesResponse_RawChange_Operation) String() string { return proto.EnumName(GetRawChangesResponse_RawChange_Operation_name, int32(x)) } func (GetRawChangesResponse_RawChange_Operation) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{63, 0, 0} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{63, 0, 0} } type RepositoryExistsRequest struct { @@ -101,7 +101,7 @@ func (m *RepositoryExistsRequest) Reset() { *m = RepositoryExistsRequest func (m *RepositoryExistsRequest) String() string { return proto.CompactTextString(m) } func (*RepositoryExistsRequest) ProtoMessage() {} func (*RepositoryExistsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{0} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{0} } func (m *RepositoryExistsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RepositoryExistsRequest.Unmarshal(m, b) @@ -139,7 +139,7 @@ func (m *RepositoryExistsResponse) Reset() { *m = RepositoryExistsRespon func (m *RepositoryExistsResponse) String() string { return proto.CompactTextString(m) } func (*RepositoryExistsResponse) ProtoMessage() {} func (*RepositoryExistsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{1} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{1} } func (m *RepositoryExistsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RepositoryExistsResponse.Unmarshal(m, b) @@ -177,7 +177,7 @@ func (m *RepackIncrementalRequest) Reset() { *m = RepackIncrementalReque func (m *RepackIncrementalRequest) String() string { return proto.CompactTextString(m) } func (*RepackIncrementalRequest) ProtoMessage() {} func (*RepackIncrementalRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{2} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{2} } func (m *RepackIncrementalRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RepackIncrementalRequest.Unmarshal(m, b) @@ -214,7 +214,7 @@ func (m *RepackIncrementalResponse) Reset() { *m = RepackIncrementalResp func (m *RepackIncrementalResponse) String() string { return proto.CompactTextString(m) } func (*RepackIncrementalResponse) ProtoMessage() {} func (*RepackIncrementalResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{3} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{3} } func (m *RepackIncrementalResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RepackIncrementalResponse.Unmarshal(m, b) @@ -246,7 +246,7 @@ func (m *RepackFullRequest) Reset() { *m = RepackFullRequest{} } func (m *RepackFullRequest) String() string { return proto.CompactTextString(m) } func (*RepackFullRequest) ProtoMessage() {} func (*RepackFullRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{4} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{4} } func (m *RepackFullRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RepackFullRequest.Unmarshal(m, b) @@ -290,7 +290,7 @@ func (m *RepackFullResponse) Reset() { *m = RepackFullResponse{} } func (m *RepackFullResponse) String() string { return proto.CompactTextString(m) } func (*RepackFullResponse) ProtoMessage() {} func (*RepackFullResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{5} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{5} } func (m *RepackFullResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RepackFullResponse.Unmarshal(m, b) @@ -322,7 +322,7 @@ func (m *GarbageCollectRequest) Reset() { *m = GarbageCollectRequest{} } func (m *GarbageCollectRequest) String() string { return proto.CompactTextString(m) } func (*GarbageCollectRequest) ProtoMessage() {} func (*GarbageCollectRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{6} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{6} } func (m *GarbageCollectRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GarbageCollectRequest.Unmarshal(m, b) @@ -366,7 +366,7 @@ func (m *GarbageCollectResponse) Reset() { *m = GarbageCollectResponse{} func (m *GarbageCollectResponse) String() string { return proto.CompactTextString(m) } func (*GarbageCollectResponse) ProtoMessage() {} func (*GarbageCollectResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{7} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{7} } func (m *GarbageCollectResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GarbageCollectResponse.Unmarshal(m, b) @@ -397,7 +397,7 @@ func (m *CleanupRequest) Reset() { *m = CleanupRequest{} } func (m *CleanupRequest) String() string { return proto.CompactTextString(m) } func (*CleanupRequest) ProtoMessage() {} func (*CleanupRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{8} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{8} } func (m *CleanupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CleanupRequest.Unmarshal(m, b) @@ -434,7 +434,7 @@ func (m *CleanupResponse) Reset() { *m = CleanupResponse{} } func (m *CleanupResponse) String() string { return proto.CompactTextString(m) } func (*CleanupResponse) ProtoMessage() {} func (*CleanupResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{9} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{9} } func (m *CleanupResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CleanupResponse.Unmarshal(m, b) @@ -465,7 +465,7 @@ func (m *RepositorySizeRequest) Reset() { *m = RepositorySizeRequest{} } func (m *RepositorySizeRequest) String() string { return proto.CompactTextString(m) } func (*RepositorySizeRequest) ProtoMessage() {} func (*RepositorySizeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{10} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{10} } func (m *RepositorySizeRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RepositorySizeRequest.Unmarshal(m, b) @@ -504,7 +504,7 @@ func (m *RepositorySizeResponse) Reset() { *m = RepositorySizeResponse{} func (m *RepositorySizeResponse) String() string { return proto.CompactTextString(m) } func (*RepositorySizeResponse) ProtoMessage() {} func (*RepositorySizeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{11} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{11} } func (m *RepositorySizeResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RepositorySizeResponse.Unmarshal(m, b) @@ -543,7 +543,7 @@ func (m *ApplyGitattributesRequest) Reset() { *m = ApplyGitattributesReq func (m *ApplyGitattributesRequest) String() string { return proto.CompactTextString(m) } func (*ApplyGitattributesRequest) ProtoMessage() {} func (*ApplyGitattributesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{12} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{12} } func (m *ApplyGitattributesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplyGitattributesRequest.Unmarshal(m, b) @@ -587,7 +587,7 @@ func (m *ApplyGitattributesResponse) Reset() { *m = ApplyGitattributesRe func (m *ApplyGitattributesResponse) String() string { return proto.CompactTextString(m) } func (*ApplyGitattributesResponse) ProtoMessage() {} func (*ApplyGitattributesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{13} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{13} } func (m *ApplyGitattributesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplyGitattributesResponse.Unmarshal(m, b) @@ -626,7 +626,7 @@ func (m *FetchRemoteRequest) Reset() { *m = FetchRemoteRequest{} } func (m *FetchRemoteRequest) String() string { return proto.CompactTextString(m) } func (*FetchRemoteRequest) ProtoMessage() {} func (*FetchRemoteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{14} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{14} } func (m *FetchRemoteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FetchRemoteRequest.Unmarshal(m, b) @@ -719,7 +719,7 @@ func (m *FetchRemoteResponse) Reset() { *m = FetchRemoteResponse{} } func (m *FetchRemoteResponse) String() string { return proto.CompactTextString(m) } func (*FetchRemoteResponse) ProtoMessage() {} func (*FetchRemoteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{15} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{15} } func (m *FetchRemoteResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FetchRemoteResponse.Unmarshal(m, b) @@ -750,7 +750,7 @@ func (m *CreateRepositoryRequest) Reset() { *m = CreateRepositoryRequest func (m *CreateRepositoryRequest) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryRequest) ProtoMessage() {} func (*CreateRepositoryRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{16} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{16} } func (m *CreateRepositoryRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateRepositoryRequest.Unmarshal(m, b) @@ -787,7 +787,7 @@ func (m *CreateRepositoryResponse) Reset() { *m = CreateRepositoryRespon func (m *CreateRepositoryResponse) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryResponse) ProtoMessage() {} func (*CreateRepositoryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{17} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{17} } func (m *CreateRepositoryResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateRepositoryResponse.Unmarshal(m, b) @@ -822,7 +822,7 @@ func (m *GetArchiveRequest) Reset() { *m = GetArchiveRequest{} } func (m *GetArchiveRequest) String() string { return proto.CompactTextString(m) } func (*GetArchiveRequest) ProtoMessage() {} func (*GetArchiveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{18} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{18} } func (m *GetArchiveRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetArchiveRequest.Unmarshal(m, b) @@ -888,7 +888,7 @@ func (m *GetArchiveResponse) Reset() { *m = GetArchiveResponse{} } func (m *GetArchiveResponse) String() string { return proto.CompactTextString(m) } func (*GetArchiveResponse) ProtoMessage() {} func (*GetArchiveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{19} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{19} } func (m *GetArchiveResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetArchiveResponse.Unmarshal(m, b) @@ -926,7 +926,7 @@ func (m *HasLocalBranchesRequest) Reset() { *m = HasLocalBranchesRequest func (m *HasLocalBranchesRequest) String() string { return proto.CompactTextString(m) } func (*HasLocalBranchesRequest) ProtoMessage() {} func (*HasLocalBranchesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{20} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{20} } func (m *HasLocalBranchesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_HasLocalBranchesRequest.Unmarshal(m, b) @@ -964,7 +964,7 @@ func (m *HasLocalBranchesResponse) Reset() { *m = HasLocalBranchesRespon func (m *HasLocalBranchesResponse) String() string { return proto.CompactTextString(m) } func (*HasLocalBranchesResponse) ProtoMessage() {} func (*HasLocalBranchesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{21} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{21} } func (m *HasLocalBranchesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_HasLocalBranchesResponse.Unmarshal(m, b) @@ -1005,7 +1005,7 @@ func (m *FetchSourceBranchRequest) Reset() { *m = FetchSourceBranchReque func (m *FetchSourceBranchRequest) String() string { return proto.CompactTextString(m) } func (*FetchSourceBranchRequest) ProtoMessage() {} func (*FetchSourceBranchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{22} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{22} } func (m *FetchSourceBranchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FetchSourceBranchRequest.Unmarshal(m, b) @@ -1064,7 +1064,7 @@ func (m *FetchSourceBranchResponse) Reset() { *m = FetchSourceBranchResp func (m *FetchSourceBranchResponse) String() string { return proto.CompactTextString(m) } func (*FetchSourceBranchResponse) ProtoMessage() {} func (*FetchSourceBranchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{23} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{23} } func (m *FetchSourceBranchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FetchSourceBranchResponse.Unmarshal(m, b) @@ -1102,7 +1102,7 @@ func (m *FsckRequest) Reset() { *m = FsckRequest{} } func (m *FsckRequest) String() string { return proto.CompactTextString(m) } func (*FsckRequest) ProtoMessage() {} func (*FsckRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{24} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{24} } func (m *FsckRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FsckRequest.Unmarshal(m, b) @@ -1140,7 +1140,7 @@ func (m *FsckResponse) Reset() { *m = FsckResponse{} } func (m *FsckResponse) String() string { return proto.CompactTextString(m) } func (*FsckResponse) ProtoMessage() {} func (*FsckResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{25} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{25} } func (m *FsckResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FsckResponse.Unmarshal(m, b) @@ -1182,7 +1182,7 @@ func (m *WriteRefRequest) Reset() { *m = WriteRefRequest{} } func (m *WriteRefRequest) String() string { return proto.CompactTextString(m) } func (*WriteRefRequest) ProtoMessage() {} func (*WriteRefRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{26} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{26} } func (m *WriteRefRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WriteRefRequest.Unmarshal(m, b) @@ -1247,7 +1247,7 @@ func (m *WriteRefResponse) Reset() { *m = WriteRefResponse{} } func (m *WriteRefResponse) String() string { return proto.CompactTextString(m) } func (*WriteRefResponse) ProtoMessage() {} func (*WriteRefResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{27} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{27} } func (m *WriteRefResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WriteRefResponse.Unmarshal(m, b) @@ -1282,7 +1282,7 @@ func (m *FindMergeBaseRequest) Reset() { *m = FindMergeBaseRequest{} } func (m *FindMergeBaseRequest) String() string { return proto.CompactTextString(m) } func (*FindMergeBaseRequest) ProtoMessage() {} func (*FindMergeBaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{28} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{28} } func (m *FindMergeBaseRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindMergeBaseRequest.Unmarshal(m, b) @@ -1327,7 +1327,7 @@ func (m *FindMergeBaseResponse) Reset() { *m = FindMergeBaseResponse{} } func (m *FindMergeBaseResponse) String() string { return proto.CompactTextString(m) } func (*FindMergeBaseResponse) ProtoMessage() {} func (*FindMergeBaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{29} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{29} } func (m *FindMergeBaseResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindMergeBaseResponse.Unmarshal(m, b) @@ -1366,7 +1366,7 @@ func (m *CreateForkRequest) Reset() { *m = CreateForkRequest{} } func (m *CreateForkRequest) String() string { return proto.CompactTextString(m) } func (*CreateForkRequest) ProtoMessage() {} func (*CreateForkRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{30} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{30} } func (m *CreateForkRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateForkRequest.Unmarshal(m, b) @@ -1410,7 +1410,7 @@ func (m *CreateForkResponse) Reset() { *m = CreateForkResponse{} } func (m *CreateForkResponse) String() string { return proto.CompactTextString(m) } func (*CreateForkResponse) ProtoMessage() {} func (*CreateForkResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{31} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{31} } func (m *CreateForkResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateForkResponse.Unmarshal(m, b) @@ -1442,7 +1442,7 @@ func (m *IsRebaseInProgressRequest) Reset() { *m = IsRebaseInProgressReq func (m *IsRebaseInProgressRequest) String() string { return proto.CompactTextString(m) } func (*IsRebaseInProgressRequest) ProtoMessage() {} func (*IsRebaseInProgressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{32} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{32} } func (m *IsRebaseInProgressRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsRebaseInProgressRequest.Unmarshal(m, b) @@ -1487,7 +1487,7 @@ func (m *IsRebaseInProgressResponse) Reset() { *m = IsRebaseInProgressRe func (m *IsRebaseInProgressResponse) String() string { return proto.CompactTextString(m) } func (*IsRebaseInProgressResponse) ProtoMessage() {} func (*IsRebaseInProgressResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{33} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{33} } func (m *IsRebaseInProgressResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsRebaseInProgressResponse.Unmarshal(m, b) @@ -1526,7 +1526,7 @@ func (m *IsSquashInProgressRequest) Reset() { *m = IsSquashInProgressReq func (m *IsSquashInProgressRequest) String() string { return proto.CompactTextString(m) } func (*IsSquashInProgressRequest) ProtoMessage() {} func (*IsSquashInProgressRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{34} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{34} } func (m *IsSquashInProgressRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsSquashInProgressRequest.Unmarshal(m, b) @@ -1571,7 +1571,7 @@ func (m *IsSquashInProgressResponse) Reset() { *m = IsSquashInProgressRe func (m *IsSquashInProgressResponse) String() string { return proto.CompactTextString(m) } func (*IsSquashInProgressResponse) ProtoMessage() {} func (*IsSquashInProgressResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{35} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{35} } func (m *IsSquashInProgressResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsSquashInProgressResponse.Unmarshal(m, b) @@ -1610,7 +1610,7 @@ func (m *CreateRepositoryFromURLRequest) Reset() { *m = CreateRepository func (m *CreateRepositoryFromURLRequest) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryFromURLRequest) ProtoMessage() {} func (*CreateRepositoryFromURLRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{36} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{36} } func (m *CreateRepositoryFromURLRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateRepositoryFromURLRequest.Unmarshal(m, b) @@ -1654,7 +1654,7 @@ func (m *CreateRepositoryFromURLResponse) Reset() { *m = CreateRepositor func (m *CreateRepositoryFromURLResponse) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryFromURLResponse) ProtoMessage() {} func (*CreateRepositoryFromURLResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{37} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{37} } func (m *CreateRepositoryFromURLResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateRepositoryFromURLResponse.Unmarshal(m, b) @@ -1685,7 +1685,7 @@ func (m *CreateBundleRequest) Reset() { *m = CreateBundleRequest{} } func (m *CreateBundleRequest) String() string { return proto.CompactTextString(m) } func (*CreateBundleRequest) ProtoMessage() {} func (*CreateBundleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{38} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{38} } func (m *CreateBundleRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateBundleRequest.Unmarshal(m, b) @@ -1723,7 +1723,7 @@ func (m *CreateBundleResponse) Reset() { *m = CreateBundleResponse{} } func (m *CreateBundleResponse) String() string { return proto.CompactTextString(m) } func (*CreateBundleResponse) ProtoMessage() {} func (*CreateBundleResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{39} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{39} } func (m *CreateBundleResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateBundleResponse.Unmarshal(m, b) @@ -1762,7 +1762,7 @@ func (m *WriteConfigRequest) Reset() { *m = WriteConfigRequest{} } func (m *WriteConfigRequest) String() string { return proto.CompactTextString(m) } func (*WriteConfigRequest) ProtoMessage() {} func (*WriteConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{40} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{40} } func (m *WriteConfigRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WriteConfigRequest.Unmarshal(m, b) @@ -1807,7 +1807,7 @@ func (m *WriteConfigResponse) Reset() { *m = WriteConfigResponse{} } func (m *WriteConfigResponse) String() string { return proto.CompactTextString(m) } func (*WriteConfigResponse) ProtoMessage() {} func (*WriteConfigResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{41} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{41} } func (m *WriteConfigResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WriteConfigResponse.Unmarshal(m, b) @@ -1846,7 +1846,7 @@ func (m *SetConfigRequest) Reset() { *m = SetConfigRequest{} } func (m *SetConfigRequest) String() string { return proto.CompactTextString(m) } func (*SetConfigRequest) ProtoMessage() {} func (*SetConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{42} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{42} } func (m *SetConfigRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConfigRequest.Unmarshal(m, b) @@ -1896,7 +1896,7 @@ func (m *SetConfigRequest_Entry) Reset() { *m = SetConfigRequest_Entry{} func (m *SetConfigRequest_Entry) String() string { return proto.CompactTextString(m) } func (*SetConfigRequest_Entry) ProtoMessage() {} func (*SetConfigRequest_Entry) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{42, 0} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{42, 0} } func (m *SetConfigRequest_Entry) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConfigRequest_Entry.Unmarshal(m, b) @@ -2066,7 +2066,7 @@ func (m *SetConfigResponse) Reset() { *m = SetConfigResponse{} } func (m *SetConfigResponse) String() string { return proto.CompactTextString(m) } func (*SetConfigResponse) ProtoMessage() {} func (*SetConfigResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{43} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{43} } func (m *SetConfigResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetConfigResponse.Unmarshal(m, b) @@ -2098,7 +2098,7 @@ func (m *DeleteConfigRequest) Reset() { *m = DeleteConfigRequest{} } func (m *DeleteConfigRequest) String() string { return proto.CompactTextString(m) } func (*DeleteConfigRequest) ProtoMessage() {} func (*DeleteConfigRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{44} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{44} } func (m *DeleteConfigRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteConfigRequest.Unmarshal(m, b) @@ -2142,7 +2142,7 @@ func (m *DeleteConfigResponse) Reset() { *m = DeleteConfigResponse{} } func (m *DeleteConfigResponse) String() string { return proto.CompactTextString(m) } func (*DeleteConfigResponse) ProtoMessage() {} func (*DeleteConfigResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{45} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{45} } func (m *DeleteConfigResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteConfigResponse.Unmarshal(m, b) @@ -2174,7 +2174,7 @@ func (m *RestoreCustomHooksRequest) Reset() { *m = RestoreCustomHooksReq func (m *RestoreCustomHooksRequest) String() string { return proto.CompactTextString(m) } func (*RestoreCustomHooksRequest) ProtoMessage() {} func (*RestoreCustomHooksRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{46} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{46} } func (m *RestoreCustomHooksRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RestoreCustomHooksRequest.Unmarshal(m, b) @@ -2218,7 +2218,7 @@ func (m *RestoreCustomHooksResponse) Reset() { *m = RestoreCustomHooksRe func (m *RestoreCustomHooksResponse) String() string { return proto.CompactTextString(m) } func (*RestoreCustomHooksResponse) ProtoMessage() {} func (*RestoreCustomHooksResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{47} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{47} } func (m *RestoreCustomHooksResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RestoreCustomHooksResponse.Unmarshal(m, b) @@ -2249,7 +2249,7 @@ func (m *BackupCustomHooksRequest) Reset() { *m = BackupCustomHooksReque func (m *BackupCustomHooksRequest) String() string { return proto.CompactTextString(m) } func (*BackupCustomHooksRequest) ProtoMessage() {} func (*BackupCustomHooksRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{48} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{48} } func (m *BackupCustomHooksRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BackupCustomHooksRequest.Unmarshal(m, b) @@ -2287,7 +2287,7 @@ func (m *BackupCustomHooksResponse) Reset() { *m = BackupCustomHooksResp func (m *BackupCustomHooksResponse) String() string { return proto.CompactTextString(m) } func (*BackupCustomHooksResponse) ProtoMessage() {} func (*BackupCustomHooksResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{49} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{49} } func (m *BackupCustomHooksResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BackupCustomHooksResponse.Unmarshal(m, b) @@ -2327,7 +2327,7 @@ func (m *CreateRepositoryFromBundleRequest) Reset() { *m = CreateReposit func (m *CreateRepositoryFromBundleRequest) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryFromBundleRequest) ProtoMessage() {} func (*CreateRepositoryFromBundleRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{50} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{50} } func (m *CreateRepositoryFromBundleRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateRepositoryFromBundleRequest.Unmarshal(m, b) @@ -2371,7 +2371,7 @@ func (m *CreateRepositoryFromBundleResponse) Reset() { *m = CreateReposi func (m *CreateRepositoryFromBundleResponse) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryFromBundleResponse) ProtoMessage() {} func (*CreateRepositoryFromBundleResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{51} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{51} } func (m *CreateRepositoryFromBundleResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateRepositoryFromBundleResponse.Unmarshal(m, b) @@ -2402,7 +2402,7 @@ func (m *FindLicenseRequest) Reset() { *m = FindLicenseRequest{} } func (m *FindLicenseRequest) String() string { return proto.CompactTextString(m) } func (*FindLicenseRequest) ProtoMessage() {} func (*FindLicenseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{52} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{52} } func (m *FindLicenseRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindLicenseRequest.Unmarshal(m, b) @@ -2440,7 +2440,7 @@ func (m *FindLicenseResponse) Reset() { *m = FindLicenseResponse{} } func (m *FindLicenseResponse) String() string { return proto.CompactTextString(m) } func (*FindLicenseResponse) ProtoMessage() {} func (*FindLicenseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{53} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{53} } func (m *FindLicenseResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FindLicenseResponse.Unmarshal(m, b) @@ -2478,7 +2478,7 @@ func (m *GetInfoAttributesRequest) Reset() { *m = GetInfoAttributesReque func (m *GetInfoAttributesRequest) String() string { return proto.CompactTextString(m) } func (*GetInfoAttributesRequest) ProtoMessage() {} func (*GetInfoAttributesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{54} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{54} } func (m *GetInfoAttributesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetInfoAttributesRequest.Unmarshal(m, b) @@ -2516,7 +2516,7 @@ func (m *GetInfoAttributesResponse) Reset() { *m = GetInfoAttributesResp func (m *GetInfoAttributesResponse) String() string { return proto.CompactTextString(m) } func (*GetInfoAttributesResponse) ProtoMessage() {} func (*GetInfoAttributesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{55} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{55} } func (m *GetInfoAttributesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetInfoAttributesResponse.Unmarshal(m, b) @@ -2554,7 +2554,7 @@ func (m *CalculateChecksumRequest) Reset() { *m = CalculateChecksumReque func (m *CalculateChecksumRequest) String() string { return proto.CompactTextString(m) } func (*CalculateChecksumRequest) ProtoMessage() {} func (*CalculateChecksumRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{56} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{56} } func (m *CalculateChecksumRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CalculateChecksumRequest.Unmarshal(m, b) @@ -2592,7 +2592,7 @@ func (m *CalculateChecksumResponse) Reset() { *m = CalculateChecksumResp func (m *CalculateChecksumResponse) String() string { return proto.CompactTextString(m) } func (*CalculateChecksumResponse) ProtoMessage() {} func (*CalculateChecksumResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{57} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{57} } func (m *CalculateChecksumResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CalculateChecksumResponse.Unmarshal(m, b) @@ -2630,7 +2630,7 @@ func (m *GetSnapshotRequest) Reset() { *m = GetSnapshotRequest{} } func (m *GetSnapshotRequest) String() string { return proto.CompactTextString(m) } func (*GetSnapshotRequest) ProtoMessage() {} func (*GetSnapshotRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{58} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{58} } func (m *GetSnapshotRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSnapshotRequest.Unmarshal(m, b) @@ -2668,7 +2668,7 @@ func (m *GetSnapshotResponse) Reset() { *m = GetSnapshotResponse{} } func (m *GetSnapshotResponse) String() string { return proto.CompactTextString(m) } func (*GetSnapshotResponse) ProtoMessage() {} func (*GetSnapshotResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{59} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{59} } func (m *GetSnapshotResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSnapshotResponse.Unmarshal(m, b) @@ -2708,7 +2708,7 @@ func (m *CreateRepositoryFromSnapshotRequest) Reset() { *m = CreateRepos func (m *CreateRepositoryFromSnapshotRequest) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryFromSnapshotRequest) ProtoMessage() {} func (*CreateRepositoryFromSnapshotRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{60} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{60} } func (m *CreateRepositoryFromSnapshotRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateRepositoryFromSnapshotRequest.Unmarshal(m, b) @@ -2759,7 +2759,7 @@ func (m *CreateRepositoryFromSnapshotResponse) Reset() { *m = CreateRepo func (m *CreateRepositoryFromSnapshotResponse) String() string { return proto.CompactTextString(m) } func (*CreateRepositoryFromSnapshotResponse) ProtoMessage() {} func (*CreateRepositoryFromSnapshotResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{61} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{61} } func (m *CreateRepositoryFromSnapshotResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateRepositoryFromSnapshotResponse.Unmarshal(m, b) @@ -2792,7 +2792,7 @@ func (m *GetRawChangesRequest) Reset() { *m = GetRawChangesRequest{} } func (m *GetRawChangesRequest) String() string { return proto.CompactTextString(m) } func (*GetRawChangesRequest) ProtoMessage() {} func (*GetRawChangesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{62} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{62} } func (m *GetRawChangesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetRawChangesRequest.Unmarshal(m, b) @@ -2844,7 +2844,7 @@ func (m *GetRawChangesResponse) Reset() { *m = GetRawChangesResponse{} } func (m *GetRawChangesResponse) String() string { return proto.CompactTextString(m) } func (*GetRawChangesResponse) ProtoMessage() {} func (*GetRawChangesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{63} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{63} } func (m *GetRawChangesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetRawChangesResponse.Unmarshal(m, b) @@ -2872,24 +2872,28 @@ func (m *GetRawChangesResponse) GetRawChanges() []*GetRawChangesResponse_RawChan } type GetRawChangesResponse_RawChange struct { - BlobId string `protobuf:"bytes,1,opt,name=blob_id,json=blobId,proto3" json:"blob_id,omitempty"` - Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` - NewPath string `protobuf:"bytes,3,opt,name=new_path,json=newPath,proto3" json:"new_path,omitempty"` - OldPath string `protobuf:"bytes,4,opt,name=old_path,json=oldPath,proto3" json:"old_path,omitempty"` - Operation GetRawChangesResponse_RawChange_Operation `protobuf:"varint,5,opt,name=operation,proto3,enum=gitaly.GetRawChangesResponse_RawChange_Operation" json:"operation,omitempty"` - RawOperation string `protobuf:"bytes,6,opt,name=raw_operation,json=rawOperation,proto3" json:"raw_operation,omitempty"` - OldMode int32 `protobuf:"varint,7,opt,name=old_mode,json=oldMode,proto3" json:"old_mode,omitempty"` - NewMode int32 `protobuf:"varint,8,opt,name=new_mode,json=newMode,proto3" json:"new_mode,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + BlobId string `protobuf:"bytes,1,opt,name=blob_id,json=blobId,proto3" json:"blob_id,omitempty"` + Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` + // use fields 9 and 10 in place of 3 and 4 (respectively) + NewPath string `protobuf:"bytes,3,opt,name=new_path,json=newPath,proto3" json:"new_path,omitempty"` // Deprecated: Do not use. + OldPath string `protobuf:"bytes,4,opt,name=old_path,json=oldPath,proto3" json:"old_path,omitempty"` // Deprecated: Do not use. + Operation GetRawChangesResponse_RawChange_Operation `protobuf:"varint,5,opt,name=operation,proto3,enum=gitaly.GetRawChangesResponse_RawChange_Operation" json:"operation,omitempty"` + RawOperation string `protobuf:"bytes,6,opt,name=raw_operation,json=rawOperation,proto3" json:"raw_operation,omitempty"` + OldMode int32 `protobuf:"varint,7,opt,name=old_mode,json=oldMode,proto3" json:"old_mode,omitempty"` + NewMode int32 `protobuf:"varint,8,opt,name=new_mode,json=newMode,proto3" json:"new_mode,omitempty"` + // the following fields, 9 and 10, will eventually replace 3 and 4 + NewPathBytes []byte `protobuf:"bytes,9,opt,name=new_path_bytes,json=newPathBytes,proto3" json:"new_path_bytes,omitempty"` + OldPathBytes []byte `protobuf:"bytes,10,opt,name=old_path_bytes,json=oldPathBytes,proto3" json:"old_path_bytes,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetRawChangesResponse_RawChange) Reset() { *m = GetRawChangesResponse_RawChange{} } func (m *GetRawChangesResponse_RawChange) String() string { return proto.CompactTextString(m) } func (*GetRawChangesResponse_RawChange) ProtoMessage() {} func (*GetRawChangesResponse_RawChange) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{63, 0} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{63, 0} } func (m *GetRawChangesResponse_RawChange) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetRawChangesResponse_RawChange.Unmarshal(m, b) @@ -2923,6 +2927,7 @@ func (m *GetRawChangesResponse_RawChange) GetSize() int64 { return 0 } +// Deprecated: Do not use. func (m *GetRawChangesResponse_RawChange) GetNewPath() string { if m != nil { return m.NewPath @@ -2930,6 +2935,7 @@ func (m *GetRawChangesResponse_RawChange) GetNewPath() string { return "" } +// Deprecated: Do not use. func (m *GetRawChangesResponse_RawChange) GetOldPath() string { if m != nil { return m.OldPath @@ -2965,6 +2971,20 @@ func (m *GetRawChangesResponse_RawChange) GetNewMode() int32 { return 0 } +func (m *GetRawChangesResponse_RawChange) GetNewPathBytes() []byte { + if m != nil { + return m.NewPathBytes + } + return nil +} + +func (m *GetRawChangesResponse_RawChange) GetOldPathBytes() []byte { + if m != nil { + return m.OldPathBytes + } + return nil +} + type SearchFilesByNameRequest struct { Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` Query string `protobuf:"bytes,2,opt,name=query,proto3" json:"query,omitempty"` @@ -2978,7 +2998,7 @@ func (m *SearchFilesByNameRequest) Reset() { *m = SearchFilesByNameReque func (m *SearchFilesByNameRequest) String() string { return proto.CompactTextString(m) } func (*SearchFilesByNameRequest) ProtoMessage() {} func (*SearchFilesByNameRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{64} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{64} } func (m *SearchFilesByNameRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchFilesByNameRequest.Unmarshal(m, b) @@ -3030,7 +3050,7 @@ func (m *SearchFilesByNameResponse) Reset() { *m = SearchFilesByNameResp func (m *SearchFilesByNameResponse) String() string { return proto.CompactTextString(m) } func (*SearchFilesByNameResponse) ProtoMessage() {} func (*SearchFilesByNameResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{65} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{65} } func (m *SearchFilesByNameResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchFilesByNameResponse.Unmarshal(m, b) @@ -3071,7 +3091,7 @@ func (m *SearchFilesByContentRequest) Reset() { *m = SearchFilesByConten func (m *SearchFilesByContentRequest) String() string { return proto.CompactTextString(m) } func (*SearchFilesByContentRequest) ProtoMessage() {} func (*SearchFilesByContentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{66} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{66} } func (m *SearchFilesByContentRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchFilesByContentRequest.Unmarshal(m, b) @@ -3132,7 +3152,7 @@ func (m *SearchFilesByContentResponse) Reset() { *m = SearchFilesByConte func (m *SearchFilesByContentResponse) String() string { return proto.CompactTextString(m) } func (*SearchFilesByContentResponse) ProtoMessage() {} func (*SearchFilesByContentResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{67} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{67} } func (m *SearchFilesByContentResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SearchFilesByContentResponse.Unmarshal(m, b) @@ -3186,7 +3206,7 @@ func (m *PreFetchRequest) Reset() { *m = PreFetchRequest{} } func (m *PreFetchRequest) String() string { return proto.CompactTextString(m) } func (*PreFetchRequest) ProtoMessage() {} func (*PreFetchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{68} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{68} } func (m *PreFetchRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PreFetchRequest.Unmarshal(m, b) @@ -3237,7 +3257,7 @@ func (m *PreFetchResponse) Reset() { *m = PreFetchResponse{} } func (m *PreFetchResponse) String() string { return proto.CompactTextString(m) } func (*PreFetchResponse) ProtoMessage() {} func (*PreFetchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{69} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{69} } func (m *PreFetchResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PreFetchResponse.Unmarshal(m, b) @@ -3271,7 +3291,7 @@ func (m *Remote) Reset() { *m = Remote{} } func (m *Remote) String() string { return proto.CompactTextString(m) } func (*Remote) ProtoMessage() {} func (*Remote) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{70} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{70} } func (m *Remote) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Remote.Unmarshal(m, b) @@ -3332,7 +3352,7 @@ func (m *FetchHTTPRemoteRequest) Reset() { *m = FetchHTTPRemoteRequest{} func (m *FetchHTTPRemoteRequest) String() string { return proto.CompactTextString(m) } func (*FetchHTTPRemoteRequest) ProtoMessage() {} func (*FetchHTTPRemoteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{71} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{71} } func (m *FetchHTTPRemoteRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FetchHTTPRemoteRequest.Unmarshal(m, b) @@ -3383,7 +3403,7 @@ func (m *FetchHTTPRemoteResponse) Reset() { *m = FetchHTTPRemoteResponse func (m *FetchHTTPRemoteResponse) String() string { return proto.CompactTextString(m) } func (*FetchHTTPRemoteResponse) ProtoMessage() {} func (*FetchHTTPRemoteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_repository_service_0ca6892fce27f4a0, []int{72} + return fileDescriptor_repository_service_d00c9438dcbaa535, []int{72} } func (m *FetchHTTPRemoteResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FetchHTTPRemoteResponse.Unmarshal(m, b) @@ -4996,181 +5016,182 @@ var _RepositoryService_serviceDesc = grpc.ServiceDesc{ } func init() { - proto.RegisterFile("repository-service.proto", fileDescriptor_repository_service_0ca6892fce27f4a0) -} - -var fileDescriptor_repository_service_0ca6892fce27f4a0 = []byte{ - // 2742 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0xdd, 0x72, 0x1b, 0xb7, - 0x15, 0xe6, 0x8f, 0x24, 0x92, 0x87, 0xb4, 0x4d, 0x41, 0xb2, 0x45, 0xd2, 0xff, 0x6b, 0x37, 0x71, - 0xfe, 0xe4, 0x44, 0xba, 0x68, 0x26, 0x6d, 0xc7, 0xa3, 0x7f, 0x29, 0xb1, 0x25, 0x65, 0x25, 0xc7, - 0x53, 0x4f, 0x3a, 0x3b, 0xab, 0x25, 0x28, 0x6e, 0xb5, 0x5c, 0x30, 0x58, 0xd0, 0x8a, 0xd2, 0x99, - 0xde, 0x65, 0x3a, 0xbd, 0x4b, 0x6f, 0xfa, 0xf3, 0x0e, 0x7d, 0x82, 0xde, 0xf5, 0x0d, 0x7a, 0xdf, - 0x27, 0xe8, 0x6d, 0x9f, 0xa0, 0x03, 0x60, 0x17, 0xd8, 0xe5, 0xee, 0xb2, 0xee, 0x90, 0x93, 0xde, - 0x2d, 0xce, 0x01, 0x0e, 0x0e, 0xce, 0x39, 0x38, 0xc0, 0xf9, 0xb0, 0xd0, 0xa2, 0x78, 0x48, 0x02, - 0x97, 0x11, 0x7a, 0xf5, 0x51, 0x80, 0xe9, 0x1b, 0xd7, 0xc1, 0xab, 0x43, 0x4a, 0x18, 0x41, 0x0b, - 0xe7, 0x2e, 0xb3, 0xbd, 0xab, 0x4e, 0x23, 0xe8, 0xdb, 0x14, 0x77, 0x25, 0xd5, 0x78, 0x09, 0x2b, - 0xa6, 0x1a, 0xb1, 0xf3, 0xad, 0x1b, 0xb0, 0xc0, 0xc4, 0xdf, 0x8c, 0x70, 0xc0, 0xd0, 0x1a, 0x80, - 0x16, 0xd6, 0x2a, 0x3e, 0x28, 0x3e, 0xa9, 0xaf, 0xa1, 0x55, 0x29, 0x65, 0x55, 0x0f, 0x32, 0x63, - 0xbd, 0x3e, 0x5b, 0xf8, 0xf7, 0x9f, 0x9e, 0x94, 0xaa, 0x25, 0x63, 0x0d, 0x5a, 0x69, 0xb1, 0xc1, - 0x90, 0xf8, 0x01, 0x46, 0xb7, 0x60, 0x01, 0x0b, 0x8a, 0x90, 0x59, 0x35, 0xc3, 0x96, 0xf1, 0x95, - 0x18, 0x63, 0x3b, 0x17, 0x07, 0xbe, 0x43, 0xf1, 0x00, 0xfb, 0xcc, 0xf6, 0xa6, 0xd7, 0xa5, 0x68, - 0xdc, 0x86, 0x76, 0x86, 0x5c, 0xa9, 0x8c, 0xc1, 0x60, 0x51, 0x32, 0x77, 0x47, 0xde, 0x34, 0xb3, - 0xa1, 0x47, 0x70, 0xcd, 0xa1, 0xd8, 0x66, 0xd8, 0x3a, 0x73, 0xd9, 0xc0, 0x1e, 0xb6, 0x4a, 0x62, - 0x71, 0x0d, 0x49, 0xdc, 0x14, 0x34, 0xa5, 0xd2, 0x32, 0xa0, 0xf8, 0xac, 0xa1, 0x2e, 0xdf, 0xc2, - 0xcd, 0x3d, 0x9b, 0x9e, 0xd9, 0xe7, 0x78, 0x8b, 0x78, 0x1e, 0x76, 0xd8, 0x8f, 0xa6, 0x4f, 0x0b, - 0x6e, 0x8d, 0xcf, 0x1c, 0xea, 0xf4, 0x1c, 0xae, 0x6f, 0x79, 0xd8, 0xf6, 0x47, 0xc3, 0x59, 0xb8, - 0x62, 0x11, 0x6e, 0x28, 0x69, 0xe1, 0x04, 0x27, 0x70, 0x53, 0x0f, 0x3a, 0x71, 0xbf, 0xc3, 0xb3, - 0x08, 0xbf, 0x0f, 0xe1, 0xd6, 0xb8, 0xd0, 0x30, 0xf8, 0x10, 0xcc, 0x05, 0xee, 0x77, 0x58, 0xc8, - 0x2b, 0x9b, 0xe2, 0xdb, 0x08, 0xa0, 0xbd, 0x31, 0x1c, 0x7a, 0x57, 0x7b, 0x2e, 0xb3, 0x19, 0xa3, - 0xee, 0xd9, 0x88, 0xe1, 0x69, 0x76, 0x01, 0xea, 0x40, 0x95, 0xe2, 0x37, 0x6e, 0xe0, 0x12, 0x5f, - 0x98, 0xbd, 0x61, 0xaa, 0xb6, 0x32, 0xc5, 0x1d, 0xe8, 0x64, 0x4d, 0x1a, 0x5a, 0xe5, 0xef, 0x25, - 0x40, 0xbb, 0x98, 0x39, 0x7d, 0x13, 0x0f, 0x08, 0x9b, 0xc6, 0x26, 0x7c, 0xbb, 0x51, 0x21, 0x44, - 0xa8, 0x52, 0x33, 0xc3, 0x16, 0x5a, 0x86, 0xf9, 0x1e, 0xa1, 0x0e, 0x6e, 0x95, 0x45, 0x60, 0xc8, - 0x06, 0x5a, 0x81, 0x8a, 0x4f, 0x2c, 0x66, 0x9f, 0x07, 0xad, 0x39, 0xb9, 0x3b, 0x7d, 0x72, 0x6a, - 0x9f, 0x07, 0xa8, 0x05, 0x15, 0xe6, 0x0e, 0x30, 0x19, 0xb1, 0xd6, 0xfc, 0x83, 0xe2, 0x93, 0x79, - 0x33, 0x6a, 0xf2, 0x21, 0x41, 0xd0, 0xb7, 0x2e, 0xf0, 0x55, 0x6b, 0x41, 0xce, 0x10, 0x04, 0xfd, - 0x2f, 0xf0, 0x15, 0xba, 0x0f, 0xf5, 0x0b, 0x9f, 0x5c, 0xfa, 0x56, 0x9f, 0xf0, 0xdd, 0x5e, 0x11, - 0x4c, 0x10, 0xa4, 0x7d, 0x4e, 0x41, 0x6d, 0xa8, 0xfa, 0xc4, 0x1a, 0xd2, 0x91, 0x8f, 0x5b, 0x35, - 0x31, 0x5b, 0xc5, 0x27, 0xc7, 0xbc, 0x89, 0xd6, 0xe1, 0x9a, 0xd4, 0xd3, 0x1a, 0xda, 0xd4, 0x1e, - 0x04, 0x2d, 0x10, 0x8b, 0xbd, 0xae, 0x17, 0x2b, 0xec, 0xd2, 0x90, 0x9d, 0x8e, 0x45, 0x9f, 0xc8, - 0xb6, 0x9f, 0xcf, 0x55, 0xab, 0xcd, 0x9a, 0x71, 0x13, 0x96, 0x12, 0x26, 0x0c, 0x4d, 0xfb, 0x12, - 0x56, 0xb6, 0xc4, 0x1e, 0x88, 0xd9, 0x6b, 0x06, 0xa1, 0xdd, 0x81, 0x56, 0x5a, 0x6c, 0x38, 0xe5, - 0xef, 0x4a, 0xb0, 0xb8, 0x87, 0xd9, 0x06, 0x75, 0xfa, 0xee, 0x9b, 0xa9, 0x9c, 0x79, 0x1b, 0x6a, - 0x0e, 0x19, 0x0c, 0x5c, 0x66, 0xb9, 0xdd, 0xd0, 0x9f, 0x55, 0x49, 0x38, 0xe8, 0x72, 0x4f, 0x0f, - 0x29, 0xee, 0xb9, 0xdf, 0x0a, 0x97, 0xd6, 0xcc, 0xb0, 0x85, 0x3e, 0x85, 0x85, 0x1e, 0xa1, 0x03, - 0x9b, 0x09, 0x97, 0x5e, 0x5f, 0x7b, 0x10, 0x4d, 0x92, 0xd2, 0x69, 0x75, 0x57, 0xf4, 0x33, 0xc3, - 0xfe, 0x7c, 0xb7, 0x0c, 0x6d, 0xd6, 0x17, 0x1e, 0x6f, 0x98, 0xe2, 0xdb, 0x58, 0x87, 0x05, 0xd9, - 0x0b, 0x55, 0xa0, 0xfc, 0xfa, 0xe0, 0xb8, 0x59, 0xe0, 0x1f, 0xa7, 0x1b, 0x66, 0xb3, 0x88, 0x00, - 0x16, 0x4e, 0x37, 0x4c, 0x6b, 0xef, 0x75, 0xb3, 0x84, 0xea, 0x50, 0xe1, 0xdf, 0x9b, 0xaf, 0xd7, - 0x9a, 0x65, 0xb5, 0x31, 0x9f, 0x00, 0x8a, 0x4f, 0xaa, 0x37, 0x65, 0xd7, 0x66, 0xb6, 0xb0, 0x41, - 0xc3, 0x14, 0xdf, 0xdc, 0x4d, 0xfb, 0x76, 0xf0, 0x9c, 0x38, 0xb6, 0xb7, 0x49, 0x6d, 0xdf, 0xe9, - 0xe3, 0x99, 0x1c, 0x4c, 0x1f, 0x43, 0x2b, 0x2d, 0x36, 0x54, 0x63, 0x19, 0xe6, 0xdf, 0xd8, 0xde, - 0x08, 0x87, 0xe7, 0x92, 0x6c, 0x18, 0xff, 0x2c, 0x42, 0x4b, 0xc4, 0xd1, 0x09, 0x19, 0x51, 0x07, - 0xcb, 0x51, 0xd3, 0xf8, 0xf0, 0x19, 0x2c, 0x06, 0x42, 0x94, 0x15, 0x1b, 0x5a, 0xca, 0x1d, 0xda, - 0x94, 0x9d, 0xcd, 0x44, 0x6a, 0x0f, 0x05, 0x9c, 0x09, 0x65, 0x84, 0xbb, 0x1b, 0x66, 0x23, 0x88, - 0x29, 0x88, 0xee, 0x02, 0x30, 0x9b, 0x9e, 0x63, 0x66, 0x51, 0xdc, 0x13, 0x8e, 0x6f, 0x98, 0x35, - 0x49, 0x31, 0x71, 0x4f, 0x85, 0xed, 0x3a, 0xb4, 0x33, 0x16, 0xa7, 0x4f, 0x6a, 0x8a, 0x83, 0x91, - 0xc7, 0xa2, 0x93, 0x5a, 0xb6, 0x8c, 0x03, 0xa8, 0xef, 0x06, 0xce, 0xc5, 0x2c, 0xb6, 0xcd, 0x63, - 0x68, 0x48, 0x51, 0xda, 0x07, 0x98, 0x52, 0x42, 0xc3, 0x58, 0x90, 0x0d, 0xe3, 0x6f, 0x45, 0xb8, - 0xf1, 0x8a, 0xba, 0x7c, 0x73, 0xf5, 0xa6, 0x31, 0x7d, 0x13, 0xca, 0xdc, 0x1a, 0x32, 0x27, 0xf3, - 0xcf, 0x44, 0xaa, 0x2e, 0x27, 0x53, 0x35, 0x7a, 0x08, 0x0d, 0xe2, 0x75, 0x2d, 0xc5, 0x97, 0x46, - 0xac, 0x13, 0xaf, 0x6b, 0x46, 0x5d, 0x54, 0x12, 0x9d, 0x8f, 0x25, 0xd1, 0x58, 0x1e, 0x5a, 0x68, - 0x56, 0x8c, 0x16, 0x34, 0xb5, 0xee, 0x72, 0x99, 0x9f, 0xcf, 0x55, 0x8b, 0xcd, 0x92, 0x31, 0x84, - 0xe5, 0x5d, 0xd7, 0xef, 0xbe, 0xc0, 0xf4, 0x1c, 0x6f, 0xda, 0xc1, 0x54, 0x99, 0xe1, 0x0e, 0xd4, - 0x22, 0x45, 0x83, 0x56, 0xe9, 0x41, 0x99, 0xbb, 0x5b, 0x11, 0x54, 0xf8, 0x7f, 0x00, 0x37, 0xc7, - 0x66, 0xd4, 0x5b, 0xf0, 0xcc, 0x0e, 0x64, 0xe8, 0xd7, 0x4c, 0xf1, 0x6d, 0xfc, 0x50, 0x84, 0x45, - 0x99, 0xd3, 0x76, 0x09, 0xbd, 0xf8, 0x7f, 0x86, 0x7c, 0xfc, 0xe2, 0x14, 0xd7, 0x48, 0x5d, 0xe2, - 0xda, 0x07, 0x81, 0x89, 0xb9, 0xd2, 0x07, 0xfe, 0x31, 0x25, 0xe7, 0x14, 0x07, 0xc1, 0x94, 0x69, - 0x96, 0x0a, 0x71, 0xb1, 0x34, 0x2b, 0x09, 0x07, 0x5d, 0x65, 0xcb, 0x5f, 0x40, 0x27, 0x6b, 0xd6, - 0xd0, 0xa0, 0xf7, 0xa1, 0xee, 0xfa, 0xd6, 0x30, 0x24, 0x87, 0x1b, 0x08, 0x5c, 0xd5, 0x51, 0x2a, - 0x7d, 0xf2, 0xcd, 0xc8, 0x0e, 0xfa, 0x33, 0x53, 0x3a, 0x10, 0xe2, 0x62, 0x4a, 0x4b, 0xc2, 0xb8, - 0xd2, 0xe9, 0x59, 0xdf, 0x56, 0x69, 0x1f, 0xee, 0x8d, 0x9f, 0x72, 0xbb, 0x94, 0x0c, 0x5e, 0x9a, - 0xcf, 0xa7, 0xdc, 0x96, 0x23, 0xea, 0x85, 0x3a, 0xf3, 0x4f, 0xe5, 0xef, 0x87, 0x70, 0x3f, 0x77, - 0xbe, 0xd0, 0xf9, 0x5f, 0xc2, 0x92, 0xec, 0xb2, 0x39, 0xf2, 0xbb, 0xde, 0x4c, 0xae, 0x8f, 0xef, - 0xc3, 0x72, 0x52, 0xe4, 0x84, 0x73, 0x6a, 0x00, 0x48, 0xec, 0xee, 0x2d, 0xe2, 0xf7, 0xdc, 0xf3, - 0x29, 0xfd, 0xd7, 0x1b, 0x79, 0x9e, 0x25, 0x4e, 0xdc, 0xd0, 0x7f, 0x9c, 0x70, 0x6c, 0xb3, 0xbe, - 0x32, 0xc8, 0x07, 0xb0, 0x94, 0x98, 0x6e, 0x62, 0xda, 0xfc, 0xa1, 0x04, 0xcd, 0x13, 0xcc, 0xa6, - 0x57, 0xed, 0x53, 0xa8, 0x60, 0x9f, 0x51, 0x17, 0xcb, 0xd4, 0x52, 0x5f, 0xbb, 0x17, 0x0d, 0x18, - 0x17, 0xbf, 0xba, 0xe3, 0x33, 0x7a, 0x65, 0x46, 0xdd, 0x3b, 0xdf, 0x17, 0x61, 0x5e, 0x90, 0xb8, - 0x93, 0xf9, 0x15, 0x51, 0x26, 0x18, 0xfe, 0x89, 0xee, 0x42, 0x4d, 0x1c, 0xb1, 0x56, 0xc0, 0xa8, - 0x5c, 0xf0, 0x7e, 0xc1, 0xac, 0x0a, 0xd2, 0x09, 0xa3, 0xe8, 0x21, 0xd4, 0x25, 0xdb, 0xf5, 0xd9, - 0xfa, 0x9a, 0xc8, 0xce, 0xf3, 0xfb, 0x05, 0x13, 0x04, 0xf1, 0x80, 0xd3, 0xd0, 0x7d, 0x90, 0x2d, - 0xeb, 0x8c, 0x10, 0x4f, 0x5e, 0x58, 0xf7, 0x0b, 0xa6, 0x94, 0xba, 0x49, 0x88, 0xb7, 0x59, 0x09, - 0x8f, 0x74, 0x65, 0xbf, 0x25, 0x58, 0x8c, 0xa9, 0x1c, 0x86, 0x10, 0x86, 0xa5, 0x6d, 0xec, 0xe1, - 0x59, 0x38, 0x11, 0xc1, 0xdc, 0x05, 0xbe, 0x92, 0x66, 0xaa, 0x99, 0xe2, 0x5b, 0xcd, 0x7d, 0x0b, - 0x96, 0x93, 0xd3, 0x84, 0xd3, 0x5f, 0xf0, 0x02, 0x35, 0x60, 0x84, 0xe2, 0xad, 0x51, 0xc0, 0xc8, - 0x60, 0x9f, 0x90, 0x8b, 0x60, 0x4a, 0x25, 0x44, 0x9c, 0x96, 0x74, 0x9c, 0xc6, 0xeb, 0x8e, 0xac, - 0xc9, 0x42, 0x55, 0xbe, 0x82, 0xd6, 0xa6, 0xed, 0x5c, 0x8c, 0x86, 0xb3, 0xd1, 0x44, 0xed, 0xa8, - 0xa7, 0xd0, 0xce, 0x90, 0x3b, 0x61, 0x5b, 0x05, 0xf0, 0x30, 0x6b, 0xe3, 0x4f, 0xbd, 0xc7, 0x27, - 0xda, 0xe6, 0x31, 0x18, 0x93, 0x26, 0x0d, 0x6d, 0x74, 0x0c, 0x88, 0x9f, 0xa1, 0xcf, 0x5d, 0x07, - 0xfb, 0xc1, 0x4c, 0xf2, 0xcd, 0x16, 0x2c, 0x25, 0x24, 0x86, 0x76, 0xf9, 0x10, 0x90, 0x27, 0x49, - 0x56, 0xd0, 0x27, 0x94, 0x59, 0xbe, 0x3d, 0x88, 0x4e, 0xe8, 0x66, 0xc8, 0x39, 0xe1, 0x8c, 0x43, - 0x7b, 0x20, 0x5c, 0xb7, 0x87, 0xd9, 0x81, 0xdf, 0x23, 0x1b, 0xb3, 0x28, 0x62, 0x95, 0x72, 0x3f, - 0x83, 0x76, 0x86, 0xdc, 0x50, 0xc5, 0x7b, 0x00, 0xba, 0x7a, 0x0d, 0x1d, 0x18, 0xa3, 0x70, 0xa5, - 0xb6, 0x6c, 0xcf, 0x19, 0x79, 0x36, 0xc3, 0x5b, 0x7d, 0xec, 0x5c, 0x04, 0xa3, 0xc1, 0x2c, 0x94, - 0xfa, 0x29, 0xb4, 0x33, 0xe4, 0x86, 0x4a, 0x75, 0xa0, 0xea, 0x84, 0xb4, 0xd0, 0x5a, 0xaa, 0xcd, - 0x9d, 0xb7, 0x87, 0xd9, 0x89, 0x6f, 0x0f, 0x83, 0x3e, 0x61, 0xb3, 0x50, 0xe5, 0x3d, 0x58, 0x4a, - 0x48, 0x9c, 0x10, 0xd4, 0x7f, 0x29, 0xc2, 0xa3, 0xac, 0x00, 0x9b, 0x81, 0x3a, 0xbc, 0x96, 0xee, - 0x33, 0x36, 0xb4, 0xf4, 0x41, 0x5a, 0xe1, 0xed, 0x97, 0xd4, 0xe3, 0x07, 0x8b, 0x60, 0xd9, 0x23, - 0xd6, 0x0f, 0x4b, 0x43, 0xd1, 0x77, 0x63, 0x14, 0x3b, 0x58, 0xde, 0x81, 0xc7, 0x93, 0x55, 0x0b, - 0xa3, 0xff, 0xcf, 0x45, 0x58, 0xde, 0xc3, 0xcc, 0xb4, 0x2f, 0xb7, 0xfa, 0xb6, 0x7f, 0x3e, 0x1d, - 0x50, 0xf2, 0x08, 0xae, 0xf5, 0x28, 0x19, 0x58, 0x09, 0xb4, 0xa4, 0x66, 0x36, 0x38, 0x51, 0xdd, - 0xb1, 0xef, 0x43, 0x9d, 0x11, 0x2b, 0x71, 0x4b, 0xaf, 0x99, 0xc0, 0x88, 0x99, 0x84, 0x54, 0x4a, - 0xc6, 0xbf, 0xca, 0x70, 0x73, 0x4c, 0xb5, 0xd0, 0x19, 0xfb, 0x50, 0xa7, 0xf6, 0xa5, 0xe5, 0x48, - 0x72, 0xab, 0x28, 0xce, 0xb0, 0x77, 0x63, 0x65, 0x70, 0x7a, 0xcc, 0xaa, 0x22, 0x99, 0x40, 0x15, - 0xb7, 0xf3, 0x7d, 0x19, 0x6a, 0x8a, 0x83, 0x56, 0xa0, 0x72, 0xe6, 0x91, 0x33, 0x7e, 0xe1, 0x92, - 0x81, 0xb6, 0xc0, 0x9b, 0x07, 0x5d, 0x05, 0x33, 0x95, 0x34, 0xcc, 0x24, 0xd0, 0x0e, 0x7c, 0x29, - 0x8f, 0x77, 0xb9, 0x88, 0x8a, 0x8f, 0x2f, 0xf9, 0xe9, 0xce, 0x59, 0xbc, 0xd2, 0x10, 0xac, 0x39, - 0xc9, 0x22, 0x5e, 0x57, 0xb0, 0x8e, 0xa0, 0x46, 0x86, 0x98, 0xda, 0x8c, 0xaf, 0x7d, 0x5e, 0xd4, - 0xef, 0x9f, 0xbc, 0xa5, 0xe2, 0xab, 0x47, 0xd1, 0x40, 0x53, 0xcb, 0xe0, 0x36, 0xe7, 0xb6, 0xd0, - 0x42, 0x25, 0x68, 0xd3, 0xa0, 0xf6, 0xa5, 0xea, 0x1f, 0x29, 0x34, 0x20, 0x5d, 0x2c, 0x70, 0x9b, - 0x79, 0xa1, 0xd0, 0x0b, 0xd2, 0x55, 0xcb, 0x10, 0xac, 0xaa, 0x64, 0xf9, 0xf8, 0x92, 0xb3, 0x0c, - 0x17, 0x6a, 0x5a, 0x44, 0x1d, 0x2a, 0x2f, 0x0f, 0xbf, 0x38, 0x3c, 0x7a, 0x75, 0xd8, 0x2c, 0xa0, - 0x1a, 0xcc, 0x6f, 0x6c, 0x6f, 0xef, 0x6c, 0x4b, 0x8c, 0x60, 0xeb, 0xe8, 0xf8, 0x60, 0x67, 0x5b, - 0x62, 0x04, 0xdb, 0x3b, 0xcf, 0x77, 0x4e, 0x77, 0xb6, 0x9b, 0x65, 0xd4, 0x80, 0xea, 0x8b, 0xa3, - 0xed, 0x83, 0x5d, 0xce, 0x9a, 0xe3, 0x2c, 0x73, 0xe7, 0x70, 0xe3, 0xc5, 0xce, 0x76, 0x73, 0x1e, - 0x35, 0xa1, 0x71, 0xfa, 0xcb, 0xe3, 0x1d, 0x6b, 0x6b, 0x7f, 0xe3, 0x70, 0x6f, 0x67, 0xbb, 0xb9, - 0x60, 0xfc, 0x16, 0x5a, 0x27, 0xd8, 0xa6, 0x4e, 0x7f, 0xd7, 0xf5, 0x70, 0xb0, 0x79, 0xc5, 0x53, - 0xe0, 0x34, 0x91, 0xb8, 0x0c, 0xf3, 0xdf, 0x8c, 0x70, 0x58, 0x95, 0xd4, 0x4c, 0xd9, 0x88, 0xea, - 0xc5, 0xb2, 0xaa, 0x17, 0x55, 0xac, 0x7d, 0x02, 0xed, 0x8c, 0xf9, 0xf5, 0x6d, 0xac, 0xc7, 0xc9, - 0x22, 0xd0, 0x1a, 0xa6, 0x6c, 0x18, 0x7f, 0x2d, 0xc2, 0xed, 0xc4, 0x98, 0x2d, 0xe2, 0x33, 0xec, - 0xb3, 0x1f, 0x41, 0x6d, 0xf4, 0x1e, 0x34, 0x9d, 0xfe, 0xc8, 0xbf, 0xc0, 0xbc, 0x9c, 0x95, 0x5a, - 0x86, 0xf8, 0xde, 0x8d, 0x90, 0x1e, 0x29, 0xaf, 0x56, 0x78, 0x05, 0x77, 0xb2, 0xb5, 0x0d, 0x17, - 0xd9, 0x82, 0xca, 0xc0, 0x66, 0x4e, 0x5f, 0x2d, 0x33, 0x6a, 0xa2, 0xbb, 0x00, 0xe2, 0xd3, 0x8a, - 0x1d, 0xb4, 0x35, 0x41, 0xd9, 0xb6, 0x99, 0x8d, 0x1e, 0x40, 0x03, 0xfb, 0x5d, 0x8b, 0xf4, 0x2c, - 0x41, 0x0b, 0xf1, 0x47, 0xc0, 0x7e, 0xf7, 0xa8, 0xf7, 0x82, 0x53, 0x8c, 0x7f, 0x14, 0xe1, 0xc6, - 0x31, 0xc5, 0x21, 0x7a, 0x27, 0xad, 0x93, 0x59, 0x42, 0x16, 0xff, 0x07, 0xd4, 0xe4, 0x19, 0x2c, - 0x2a, 0x40, 0xe4, 0x6d, 0x6a, 0xd0, 0x08, 0x2b, 0x51, 0x02, 0xd6, 0xa1, 0x4e, 0xce, 0x7e, 0x8d, - 0x1d, 0x66, 0x0d, 0xf9, 0x6d, 0xb3, 0x9c, 0x1c, 0x7a, 0x24, 0x58, 0xc7, 0x84, 0x78, 0x26, 0x10, - 0xf5, 0xad, 0xac, 0x89, 0xa0, 0xa9, 0x57, 0x14, 0xa6, 0xd2, 0x3f, 0x14, 0x61, 0x41, 0x82, 0x93, - 0x51, 0x05, 0x54, 0x54, 0x15, 0x10, 0xcf, 0x20, 0xe2, 0xb8, 0x97, 0x8e, 0x15, 0xdf, 0xe8, 0x33, - 0x68, 0xab, 0x44, 0x4e, 0xa8, 0xfb, 0x9d, 0xd8, 0x68, 0x56, 0x1f, 0xdb, 0x5d, 0x4c, 0xc3, 0x94, - 0xb2, 0x12, 0x25, 0x76, 0xc5, 0xdf, 0x17, 0x6c, 0xf4, 0x13, 0xb8, 0x3e, 0x70, 0x79, 0x55, 0x60, - 0x51, 0xdc, 0x1b, 0xd8, 0xc3, 0xa0, 0x35, 0x27, 0xae, 0xa8, 0xd7, 0x24, 0xd5, 0x94, 0x44, 0xe3, - 0x8f, 0x45, 0xb8, 0x25, 0xb4, 0xdc, 0x3f, 0x3d, 0x3d, 0x9e, 0x1e, 0x7c, 0x7e, 0x27, 0x01, 0x3e, - 0xa7, 0xf1, 0xdb, 0x08, 0x8c, 0x8e, 0xa1, 0xcb, 0xe5, 0x04, 0xba, 0xac, 0x0c, 0xd8, 0x86, 0x95, - 0x94, 0x5e, 0xd2, 0x8e, 0x6b, 0xbf, 0x6f, 0x89, 0x47, 0x9c, 0x08, 0xee, 0x97, 0xaf, 0x5e, 0xe8, - 0x15, 0x34, 0xc7, 0x9f, 0xa0, 0xd0, 0xfd, 0xb4, 0xba, 0x89, 0x37, 0xaf, 0xce, 0x83, 0xfc, 0x0e, - 0xa1, 0xd3, 0x0a, 0xe8, 0x75, 0xf4, 0x64, 0x14, 0x7b, 0x4f, 0x42, 0xf1, 0x81, 0x99, 0x4f, 0x58, - 0x9d, 0x87, 0x13, 0x7a, 0x28, 0xd9, 0x3b, 0x00, 0xfa, 0x61, 0x08, 0xb5, 0x93, 0x43, 0x62, 0x4f, - 0x54, 0x9d, 0x4e, 0x16, 0x4b, 0x89, 0xf9, 0x12, 0xae, 0x27, 0xdf, 0x73, 0xd0, 0x5d, 0x75, 0x66, - 0x64, 0xbd, 0x30, 0x75, 0xee, 0xe5, 0xb1, 0xe3, 0x22, 0x93, 0x4f, 0x2a, 0x5a, 0x64, 0xe6, 0xfb, - 0x8d, 0x16, 0x99, 0xfd, 0x12, 0x63, 0x14, 0xd0, 0xaf, 0x00, 0xa5, 0x9f, 0x40, 0x90, 0xb2, 0x53, - 0xee, 0x9b, 0x4c, 0xc7, 0x98, 0xd4, 0x45, 0x89, 0xdf, 0x87, 0x7a, 0x0c, 0xff, 0x47, 0xca, 0x62, - 0xe9, 0x77, 0x95, 0xce, 0xed, 0x4c, 0x9e, 0x92, 0xf4, 0x0a, 0x9a, 0xe3, 0x77, 0x23, 0x1d, 0x4a, - 0x39, 0x8f, 0x09, 0x3a, 0x94, 0x72, 0x9f, 0x05, 0x0a, 0x68, 0x0f, 0x40, 0xc3, 0xe1, 0xda, 0xdd, - 0x29, 0x5c, 0x5e, 0xbb, 0x3b, 0x8d, 0x9e, 0x1b, 0x85, 0x8f, 0x8b, 0x5c, 0xc3, 0x71, 0x58, 0x5b, - 0x6b, 0x98, 0x83, 0xa3, 0x6b, 0x0d, 0xf3, 0x10, 0x71, 0x19, 0xec, 0x29, 0x7c, 0x58, 0x07, 0x7b, - 0x1e, 0x2e, 0xae, 0x83, 0x3d, 0x17, 0x5c, 0x36, 0x0a, 0x68, 0x1d, 0xe6, 0x76, 0x03, 0xe7, 0x02, - 0x2d, 0xa9, 0xce, 0x1a, 0x54, 0xee, 0x2c, 0x27, 0x89, 0x6a, 0xd0, 0x33, 0xa8, 0x46, 0x68, 0x2a, - 0x5a, 0x89, 0xfa, 0x8c, 0x61, 0xc3, 0x9d, 0x56, 0x9a, 0xa1, 0x04, 0x1c, 0xc2, 0xb5, 0x04, 0x04, - 0x8a, 0xee, 0xa8, 0x99, 0x32, 0xb0, 0xd8, 0xce, 0xdd, 0x1c, 0x6e, 0x7c, 0xcb, 0x6a, 0x48, 0x52, - 0xfb, 0x30, 0x05, 0x9c, 0x6a, 0x1f, 0x66, 0x20, 0x98, 0x62, 0x33, 0xa4, 0xd1, 0x44, 0xbd, 0x19, - 0x72, 0xf1, 0x4d, 0xbd, 0x19, 0xf2, 0xc1, 0xc8, 0x48, 0xfc, 0x38, 0xee, 0x17, 0x17, 0x9f, 0x83, - 0x44, 0xc6, 0xc5, 0xe7, 0xc1, 0x86, 0x46, 0x01, 0x79, 0xe9, 0x47, 0xb5, 0x10, 0xa7, 0x43, 0xef, - 0xe4, 0xed, 0x83, 0x24, 0x70, 0xd8, 0x79, 0xf7, 0xbf, 0xf6, 0x53, 0xb3, 0xbd, 0x80, 0x46, 0x1c, - 0x9f, 0x43, 0xb7, 0x93, 0x43, 0x13, 0x20, 0x41, 0xe7, 0x4e, 0x36, 0x33, 0xb6, 0x79, 0x2e, 0xa1, - 0x93, 0x5f, 0xf6, 0xa3, 0xf7, 0x26, 0xe9, 0x95, 0x9c, 0xea, 0xfd, 0xb7, 0xe9, 0x1a, 0x4d, 0xfc, - 0xa4, 0xc8, 0x33, 0x54, 0x0c, 0xcc, 0xd3, 0x19, 0x2a, 0x0d, 0x28, 0xea, 0x0c, 0x95, 0x81, 0xfe, - 0x19, 0x05, 0xb4, 0x09, 0x35, 0x05, 0x6b, 0xa1, 0x56, 0x1e, 0x38, 0xd7, 0x69, 0x67, 0x70, 0x94, - 0x8c, 0x2f, 0xa0, 0x11, 0x87, 0xa7, 0xb4, 0x55, 0x33, 0xb0, 0x31, 0x6d, 0xd5, 0x4c, 0x44, 0x4b, - 0x26, 0x5f, 0x0d, 0x69, 0xc4, 0x92, 0x6f, 0x0a, 0x39, 0x89, 0x25, 0xdf, 0x34, 0x06, 0x62, 0x14, - 0xd0, 0xd7, 0xe2, 0xed, 0x34, 0x89, 0x3f, 0xa0, 0xf8, 0x13, 0x66, 0x26, 0xe4, 0xa1, 0x33, 0x50, - 0x2e, 0x78, 0x21, 0x7c, 0xff, 0x1a, 0x16, 0x53, 0x40, 0x82, 0x96, 0x9e, 0x87, 0x5d, 0x68, 0xe9, - 0xb9, 0x28, 0x84, 0x51, 0x40, 0x3f, 0x87, 0x4a, 0xf8, 0xb7, 0x03, 0xba, 0xa5, 0xfa, 0x27, 0x7e, - 0xa6, 0xe8, 0xac, 0xa4, 0xe8, 0x6a, 0xf4, 0xe7, 0x50, 0x8f, 0xe1, 0x0a, 0x28, 0x7e, 0x02, 0x8c, - 0xe1, 0x05, 0xda, 0x82, 0x19, 0x40, 0x84, 0x58, 0xe5, 0x6f, 0xe0, 0xce, 0xa4, 0xe2, 0x1e, 0x7d, - 0x30, 0x29, 0x70, 0xc7, 0x67, 0xfb, 0xf0, 0xed, 0x3a, 0xab, 0x85, 0x1c, 0xc3, 0xb5, 0x44, 0xa1, - 0xaa, 0x13, 0x6e, 0x16, 0x8e, 0xa0, 0x13, 0x6e, 0x66, 0x75, 0x2b, 0x96, 0x83, 0x61, 0x39, 0xab, - 0x34, 0x41, 0x8f, 0x74, 0x78, 0xe7, 0x96, 0x59, 0x9d, 0xc7, 0x93, 0x3b, 0xc5, 0xa6, 0xf9, 0x1a, - 0x16, 0x53, 0x35, 0x9e, 0x8e, 0x8d, 0xbc, 0xf2, 0x53, 0xc7, 0x46, 0x6e, 0x81, 0x28, 0xa4, 0x5b, - 0x80, 0xd2, 0x40, 0x2c, 0x8a, 0xdd, 0x12, 0x73, 0x10, 0x61, 0x9d, 0x91, 0x27, 0xe0, 0xb8, 0x3c, - 0xbb, 0x7c, 0x0d, 0x8b, 0x29, 0xcc, 0x55, 0xab, 0x9f, 0x07, 0xf3, 0x6a, 0xf5, 0x73, 0x01, 0x5b, - 0xa1, 0xfe, 0x33, 0xa8, 0x46, 0x05, 0x8d, 0x3e, 0x87, 0xc7, 0x8a, 0x36, 0x7d, 0x0e, 0xa7, 0x6a, - 0x9f, 0x02, 0x3a, 0x85, 0x1b, 0x63, 0x17, 0x7a, 0x74, 0x2f, 0x71, 0x6b, 0x48, 0x55, 0x20, 0x9d, - 0xfb, 0xb9, 0xfc, 0x48, 0xea, 0xe6, 0xc7, 0xaf, 0x79, 0x1f, 0xcf, 0x3e, 0x5b, 0x75, 0xc8, 0xe0, - 0xa9, 0xfc, 0xfc, 0x88, 0xd0, 0xf3, 0xa7, 0x72, 0xe4, 0x47, 0xe2, 0xaf, 0xb7, 0xa7, 0xe7, 0x24, - 0x6c, 0x0f, 0xcf, 0xce, 0x16, 0x04, 0x69, 0xfd, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1f, 0x1a, - 0xa9, 0x8e, 0x3a, 0x27, 0x00, 0x00, + proto.RegisterFile("repository-service.proto", fileDescriptor_repository_service_d00c9438dcbaa535) +} + +var fileDescriptor_repository_service_d00c9438dcbaa535 = []byte{ + // 2760 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x5a, 0x4b, 0x73, 0xdb, 0xc8, + 0xf1, 0x37, 0xf5, 0x22, 0xd9, 0xa4, 0x6d, 0x6a, 0x24, 0x5b, 0x24, 0x2c, 0x5b, 0x36, 0xec, 0xff, + 0xae, 0xf7, 0x25, 0x7b, 0xa5, 0xc3, 0x7f, 0x93, 0x54, 0x6a, 0x4b, 0x94, 0xa8, 0xc7, 0xda, 0x7a, + 0x04, 0xd2, 0x66, 0x2b, 0xae, 0xda, 0x42, 0x40, 0x70, 0x28, 0x22, 0x04, 0x31, 0xdc, 0x01, 0x68, + 0xad, 0x5c, 0x95, 0x43, 0x0e, 0xa9, 0xda, 0x53, 0x2a, 0x7b, 0xca, 0x17, 0xc8, 0x27, 0xc8, 0x2d, + 0x87, 0xdc, 0x73, 0xcf, 0x29, 0xd7, 0x7c, 0x8c, 0x5c, 0x92, 0x9a, 0x07, 0x30, 0x00, 0x01, 0x30, + 0x4e, 0xc1, 0x49, 0x6e, 0x98, 0xee, 0x9e, 0xee, 0x9e, 0x9e, 0x99, 0x9e, 0xe9, 0xdf, 0x00, 0x9a, + 0x14, 0x8f, 0x89, 0xef, 0x04, 0x84, 0x5e, 0x7f, 0xe2, 0x63, 0xfa, 0xda, 0xb1, 0xf1, 0xe6, 0x98, + 0x92, 0x80, 0xa0, 0xa5, 0x4b, 0x27, 0xb0, 0xdc, 0x6b, 0xad, 0xee, 0x0f, 0x2c, 0x8a, 0x7b, 0x82, + 0xaa, 0x1f, 0xc3, 0x9a, 0x11, 0xf5, 0xe8, 0x7c, 0xeb, 0xf8, 0x81, 0x6f, 0xe0, 0x6f, 0x26, 0xd8, + 0x0f, 0xd0, 0x16, 0x80, 0x52, 0xd6, 0x2c, 0x3d, 0x2c, 0x3d, 0xad, 0x6d, 0xa1, 0x4d, 0xa1, 0x65, + 0x53, 0x75, 0x32, 0x62, 0x52, 0xfa, 0x16, 0x34, 0xd3, 0xea, 0xfc, 0x31, 0xf1, 0x7c, 0x8c, 0xee, + 0xc2, 0x12, 0xe6, 0x14, 0xae, 0xab, 0x62, 0xc8, 0x96, 0x7e, 0xc2, 0xfb, 0x58, 0xf6, 0xf0, 0xc8, + 0xb3, 0x29, 0x1e, 0x61, 0x2f, 0xb0, 0xdc, 0x22, 0x3e, 0xdc, 0x83, 0x56, 0x86, 0x3e, 0xe1, 0x84, + 0xee, 0xc2, 0xb2, 0x60, 0xee, 0x4f, 0xdc, 0x22, 0x56, 0xd0, 0x63, 0xb8, 0x69, 0x53, 0x6c, 0x05, + 0xd8, 0xec, 0x3a, 0xc1, 0xc8, 0x1a, 0x37, 0xe7, 0xf8, 0xa0, 0xea, 0x82, 0xd8, 0xe6, 0x34, 0x7d, + 0x15, 0x50, 0xdc, 0x9a, 0xf4, 0x61, 0x0c, 0x77, 0x0e, 0x2c, 0xda, 0xb5, 0x2e, 0xf1, 0x2e, 0x71, + 0x5d, 0x6c, 0x07, 0xff, 0x71, 0x3f, 0x9a, 0x70, 0x77, 0xda, 0xa2, 0xf4, 0x65, 0x0f, 0x6e, 0xed, + 0xba, 0xd8, 0xf2, 0x26, 0xe3, 0x22, 0x21, 0x5f, 0x86, 0xdb, 0x91, 0x16, 0xa9, 0xf8, 0x05, 0xdc, + 0x51, 0xc2, 0xe7, 0xce, 0x1b, 0x5c, 0x44, 0xff, 0xc7, 0x70, 0x77, 0x5a, 0x99, 0x5c, 0x54, 0x08, + 0x16, 0x7c, 0xe7, 0x0d, 0xe6, 0x7a, 0xe6, 0x0d, 0xfe, 0xad, 0x0f, 0xa1, 0xb5, 0x33, 0x1e, 0xbb, + 0xd7, 0x07, 0x4e, 0x60, 0x05, 0x01, 0x75, 0xba, 0x93, 0x00, 0x17, 0x59, 0xd5, 0x48, 0x83, 0x0a, + 0xc5, 0xaf, 0x1d, 0xdf, 0x21, 0x1e, 0x0f, 0x6f, 0xdd, 0x88, 0xda, 0xfa, 0x3a, 0x68, 0x59, 0xc6, + 0x64, 0x14, 0xfe, 0x38, 0x07, 0x68, 0x1f, 0x07, 0xf6, 0xc0, 0xc0, 0x23, 0x12, 0x14, 0x89, 0x01, + 0xdb, 0x3e, 0x94, 0x2b, 0xe1, 0x2e, 0x54, 0x0d, 0xd9, 0x42, 0xab, 0xb0, 0xd8, 0x27, 0xd4, 0xc6, + 0xcd, 0x79, 0x3e, 0xf1, 0xa2, 0x81, 0xd6, 0xa0, 0xec, 0x11, 0x33, 0xb0, 0x2e, 0xfd, 0xe6, 0x82, + 0xd8, 0x6d, 0x1e, 0xb9, 0xb0, 0x2e, 0x7d, 0xd4, 0x84, 0x72, 0xe0, 0x8c, 0x30, 0x99, 0x04, 0xcd, + 0xc5, 0x87, 0xa5, 0xa7, 0x8b, 0x46, 0xd8, 0x64, 0x5d, 0x7c, 0x7f, 0x60, 0x0e, 0xf1, 0x75, 0x73, + 0x49, 0x58, 0xf0, 0xfd, 0xc1, 0x0b, 0x7c, 0x8d, 0x36, 0xa0, 0x36, 0xf4, 0xc8, 0x95, 0x67, 0x0e, + 0x08, 0xdb, 0xbd, 0x65, 0xce, 0x04, 0x4e, 0x3a, 0x64, 0x14, 0xd4, 0x82, 0x8a, 0x47, 0xcc, 0x31, + 0x9d, 0x78, 0xb8, 0x59, 0xe5, 0xd6, 0xca, 0x1e, 0x39, 0x63, 0x4d, 0xb4, 0x0d, 0x37, 0x85, 0x9f, + 0xe6, 0xd8, 0xa2, 0xd6, 0xc8, 0x6f, 0x02, 0x1f, 0xec, 0x2d, 0x35, 0x58, 0x1e, 0x97, 0xba, 0x10, + 0x3a, 0xe3, 0x32, 0x5f, 0x2c, 0x54, 0x2a, 0x8d, 0xaa, 0x7e, 0x07, 0x56, 0x12, 0xa1, 0x93, 0x21, + 0x3d, 0x86, 0xb5, 0x5d, 0xbe, 0xb6, 0x63, 0x71, 0x2a, 0xb0, 0xb4, 0x34, 0x68, 0xa6, 0xd5, 0x49, + 0x53, 0xff, 0x28, 0xc1, 0xf2, 0x01, 0x0e, 0x76, 0xa8, 0x3d, 0x70, 0x5e, 0x17, 0x9a, 0xbc, 0x7b, + 0x50, 0xb5, 0xc9, 0x68, 0xe4, 0x04, 0xa6, 0xd3, 0x93, 0xf3, 0x57, 0x11, 0x84, 0xa3, 0x1e, 0x9b, + 0xd9, 0x31, 0xc5, 0x7d, 0xe7, 0x5b, 0x3e, 0x85, 0x55, 0x43, 0xb6, 0xd0, 0x67, 0xb0, 0xd4, 0x27, + 0x74, 0x64, 0x05, 0x7c, 0x0a, 0x6f, 0x6d, 0x3d, 0x0c, 0x8d, 0xa4, 0x7c, 0xda, 0xdc, 0xe7, 0x72, + 0x86, 0x94, 0x67, 0xbb, 0x62, 0x6c, 0x05, 0x03, 0x3e, 0xc3, 0x75, 0x83, 0x7f, 0xeb, 0xdb, 0xb0, + 0x24, 0xa4, 0x50, 0x19, 0xe6, 0x5f, 0x1d, 0x9d, 0x35, 0x6e, 0xb0, 0x8f, 0x8b, 0x1d, 0xa3, 0x51, + 0x42, 0x00, 0x4b, 0x17, 0x3b, 0x86, 0x79, 0xf0, 0xaa, 0x31, 0x87, 0x6a, 0x50, 0x66, 0xdf, 0xed, + 0x57, 0x5b, 0x8d, 0x79, 0xfd, 0x29, 0xa0, 0xb8, 0x31, 0xb5, 0xe9, 0x7a, 0x56, 0x60, 0xf1, 0xb1, + 0xd7, 0x0d, 0xfe, 0xcd, 0xa6, 0xe5, 0xd0, 0xf2, 0x5f, 0x12, 0xdb, 0x72, 0xdb, 0xd4, 0xf2, 0xec, + 0x41, 0xa1, 0x2d, 0xa7, 0x3f, 0x87, 0x66, 0x5a, 0x9d, 0x34, 0xbf, 0x0a, 0x8b, 0xaf, 0x2d, 0x77, + 0x82, 0xe5, 0x39, 0x22, 0x1a, 0xfa, 0x5f, 0x4a, 0xd0, 0xe4, 0xeb, 0xe5, 0x9c, 0x4c, 0xa8, 0x8d, + 0x45, 0xaf, 0x22, 0x73, 0xf6, 0x39, 0x2c, 0xfb, 0x5c, 0x95, 0x19, 0xeb, 0x3a, 0x97, 0xdb, 0xb5, + 0x21, 0x84, 0x8d, 0x44, 0x6a, 0x96, 0x0a, 0xba, 0xdc, 0x19, 0x3e, 0xbd, 0x75, 0xa3, 0xee, 0xc7, + 0x1c, 0x44, 0xf7, 0x01, 0x02, 0x8b, 0x5e, 0xe2, 0xc0, 0xa4, 0xb8, 0xcf, 0x27, 0xba, 0x6e, 0x54, + 0x05, 0xc5, 0xc0, 0x7d, 0x7d, 0x1b, 0x5a, 0x19, 0x83, 0x52, 0x27, 0x2a, 0xc5, 0xfe, 0xc4, 0x0d, + 0xc2, 0x13, 0x55, 0xb4, 0xf4, 0x1d, 0xa8, 0xed, 0xfb, 0xf6, 0xb0, 0x48, 0xfc, 0x9f, 0x40, 0x5d, + 0xa8, 0x50, 0x31, 0xc7, 0x94, 0x12, 0x2a, 0xe7, 0x5c, 0x34, 0xf4, 0x3f, 0x94, 0xe0, 0xf6, 0x57, + 0xd4, 0x61, 0x9b, 0xa7, 0x5f, 0x24, 0xd4, 0x0d, 0x98, 0x67, 0xa3, 0x17, 0xb9, 0x95, 0x7d, 0x26, + 0x52, 0xee, 0x7c, 0x32, 0xe5, 0xa2, 0x47, 0x50, 0x27, 0x6e, 0xcf, 0x8c, 0xf8, 0x22, 0x68, 0x35, + 0xe2, 0xf6, 0x8c, 0x50, 0x24, 0x4a, 0x8a, 0x8b, 0xb1, 0xa4, 0xf8, 0xc5, 0x42, 0x65, 0xa9, 0x51, + 0xd6, 0x9b, 0xd0, 0x50, 0x3e, 0x8b, 0xe1, 0x7d, 0xb1, 0x50, 0x29, 0x35, 0xe6, 0xf4, 0x01, 0xac, + 0xee, 0x3b, 0x5e, 0xef, 0x18, 0xd3, 0x4b, 0xdc, 0xb6, 0xfc, 0x42, 0x3b, 0x7e, 0x1d, 0xaa, 0xa1, + 0x83, 0x7e, 0x73, 0xee, 0xe1, 0x3c, 0x9b, 0xd6, 0x88, 0xa0, 0x7f, 0x04, 0x77, 0xa6, 0x2c, 0xa9, + 0xad, 0xd5, 0xb5, 0x7c, 0xb1, 0xb4, 0xab, 0x06, 0xff, 0xd6, 0xbf, 0x2b, 0xc1, 0xb2, 0xc8, 0x51, + 0xfb, 0x84, 0x0e, 0xff, 0x97, 0x4b, 0x9a, 0x5d, 0x68, 0xe2, 0x9e, 0x44, 0x97, 0xaa, 0xd6, 0x91, + 0x6f, 0x60, 0xe6, 0xec, 0x91, 0x77, 0x46, 0xc9, 0x25, 0xc5, 0xbe, 0x5f, 0x30, 0x5d, 0x52, 0xae, + 0x2e, 0x96, 0x2e, 0x05, 0xe1, 0xa8, 0xa7, 0xff, 0x18, 0xb4, 0x2c, 0x6b, 0x32, 0x80, 0x1b, 0x50, + 0x73, 0x3c, 0x73, 0x2c, 0xc9, 0x72, 0x63, 0x80, 0x13, 0x09, 0x0a, 0x67, 0xcf, 0xbf, 0x99, 0x58, + 0xfe, 0xe0, 0x9d, 0x39, 0xeb, 0x73, 0x75, 0x31, 0x67, 0x05, 0x21, 0x74, 0x36, 0x6d, 0xed, 0x6d, + 0x9d, 0xed, 0xc3, 0x83, 0xe9, 0xd3, 0x69, 0x9f, 0x92, 0xd1, 0x97, 0xc6, 0xcb, 0x82, 0xdb, 0x6d, + 0x42, 0x5d, 0xe9, 0x2b, 0xfb, 0xd4, 0x1f, 0xc1, 0x46, 0xae, 0x1d, 0x39, 0xc9, 0x47, 0xb0, 0x22, + 0x44, 0xda, 0x13, 0xaf, 0xe7, 0x16, 0xba, 0xce, 0x7d, 0x08, 0xab, 0x49, 0x55, 0x33, 0xce, 0x15, + 0x0c, 0x88, 0xef, 0xd6, 0x5d, 0xe2, 0xf5, 0x9d, 0xcb, 0x82, 0xf3, 0xd4, 0x9f, 0xb8, 0xae, 0xc9, + 0x4f, 0x46, 0x39, 0x4f, 0x8c, 0x70, 0xc6, 0x4e, 0xc7, 0x8f, 0x60, 0x25, 0x61, 0x66, 0x66, 0xda, + 0xfb, 0x6e, 0x0e, 0x1a, 0xe7, 0x38, 0x28, 0xee, 0xd2, 0x67, 0x50, 0xc6, 0x5e, 0x40, 0x1d, 0x2c, + 0x52, 0x44, 0x6d, 0xeb, 0x41, 0xd8, 0x61, 0x5a, 0xfd, 0x66, 0xc7, 0x0b, 0xe8, 0xb5, 0x11, 0x8a, + 0x6b, 0xbf, 0x2e, 0xc1, 0x22, 0x27, 0xb1, 0xc9, 0x64, 0x57, 0x36, 0x91, 0x30, 0xd8, 0x27, 0xba, + 0x0f, 0x55, 0x7e, 0x24, 0x9a, 0x7e, 0x40, 0xc5, 0x40, 0x0f, 0x6f, 0x18, 0x15, 0x4e, 0x3a, 0x0f, + 0x28, 0x7a, 0x04, 0x35, 0xc1, 0x76, 0xbc, 0x60, 0x7b, 0x8b, 0x67, 0xd7, 0xc5, 0xc3, 0x1b, 0x06, + 0x70, 0xe2, 0x11, 0xa3, 0xa1, 0x0d, 0x10, 0x2d, 0xb3, 0x4b, 0x88, 0x2b, 0x2e, 0x90, 0x87, 0x37, + 0x0c, 0xa1, 0xb5, 0x4d, 0x88, 0xdb, 0x2e, 0xcb, 0x23, 0x58, 0x5f, 0x81, 0xe5, 0x98, 0xab, 0x72, + 0xa9, 0x7c, 0x0d, 0x2b, 0x7b, 0xd8, 0xc5, 0xef, 0x62, 0xd2, 0x10, 0x2c, 0x0c, 0xf1, 0xb5, 0x08, + 0x4f, 0xd5, 0xe0, 0xdf, 0xfa, 0x5d, 0x58, 0x4d, 0xaa, 0x97, 0x66, 0x6d, 0x56, 0xf8, 0xf9, 0x01, + 0xa1, 0x78, 0x77, 0xe2, 0x07, 0x64, 0x74, 0x48, 0xc8, 0xd0, 0x2f, 0x68, 0x9c, 0xaf, 0xc7, 0xb9, + 0xd8, 0x7a, 0x5c, 0x07, 0x2d, 0xcb, 0x88, 0x74, 0xe1, 0x04, 0x9a, 0x6d, 0xcb, 0x1e, 0x4e, 0xc6, + 0xef, 0xc6, 0x03, 0xfd, 0x19, 0xb4, 0x32, 0xf4, 0xcd, 0xd8, 0x2e, 0x43, 0x78, 0x94, 0xb5, 0x91, + 0x0b, 0xef, 0xd9, 0xcc, 0x58, 0x3c, 0x01, 0x7d, 0x96, 0x31, 0x19, 0x93, 0x43, 0x40, 0xec, 0xac, + 0x7b, 0xe9, 0xd8, 0xd8, 0x2b, 0x74, 0xa6, 0xea, 0xbb, 0xb0, 0x92, 0xd0, 0x24, 0xe3, 0xf0, 0x31, + 0x20, 0x57, 0x90, 0x4c, 0x7f, 0x40, 0x68, 0x60, 0x7a, 0xd6, 0x28, 0x3c, 0x41, 0x1b, 0x92, 0x73, + 0xce, 0x18, 0x27, 0xd6, 0x88, 0x4f, 0xd1, 0x01, 0x0e, 0x8e, 0xbc, 0x3e, 0xd9, 0x79, 0x17, 0xc5, + 0xa1, 0xfe, 0x23, 0x68, 0x65, 0xe8, 0x93, 0xae, 0x3d, 0x00, 0x50, 0x55, 0xa1, 0x9c, 0xa8, 0x18, + 0x85, 0x39, 0xb3, 0x6b, 0xb9, 0xf6, 0xc4, 0xb5, 0x02, 0xbc, 0x3b, 0xc0, 0xf6, 0xd0, 0x9f, 0x8c, + 0x8a, 0x38, 0xf3, 0xff, 0xd0, 0xca, 0xd0, 0x27, 0x9d, 0xd1, 0xa0, 0x62, 0x4b, 0x9a, 0x8c, 0x4e, + 0xd4, 0x66, 0x93, 0x74, 0x80, 0x83, 0x73, 0xcf, 0x1a, 0xfb, 0x03, 0x52, 0x04, 0x90, 0xd0, 0x3f, + 0x80, 0x95, 0x84, 0xa6, 0x19, 0x8b, 0xf5, 0xfb, 0x12, 0x3c, 0xce, 0x5a, 0x40, 0xef, 0xc0, 0x0d, + 0x56, 0x93, 0x0e, 0x82, 0x60, 0x6c, 0xaa, 0x83, 0xae, 0xcc, 0xda, 0x5f, 0x52, 0x97, 0x1d, 0x04, + 0x9c, 0x65, 0x4d, 0x82, 0x81, 0x2c, 0xb9, 0xb8, 0xec, 0xce, 0x24, 0x18, 0xe8, 0xef, 0xc1, 0x93, + 0xd9, 0x2e, 0xc9, 0x55, 0xfd, 0xdb, 0x12, 0xac, 0x1e, 0xe0, 0xc0, 0xb0, 0xae, 0x76, 0x07, 0x96, + 0x77, 0x59, 0x0c, 0x60, 0x78, 0x0c, 0x37, 0xfb, 0x94, 0x8c, 0xcc, 0x04, 0xca, 0x50, 0x35, 0xea, + 0x8c, 0x18, 0xdd, 0x69, 0x37, 0xa0, 0x16, 0x10, 0x33, 0x71, 0x2b, 0xae, 0x1a, 0x10, 0x90, 0x50, + 0x40, 0xff, 0xd3, 0x02, 0xdc, 0x99, 0x72, 0x49, 0x06, 0xff, 0x10, 0x6a, 0xd4, 0xba, 0x32, 0x6d, + 0x41, 0x6e, 0x96, 0xf8, 0x59, 0xf3, 0x7e, 0xac, 0x9c, 0x4c, 0xf7, 0xd9, 0x8c, 0x48, 0x06, 0xd0, + 0x88, 0xab, 0xfd, 0x75, 0x1e, 0xaa, 0x11, 0x07, 0xad, 0x41, 0xb9, 0xeb, 0x92, 0x2e, 0xbb, 0xf8, + 0x88, 0x05, 0xb5, 0xc4, 0x9a, 0x47, 0xbd, 0x08, 0x96, 0x99, 0x53, 0xb0, 0x0c, 0xba, 0x0f, 0x15, + 0x0f, 0x5f, 0x89, 0xe3, 0x97, 0x3b, 0xdf, 0x9e, 0x6b, 0x96, 0x8c, 0xb2, 0x87, 0xaf, 0xd8, 0x09, + 0xcc, 0xd8, 0xec, 0x56, 0xcf, 0xd9, 0x0b, 0x8a, 0x4d, 0xdc, 0x1e, 0x67, 0x9f, 0x42, 0x95, 0x8c, + 0x31, 0xb5, 0x02, 0x36, 0xf6, 0x45, 0x5e, 0x0f, 0x7f, 0xfa, 0x96, 0x03, 0xd8, 0x3c, 0x0d, 0x3b, + 0x1a, 0x4a, 0x07, 0x8b, 0x39, 0x8b, 0x89, 0x52, 0x2a, 0x40, 0x8f, 0x3a, 0xb5, 0xae, 0x22, 0x79, + 0xb6, 0x8a, 0x98, 0x53, 0x23, 0xd2, 0xc3, 0x1c, 0xf7, 0x58, 0xe4, 0x0e, 0x1d, 0x93, 0x1e, 0xe6, + 0xa0, 0x07, 0xbe, 0x12, 0xac, 0x8a, 0x60, 0x79, 0xf8, 0x8a, 0xb3, 0x9e, 0xc0, 0xad, 0x70, 0xa4, + 0x66, 0xf7, 0x9a, 0xed, 0xfc, 0xaa, 0xa8, 0xfc, 0xe4, 0x58, 0xdb, 0x8c, 0xc6, 0xa4, 0xc2, 0x01, + 0x4b, 0x29, 0x10, 0x52, 0x72, 0xc8, 0x5c, 0x4a, 0x77, 0xa0, 0xaa, 0xdc, 0xa9, 0x41, 0xf9, 0xcb, + 0x93, 0x17, 0x27, 0xa7, 0x5f, 0x9d, 0x34, 0x6e, 0xa0, 0x2a, 0x2c, 0xee, 0xec, 0xed, 0x75, 0xf6, + 0x44, 0xfd, 0xbe, 0x7b, 0x7a, 0x76, 0xd4, 0xd9, 0x13, 0xf5, 0xfb, 0x5e, 0xe7, 0x65, 0xe7, 0xa2, + 0xb3, 0xd7, 0x98, 0x47, 0x75, 0xa8, 0x1c, 0x9f, 0xee, 0x1d, 0xed, 0x33, 0xd6, 0x02, 0x63, 0x19, + 0x9d, 0x93, 0x9d, 0xe3, 0xce, 0x5e, 0x63, 0x11, 0x35, 0xa0, 0x7e, 0xf1, 0xb3, 0xb3, 0x8e, 0xb9, + 0x7b, 0xb8, 0x73, 0x72, 0xd0, 0xd9, 0x6b, 0x2c, 0xe9, 0xaf, 0xa1, 0x79, 0x8e, 0x2d, 0x6a, 0x0f, + 0xf6, 0x1d, 0x17, 0xfb, 0xed, 0x6b, 0x96, 0x2e, 0x8b, 0xac, 0xea, 0x55, 0x58, 0xfc, 0x66, 0x82, + 0x65, 0x85, 0x51, 0x35, 0x44, 0x23, 0xac, 0xf5, 0xe6, 0xa3, 0x5a, 0x4f, 0xff, 0x14, 0x5a, 0x19, + 0x76, 0xd5, 0x0d, 0xac, 0xcf, 0xc8, 0x7c, 0xd1, 0xd6, 0x0d, 0xd1, 0xd0, 0x7f, 0x5f, 0x82, 0x7b, + 0x89, 0x3e, 0xbb, 0xc4, 0x0b, 0xb0, 0x17, 0xfc, 0x17, 0xdc, 0x45, 0x1f, 0x40, 0xc3, 0x1e, 0x4c, + 0xbc, 0x21, 0x66, 0x25, 0xa8, 0xf0, 0x52, 0x62, 0x6c, 0xb7, 0x25, 0x3d, 0x4a, 0x12, 0xd7, 0xb0, + 0x9e, 0xed, 0xa5, 0x1c, 0x5c, 0x13, 0xca, 0x23, 0x2b, 0xb0, 0x07, 0xd1, 0xf0, 0xc2, 0x26, 0xba, + 0x0f, 0xc0, 0x3f, 0xcd, 0xd8, 0xa1, 0x5b, 0xe5, 0x94, 0x3d, 0x2b, 0xb0, 0xd0, 0x43, 0xa8, 0x63, + 0xaf, 0x67, 0x92, 0xbe, 0xc9, 0x69, 0x12, 0xfb, 0x03, 0xec, 0xf5, 0x4e, 0xfb, 0xc7, 0x8c, 0xa2, + 0xff, 0xb9, 0x04, 0xb7, 0xcf, 0x28, 0x96, 0x08, 0x9a, 0x88, 0x4a, 0x66, 0xf9, 0x57, 0xfa, 0x37, + 0x10, 0x8d, 0xcf, 0x61, 0x39, 0x02, 0x2b, 0xde, 0xa6, 0x7e, 0x0c, 0x71, 0x8c, 0x48, 0xc1, 0x36, + 0xd4, 0x48, 0xf7, 0x17, 0xd8, 0x0e, 0xcc, 0x31, 0xbb, 0x59, 0xce, 0x27, 0xbb, 0x9e, 0x72, 0xd6, + 0x19, 0x21, 0xae, 0x01, 0x24, 0xfa, 0xd6, 0x11, 0x34, 0xd4, 0x48, 0x64, 0x64, 0xbf, 0x2f, 0xc1, + 0x92, 0x00, 0x06, 0xc3, 0x6a, 0xa6, 0x14, 0x55, 0x33, 0x2c, 0xfb, 0xf0, 0x2b, 0x80, 0x98, 0x48, + 0xfe, 0x8d, 0x7e, 0x08, 0xad, 0x28, 0xe9, 0x13, 0xea, 0xbc, 0xe1, 0x1b, 0xca, 0x1c, 0x60, 0xab, + 0x87, 0xa9, 0xcc, 0xa5, 0x6b, 0xe1, 0x21, 0x10, 0xf1, 0x0f, 0x39, 0x1b, 0xfd, 0x1f, 0xdc, 0x1a, + 0x39, 0xec, 0xe6, 0x6f, 0x52, 0xdc, 0x1f, 0x59, 0x63, 0xbf, 0xb9, 0xc0, 0xaf, 0xa3, 0x37, 0x05, + 0xd5, 0x10, 0x44, 0xfd, 0x37, 0x25, 0xb8, 0xcb, 0xbd, 0x3c, 0xbc, 0xb8, 0x38, 0x2b, 0x0e, 0xf8, + 0xbe, 0x97, 0x00, 0x7c, 0xd3, 0x98, 0x69, 0x08, 0x00, 0xc7, 0x10, 0xdd, 0xf9, 0x04, 0xa2, 0xab, + 0xb7, 0x60, 0x2d, 0xe5, 0x8f, 0x88, 0xdf, 0xd6, 0xdf, 0x5a, 0xfc, 0x21, 0x24, 0x84, 0xd4, 0xc5, + 0x4b, 0x11, 0xfa, 0x1a, 0x1a, 0xd3, 0xcf, 0x37, 0x68, 0x23, 0xed, 0x66, 0xe2, 0x9d, 0x48, 0x7b, + 0x98, 0x2f, 0x20, 0x27, 0x6b, 0xe9, 0xef, 0xbf, 0x7b, 0x3a, 0x57, 0x99, 0x43, 0x3f, 0x0f, 0x1f, + 0x5f, 0x62, 0x2f, 0x33, 0x28, 0xde, 0x3d, 0xf3, 0x11, 0x48, 0x7b, 0x34, 0x43, 0x22, 0x61, 0xa1, + 0x84, 0x5e, 0x00, 0xa8, 0x07, 0x17, 0xd4, 0x4a, 0x76, 0x8c, 0x3d, 0xf9, 0x68, 0x5a, 0x16, 0x6b, + 0x4a, 0xd9, 0x57, 0x70, 0x2b, 0xf9, 0x6a, 0x82, 0xee, 0x47, 0x27, 0x4e, 0xd6, 0xfb, 0x8d, 0xf6, + 0x20, 0x8f, 0x9d, 0x56, 0x9c, 0x7c, 0xce, 0x50, 0x8a, 0x33, 0xdf, 0x4c, 0x94, 0xe2, 0xec, 0x57, + 0x90, 0x48, 0xb1, 0x0d, 0x28, 0xfd, 0x18, 0x81, 0xa2, 0xf8, 0xe5, 0xbe, 0x8a, 0x68, 0xfa, 0x2c, + 0x91, 0x29, 0x23, 0x27, 0x50, 0x8b, 0xe1, 0xf2, 0x28, 0x8a, 0x64, 0xfa, 0x9d, 0x43, 0xbb, 0x97, + 0xc9, 0x9b, 0xd2, 0xf7, 0x35, 0x34, 0xa6, 0x6f, 0x5c, 0x6a, 0xd1, 0xe5, 0x40, 0xfd, 0x6a, 0xd1, + 0xe5, 0x82, 0xf7, 0xa1, 0xfa, 0x63, 0x00, 0x05, 0x61, 0xab, 0x25, 0x91, 0xc2, 0xd0, 0xd5, 0x92, + 0x48, 0x23, 0xde, 0xa1, 0xb2, 0xe7, 0xdc, 0xdb, 0x69, 0x60, 0x5a, 0x79, 0x9b, 0x83, 0x80, 0x2b, + 0x6f, 0xf3, 0x30, 0xed, 0xf8, 0x16, 0x49, 0xe1, 0xbd, 0x6a, 0x8b, 0xe4, 0xe1, 0xdb, 0x6a, 0x8b, + 0xe4, 0x82, 0xc5, 0x51, 0x3c, 0x7e, 0x00, 0x0b, 0xfb, 0xbe, 0x3d, 0x44, 0x2b, 0x51, 0x17, 0x05, + 0x15, 0x6b, 0xab, 0x49, 0xe2, 0x54, 0xd7, 0x0e, 0x54, 0x42, 0xe4, 0x14, 0xad, 0x85, 0x92, 0x53, + 0xf8, 0xaf, 0xd6, 0x4c, 0x33, 0xa6, 0xd4, 0x5c, 0xc0, 0xcd, 0x04, 0xf8, 0x89, 0xd6, 0x23, 0xab, + 0x19, 0xe8, 0xab, 0x76, 0x3f, 0x87, 0x3b, 0x15, 0xb9, 0x17, 0x00, 0x0a, 0x9a, 0x54, 0xf3, 0x9c, + 0x02, 0x4e, 0xd5, 0x3c, 0x67, 0x20, 0x99, 0xb1, 0x8d, 0x94, 0xc6, 0x18, 0xd5, 0x46, 0xca, 0x45, + 0x3b, 0xd5, 0x46, 0xca, 0x87, 0x28, 0x23, 0x8f, 0xb9, 0x91, 0x69, 0x6c, 0x30, 0x6e, 0x24, 0x07, + 0xa5, 0x8c, 0x1b, 0xc9, 0x83, 0x16, 0x23, 0x23, 0x34, 0xfd, 0x5c, 0x26, 0x91, 0x3d, 0xf4, 0x5e, + 0xde, 0x1e, 0x4a, 0x42, 0x8c, 0xda, 0xfb, 0xff, 0x52, 0x6e, 0x2a, 0x7a, 0xe7, 0x50, 0x8f, 0xe3, + 0x7b, 0xe8, 0x5e, 0x52, 0x41, 0x02, 0x8c, 0xd0, 0xd6, 0xb3, 0x99, 0xa9, 0x8d, 0xf7, 0x4b, 0xd0, + 0xf2, 0xc1, 0x06, 0xf4, 0xc1, 0x2c, 0x1f, 0x93, 0x06, 0x3f, 0x7c, 0x1b, 0xd1, 0xa4, 0xf9, 0xa7, + 0x3c, 0xeb, 0xc5, 0x00, 0x42, 0x95, 0xf5, 0xd2, 0xe0, 0xa4, 0xca, 0x7a, 0x19, 0x88, 0x62, 0x14, + 0xa3, 0x43, 0xa8, 0x46, 0xc0, 0x19, 0x6a, 0xe6, 0xc1, 0x7e, 0x5a, 0x2b, 0x83, 0x33, 0xa5, 0xe9, + 0x27, 0x50, 0x8f, 0xc3, 0x61, 0x2a, 0xda, 0x19, 0x18, 0x9c, 0x8a, 0x76, 0x26, 0x82, 0x16, 0x4f, + 0xf1, 0x0a, 0x68, 0x89, 0xa5, 0xf8, 0x14, 0x8e, 0x13, 0x4b, 0xf1, 0x69, 0x64, 0x26, 0x5a, 0x84, + 0x5d, 0xfe, 0x8e, 0x9a, 0xc4, 0x48, 0x50, 0xfc, 0x39, 0x33, 0x13, 0x8e, 0x51, 0x59, 0x2d, 0x17, + 0x60, 0x09, 0x2d, 0x3c, 0x2f, 0xb1, 0xcc, 0x99, 0x82, 0x3e, 0x94, 0x8d, 0x3c, 0x94, 0x45, 0xd9, + 0xc8, 0xc5, 0x4d, 0xa2, 0x51, 0xb4, 0xa1, 0x2c, 0xff, 0x72, 0x40, 0x77, 0xa3, 0x5e, 0x89, 0x9f, + 0x27, 0xb4, 0xb5, 0x14, 0x7d, 0x2a, 0xb2, 0x67, 0x50, 0x8b, 0xa1, 0x23, 0x28, 0x7e, 0xe6, 0x4c, + 0xa1, 0x1e, 0x2a, 0xb2, 0x19, 0x70, 0x4a, 0x6c, 0xdc, 0xbf, 0x2a, 0xc1, 0xfa, 0x2c, 0xc4, 0x02, + 0x7d, 0x34, 0x6b, 0xbd, 0x4f, 0x1b, 0xfd, 0xf8, 0xed, 0x84, 0xa7, 0x46, 0xf5, 0x53, 0xb8, 0x99, + 0xa8, 0xc1, 0x55, 0x46, 0xcf, 0x82, 0x48, 0x54, 0x46, 0xcf, 0x2c, 0xdc, 0x63, 0x63, 0x1b, 0xc2, + 0x6a, 0x56, 0xfd, 0x84, 0x1e, 0xab, 0x5d, 0x91, 0x5b, 0x03, 0x6a, 0x4f, 0x66, 0x0b, 0xa5, 0x8c, + 0x75, 0x61, 0x39, 0x55, 0x86, 0xaa, 0x05, 0x94, 0x57, 0x19, 0xab, 0x05, 0x94, 0x5b, 0xc3, 0xc6, + 0x6c, 0x60, 0x40, 0x69, 0xf4, 0x18, 0xc5, 0x2e, 0xb8, 0x39, 0xf0, 0xb5, 0x4a, 0xf9, 0x33, 0xc0, + 0x67, 0x95, 0xac, 0xba, 0xb0, 0x9c, 0x82, 0x8d, 0xd5, 0x50, 0xf2, 0x10, 0x6a, 0x35, 0x94, 0x5c, + 0xcc, 0x39, 0x36, 0x94, 0x0e, 0x54, 0xc2, 0xaa, 0x4c, 0x5d, 0x06, 0xa6, 0x2a, 0x4e, 0x75, 0x19, + 0x48, 0x15, 0x70, 0xe1, 0xd2, 0x79, 0x05, 0xb7, 0xa7, 0x6a, 0x14, 0xf4, 0x20, 0x71, 0x99, 0x49, + 0x15, 0x53, 0xda, 0x46, 0x2e, 0x3f, 0xa9, 0xbb, 0xfd, 0xfc, 0x15, 0x93, 0x74, 0xad, 0xee, 0xa6, + 0x4d, 0x46, 0xcf, 0xc4, 0xe7, 0x27, 0x84, 0x5e, 0x3e, 0x13, 0xfd, 0x3f, 0xe1, 0xbf, 0xc0, 0x3d, + 0xbb, 0x24, 0xb2, 0x3d, 0xee, 0x76, 0x97, 0x38, 0x69, 0xfb, 0x9f, 0x01, 0x00, 0x00, 0xff, 0xff, + 0xfe, 0xd6, 0x2f, 0x0b, 0x47, 0x27, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/server.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/server.pb.go index 6b4e020d7..4c482de6b 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/server.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/server.pb.go @@ -33,7 +33,7 @@ func (m *ServerInfoRequest) Reset() { *m = ServerInfoRequest{} } func (m *ServerInfoRequest) String() string { return proto.CompactTextString(m) } func (*ServerInfoRequest) ProtoMessage() {} func (*ServerInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_server_9187386691afdaaf, []int{0} + return fileDescriptor_server_636aea99a5d9572b, []int{0} } func (m *ServerInfoRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerInfoRequest.Unmarshal(m, b) @@ -66,7 +66,7 @@ func (m *ServerInfoResponse) Reset() { *m = ServerInfoResponse{} } func (m *ServerInfoResponse) String() string { return proto.CompactTextString(m) } func (*ServerInfoResponse) ProtoMessage() {} func (*ServerInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_server_9187386691afdaaf, []int{1} + return fileDescriptor_server_636aea99a5d9572b, []int{1} } func (m *ServerInfoResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerInfoResponse.Unmarshal(m, b) @@ -120,7 +120,7 @@ func (m *ServerInfoResponse_StorageStatus) Reset() { *m = ServerInfoResp func (m *ServerInfoResponse_StorageStatus) String() string { return proto.CompactTextString(m) } func (*ServerInfoResponse_StorageStatus) ProtoMessage() {} func (*ServerInfoResponse_StorageStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_server_9187386691afdaaf, []int{1, 0} + return fileDescriptor_server_636aea99a5d9572b, []int{1, 0} } func (m *ServerInfoResponse_StorageStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ServerInfoResponse_StorageStatus.Unmarshal(m, b) @@ -239,27 +239,27 @@ var _ServerService_serviceDesc = grpc.ServiceDesc{ Metadata: "server.proto", } -func init() { proto.RegisterFile("server.proto", fileDescriptor_server_9187386691afdaaf) } - -var fileDescriptor_server_9187386691afdaaf = []byte{ - // 304 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0xbf, 0x4e, 0xc3, 0x30, - 0x10, 0xc6, 0x69, 0x2a, 0x55, 0xed, 0xb5, 0xe1, 0x8f, 0xa7, 0x12, 0x90, 0x28, 0x91, 0x90, 0xb2, - 0x34, 0x41, 0x65, 0x63, 0x44, 0x62, 0x60, 0x61, 0x48, 0xa4, 0x0e, 0x2c, 0x95, 0xd3, 0x1e, 0xc6, - 0x52, 0x12, 0x07, 0x9f, 0x5b, 0xc4, 0x93, 0x30, 0xf2, 0x8e, 0x3c, 0x01, 0xaa, 0x9d, 0xfe, 0x41, - 0xc0, 0x12, 0xe5, 0x7e, 0xdf, 0x77, 0xbe, 0xef, 0x6c, 0x18, 0x10, 0xea, 0x15, 0xea, 0xb8, 0xd6, - 0xca, 0x28, 0xd6, 0x11, 0xd2, 0xf0, 0xe2, 0x3d, 0x18, 0xd0, 0x0b, 0xd7, 0xb8, 0x70, 0x34, 0x3c, - 0x83, 0x93, 0xcc, 0xba, 0x1e, 0xaa, 0x67, 0x95, 0xe2, 0xeb, 0x12, 0xc9, 0xdc, 0x76, 0xbe, 0x3e, - 0x22, 0xaf, 0xeb, 0x85, 0x9f, 0x1e, 0xb0, 0x7d, 0x95, 0x6a, 0x55, 0x11, 0xb2, 0x2b, 0x38, 0x74, - 0x27, 0xcf, 0x56, 0xa8, 0x49, 0xaa, 0x6a, 0xd8, 0x1a, 0xb5, 0xa2, 0x5e, 0xea, 0x3b, 0x3a, 0x75, - 0x90, 0x5d, 0x40, 0x5f, 0x48, 0xb3, 0xf5, 0x78, 0xd6, 0x03, 0x42, 0x9a, 0x8d, 0x21, 0x83, 0x63, - 0x32, 0x4a, 0x73, 0x81, 0x33, 0x32, 0xdc, 0x2c, 0x09, 0x69, 0xd8, 0x1e, 0xb5, 0xa3, 0xfe, 0x24, - 0x8a, 0x5d, 0xd8, 0xf8, 0xf7, 0xf4, 0x38, 0x73, 0x2d, 0x99, 0xed, 0x48, 0x8f, 0x68, 0xbf, 0x44, - 0x0a, 0x0a, 0xf0, 0x7f, 0x38, 0xd8, 0x25, 0x0c, 0x36, 0x53, 0x2a, 0x5e, 0x62, 0x93, 0xb5, 0xdf, - 0xb0, 0x47, 0x5e, 0x22, 0x0b, 0xa0, 0xab, 0x91, 0x2f, 0x78, 0x5e, 0xa0, 0x8d, 0xd9, 0x4d, 0xb7, - 0x35, 0x3b, 0x87, 0xde, 0x9b, 0x96, 0x06, 0xad, 0xd8, 0xb6, 0xe2, 0x0e, 0x4c, 0xa6, 0xe0, 0xbb, - 0x88, 0xeb, 0xaf, 0x9c, 0x23, 0xbb, 0x07, 0xd8, 0x65, 0x66, 0xa7, 0x7f, 0xed, 0x61, 0xef, 0x38, - 0x08, 0xfe, 0x5f, 0x31, 0x3c, 0xb8, 0xbb, 0x7e, 0x5a, 0xcb, 0x05, 0xcf, 0xe3, 0xb9, 0x2a, 0x13, - 0xf7, 0x3b, 0x56, 0x5a, 0x24, 0xae, 0x69, 0x6c, 0x1f, 0x2f, 0x11, 0xaa, 0xa9, 0xeb, 0x3c, 0xef, - 0x58, 0x74, 0xf3, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xb6, 0xe3, 0x42, 0xe4, 0xf5, 0x01, 0x00, 0x00, +func init() { proto.RegisterFile("server.proto", fileDescriptor_server_636aea99a5d9572b) } + +var fileDescriptor_server_636aea99a5d9572b = []byte{ + // 301 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0xcf, 0x4a, 0xc3, 0x40, + 0x10, 0xc6, 0x69, 0x0a, 0xa5, 0x9d, 0x26, 0xfe, 0x59, 0x2f, 0x35, 0x08, 0xd6, 0x80, 0x90, 0x4b, + 0x13, 0xa9, 0x6f, 0xe0, 0x4d, 0x04, 0x0f, 0x09, 0x78, 0x10, 0xa1, 0x6c, 0xda, 0x71, 0x5d, 0x48, + 0xb2, 0x71, 0x67, 0x5b, 0xf1, 0x49, 0x3c, 0xfa, 0x9e, 0x9e, 0xa4, 0xbb, 0xe9, 0x1f, 0x51, 0x2f, + 0x21, 0xf3, 0x9b, 0xef, 0xdb, 0xf9, 0x66, 0x17, 0x7c, 0x42, 0xbd, 0x42, 0x9d, 0x34, 0x5a, 0x19, + 0xc5, 0x7a, 0x42, 0x1a, 0x5e, 0xbe, 0x87, 0x3e, 0xbd, 0x70, 0x8d, 0x0b, 0x47, 0xa3, 0x13, 0x38, + 0xce, 0xad, 0xea, 0xb6, 0x7e, 0x56, 0x19, 0xbe, 0x2e, 0x91, 0x4c, 0xf4, 0xe9, 0x01, 0xdb, 0xa7, + 0xd4, 0xa8, 0x9a, 0x90, 0x5d, 0xc2, 0x81, 0x3b, 0x71, 0xb6, 0x42, 0x4d, 0x52, 0xd5, 0xa3, 0xce, + 0xb8, 0x13, 0x0f, 0xb2, 0xc0, 0xd1, 0x07, 0x07, 0xd9, 0x39, 0x0c, 0x85, 0x34, 0x5b, 0x8d, 0x67, + 0x35, 0x20, 0xa4, 0xd9, 0x08, 0x72, 0x38, 0x22, 0xa3, 0x34, 0x17, 0x38, 0x23, 0xc3, 0xcd, 0x92, + 0x90, 0x46, 0xdd, 0x71, 0x37, 0x1e, 0x4e, 0xe3, 0xc4, 0x85, 0x4c, 0x7e, 0x4f, 0x4f, 0x72, 0x67, + 0xc9, 0xad, 0x23, 0x3b, 0xa4, 0xfd, 0x12, 0x29, 0x2c, 0x21, 0xf8, 0xa1, 0x60, 0x17, 0xe0, 0x6f, + 0xa6, 0xd4, 0xbc, 0xc2, 0x36, 0xeb, 0xb0, 0x65, 0xf7, 0xbc, 0x42, 0x16, 0x42, 0x5f, 0x23, 0x5f, + 0xf0, 0xa2, 0x44, 0x1b, 0xb3, 0x9f, 0x6d, 0x6b, 0x76, 0x06, 0x83, 0x37, 0x2d, 0x0d, 0xda, 0x66, + 0xd7, 0x36, 0x77, 0x60, 0xfa, 0x04, 0x81, 0x8b, 0xb8, 0xfe, 0xca, 0x39, 0xb2, 0x3b, 0x80, 0x5d, + 0x66, 0x76, 0xfa, 0xd7, 0x1e, 0xf6, 0x6e, 0xc3, 0xf0, 0xff, 0x15, 0xa3, 0xde, 0xd7, 0x47, 0xec, + 0xf5, 0xbd, 0x9b, 0xab, 0xc7, 0xb5, 0xa8, 0xe4, 0x45, 0x32, 0x57, 0x55, 0xea, 0x7e, 0x27, 0x4a, + 0x8b, 0xd4, 0x59, 0x27, 0xf6, 0xe9, 0x52, 0xa1, 0xda, 0xba, 0x29, 0x8a, 0x9e, 0x45, 0xd7, 0xdf, + 0x01, 0x00, 0x00, 0xff, 0xff, 0x9b, 0xbd, 0xac, 0x8f, 0xf3, 0x01, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/shared.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/shared.pb.go index 0f5ac7eae..f7726474d 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/shared.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/shared.pb.go @@ -20,6 +20,38 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package +type ObjectType int32 + +const ( + ObjectType_UNKNOWN ObjectType = 0 + ObjectType_COMMIT ObjectType = 1 + ObjectType_BLOB ObjectType = 2 + ObjectType_TREE ObjectType = 3 + ObjectType_TAG ObjectType = 4 +) + +var ObjectType_name = map[int32]string{ + 0: "UNKNOWN", + 1: "COMMIT", + 2: "BLOB", + 3: "TREE", + 4: "TAG", +} +var ObjectType_value = map[string]int32{ + "UNKNOWN": 0, + "COMMIT": 1, + "BLOB": 2, + "TREE": 3, + "TAG": 4, +} + +func (x ObjectType) String() string { + return proto.EnumName(ObjectType_name, int32(x)) +} +func (ObjectType) EnumDescriptor() ([]byte, []int) { + return fileDescriptor_shared_667153471f9eb114, []int{0} +} + type OperationMsg_Operation int32 const ( @@ -43,7 +75,7 @@ func (x OperationMsg_Operation) String() string { return proto.EnumName(OperationMsg_Operation_name, int32(x)) } func (OperationMsg_Operation) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_shared_c632aa5c49ccb806, []int{0, 0} + return fileDescriptor_shared_667153471f9eb114, []int{0, 0} } type OperationMsg struct { @@ -57,7 +89,7 @@ func (m *OperationMsg) Reset() { *m = OperationMsg{} } func (m *OperationMsg) String() string { return proto.CompactTextString(m) } func (*OperationMsg) ProtoMessage() {} func (*OperationMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_shared_c632aa5c49ccb806, []int{0} + return fileDescriptor_shared_667153471f9eb114, []int{0} } func (m *OperationMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OperationMsg.Unmarshal(m, b) @@ -112,7 +144,7 @@ func (m *Repository) Reset() { *m = Repository{} } func (m *Repository) String() string { return proto.CompactTextString(m) } func (*Repository) ProtoMessage() {} func (*Repository) Descriptor() ([]byte, []int) { - return fileDescriptor_shared_c632aa5c49ccb806, []int{1} + return fileDescriptor_shared_667153471f9eb114, []int{1} } func (m *Repository) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Repository.Unmarshal(m, b) @@ -195,7 +227,7 @@ func (m *GitCommit) Reset() { *m = GitCommit{} } func (m *GitCommit) String() string { return proto.CompactTextString(m) } func (*GitCommit) ProtoMessage() {} func (*GitCommit) Descriptor() ([]byte, []int) { - return fileDescriptor_shared_c632aa5c49ccb806, []int{2} + return fileDescriptor_shared_667153471f9eb114, []int{2} } func (m *GitCommit) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GitCommit.Unmarshal(m, b) @@ -277,7 +309,7 @@ func (m *CommitAuthor) Reset() { *m = CommitAuthor{} } func (m *CommitAuthor) String() string { return proto.CompactTextString(m) } func (*CommitAuthor) ProtoMessage() {} func (*CommitAuthor) Descriptor() ([]byte, []int) { - return fileDescriptor_shared_c632aa5c49ccb806, []int{3} + return fileDescriptor_shared_667153471f9eb114, []int{3} } func (m *CommitAuthor) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommitAuthor.Unmarshal(m, b) @@ -329,7 +361,7 @@ func (m *ExitStatus) Reset() { *m = ExitStatus{} } func (m *ExitStatus) String() string { return proto.CompactTextString(m) } func (*ExitStatus) ProtoMessage() {} func (*ExitStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_shared_c632aa5c49ccb806, []int{4} + return fileDescriptor_shared_667153471f9eb114, []int{4} } func (m *ExitStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ExitStatus.Unmarshal(m, b) @@ -369,7 +401,7 @@ func (m *Branch) Reset() { *m = Branch{} } func (m *Branch) String() string { return proto.CompactTextString(m) } func (*Branch) ProtoMessage() {} func (*Branch) Descriptor() ([]byte, []int) { - return fileDescriptor_shared_c632aa5c49ccb806, []int{5} + return fileDescriptor_shared_667153471f9eb114, []int{5} } func (m *Branch) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Branch.Unmarshal(m, b) @@ -422,7 +454,7 @@ func (m *Tag) Reset() { *m = Tag{} } func (m *Tag) String() string { return proto.CompactTextString(m) } func (*Tag) ProtoMessage() {} func (*Tag) Descriptor() ([]byte, []int) { - return fileDescriptor_shared_c632aa5c49ccb806, []int{6} + return fileDescriptor_shared_667153471f9eb114, []int{6} } func (m *Tag) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Tag.Unmarshal(m, b) @@ -498,7 +530,7 @@ func (m *User) Reset() { *m = User{} } func (m *User) String() string { return proto.CompactTextString(m) } func (*User) ProtoMessage() {} func (*User) Descriptor() ([]byte, []int) { - return fileDescriptor_shared_c632aa5c49ccb806, []int{7} + return fileDescriptor_shared_667153471f9eb114, []int{7} } func (m *User) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_User.Unmarshal(m, b) @@ -557,7 +589,7 @@ func (m *ObjectPool) Reset() { *m = ObjectPool{} } func (m *ObjectPool) String() string { return proto.CompactTextString(m) } func (*ObjectPool) ProtoMessage() {} func (*ObjectPool) Descriptor() ([]byte, []int) { - return fileDescriptor_shared_c632aa5c49ccb806, []int{8} + return fileDescriptor_shared_667153471f9eb114, []int{8} } func (m *ObjectPool) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ObjectPool.Unmarshal(m, b) @@ -585,11 +617,11 @@ func (m *ObjectPool) GetRepository() *Repository { } var E_OpType = &proto.ExtensionDesc{ - ExtendedType: (*descriptor.MessageOptions)(nil), + ExtendedType: (*descriptor.MethodOptions)(nil), ExtensionType: (*OperationMsg)(nil), - Field: 82302, + Field: 82303, Name: "gitaly.op_type", - Tag: "bytes,82302,opt,name=op_type,json=opType", + Tag: "bytes,82303,opt,name=op_type,json=opType", Filename: "shared.proto", } @@ -603,61 +635,64 @@ func init() { proto.RegisterType((*Tag)(nil), "gitaly.Tag") proto.RegisterType((*User)(nil), "gitaly.User") proto.RegisterType((*ObjectPool)(nil), "gitaly.ObjectPool") + proto.RegisterEnum("gitaly.ObjectType", ObjectType_name, ObjectType_value) proto.RegisterEnum("gitaly.OperationMsg_Operation", OperationMsg_Operation_name, OperationMsg_Operation_value) proto.RegisterExtension(E_OpType) } -func init() { proto.RegisterFile("shared.proto", fileDescriptor_shared_c632aa5c49ccb806) } - -var fileDescriptor_shared_c632aa5c49ccb806 = []byte{ - // 771 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xdd, 0x6e, 0x23, 0x35, - 0x14, 0x66, 0x26, 0xbf, 0x73, 0x32, 0x5d, 0x82, 0xe9, 0xc5, 0xa8, 0x68, 0x69, 0x18, 0x24, 0xd4, - 0x0b, 0x76, 0xb2, 0xca, 0x4a, 0x5c, 0x70, 0x45, 0xb7, 0xac, 0x56, 0xbb, 0xa8, 0x4d, 0xe5, 0xa6, - 0x42, 0xe2, 0x66, 0xe4, 0x64, 0xbc, 0x8e, 0x91, 0x27, 0xb6, 0x6c, 0x67, 0x45, 0xf6, 0x92, 0x07, - 0xe2, 0x49, 0x78, 0x0f, 0xde, 0x02, 0x21, 0xdb, 0x33, 0x69, 0x68, 0x0b, 0xda, 0x3b, 0x9f, 0xcf, - 0x9f, 0xcf, 0xdf, 0x77, 0x8e, 0x21, 0x35, 0x6b, 0xa2, 0x69, 0x55, 0x28, 0x2d, 0xad, 0x44, 0x7d, - 0xc6, 0x2d, 0x11, 0xbb, 0x93, 0x53, 0x26, 0x25, 0x13, 0x74, 0xea, 0xd1, 0xe5, 0xf6, 0xdd, 0xd4, - 0xf2, 0x9a, 0x1a, 0x4b, 0x6a, 0x15, 0x88, 0x27, 0x93, 0xfb, 0x84, 0x8a, 0x9a, 0x95, 0xe6, 0xca, - 0x4a, 0x1d, 0x18, 0xb9, 0x81, 0x74, 0xae, 0xa8, 0x26, 0x96, 0xcb, 0xcd, 0xa5, 0x61, 0xa8, 0x80, - 0x58, 0xaa, 0x2c, 0x9a, 0x44, 0x67, 0x4f, 0x66, 0x5f, 0x16, 0x21, 0x4e, 0x71, 0xc8, 0xb8, 0x33, - 0x70, 0x2c, 0x55, 0xfe, 0x02, 0x92, 0x3d, 0x80, 0x46, 0x30, 0xb8, 0xbd, 0xfa, 0xe9, 0x6a, 0xfe, - 0xf3, 0xd5, 0xf8, 0x13, 0x67, 0x5c, 0xde, 0x2e, 0xce, 0x17, 0x73, 0x3c, 0x8e, 0x50, 0x0a, 0xc3, - 0xf3, 0x8b, 0x8b, 0x57, 0x37, 0x37, 0x73, 0x3c, 0x8e, 0xf3, 0x3f, 0x62, 0x00, 0x4c, 0x95, 0x34, - 0xdc, 0x4a, 0xbd, 0x43, 0x5f, 0x41, 0x6a, 0xac, 0xd4, 0x84, 0xd1, 0x72, 0x43, 0x6a, 0x9a, 0xc5, - 0x93, 0xe8, 0x2c, 0xc1, 0xa3, 0x06, 0xbb, 0x22, 0x35, 0x45, 0x5f, 0xc3, 0x91, 0xa6, 0x82, 0x58, - 0xfe, 0x9e, 0x96, 0x8a, 0xd8, 0x75, 0xd6, 0xf1, 0x9c, 0xb4, 0x05, 0xaf, 0x89, 0x5d, 0xa3, 0xe7, - 0x70, 0xcc, 0xb8, 0x2d, 0xe5, 0xf2, 0x57, 0xba, 0xb2, 0x65, 0xc5, 0x35, 0x5d, 0x39, 0xff, 0x59, - 0xd7, 0x73, 0x11, 0xe3, 0x76, 0xee, 0xaf, 0x7e, 0x6c, 0x6f, 0xd0, 0x6b, 0x98, 0xb8, 0x17, 0x44, - 0x58, 0xaa, 0x37, 0xc4, 0xd2, 0xfb, 0x6f, 0x39, 0x35, 0x59, 0x6f, 0xd2, 0x39, 0x4b, 0xf0, 0x53, - 0xc6, 0xed, 0x79, 0x4b, 0xfb, 0xb7, 0x1b, 0x4e, 0x8d, 0xcb, 0x8f, 0x89, 0x52, 0xef, 0x6b, 0xca, - 0xfa, 0x21, 0x3f, 0x26, 0x0e, 0xea, 0xfc, 0x06, 0x3e, 0x65, 0xa2, 0x54, 0x5a, 0xfa, 0x18, 0xbe, - 0x8c, 0xa1, 0xa7, 0x1d, 0x31, 0x71, 0x1d, 0x50, 0x57, 0xc7, 0xdb, 0xee, 0x30, 0x1a, 0xc7, 0x6f, - 0xbb, 0xc3, 0xc1, 0x78, 0x88, 0xbb, 0x8e, 0x96, 0xff, 0x15, 0x41, 0xf2, 0x9a, 0xdb, 0x0b, 0x59, - 0xd7, 0xdc, 0xa2, 0x27, 0x10, 0xf3, 0xca, 0x6b, 0x94, 0xe0, 0x98, 0x57, 0x28, 0x83, 0x81, 0xd9, - 0xfa, 0x94, 0x7c, 0xeb, 0x52, 0xdc, 0x9a, 0x08, 0x41, 0x77, 0x29, 0xab, 0x9d, 0xef, 0x56, 0x8a, - 0xfd, 0x19, 0x7d, 0x0b, 0x7d, 0xb2, 0xb5, 0x6b, 0xa9, 0x7d, 0x5f, 0x46, 0xb3, 0xe3, 0x56, 0xe5, - 0xe0, 0xfd, 0xdc, 0xdf, 0xe1, 0x86, 0x83, 0x66, 0x90, 0xac, 0x3c, 0x6e, 0xa9, 0xce, 0x7a, 0xff, - 0xf3, 0xe0, 0x8e, 0x86, 0x9e, 0x02, 0x28, 0xa2, 0xe9, 0xc6, 0x96, 0xbc, 0x32, 0x59, 0xdf, 0xf7, - 0x2f, 0x09, 0xc8, 0x9b, 0xca, 0xa0, 0x2f, 0x20, 0x71, 0x89, 0x94, 0x86, 0x7f, 0xa0, 0xd9, 0x60, - 0x12, 0x9d, 0x75, 0xf0, 0xd0, 0x01, 0x37, 0xfc, 0x03, 0xcd, 0xd7, 0x90, 0x1e, 0xba, 0x75, 0x15, - 0xf8, 0x99, 0x88, 0x42, 0x05, 0xee, 0x8c, 0x8e, 0xa1, 0x47, 0x6b, 0xc2, 0x45, 0x53, 0x6d, 0x30, - 0x50, 0x01, 0xdd, 0x8a, 0x58, 0xea, 0x6b, 0x1d, 0xcd, 0x4e, 0x8a, 0x30, 0xfa, 0x45, 0x3b, 0xfa, - 0xc5, 0xa2, 0xdd, 0x0d, 0xec, 0x79, 0x79, 0x0e, 0xf0, 0xea, 0x37, 0x6e, 0x6f, 0x2c, 0xb1, 0x5b, - 0xe3, 0x7c, 0xbe, 0x27, 0x62, 0x1b, 0x02, 0xf5, 0x70, 0x30, 0xf2, 0x05, 0xf4, 0x5f, 0x6a, 0xb2, - 0x59, 0xad, 0x1f, 0xcd, 0xe3, 0x3b, 0x38, 0xb2, 0x44, 0x33, 0x6a, 0xcb, 0x50, 0xbb, 0xcf, 0x67, - 0x34, 0xfb, 0xac, 0xed, 0xcf, 0x5e, 0x31, 0x9c, 0x06, 0x5e, 0xb0, 0xf2, 0x3f, 0x23, 0xe8, 0x2c, - 0x08, 0x7b, 0xd4, 0x67, 0xd0, 0x36, 0xde, 0x6b, 0xfb, 0x20, 0x46, 0xe7, 0xa3, 0x62, 0xb8, 0x99, - 0xa8, 0xa9, 0x31, 0x84, 0x51, 0x2f, 0x73, 0x8a, 0x5b, 0xd3, 0x6d, 0x5b, 0x73, 0x0c, 0x0a, 0xf4, - 0xbc, 0x02, 0xa3, 0x06, 0x73, 0x22, 0xb8, 0x11, 0xb1, 0x84, 0x31, 0xaa, 0xfd, 0x18, 0xff, 0xe7, - 0x88, 0x04, 0x4e, 0xfe, 0x0e, 0xba, 0xb7, 0x86, 0x6a, 0xf4, 0x39, 0xf4, 0x98, 0x28, 0xf7, 0x93, - 0xd9, 0x65, 0xe2, 0x4d, 0xb5, 0xaf, 0x31, 0x7e, 0x4c, 0xbf, 0xce, 0xa1, 0x7e, 0xa7, 0x30, 0x62, - 0xa2, 0xdc, 0x1a, 0xb7, 0x62, 0x35, 0x6d, 0x96, 0x16, 0x98, 0xb8, 0x6d, 0x90, 0xfc, 0x07, 0x80, - 0xb0, 0x78, 0xd7, 0x52, 0x0a, 0x34, 0x03, 0x38, 0x58, 0xb7, 0xc8, 0xe7, 0x89, 0xda, 0x3c, 0xef, - 0x96, 0x0e, 0x1f, 0xb0, 0xbe, 0xbf, 0x86, 0x81, 0x54, 0xa5, 0xdd, 0x29, 0x8a, 0x4e, 0x1f, 0xcc, - 0xc7, 0x65, 0x68, 0xc0, 0x5c, 0xb9, 0xaf, 0xcc, 0x64, 0x7f, 0xff, 0x7e, 0x6f, 0xda, 0x0f, 0x3f, - 0x41, 0xdc, 0x97, 0x6a, 0xb1, 0x53, 0xf4, 0xe5, 0xf3, 0x5f, 0xdc, 0xb5, 0x20, 0xcb, 0x62, 0x25, - 0xeb, 0x69, 0x38, 0x3e, 0x93, 0x9a, 0x4d, 0xc3, 0xa3, 0x67, 0xde, 0xfb, 0x94, 0xc9, 0xc6, 0x56, - 0xcb, 0x65, 0xdf, 0x43, 0x2f, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, 0xab, 0xc2, 0xfc, 0x8c, 0xd2, - 0x05, 0x00, 0x00, +func init() { proto.RegisterFile("shared.proto", fileDescriptor_shared_667153471f9eb114) } + +var fileDescriptor_shared_667153471f9eb114 = []byte{ + // 813 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xdd, 0x6e, 0xdb, 0x36, + 0x14, 0x9e, 0x64, 0xf9, 0xef, 0x58, 0xe9, 0x34, 0x2e, 0x17, 0x42, 0x86, 0xb6, 0x9e, 0x06, 0x0c, + 0xc1, 0xb0, 0xca, 0x85, 0x0b, 0xec, 0x62, 0x57, 0xb3, 0xb3, 0x20, 0x48, 0x37, 0x47, 0x01, 0xa3, + 0x60, 0xc0, 0x6e, 0x04, 0xda, 0x62, 0x69, 0x0e, 0x92, 0x29, 0x90, 0x74, 0xb1, 0xf4, 0x72, 0x0f, + 0xb4, 0x27, 0xd9, 0x7b, 0xec, 0x31, 0x36, 0x90, 0xb4, 0x1c, 0x37, 0xcd, 0x86, 0xde, 0xf1, 0x7c, + 0xfc, 0x78, 0x78, 0x3e, 0x7e, 0xe7, 0x10, 0x42, 0xb5, 0x26, 0x92, 0x96, 0x69, 0x23, 0x85, 0x16, + 0xa8, 0xc7, 0xb8, 0x26, 0xd5, 0xdd, 0xc9, 0x73, 0x26, 0x04, 0xab, 0xe8, 0xc4, 0xa2, 0xcb, 0xed, + 0x9b, 0x89, 0xe6, 0x35, 0x55, 0x9a, 0xd4, 0x8d, 0x23, 0x9e, 0x8c, 0x1f, 0x12, 0x4a, 0xaa, 0x56, + 0x92, 0x37, 0x5a, 0x48, 0xc7, 0x48, 0x14, 0x84, 0x59, 0x43, 0x25, 0xd1, 0x5c, 0x6c, 0x16, 0x8a, + 0xa1, 0x14, 0x7c, 0xd1, 0xc4, 0xde, 0xd8, 0x3b, 0x7d, 0x32, 0x7d, 0x96, 0xba, 0x7b, 0xd2, 0x43, + 0xc6, 0x7d, 0x80, 0x7d, 0xd1, 0x24, 0xaf, 0x60, 0xb8, 0x07, 0xd0, 0x08, 0xfa, 0xb7, 0x57, 0x3f, + 0x5d, 0x65, 0xbf, 0x5c, 0x45, 0x9f, 0x98, 0x60, 0x71, 0x9b, 0xcf, 0xf2, 0x0c, 0x47, 0x1e, 0x0a, + 0x61, 0x30, 0x3b, 0x3b, 0x3b, 0xbf, 0xb9, 0xc9, 0x70, 0xe4, 0x27, 0x7f, 0xfa, 0x00, 0x98, 0x36, + 0x42, 0x71, 0x2d, 0xe4, 0x1d, 0xfa, 0x12, 0x42, 0xa5, 0x85, 0x24, 0x8c, 0x16, 0x1b, 0x52, 0xd3, + 0xd8, 0x1f, 0x7b, 0xa7, 0x43, 0x3c, 0xda, 0x61, 0x57, 0xa4, 0xa6, 0xe8, 0x2b, 0x38, 0x92, 0xb4, + 0x22, 0x9a, 0xbf, 0xa5, 0x45, 0x43, 0xf4, 0x3a, 0xee, 0x58, 0x4e, 0xd8, 0x82, 0xd7, 0x44, 0xaf, + 0xd1, 0x4b, 0x38, 0x66, 0x5c, 0x17, 0x62, 0xf9, 0x1b, 0x5d, 0xe9, 0xa2, 0xe4, 0x92, 0xae, 0x4c, + 0xfe, 0x38, 0xb0, 0x5c, 0xc4, 0xb8, 0xce, 0xec, 0xd6, 0x8f, 0xed, 0x0e, 0xba, 0x80, 0xb1, 0x39, + 0x41, 0x2a, 0x4d, 0xe5, 0x86, 0x68, 0xfa, 0xf0, 0x2c, 0xa7, 0x2a, 0xee, 0x8e, 0x3b, 0xa7, 0x43, + 0xfc, 0x94, 0x71, 0x3d, 0x6b, 0x69, 0xef, 0xa7, 0xe1, 0x54, 0x99, 0xfa, 0x58, 0x55, 0xc8, 0xbd, + 0xa6, 0xb8, 0xe7, 0xea, 0x63, 0xd5, 0x81, 0xce, 0xaf, 0xe1, 0x53, 0x56, 0x15, 0x8d, 0x14, 0xf6, + 0x0e, 0x2b, 0x63, 0x60, 0x69, 0x47, 0xac, 0xba, 0x76, 0xa8, 0xd1, 0xf1, 0x3a, 0x18, 0x78, 0x91, + 0xff, 0x3a, 0x18, 0xf4, 0xa3, 0x01, 0x0e, 0x0c, 0x2d, 0xf9, 0xdb, 0x83, 0xe1, 0x05, 0xd7, 0x67, + 0xa2, 0xae, 0xb9, 0x46, 0x4f, 0xc0, 0xe7, 0xa5, 0xf5, 0x68, 0x88, 0x7d, 0x5e, 0xa2, 0x18, 0xfa, + 0x6a, 0x6b, 0x4b, 0xb2, 0x4f, 0x17, 0xe2, 0x36, 0x44, 0x08, 0x82, 0xa5, 0x28, 0xef, 0xec, 0x6b, + 0x85, 0xd8, 0xae, 0xd1, 0xb7, 0xd0, 0x23, 0x5b, 0xbd, 0x16, 0xd2, 0xbe, 0xcb, 0x68, 0x7a, 0xdc, + 0xba, 0xec, 0xb2, 0xcf, 0xec, 0x1e, 0xde, 0x71, 0xd0, 0x14, 0x86, 0x2b, 0x8b, 0x6b, 0x2a, 0xe3, + 0xee, 0xff, 0x1c, 0xb8, 0xa7, 0xa1, 0xa7, 0x00, 0x0d, 0x91, 0x74, 0xa3, 0x0b, 0x5e, 0xaa, 0xb8, + 0x67, 0xdf, 0x6f, 0xe8, 0x90, 0xcb, 0x52, 0xa1, 0x2f, 0x60, 0x68, 0x0a, 0x29, 0x14, 0x7f, 0x47, + 0xe3, 0xfe, 0xd8, 0x3b, 0xed, 0xe0, 0x81, 0x01, 0x6e, 0xf8, 0x3b, 0x9a, 0xac, 0x21, 0x3c, 0x4c, + 0x6b, 0x14, 0xd8, 0x9e, 0xf0, 0x9c, 0x02, 0xb3, 0x46, 0xc7, 0xd0, 0xa5, 0x35, 0xe1, 0xd5, 0x4e, + 0xad, 0x0b, 0x50, 0x0a, 0x41, 0x49, 0x34, 0xb5, 0x5a, 0x47, 0xd3, 0x93, 0xd4, 0xb5, 0x7e, 0xda, + 0xb6, 0x7e, 0x9a, 0xb7, 0xb3, 0x81, 0x2d, 0x2f, 0x49, 0x00, 0xce, 0x7f, 0xe7, 0xfa, 0x46, 0x13, + 0xbd, 0x55, 0x26, 0xe7, 0x5b, 0x52, 0x6d, 0xdd, 0x45, 0x5d, 0xec, 0x82, 0x24, 0x87, 0xde, 0x5c, + 0x92, 0xcd, 0x6a, 0xfd, 0x68, 0x1d, 0xdf, 0xc1, 0x91, 0x26, 0x92, 0x51, 0x5d, 0x38, 0xed, 0xb6, + 0x9e, 0xd1, 0xf4, 0xb3, 0xf6, 0x7d, 0xf6, 0x8e, 0xe1, 0xd0, 0xf1, 0x5c, 0x94, 0xfc, 0xe5, 0x41, + 0x27, 0x27, 0xec, 0xd1, 0x9c, 0xce, 0x5b, 0x7f, 0xef, 0xed, 0x07, 0x77, 0x74, 0x3e, 0xea, 0x0e, + 0xd3, 0x13, 0x35, 0x55, 0x8a, 0x30, 0x6a, 0x6d, 0x0e, 0x71, 0x1b, 0x9a, 0x69, 0xdb, 0x2d, 0x9d, + 0x03, 0x5d, 0xeb, 0xc0, 0x68, 0x87, 0x19, 0x13, 0x4c, 0x8b, 0x68, 0xc2, 0x18, 0x95, 0xb6, 0x8d, + 0xff, 0xb3, 0x45, 0x1c, 0x27, 0x79, 0x03, 0xc1, 0xad, 0xa2, 0x12, 0x7d, 0x0e, 0x5d, 0x56, 0x15, + 0xfb, 0xce, 0x0c, 0x58, 0x75, 0x59, 0xee, 0x35, 0xfa, 0x8f, 0xf9, 0xd7, 0x39, 0xf4, 0xef, 0x39, + 0x8c, 0x58, 0x55, 0x6c, 0x95, 0x19, 0xb1, 0x9a, 0xee, 0x86, 0x16, 0x58, 0x75, 0xbb, 0x43, 0x92, + 0x1f, 0x00, 0xdc, 0xe0, 0x5d, 0x0b, 0x51, 0xa1, 0x29, 0xc0, 0xc1, 0xb8, 0x79, 0xb6, 0x4e, 0xd4, + 0xd6, 0x79, 0x3f, 0x74, 0xf8, 0x80, 0xf5, 0xcd, 0xbc, 0xcd, 0x90, 0xdf, 0x35, 0xf4, 0xfd, 0xdf, + 0x0a, 0xa0, 0x77, 0x96, 0x2d, 0x16, 0x97, 0x79, 0xe4, 0xa1, 0x01, 0x04, 0xf3, 0x9f, 0xb3, 0x79, + 0xe4, 0x9b, 0x55, 0x8e, 0xcf, 0xcf, 0xa3, 0x0e, 0xea, 0x43, 0x27, 0x9f, 0x5d, 0x44, 0xc1, 0xf7, + 0x19, 0xf4, 0x45, 0x53, 0x68, 0x93, 0xe0, 0xd9, 0x07, 0x3d, 0xb6, 0xa0, 0x7a, 0x2d, 0xca, 0xac, + 0x31, 0xbf, 0xa1, 0x8a, 0xff, 0xf9, 0xe3, 0xc1, 0xc0, 0x1c, 0xfe, 0xa3, 0xb8, 0x27, 0x1a, 0x53, + 0xc6, 0xfc, 0xe5, 0xaf, 0x66, 0xbb, 0x22, 0xcb, 0x74, 0x25, 0xea, 0x89, 0x5b, 0xbe, 0x10, 0x92, + 0x4d, 0xdc, 0xa1, 0x17, 0x36, 0xf9, 0x84, 0x89, 0x5d, 0xdc, 0x2c, 0x97, 0x3d, 0x0b, 0xbd, 0xfa, + 0x37, 0x00, 0x00, 0xff, 0xff, 0x87, 0xef, 0xe0, 0x3f, 0x15, 0x06, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/smarthttp.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/smarthttp.pb.go index 8f3d6ba4a..5938e9bcf 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/smarthttp.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/smarthttp.pb.go @@ -38,7 +38,7 @@ func (m *InfoRefsRequest) Reset() { *m = InfoRefsRequest{} } func (m *InfoRefsRequest) String() string { return proto.CompactTextString(m) } func (*InfoRefsRequest) ProtoMessage() {} func (*InfoRefsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_smarthttp_d15d08ac1e07ff5f, []int{0} + return fileDescriptor_smarthttp_5a09d229ac7e5b0b, []int{0} } func (m *InfoRefsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InfoRefsRequest.Unmarshal(m, b) @@ -90,7 +90,7 @@ func (m *InfoRefsResponse) Reset() { *m = InfoRefsResponse{} } func (m *InfoRefsResponse) String() string { return proto.CompactTextString(m) } func (*InfoRefsResponse) ProtoMessage() {} func (*InfoRefsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_smarthttp_d15d08ac1e07ff5f, []int{1} + return fileDescriptor_smarthttp_5a09d229ac7e5b0b, []int{1} } func (m *InfoRefsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InfoRefsResponse.Unmarshal(m, b) @@ -135,7 +135,7 @@ func (m *PostUploadPackRequest) Reset() { *m = PostUploadPackRequest{} } func (m *PostUploadPackRequest) String() string { return proto.CompactTextString(m) } func (*PostUploadPackRequest) ProtoMessage() {} func (*PostUploadPackRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_smarthttp_d15d08ac1e07ff5f, []int{2} + return fileDescriptor_smarthttp_5a09d229ac7e5b0b, []int{2} } func (m *PostUploadPackRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PostUploadPackRequest.Unmarshal(m, b) @@ -195,7 +195,7 @@ func (m *PostUploadPackResponse) Reset() { *m = PostUploadPackResponse{} func (m *PostUploadPackResponse) String() string { return proto.CompactTextString(m) } func (*PostUploadPackResponse) ProtoMessage() {} func (*PostUploadPackResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_smarthttp_d15d08ac1e07ff5f, []int{3} + return fileDescriptor_smarthttp_5a09d229ac7e5b0b, []int{3} } func (m *PostUploadPackResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PostUploadPackResponse.Unmarshal(m, b) @@ -245,7 +245,7 @@ func (m *PostReceivePackRequest) Reset() { *m = PostReceivePackRequest{} func (m *PostReceivePackRequest) String() string { return proto.CompactTextString(m) } func (*PostReceivePackRequest) ProtoMessage() {} func (*PostReceivePackRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_smarthttp_d15d08ac1e07ff5f, []int{4} + return fileDescriptor_smarthttp_5a09d229ac7e5b0b, []int{4} } func (m *PostReceivePackRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PostReceivePackRequest.Unmarshal(m, b) @@ -326,7 +326,7 @@ func (m *PostReceivePackResponse) Reset() { *m = PostReceivePackResponse func (m *PostReceivePackResponse) String() string { return proto.CompactTextString(m) } func (*PostReceivePackResponse) ProtoMessage() {} func (*PostReceivePackResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_smarthttp_d15d08ac1e07ff5f, []int{5} + return fileDescriptor_smarthttp_5a09d229ac7e5b0b, []int{5} } func (m *PostReceivePackResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PostReceivePackResponse.Unmarshal(m, b) @@ -659,38 +659,37 @@ var _SmartHTTPService_serviceDesc = grpc.ServiceDesc{ Metadata: "smarthttp.proto", } -func init() { proto.RegisterFile("smarthttp.proto", fileDescriptor_smarthttp_d15d08ac1e07ff5f) } - -var fileDescriptor_smarthttp_d15d08ac1e07ff5f = []byte{ - // 465 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x53, 0xcb, 0x6e, 0xd3, 0x40, - 0x14, 0x65, 0x9c, 0x34, 0xd0, 0x9b, 0x40, 0xa2, 0x5b, 0x41, 0xad, 0x48, 0xd0, 0x60, 0x24, 0xe4, - 0x45, 0xf3, 0x50, 0xd8, 0xb1, 0x84, 0x0d, 0x15, 0x48, 0x58, 0x6e, 0x23, 0x21, 0x36, 0xd6, 0xc4, - 0x9e, 0x4c, 0x47, 0x4c, 0x3c, 0xc6, 0x33, 0xad, 0xd4, 0xff, 0x40, 0x62, 0xc7, 0x77, 0xf0, 0x35, - 0x7c, 0x04, 0x5f, 0x80, 0xe2, 0x47, 0x9d, 0xc6, 0x35, 0x42, 0x20, 0x76, 0x33, 0xe7, 0x9e, 0xfb, - 0x38, 0x67, 0xee, 0x40, 0x5f, 0xaf, 0x69, 0x6a, 0xce, 0x8d, 0x49, 0x26, 0x49, 0xaa, 0x8c, 0xc2, - 0x0e, 0x17, 0x86, 0xca, 0xab, 0x61, 0x4f, 0x9f, 0xd3, 0x94, 0x45, 0x39, 0xea, 0x7c, 0x23, 0xd0, - 0x3f, 0x89, 0x57, 0xca, 0x67, 0x2b, 0xed, 0xb3, 0xcf, 0x17, 0x4c, 0x1b, 0x9c, 0x03, 0xa4, 0x2c, - 0x51, 0x5a, 0x18, 0x95, 0x5e, 0xd9, 0x64, 0x44, 0xdc, 0xee, 0x1c, 0x27, 0x79, 0xfa, 0xc4, 0xbf, - 0x8e, 0xf8, 0x5b, 0x2c, 0x3c, 0x06, 0xe4, 0xc2, 0x04, 0xa1, 0x8a, 0x57, 0x82, 0x07, 0x2a, 0x31, - 0x42, 0xc5, 0xda, 0xb6, 0x46, 0x2d, 0x77, 0xdf, 0x1f, 0x70, 0x61, 0x5e, 0x67, 0x81, 0xf7, 0x39, - 0x8e, 0x4f, 0xa1, 0xb7, 0x61, 0x67, 0x23, 0x84, 0x4a, 0xda, 0xad, 0x11, 0x71, 0xf7, 0xfd, 0x2e, - 0x17, 0xc6, 0x2b, 0xa0, 0x97, 0x9d, 0x9f, 0x5f, 0x5d, 0xeb, 0x9e, 0xe5, 0x3c, 0x87, 0x41, 0x35, - 0x9f, 0x4e, 0x54, 0xac, 0x19, 0x22, 0xb4, 0x23, 0x6a, 0x68, 0x36, 0x5a, 0xcf, 0xcf, 0xce, 0xce, - 0x77, 0x02, 0x0f, 0x3d, 0xa5, 0xcd, 0x22, 0x91, 0x8a, 0x46, 0x1e, 0x0d, 0x3f, 0xfd, 0x8b, 0x9c, - 0xb2, 0x83, 0x55, 0x75, 0x68, 0x90, 0xd8, 0xfa, 0x43, 0x89, 0xed, 0x66, 0x89, 0xc7, 0xf0, 0x68, - 0x77, 0xf2, 0xdf, 0x08, 0xfd, 0x62, 0xe5, 0x74, 0x9f, 0x85, 0x4c, 0x5c, 0xb2, 0xff, 0xa1, 0xf4, - 0x00, 0xf6, 0xb8, 0x0c, 0x44, 0x54, 0xbc, 0x4b, 0x9b, 0xcb, 0x93, 0x08, 0x9f, 0xc1, 0x7d, 0x2e, - 0x83, 0xad, 0xfa, 0xb9, 0xa2, 0x1e, 0x97, 0x55, 0x65, 0x3c, 0x82, 0x2e, 0x97, 0xc1, 0x85, 0x66, - 0x69, 0x4c, 0xd7, 0xcc, 0xde, 0xcb, 0x28, 0xc0, 0xe5, 0xa2, 0x40, 0x6a, 0xb6, 0x74, 0x6a, 0xb6, - 0x34, 0xf8, 0x7c, 0xf7, 0x76, 0x9f, 0x0b, 0x13, 0x89, 0x33, 0x86, 0xc3, 0x9a, 0x2b, 0xcd, 0x2e, - 0xce, 0x7f, 0x58, 0x30, 0x38, 0xdd, 0xfc, 0x90, 0x37, 0x67, 0x67, 0xde, 0x29, 0x4b, 0x2f, 0x45, - 0xc8, 0xf0, 0x2d, 0x60, 0xb9, 0x6b, 0xd5, 0x63, 0xe0, 0x61, 0xe9, 0xe0, 0xce, 0x3f, 0x19, 0xda, - 0xf5, 0x40, 0xde, 0xd1, 0xb9, 0x33, 0x23, 0xf8, 0x0e, 0x0e, 0x2a, 0xfc, 0x7a, 0xa8, 0xbf, 0xad, - 0xb6, 0x80, 0x07, 0x37, 0x77, 0x04, 0x1f, 0x97, 0xfc, 0x5b, 0xb7, 0x7e, 0xf8, 0xa4, 0x29, 0x5c, - 0x16, 0x75, 0xc9, 0x8c, 0xe0, 0x07, 0xe8, 0xef, 0xb8, 0x86, 0x37, 0x12, 0xeb, 0x4b, 0x36, 0x3c, - 0x6a, 0x8c, 0x6f, 0x57, 0x7e, 0x35, 0xfb, 0xb8, 0xe1, 0x49, 0xba, 0x9c, 0x84, 0x6a, 0x3d, 0xcd, - 0x8f, 0x63, 0x95, 0xf2, 0x69, 0x9e, 0x3d, 0xce, 0x36, 0x60, 0xca, 0x55, 0x71, 0x4f, 0x96, 0xcb, - 0x4e, 0x06, 0xbd, 0xf8, 0x15, 0x00, 0x00, 0xff, 0xff, 0x06, 0xb7, 0x75, 0xf3, 0xba, 0x04, 0x00, - 0x00, +func init() { proto.RegisterFile("smarthttp.proto", fileDescriptor_smarthttp_5a09d229ac7e5b0b) } + +var fileDescriptor_smarthttp_5a09d229ac7e5b0b = []byte{ + // 462 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x53, 0x4d, 0x6f, 0xd3, 0x40, + 0x10, 0x95, 0x9d, 0x34, 0xd0, 0x49, 0x20, 0xd1, 0x54, 0x50, 0x2b, 0x12, 0x34, 0x18, 0x09, 0xf9, + 0xd0, 0x7c, 0x28, 0xfc, 0x03, 0xb8, 0xd0, 0x13, 0x61, 0xdb, 0x5e, 0x40, 0xc2, 0xda, 0xd8, 0x9b, + 0xed, 0x8a, 0x8d, 0xd7, 0x78, 0xb7, 0x95, 0xfa, 0x1f, 0x38, 0xc3, 0xdf, 0xe0, 0xd7, 0x71, 0xe0, + 0x84, 0xec, 0x4d, 0xea, 0x3a, 0xae, 0x11, 0x02, 0x71, 0xb3, 0xe7, 0xcd, 0xbe, 0x79, 0xef, 0xed, + 0x2c, 0xf4, 0xf5, 0x9a, 0x66, 0xe6, 0xc2, 0x98, 0x74, 0x92, 0x66, 0xca, 0x28, 0xec, 0x70, 0x61, + 0xa8, 0xbc, 0x1e, 0xf6, 0xf4, 0x05, 0xcd, 0x58, 0x6c, 0xab, 0xfe, 0x57, 0x07, 0xfa, 0x27, 0xc9, + 0x4a, 0x11, 0xb6, 0xd2, 0x84, 0x7d, 0xbe, 0x64, 0xda, 0xe0, 0x1c, 0x20, 0x63, 0xa9, 0xd2, 0xc2, + 0xa8, 0xec, 0xda, 0x73, 0x46, 0x4e, 0xd0, 0x9d, 0xe3, 0xc4, 0x1e, 0x9f, 0x90, 0x1b, 0x84, 0xdc, + 0xea, 0xc2, 0x63, 0x40, 0x2e, 0x4c, 0x18, 0xa9, 0x64, 0x25, 0x78, 0xa8, 0x52, 0x23, 0x54, 0xa2, + 0x3d, 0x77, 0xd4, 0x0a, 0xf6, 0xc9, 0x80, 0x0b, 0xf3, 0xba, 0x00, 0xde, 0xda, 0x3a, 0x3e, 0x83, + 0x5e, 0xde, 0x5d, 0x48, 0x88, 0x94, 0xf4, 0x5a, 0x23, 0x27, 0xd8, 0x27, 0x5d, 0x2e, 0xcc, 0x62, + 0x53, 0xf2, 0x5f, 0xc0, 0xa0, 0xd4, 0xa5, 0x53, 0x95, 0x68, 0x86, 0x08, 0xed, 0x98, 0x1a, 0x5a, + 0x48, 0xea, 0x91, 0xe2, 0xdb, 0xff, 0xee, 0xc0, 0xa3, 0x85, 0xd2, 0xe6, 0x3c, 0x95, 0x8a, 0xc6, + 0x0b, 0x1a, 0x7d, 0xfa, 0x17, 0x1b, 0xdb, 0x09, 0x6e, 0x39, 0xa1, 0xc1, 0x5a, 0xeb, 0x0f, 0xad, + 0xb5, 0xeb, 0xd6, 0x8e, 0xe1, 0xf1, 0xae, 0xe2, 0xdf, 0x18, 0xfc, 0xe2, 0xda, 0x76, 0xc2, 0x22, + 0x26, 0xae, 0xd8, 0xff, 0x70, 0x78, 0x00, 0x7b, 0x5c, 0x86, 0x22, 0xde, 0xdc, 0x43, 0x9b, 0xcb, + 0x93, 0x18, 0x9f, 0xc3, 0x03, 0x2e, 0xc3, 0x5b, 0xfc, 0xd6, 0x49, 0x8f, 0xcb, 0x92, 0x19, 0x8f, + 0xa0, 0xcb, 0x65, 0x78, 0xa9, 0x59, 0x96, 0xd0, 0x35, 0xf3, 0xf6, 0x8a, 0x16, 0xe0, 0xf2, 0x7c, + 0x53, 0xa9, 0xc5, 0xd1, 0xa9, 0xc5, 0xd1, 0x90, 0xef, 0xbd, 0xbb, 0xf3, 0xf5, 0xc7, 0x70, 0x58, + 0x4b, 0xa3, 0x39, 0xbd, 0xf9, 0x0f, 0x17, 0x06, 0xa7, 0xf9, 0x4b, 0x78, 0x73, 0x76, 0xb6, 0x38, + 0x65, 0xd9, 0x95, 0x88, 0x18, 0xbe, 0x03, 0xdc, 0xee, 0x56, 0x79, 0x09, 0x78, 0xb8, 0x4d, 0x6e, + 0xe7, 0x3d, 0x0c, 0xbd, 0x3a, 0x60, 0x27, 0xfa, 0x9d, 0x9f, 0xdf, 0x02, 0xf7, 0xbe, 0x3b, 0x73, + 0x90, 0xc0, 0x41, 0x89, 0xde, 0x48, 0xfb, 0x7b, 0x4e, 0x67, 0xe6, 0xe0, 0x07, 0x78, 0x58, 0xdd, + 0x13, 0x7c, 0xb2, 0x3d, 0x75, 0xe7, 0xc6, 0x0f, 0x9f, 0x36, 0xc1, 0x55, 0xb9, 0x41, 0x4e, 0xfe, + 0x11, 0xfa, 0x3b, 0x39, 0x62, 0xe5, 0x78, 0x7d, 0xdd, 0x86, 0x47, 0x8d, 0x78, 0x55, 0x7a, 0xce, + 0xff, 0x6a, 0xf6, 0x3e, 0xef, 0x96, 0x74, 0x39, 0x89, 0xd4, 0x7a, 0x6a, 0x3f, 0xc7, 0x2a, 0xe3, + 0x53, 0xcb, 0x31, 0x2e, 0x36, 0x62, 0xca, 0xd5, 0xe6, 0x3f, 0x5d, 0x2e, 0x3b, 0x45, 0xe9, 0xe5, + 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xb9, 0x7a, 0xac, 0xb4, 0xba, 0x04, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/ssh.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/ssh.pb.go index 5243e0db8..4c9bfdacf 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/ssh.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/ssh.pb.go @@ -41,7 +41,7 @@ func (m *SSHUploadPackRequest) Reset() { *m = SSHUploadPackRequest{} } func (m *SSHUploadPackRequest) String() string { return proto.CompactTextString(m) } func (*SSHUploadPackRequest) ProtoMessage() {} func (*SSHUploadPackRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ssh_e79ebe9ec5e2177f, []int{0} + return fileDescriptor_ssh_7bc71c1984deb95b, []int{0} } func (m *SSHUploadPackRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SSHUploadPackRequest.Unmarshal(m, b) @@ -106,7 +106,7 @@ func (m *SSHUploadPackResponse) Reset() { *m = SSHUploadPackResponse{} } func (m *SSHUploadPackResponse) String() string { return proto.CompactTextString(m) } func (*SSHUploadPackResponse) ProtoMessage() {} func (*SSHUploadPackResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ssh_e79ebe9ec5e2177f, []int{1} + return fileDescriptor_ssh_7bc71c1984deb95b, []int{1} } func (m *SSHUploadPackResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SSHUploadPackResponse.Unmarshal(m, b) @@ -170,7 +170,7 @@ func (m *SSHReceivePackRequest) Reset() { *m = SSHReceivePackRequest{} } func (m *SSHReceivePackRequest) String() string { return proto.CompactTextString(m) } func (*SSHReceivePackRequest) ProtoMessage() {} func (*SSHReceivePackRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ssh_e79ebe9ec5e2177f, []int{2} + return fileDescriptor_ssh_7bc71c1984deb95b, []int{2} } func (m *SSHReceivePackRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SSHReceivePackRequest.Unmarshal(m, b) @@ -256,7 +256,7 @@ func (m *SSHReceivePackResponse) Reset() { *m = SSHReceivePackResponse{} func (m *SSHReceivePackResponse) String() string { return proto.CompactTextString(m) } func (*SSHReceivePackResponse) ProtoMessage() {} func (*SSHReceivePackResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ssh_e79ebe9ec5e2177f, []int{3} + return fileDescriptor_ssh_7bc71c1984deb95b, []int{3} } func (m *SSHReceivePackResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SSHReceivePackResponse.Unmarshal(m, b) @@ -311,7 +311,7 @@ func (m *SSHUploadArchiveRequest) Reset() { *m = SSHUploadArchiveRequest func (m *SSHUploadArchiveRequest) String() string { return proto.CompactTextString(m) } func (*SSHUploadArchiveRequest) ProtoMessage() {} func (*SSHUploadArchiveRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_ssh_e79ebe9ec5e2177f, []int{4} + return fileDescriptor_ssh_7bc71c1984deb95b, []int{4} } func (m *SSHUploadArchiveRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SSHUploadArchiveRequest.Unmarshal(m, b) @@ -361,7 +361,7 @@ func (m *SSHUploadArchiveResponse) Reset() { *m = SSHUploadArchiveRespon func (m *SSHUploadArchiveResponse) String() string { return proto.CompactTextString(m) } func (*SSHUploadArchiveResponse) ProtoMessage() {} func (*SSHUploadArchiveResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_ssh_e79ebe9ec5e2177f, []int{5} + return fileDescriptor_ssh_7bc71c1984deb95b, []int{5} } func (m *SSHUploadArchiveResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SSHUploadArchiveResponse.Unmarshal(m, b) @@ -651,39 +651,39 @@ var _SSHService_serviceDesc = grpc.ServiceDesc{ Metadata: "ssh.proto", } -func init() { proto.RegisterFile("ssh.proto", fileDescriptor_ssh_e79ebe9ec5e2177f) } - -var fileDescriptor_ssh_e79ebe9ec5e2177f = []byte{ - // 494 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4d, 0x6e, 0xd3, 0x40, - 0x14, 0xc6, 0x8e, 0x63, 0x9a, 0x17, 0x17, 0x45, 0x43, 0x5b, 0xac, 0x08, 0xa8, 0x31, 0x1b, 0x2f, - 0x68, 0x52, 0xa5, 0x3b, 0x76, 0x80, 0x90, 0x0a, 0x1b, 0xaa, 0xb1, 0xb2, 0x81, 0x85, 0xe5, 0xd8, - 0xc3, 0x64, 0xd4, 0x89, 0xc7, 0xcc, 0x4c, 0xa2, 0x56, 0x02, 0x71, 0x09, 0x10, 0x37, 0xe3, 0x20, - 0x9c, 0x00, 0xd5, 0x36, 0xc1, 0x8e, 0x9b, 0x1d, 0x64, 0x37, 0xef, 0xfb, 0xde, 0xff, 0xf7, 0x6c, - 0xe8, 0x29, 0x35, 0x1f, 0xe5, 0x52, 0x68, 0x81, 0x6c, 0xca, 0x74, 0xcc, 0xaf, 0x87, 0x8e, 0x9a, - 0xc7, 0x92, 0xa4, 0x25, 0xea, 0xff, 0x34, 0xe0, 0x20, 0x0c, 0xcf, 0xa7, 0x39, 0x17, 0x71, 0x7a, - 0x11, 0x27, 0x97, 0x98, 0x7c, 0x5a, 0x12, 0xa5, 0xd1, 0x04, 0x40, 0x92, 0x5c, 0x28, 0xa6, 0x85, - 0xbc, 0x76, 0x0d, 0xcf, 0x08, 0xfa, 0x13, 0x34, 0x2a, 0x73, 0x8c, 0xf0, 0x9a, 0xc1, 0x35, 0x2f, - 0x74, 0x00, 0x5d, 0xa5, 0x53, 0x96, 0xb9, 0xa6, 0x67, 0x04, 0x0e, 0x2e, 0x0d, 0xf4, 0x0c, 0x10, - 0x65, 0x3a, 0x4a, 0x44, 0xf6, 0x91, 0xd1, 0x48, 0xe4, 0x9a, 0x89, 0x4c, 0xb9, 0x96, 0xd7, 0x09, - 0x7a, 0x78, 0x40, 0x99, 0x7e, 0x55, 0x10, 0xef, 0x4a, 0x1c, 0x3d, 0x01, 0xe7, 0xc6, 0xbb, 0xe8, - 0x2e, 0x11, 0xdc, 0xed, 0x7a, 0x46, 0xd0, 0xc3, 0x7d, 0xca, 0xf4, 0x45, 0x05, 0x3d, 0xb7, 0x7f, - 0xfd, 0x08, 0xcc, 0x3d, 0xf3, 0xad, 0xb5, 0xd7, 0x19, 0x58, 0xf8, 0xb0, 0x96, 0x3c, 0x8f, 0x65, - 0xbc, 0x20, 0x9a, 0x48, 0xe5, 0x7f, 0x86, 0xc3, 0x8d, 0xb9, 0x54, 0x2e, 0x32, 0x45, 0xd0, 0x11, - 0xd8, 0x4a, 0xa7, 0x62, 0xa9, 0x8b, 0xa1, 0x1c, 0x5c, 0x59, 0x15, 0x4e, 0xa4, 0xac, 0xba, 0xaf, - 0x2c, 0x74, 0x06, 0x7d, 0x72, 0xc5, 0x74, 0xa4, 0x74, 0xac, 0x97, 0xca, 0xed, 0x34, 0x37, 0xf1, - 0xfa, 0x8a, 0xe9, 0xb0, 0x60, 0x30, 0x90, 0xf5, 0xdb, 0xff, 0x6e, 0x16, 0xe5, 0x31, 0x49, 0x08, - 0x5b, 0x91, 0xff, 0xb3, 0xd7, 0xfb, 0xd0, 0xa5, 0x3c, 0x62, 0x69, 0xd1, 0x52, 0x0f, 0x5b, 0x94, - 0xbf, 0x49, 0xd1, 0x53, 0xd8, 0xa7, 0x3c, 0xaa, 0x55, 0xb0, 0x0a, 0xd2, 0xa1, 0xfc, 0x6f, 0x6e, - 0x74, 0x0c, 0x7d, 0xca, 0xa3, 0xa5, 0x22, 0x32, 0x8b, 0x17, 0xa4, 0x5a, 0x31, 0x50, 0x3e, 0xad, - 0x90, 0x96, 0x08, 0x76, 0x4b, 0x84, 0x2d, 0xaa, 0xde, 0xbd, 0x5d, 0xd5, 0x4a, 0x32, 0xc3, 0xff, - 0x02, 0x47, 0x9b, 0x6b, 0xd9, 0xa5, 0x2c, 0x97, 0xf0, 0x60, 0x7d, 0x14, 0x2f, 0x64, 0x32, 0x67, - 0x2b, 0xf2, 0xcf, 0x75, 0x59, 0xcf, 0xfa, 0x15, 0xdc, 0x76, 0xb1, 0x1d, 0x4e, 0x3b, 0xf9, 0x66, - 0x02, 0x84, 0xe1, 0x79, 0x48, 0xe4, 0x8a, 0x25, 0x04, 0x61, 0xd8, 0x6f, 0x7c, 0x11, 0xe8, 0xe1, - 0x9f, 0xf8, 0xdb, 0x7e, 0x00, 0xc3, 0x47, 0x5b, 0xd8, 0x72, 0x02, 0xff, 0x4e, 0x60, 0x9c, 0x1a, - 0x68, 0x0a, 0xf7, 0x9a, 0x7a, 0xa2, 0x7a, 0x58, 0xfb, 0xfc, 0x87, 0x8f, 0xb7, 0xd1, 0x8d, 0xb4, - 0x1f, 0x60, 0xb0, 0xb9, 0x3a, 0x74, 0xdc, 0xea, 0xa7, 0xa9, 0xe0, 0xd0, 0xdb, 0xee, 0x50, 0x4f, - 0xfe, 0xf2, 0xf4, 0xfd, 0x8d, 0x23, 0x8f, 0x67, 0xa3, 0x44, 0x2c, 0xc6, 0xe5, 0xf3, 0x44, 0x48, - 0x3a, 0x2e, 0xc3, 0x4f, 0x8a, 0xab, 0x1f, 0x53, 0x51, 0xd9, 0xf9, 0x6c, 0x66, 0x17, 0xd0, 0xd9, - 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x78, 0x96, 0xf9, 0x08, 0x4e, 0x05, 0x00, 0x00, +func init() { proto.RegisterFile("ssh.proto", fileDescriptor_ssh_7bc71c1984deb95b) } + +var fileDescriptor_ssh_7bc71c1984deb95b = []byte{ + // 492 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x53, 0xd1, 0x6e, 0xd3, 0x30, + 0x14, 0x55, 0xba, 0x34, 0xac, 0xb7, 0x19, 0xaa, 0xcc, 0x36, 0xa2, 0x0a, 0x58, 0x08, 0x2f, 0x79, + 0x60, 0xed, 0xd4, 0x7d, 0x01, 0x20, 0xa4, 0xc1, 0x0b, 0x93, 0xa3, 0x49, 0x08, 0x1e, 0x22, 0x37, + 0x31, 0xae, 0x85, 0x1b, 0x07, 0xdb, 0xad, 0x36, 0x09, 0xc4, 0x17, 0xf0, 0xcc, 0x1f, 0xf0, 0x39, + 0x7c, 0x10, 0x4f, 0x68, 0x4e, 0x28, 0x4d, 0xb3, 0xbe, 0xc1, 0xde, 0x7c, 0xef, 0xb9, 0x3e, 0xf7, + 0xde, 0x73, 0x6c, 0xe8, 0x69, 0x3d, 0x1b, 0x95, 0x4a, 0x1a, 0x89, 0x3c, 0xc6, 0x0d, 0x11, 0x57, + 0x43, 0x5f, 0xcf, 0x88, 0xa2, 0x79, 0x95, 0x8d, 0x7e, 0x3a, 0xb0, 0x9f, 0x24, 0x67, 0x17, 0xa5, + 0x90, 0x24, 0x3f, 0x27, 0xd9, 0x47, 0x4c, 0x3f, 0x2d, 0xa8, 0x36, 0x68, 0x02, 0xa0, 0x68, 0x29, + 0x35, 0x37, 0x52, 0x5d, 0x05, 0x4e, 0xe8, 0xc4, 0xfd, 0x09, 0x1a, 0x55, 0x1c, 0x23, 0xbc, 0x42, + 0xf0, 0x5a, 0x15, 0xda, 0x87, 0xae, 0x36, 0x39, 0x2f, 0x82, 0x4e, 0xe8, 0xc4, 0x3e, 0xae, 0x02, + 0xf4, 0x14, 0x10, 0xe3, 0x26, 0xcd, 0x64, 0xf1, 0x81, 0xb3, 0x54, 0x96, 0x86, 0xcb, 0x42, 0x07, + 0x6e, 0xb8, 0x13, 0xf7, 0xf0, 0x80, 0x71, 0xf3, 0xc2, 0x02, 0x6f, 0xaa, 0x3c, 0x7a, 0x0c, 0xfe, + 0x75, 0xb5, 0x9d, 0x2e, 0x93, 0x22, 0xe8, 0x86, 0x4e, 0xdc, 0xc3, 0x7d, 0xc6, 0xcd, 0x79, 0x9d, + 0x7a, 0xed, 0xee, 0xee, 0x0c, 0x5c, 0x7c, 0xb0, 0x46, 0x5a, 0x12, 0x45, 0xe6, 0xd4, 0x50, 0xa5, + 0xa3, 0xcf, 0x70, 0xb0, 0xb1, 0x8f, 0x2e, 0x65, 0xa1, 0x29, 0x3a, 0x04, 0x4f, 0x9b, 0x5c, 0x2e, + 0x8c, 0x5d, 0xc6, 0xc7, 0x75, 0x54, 0xe7, 0xa9, 0x52, 0xf5, 0xd4, 0x75, 0x84, 0x4e, 0xa1, 0x4f, + 0x2f, 0xb9, 0x49, 0xb5, 0x21, 0x66, 0xa1, 0x83, 0x9d, 0xa6, 0x02, 0x2f, 0x2f, 0xb9, 0x49, 0x2c, + 0x82, 0x81, 0xae, 0xce, 0xd1, 0xb7, 0x8e, 0x6d, 0x8f, 0x69, 0x46, 0xf9, 0x92, 0xfe, 0x1f, 0x3d, + 0xef, 0x41, 0x97, 0x89, 0x94, 0xe7, 0x76, 0xa4, 0x1e, 0x76, 0x99, 0x78, 0x95, 0xa3, 0x27, 0xb0, + 0xc7, 0x44, 0xba, 0xd6, 0xc1, 0xb5, 0xa0, 0xcf, 0xc4, 0x5f, 0x6e, 0x74, 0x04, 0x7d, 0x26, 0xd2, + 0x85, 0xa6, 0xaa, 0x20, 0x73, 0x5a, 0x4b, 0x0b, 0x4c, 0x5c, 0xd4, 0x99, 0x96, 0xf8, 0x5e, 0x4b, + 0xfc, 0x2d, 0x6e, 0xde, 0xb9, 0xd9, 0xcd, 0xe8, 0x0b, 0x1c, 0x6e, 0xca, 0x71, 0x9b, 0x76, 0x64, + 0x70, 0x7f, 0xf5, 0x18, 0x9e, 0xa9, 0x6c, 0xc6, 0x97, 0xf4, 0x9f, 0xfb, 0x11, 0x7d, 0x85, 0xa0, + 0xdd, 0xe4, 0x16, 0xb7, 0x9c, 0xfc, 0xe8, 0x00, 0x24, 0xc9, 0x59, 0x42, 0xd5, 0x92, 0x67, 0x14, + 0xbd, 0x85, 0xbd, 0xc6, 0x0f, 0x40, 0x0f, 0xfe, 0xdc, 0xbf, 0xe9, 0xa3, 0x0f, 0x1f, 0x6e, 0x41, + 0xab, 0x0d, 0x22, 0xef, 0xd7, 0xf7, 0xb8, 0xb3, 0xdb, 0x89, 0x9d, 0x13, 0x07, 0xbd, 0x87, 0xbb, + 0x4d, 0x37, 0xd1, 0xfa, 0xe5, 0xf6, 0xa3, 0x1f, 0x3e, 0xda, 0x06, 0x37, 0xc8, 0x1d, 0x4b, 0x4e, + 0x60, 0xb0, 0x29, 0x23, 0x3a, 0x6a, 0xcd, 0xd6, 0x74, 0x71, 0x18, 0x6e, 0x2f, 0x68, 0xb7, 0x78, + 0x7e, 0xf2, 0xee, 0xba, 0x5c, 0x90, 0xe9, 0x28, 0x93, 0xf3, 0x71, 0x75, 0x3c, 0x96, 0x8a, 0x8d, + 0x2b, 0x92, 0x63, 0xfb, 0xee, 0xc7, 0x4c, 0xd6, 0x71, 0x39, 0x9d, 0x7a, 0x36, 0x75, 0xfa, 0x3b, + 0x00, 0x00, 0xff, 0xff, 0x39, 0xfb, 0x3b, 0x88, 0x48, 0x05, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/storage.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/storage.pb.go index ff115a64b..3e58fb842 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/storage.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/storage.pb.go @@ -35,7 +35,7 @@ func (m *ListDirectoriesRequest) Reset() { *m = ListDirectoriesRequest{} func (m *ListDirectoriesRequest) String() string { return proto.CompactTextString(m) } func (*ListDirectoriesRequest) ProtoMessage() {} func (*ListDirectoriesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_storage_7d59321d1c916edc, []int{0} + return fileDescriptor_storage_71656ad921f7d066, []int{0} } func (m *ListDirectoriesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListDirectoriesRequest.Unmarshal(m, b) @@ -80,7 +80,7 @@ func (m *ListDirectoriesResponse) Reset() { *m = ListDirectoriesResponse func (m *ListDirectoriesResponse) String() string { return proto.CompactTextString(m) } func (*ListDirectoriesResponse) ProtoMessage() {} func (*ListDirectoriesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_storage_7d59321d1c916edc, []int{1} + return fileDescriptor_storage_71656ad921f7d066, []int{1} } func (m *ListDirectoriesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ListDirectoriesResponse.Unmarshal(m, b) @@ -118,7 +118,7 @@ func (m *DeleteAllRepositoriesRequest) Reset() { *m = DeleteAllRepositor func (m *DeleteAllRepositoriesRequest) String() string { return proto.CompactTextString(m) } func (*DeleteAllRepositoriesRequest) ProtoMessage() {} func (*DeleteAllRepositoriesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_storage_7d59321d1c916edc, []int{2} + return fileDescriptor_storage_71656ad921f7d066, []int{2} } func (m *DeleteAllRepositoriesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteAllRepositoriesRequest.Unmarshal(m, b) @@ -155,7 +155,7 @@ func (m *DeleteAllRepositoriesResponse) Reset() { *m = DeleteAllReposito func (m *DeleteAllRepositoriesResponse) String() string { return proto.CompactTextString(m) } func (*DeleteAllRepositoriesResponse) ProtoMessage() {} func (*DeleteAllRepositoriesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_storage_7d59321d1c916edc, []int{3} + return fileDescriptor_storage_71656ad921f7d066, []int{3} } func (m *DeleteAllRepositoriesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteAllRepositoriesResponse.Unmarshal(m, b) @@ -315,27 +315,26 @@ var _StorageService_serviceDesc = grpc.ServiceDesc{ Metadata: "storage.proto", } -func init() { proto.RegisterFile("storage.proto", fileDescriptor_storage_7d59321d1c916edc) } - -var fileDescriptor_storage_7d59321d1c916edc = []byte{ - // 289 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2d, 0x2e, 0xc9, 0x2f, - 0x4a, 0x4c, 0x4f, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x62, 0x4b, 0xcf, 0x2c, 0x49, 0xcc, - 0xa9, 0x94, 0xe2, 0x29, 0xce, 0x48, 0x2c, 0x4a, 0x4d, 0x81, 0x88, 0x2a, 0x45, 0x72, 0x89, 0xf9, - 0x64, 0x16, 0x97, 0xb8, 0x64, 0x16, 0xa5, 0x26, 0x97, 0xe4, 0x17, 0x65, 0xa6, 0x16, 0x07, 0xa5, - 0x16, 0x96, 0xa6, 0x16, 0x97, 0x08, 0x29, 0x72, 0xf1, 0x40, 0x0d, 0x88, 0xcf, 0x4b, 0xcc, 0x4d, - 0x95, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x0c, 0xe2, 0x86, 0x8a, 0xf9, 0x25, 0xe6, 0xa6, 0x0a, 0x89, - 0x70, 0xb1, 0xa6, 0xa4, 0x16, 0x94, 0x64, 0x48, 0x30, 0x29, 0x30, 0x6a, 0xf0, 0x06, 0x41, 0x38, - 0x56, 0x6c, 0x9f, 0xa6, 0x6b, 0x30, 0x71, 0x30, 0x2a, 0xe9, 0x73, 0x89, 0x63, 0x18, 0x5d, 0x5c, - 0x90, 0x9f, 0x57, 0x0c, 0xd6, 0x58, 0x90, 0x58, 0x92, 0x51, 0x2c, 0xc1, 0xa8, 0xc0, 0xac, 0xc1, - 0x19, 0x04, 0xe1, 0x28, 0x79, 0x72, 0xc9, 0xb8, 0xa4, 0xe6, 0xa4, 0x96, 0xa4, 0x3a, 0xe6, 0xe4, - 0x04, 0xa5, 0x16, 0xe4, 0x17, 0x67, 0x92, 0xea, 0x22, 0xb8, 0xdd, 0xf2, 0x5c, 0xb2, 0x38, 0x8c, - 0x82, 0xb8, 0xc0, 0xe8, 0x02, 0x23, 0x17, 0x5f, 0x30, 0x44, 0x63, 0x70, 0x6a, 0x51, 0x59, 0x66, - 0x72, 0xaa, 0x50, 0x18, 0x17, 0x3f, 0x9a, 0x7b, 0x85, 0xe4, 0xf4, 0x20, 0x81, 0xa6, 0x87, 0x3d, - 0x8c, 0xa4, 0xe4, 0x71, 0xca, 0x43, 0xac, 0x51, 0x62, 0x30, 0x60, 0x14, 0x4a, 0xe3, 0x12, 0xc5, - 0xea, 0x16, 0x21, 0x15, 0x98, 0x6e, 0x7c, 0xbe, 0x96, 0x52, 0x25, 0xa0, 0x0a, 0x66, 0x93, 0x93, - 0x41, 0x14, 0x48, 0x65, 0x4e, 0x62, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x3e, 0x84, 0xa9, 0x9b, 0x5f, - 0x94, 0xae, 0x0f, 0xd1, 0xaf, 0x0b, 0x8e, 0x70, 0xfd, 0xf4, 0x7c, 0x28, 0xbf, 0x20, 0x29, 0x89, - 0x0d, 0x2c, 0x64, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x41, 0xb1, 0x4d, 0x55, 0x2a, 0x02, 0x00, - 0x00, +func init() { proto.RegisterFile("storage.proto", fileDescriptor_storage_71656ad921f7d066) } + +var fileDescriptor_storage_71656ad921f7d066 = []byte{ + // 285 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x91, 0x5f, 0x4b, 0xf3, 0x30, + 0x14, 0xc6, 0xc9, 0x5e, 0xde, 0xe2, 0x8e, 0x9b, 0x42, 0xf0, 0x4f, 0x29, 0xea, 0x6a, 0x51, 0xe8, + 0xcd, 0xda, 0xa1, 0x9f, 0x60, 0xb2, 0x4b, 0x11, 0xcc, 0xee, 0x44, 0x90, 0xb4, 0x3b, 0xb4, 0x81, + 0x74, 0x89, 0x49, 0x14, 0xfc, 0x24, 0x7e, 0x39, 0x3f, 0x89, 0x57, 0x62, 0x53, 0x2f, 0xd4, 0x4d, + 0xf1, 0x2e, 0xe7, 0xc9, 0x39, 0xbf, 0xe7, 0xc9, 0x09, 0x0c, 0xad, 0x53, 0x86, 0x57, 0x98, 0x69, + 0xa3, 0x9c, 0xa2, 0x41, 0x25, 0x1c, 0x97, 0x4f, 0xd1, 0xc0, 0xd6, 0xdc, 0xe0, 0xc2, 0xab, 0xc9, + 0x35, 0xec, 0x5d, 0x0a, 0xeb, 0x66, 0xc2, 0x60, 0xe9, 0x94, 0x11, 0x68, 0x19, 0xde, 0x3f, 0xa0, + 0x75, 0xf4, 0x18, 0x06, 0x1d, 0xe0, 0x6e, 0xc9, 0x1b, 0x0c, 0x49, 0x4c, 0xd2, 0x3e, 0xdb, 0xec, + 0xb4, 0x2b, 0xde, 0x20, 0xdd, 0x81, 0xff, 0x0b, 0xd4, 0xae, 0x0e, 0x7b, 0x31, 0x49, 0x87, 0xcc, + 0x17, 0x49, 0x0e, 0xfb, 0xdf, 0x90, 0x56, 0xab, 0xa5, 0x6d, 0x07, 0x34, 0x77, 0xb5, 0x0d, 0x49, + 0xfc, 0x2f, 0xed, 0x33, 0x5f, 0x24, 0x53, 0x38, 0x98, 0xa1, 0x44, 0x87, 0x53, 0x29, 0x19, 0x6a, + 0x65, 0xc5, 0x5f, 0x93, 0x24, 0x23, 0x38, 0x5c, 0x83, 0xf0, 0xce, 0x67, 0x2f, 0x04, 0xb6, 0xe6, + 0x7e, 0x60, 0x8e, 0xe6, 0x51, 0x94, 0x48, 0x6f, 0x61, 0xfb, 0x4b, 0x4e, 0x7a, 0x94, 0xf9, 0x25, + 0x65, 0xab, 0x77, 0x12, 0x8d, 0xd6, 0xde, 0x7b, 0x9b, 0x24, 0x78, 0x7d, 0x4e, 0x7b, 0x1b, 0x64, + 0x42, 0xa8, 0x84, 0xdd, 0x95, 0x89, 0xe8, 0xc9, 0x07, 0xe3, 0xa7, 0x37, 0x47, 0xa7, 0xbf, 0x74, + 0x7d, 0xf6, 0xbb, 0x98, 0xdc, 0xbc, 0xf7, 0x4b, 0x5e, 0x64, 0xa5, 0x6a, 0x72, 0x7f, 0x1c, 0x2b, + 0x53, 0xe5, 0x9e, 0x32, 0x6e, 0x3f, 0x3b, 0xaf, 0x54, 0x57, 0xeb, 0xa2, 0x08, 0x5a, 0xe9, 0xfc, + 0x2d, 0x00, 0x00, 0xff, 0xff, 0xb7, 0xc3, 0x8d, 0x13, 0x26, 0x02, 0x00, 0x00, } diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/wiki.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/wiki.pb.go index 521fbb66e..56571536a 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/wiki.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/gitalypb/wiki.pb.go @@ -43,7 +43,7 @@ func (x WikiGetAllPagesRequest_SortBy) String() string { return proto.EnumName(WikiGetAllPagesRequest_SortBy_name, int32(x)) } func (WikiGetAllPagesRequest_SortBy) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{15, 0} + return fileDescriptor_wiki_b7336222204a13c2, []int{15, 0} } type WikiListPagesRequest_SortBy int32 @@ -66,7 +66,7 @@ func (x WikiListPagesRequest_SortBy) String() string { return proto.EnumName(WikiListPagesRequest_SortBy_name, int32(x)) } func (WikiListPagesRequest_SortBy) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{19, 0} + return fileDescriptor_wiki_b7336222204a13c2, []int{19, 0} } type WikiCommitDetails struct { @@ -84,7 +84,7 @@ func (m *WikiCommitDetails) Reset() { *m = WikiCommitDetails{} } func (m *WikiCommitDetails) String() string { return proto.CompactTextString(m) } func (*WikiCommitDetails) ProtoMessage() {} func (*WikiCommitDetails) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{0} + return fileDescriptor_wiki_b7336222204a13c2, []int{0} } func (m *WikiCommitDetails) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiCommitDetails.Unmarshal(m, b) @@ -151,7 +151,7 @@ func (m *WikiPageVersion) Reset() { *m = WikiPageVersion{} } func (m *WikiPageVersion) String() string { return proto.CompactTextString(m) } func (*WikiPageVersion) ProtoMessage() {} func (*WikiPageVersion) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{1} + return fileDescriptor_wiki_b7336222204a13c2, []int{1} } func (m *WikiPageVersion) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiPageVersion.Unmarshal(m, b) @@ -205,7 +205,7 @@ func (m *WikiPage) Reset() { *m = WikiPage{} } func (m *WikiPage) String() string { return proto.CompactTextString(m) } func (*WikiPage) ProtoMessage() {} func (*WikiPage) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{2} + return fileDescriptor_wiki_b7336222204a13c2, []int{2} } func (m *WikiPage) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiPage.Unmarshal(m, b) @@ -295,7 +295,7 @@ func (m *WikiGetPageVersionsRequest) Reset() { *m = WikiGetPageVersionsR func (m *WikiGetPageVersionsRequest) String() string { return proto.CompactTextString(m) } func (*WikiGetPageVersionsRequest) ProtoMessage() {} func (*WikiGetPageVersionsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{3} + return fileDescriptor_wiki_b7336222204a13c2, []int{3} } func (m *WikiGetPageVersionsRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiGetPageVersionsRequest.Unmarshal(m, b) @@ -354,7 +354,7 @@ func (m *WikiGetPageVersionsResponse) Reset() { *m = WikiGetPageVersions func (m *WikiGetPageVersionsResponse) String() string { return proto.CompactTextString(m) } func (*WikiGetPageVersionsResponse) ProtoMessage() {} func (*WikiGetPageVersionsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{4} + return fileDescriptor_wiki_b7336222204a13c2, []int{4} } func (m *WikiGetPageVersionsResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiGetPageVersionsResponse.Unmarshal(m, b) @@ -399,7 +399,7 @@ func (m *WikiWritePageRequest) Reset() { *m = WikiWritePageRequest{} } func (m *WikiWritePageRequest) String() string { return proto.CompactTextString(m) } func (*WikiWritePageRequest) ProtoMessage() {} func (*WikiWritePageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{5} + return fileDescriptor_wiki_b7336222204a13c2, []int{5} } func (m *WikiWritePageRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiWritePageRequest.Unmarshal(m, b) @@ -465,7 +465,7 @@ func (m *WikiWritePageResponse) Reset() { *m = WikiWritePageResponse{} } func (m *WikiWritePageResponse) String() string { return proto.CompactTextString(m) } func (*WikiWritePageResponse) ProtoMessage() {} func (*WikiWritePageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{6} + return fileDescriptor_wiki_b7336222204a13c2, []int{6} } func (m *WikiWritePageResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiWritePageResponse.Unmarshal(m, b) @@ -510,7 +510,7 @@ func (m *WikiUpdatePageRequest) Reset() { *m = WikiUpdatePageRequest{} } func (m *WikiUpdatePageRequest) String() string { return proto.CompactTextString(m) } func (*WikiUpdatePageRequest) ProtoMessage() {} func (*WikiUpdatePageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{7} + return fileDescriptor_wiki_b7336222204a13c2, []int{7} } func (m *WikiUpdatePageRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiUpdatePageRequest.Unmarshal(m, b) @@ -583,7 +583,7 @@ func (m *WikiUpdatePageResponse) Reset() { *m = WikiUpdatePageResponse{} func (m *WikiUpdatePageResponse) String() string { return proto.CompactTextString(m) } func (*WikiUpdatePageResponse) ProtoMessage() {} func (*WikiUpdatePageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{8} + return fileDescriptor_wiki_b7336222204a13c2, []int{8} } func (m *WikiUpdatePageResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiUpdatePageResponse.Unmarshal(m, b) @@ -623,7 +623,7 @@ func (m *WikiDeletePageRequest) Reset() { *m = WikiDeletePageRequest{} } func (m *WikiDeletePageRequest) String() string { return proto.CompactTextString(m) } func (*WikiDeletePageRequest) ProtoMessage() {} func (*WikiDeletePageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{9} + return fileDescriptor_wiki_b7336222204a13c2, []int{9} } func (m *WikiDeletePageRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiDeletePageRequest.Unmarshal(m, b) @@ -674,7 +674,7 @@ func (m *WikiDeletePageResponse) Reset() { *m = WikiDeletePageResponse{} func (m *WikiDeletePageResponse) String() string { return proto.CompactTextString(m) } func (*WikiDeletePageResponse) ProtoMessage() {} func (*WikiDeletePageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{10} + return fileDescriptor_wiki_b7336222204a13c2, []int{10} } func (m *WikiDeletePageResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiDeletePageResponse.Unmarshal(m, b) @@ -708,7 +708,7 @@ func (m *WikiFindPageRequest) Reset() { *m = WikiFindPageRequest{} } func (m *WikiFindPageRequest) String() string { return proto.CompactTextString(m) } func (*WikiFindPageRequest) ProtoMessage() {} func (*WikiFindPageRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{11} + return fileDescriptor_wiki_b7336222204a13c2, []int{11} } func (m *WikiFindPageRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiFindPageRequest.Unmarshal(m, b) @@ -769,7 +769,7 @@ func (m *WikiFindPageResponse) Reset() { *m = WikiFindPageResponse{} } func (m *WikiFindPageResponse) String() string { return proto.CompactTextString(m) } func (*WikiFindPageResponse) ProtoMessage() {} func (*WikiFindPageResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{12} + return fileDescriptor_wiki_b7336222204a13c2, []int{12} } func (m *WikiFindPageResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiFindPageResponse.Unmarshal(m, b) @@ -810,7 +810,7 @@ func (m *WikiFindFileRequest) Reset() { *m = WikiFindFileRequest{} } func (m *WikiFindFileRequest) String() string { return proto.CompactTextString(m) } func (*WikiFindFileRequest) ProtoMessage() {} func (*WikiFindFileRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{13} + return fileDescriptor_wiki_b7336222204a13c2, []int{13} } func (m *WikiFindFileRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiFindFileRequest.Unmarshal(m, b) @@ -866,7 +866,7 @@ func (m *WikiFindFileResponse) Reset() { *m = WikiFindFileResponse{} } func (m *WikiFindFileResponse) String() string { return proto.CompactTextString(m) } func (*WikiFindFileResponse) ProtoMessage() {} func (*WikiFindFileResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{14} + return fileDescriptor_wiki_b7336222204a13c2, []int{14} } func (m *WikiFindFileResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiFindFileResponse.Unmarshal(m, b) @@ -929,7 +929,7 @@ func (m *WikiGetAllPagesRequest) Reset() { *m = WikiGetAllPagesRequest{} func (m *WikiGetAllPagesRequest) String() string { return proto.CompactTextString(m) } func (*WikiGetAllPagesRequest) ProtoMessage() {} func (*WikiGetAllPagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{15} + return fileDescriptor_wiki_b7336222204a13c2, []int{15} } func (m *WikiGetAllPagesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiGetAllPagesRequest.Unmarshal(m, b) @@ -991,7 +991,7 @@ func (m *WikiGetAllPagesResponse) Reset() { *m = WikiGetAllPagesResponse func (m *WikiGetAllPagesResponse) String() string { return proto.CompactTextString(m) } func (*WikiGetAllPagesResponse) ProtoMessage() {} func (*WikiGetAllPagesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{16} + return fileDescriptor_wiki_b7336222204a13c2, []int{16} } func (m *WikiGetAllPagesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiGetAllPagesResponse.Unmarshal(m, b) @@ -1039,7 +1039,7 @@ func (m *WikiGetFormattedDataRequest) Reset() { *m = WikiGetFormattedDat func (m *WikiGetFormattedDataRequest) String() string { return proto.CompactTextString(m) } func (*WikiGetFormattedDataRequest) ProtoMessage() {} func (*WikiGetFormattedDataRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{17} + return fileDescriptor_wiki_b7336222204a13c2, []int{17} } func (m *WikiGetFormattedDataRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiGetFormattedDataRequest.Unmarshal(m, b) @@ -1098,7 +1098,7 @@ func (m *WikiGetFormattedDataResponse) Reset() { *m = WikiGetFormattedDa func (m *WikiGetFormattedDataResponse) String() string { return proto.CompactTextString(m) } func (*WikiGetFormattedDataResponse) ProtoMessage() {} func (*WikiGetFormattedDataResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{18} + return fileDescriptor_wiki_b7336222204a13c2, []int{18} } func (m *WikiGetFormattedDataResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiGetFormattedDataResponse.Unmarshal(m, b) @@ -1141,7 +1141,7 @@ func (m *WikiListPagesRequest) Reset() { *m = WikiListPagesRequest{} } func (m *WikiListPagesRequest) String() string { return proto.CompactTextString(m) } func (*WikiListPagesRequest) ProtoMessage() {} func (*WikiListPagesRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{19} + return fileDescriptor_wiki_b7336222204a13c2, []int{19} } func (m *WikiListPagesRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiListPagesRequest.Unmarshal(m, b) @@ -1208,7 +1208,7 @@ func (m *WikiListPagesResponse) Reset() { *m = WikiListPagesResponse{} } func (m *WikiListPagesResponse) String() string { return proto.CompactTextString(m) } func (*WikiListPagesResponse) ProtoMessage() {} func (*WikiListPagesResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_wiki_f7e7c472b29d6a0c, []int{20} + return fileDescriptor_wiki_b7336222204a13c2, []int{20} } func (m *WikiListPagesResponse) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WikiListPagesResponse.Unmarshal(m, b) @@ -1830,79 +1830,78 @@ var _WikiService_serviceDesc = grpc.ServiceDesc{ Metadata: "wiki.proto", } -func init() { proto.RegisterFile("wiki.proto", fileDescriptor_wiki_f7e7c472b29d6a0c) } - -var fileDescriptor_wiki_f7e7c472b29d6a0c = []byte{ - // 1126 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcd, 0x6f, 0xdc, 0x44, - 0x14, 0x8f, 0x37, 0xfb, 0xe1, 0x7d, 0x49, 0xb6, 0xe9, 0x50, 0x1a, 0x77, 0x13, 0x42, 0xe4, 0xb4, - 0x22, 0x1c, 0xba, 0x29, 0xdb, 0x03, 0x02, 0x81, 0xd4, 0xb4, 0xf9, 0x50, 0xa5, 0x02, 0xc1, 0x59, - 0x5a, 0x89, 0x8b, 0x35, 0xb1, 0x27, 0x9b, 0x51, 0xed, 0xb5, 0x19, 0x4f, 0x12, 0xe5, 0xc8, 0x81, - 0x23, 0x67, 0x24, 0x6e, 0x48, 0x5c, 0xb8, 0xf2, 0xe7, 0xf0, 0x1f, 0x70, 0x84, 0x23, 0x27, 0x34, - 0x1f, 0x6b, 0x8f, 0xbd, 0x9b, 0x45, 0x21, 0x20, 0xb8, 0xf9, 0xbd, 0x99, 0x79, 0xf3, 0x7e, 0xbf, - 0xf7, 0x35, 0x06, 0xb8, 0xa0, 0xaf, 0x69, 0x2f, 0x65, 0x09, 0x4f, 0x50, 0x73, 0x48, 0x39, 0x8e, - 0x2e, 0xbb, 0x8b, 0xd9, 0x29, 0x66, 0x24, 0x54, 0x5a, 0xf7, 0x5b, 0x0b, 0x6e, 0xbf, 0xa2, 0xaf, - 0xe9, 0xb3, 0x24, 0x8e, 0x29, 0xdf, 0x25, 0x1c, 0xd3, 0x28, 0x43, 0x08, 0xea, 0x23, 0x1c, 0x13, - 0xc7, 0xda, 0xb0, 0xb6, 0x16, 0x3d, 0xf9, 0x8d, 0xee, 0x40, 0x83, 0xc4, 0x98, 0x46, 0x4e, 0x4d, - 0x2a, 0x95, 0x80, 0x1c, 0x68, 0xc5, 0x24, 0xcb, 0xf0, 0x90, 0x38, 0xf3, 0x52, 0x3f, 0x16, 0xd1, - 0x0a, 0xb4, 0xce, 0x32, 0xc2, 0x7c, 0x1a, 0x3a, 0xf5, 0x0d, 0x6b, 0xab, 0xe1, 0x35, 0x85, 0xf8, - 0x3c, 0x44, 0xab, 0xd0, 0x96, 0x0b, 0xf2, 0x86, 0x86, 0x3c, 0x64, 0x0b, 0xc5, 0xa7, 0x38, 0x26, - 0xee, 0x00, 0x6e, 0x09, 0x77, 0x0e, 0xf1, 0x90, 0xbc, 0x24, 0x2c, 0xa3, 0xc9, 0x08, 0xbd, 0x0b, - 0xcd, 0x40, 0x7a, 0x27, 0xdd, 0x59, 0xe8, 0xdf, 0xee, 0x29, 0x24, 0xbd, 0x03, 0xca, 0x95, 0xdb, - 0x9e, 0xde, 0x80, 0xee, 0x42, 0xf3, 0x24, 0x61, 0x31, 0xe6, 0xd2, 0xc9, 0xb6, 0xa7, 0x25, 0xf7, - 0x57, 0x0b, 0xec, 0xb1, 0x59, 0xf4, 0x1e, 0xb4, 0xce, 0x95, 0x69, 0x6d, 0x70, 0x65, 0x6c, 0xb0, - 0x72, 0xb3, 0x37, 0xde, 0x77, 0x95, 0x5d, 0xc1, 0x09, 0xa7, 0x3c, 0x1a, 0x63, 0x57, 0x02, 0xba, - 0x07, 0xf6, 0x19, 0x8b, 0xfc, 0x14, 0xf3, 0x53, 0x09, 0xbd, 0xed, 0xb5, 0xce, 0x58, 0x74, 0x88, - 0xf9, 0xa9, 0x20, 0x56, 0xaa, 0x15, 0x6c, 0xf9, 0x9d, 0x93, 0xdd, 0x34, 0xc8, 0x5e, 0x07, 0x38, - 0xa5, 0x19, 0x4f, 0x18, 0x0d, 0x70, 0xe4, 0xb4, 0x36, 0xac, 0x2d, 0xdb, 0x33, 0x34, 0xe2, 0x0a, - 0x86, 0x2f, 0xfc, 0x10, 0x73, 0xec, 0xd8, 0x8a, 0x77, 0x86, 0x2f, 0x76, 0x31, 0xc7, 0xee, 0x8f, - 0x16, 0x74, 0x05, 0x90, 0x03, 0xc2, 0x0d, 0x2c, 0x99, 0x47, 0xbe, 0x3a, 0x23, 0x19, 0x47, 0x7d, - 0x00, 0x46, 0xd2, 0x24, 0xa3, 0x3c, 0x61, 0x97, 0x9a, 0x00, 0x34, 0x26, 0xc0, 0xcb, 0x57, 0x3c, - 0x63, 0x97, 0x88, 0x58, 0x8a, 0x87, 0x44, 0x21, 0x52, 0xe1, 0xb7, 0x85, 0xa2, 0x80, 0xa4, 0xc3, - 0xdf, 0xf0, 0xe4, 0xb7, 0x70, 0x2f, 0x25, 0xcc, 0x97, 0x7a, 0x15, 0xfc, 0x56, 0x4a, 0x98, 0x70, - 0xe7, 0xc3, 0xe6, 0xef, 0xdf, 0x6d, 0xd5, 0xec, 0x9a, 0xeb, 0xc1, 0xea, 0x54, 0x2f, 0xb3, 0x34, - 0x19, 0x65, 0x04, 0x3d, 0x06, 0x5b, 0x93, 0x9f, 0x39, 0xd6, 0xc6, 0xfc, 0xac, 0x28, 0xe5, 0x1b, - 0xdd, 0x5f, 0x2c, 0xb8, 0x23, 0x56, 0x5f, 0x31, 0xca, 0x89, 0xd8, 0x72, 0x13, 0xd0, 0xe3, 0xb0, - 0xd4, 0x8c, 0xb0, 0x14, 0x79, 0x30, 0x5f, 0xca, 0x83, 0x27, 0xd0, 0x51, 0x19, 0xe8, 0x87, 0xaa, - 0x82, 0x24, 0xea, 0x85, 0xfe, 0x3d, 0xd3, 0xe7, 0x52, 0x89, 0x79, 0x4b, 0x41, 0xa9, 0xe2, 0x1c, - 0x68, 0x05, 0xc9, 0x88, 0x93, 0x11, 0xd7, 0xb9, 0x31, 0x16, 0x35, 0x61, 0x96, 0xfb, 0x04, 0xde, - 0xac, 0x60, 0xd3, 0x54, 0xbd, 0x03, 0xb7, 0xc2, 0xb3, 0x34, 0xa2, 0x01, 0xe6, 0xc4, 0x27, 0x8c, - 0x25, 0x4c, 0xd7, 0x6d, 0x27, 0x57, 0xef, 0x09, 0xad, 0xfb, 0x87, 0xa5, 0x4c, 0x7c, 0x91, 0x86, - 0xf8, 0xe6, 0xfc, 0xcc, 0x4c, 0x8a, 0xe9, 0x85, 0x51, 0xd0, 0x57, 0xff, 0x0b, 0xfa, 0x1a, 0x7f, - 0x9f, 0xbe, 0xe6, 0x74, 0xfa, 0x7a, 0x70, 0xb7, 0x8a, 0x5d, 0xf3, 0x27, 0x1a, 0x9b, 0xc1, 0x9a, - 0x12, 0xdc, 0x9f, 0x35, 0x59, 0xbb, 0x24, 0x22, 0xff, 0x32, 0x59, 0x93, 0xf0, 0xe7, 0xaf, 0x07, - 0x3f, 0x07, 0xe9, 0x28, 0x90, 0xa6, 0xcf, 0x0a, 0xa4, 0xfb, 0x83, 0x05, 0x6f, 0x88, 0xa5, 0x7d, - 0x3a, 0x0a, 0x6f, 0x0a, 0x26, 0x0f, 0x6e, 0xcd, 0x0c, 0x6e, 0x17, 0x6c, 0x46, 0xce, 0xa9, 0xec, - 0xab, 0x2a, 0xea, 0xb9, 0x8c, 0xd6, 0xa0, 0x1d, 0x52, 0x46, 0x02, 0x79, 0x49, 0x5d, 0x2e, 0x16, - 0x8a, 0xbc, 0x25, 0x7c, 0xa4, 0xaa, 0xb7, 0x70, 0x51, 0x07, 0xe8, 0xbe, 0xee, 0x30, 0xca, 0xbb, - 0xe5, 0x6a, 0x1f, 0x50, 0x3d, 0xc7, 0xfd, 0xda, 0x40, 0xb8, 0x4f, 0xa3, 0x7f, 0xbc, 0xf6, 0x67, - 0xe0, 0xcb, 0x11, 0x9c, 0x17, 0x08, 0x94, 0x0b, 0x1a, 0xc1, 0xb4, 0x79, 0xba, 0x0a, 0xed, 0x98, - 0xc6, 0xc4, 0xe7, 0x97, 0x29, 0xd1, 0x63, 0xc5, 0x16, 0x8a, 0xc1, 0x65, 0x4a, 0x4a, 0xfd, 0x7d, - 0xbe, 0xd4, 0xdf, 0xf3, 0x11, 0x52, 0x2f, 0x46, 0x88, 0xfb, 0x9b, 0xa5, 0x02, 0x7f, 0x40, 0xf8, - 0x4e, 0x14, 0x09, 0x52, 0xb2, 0x1b, 0x06, 0x38, 0xa2, 0x62, 0xe0, 0x0a, 0xb7, 0x96, 0x3c, 0x25, - 0xa0, 0x07, 0xd0, 0x51, 0x31, 0xa3, 0xc9, 0xc8, 0x0f, 0x49, 0x16, 0x48, 0xcf, 0x6c, 0x6f, 0x29, - 0xd7, 0xee, 0x92, 0x2c, 0x40, 0x1f, 0x40, 0x3d, 0x4b, 0x98, 0x2a, 0xf1, 0x4e, 0xff, 0x81, 0x19, - 0xad, 0x49, 0xf7, 0x7a, 0x47, 0x09, 0xe3, 0x4f, 0x2f, 0x3d, 0x79, 0xc4, 0xdd, 0x84, 0xa6, 0x92, - 0x51, 0x1b, 0x1a, 0x83, 0xe7, 0x83, 0x17, 0x7b, 0xcb, 0x73, 0xa8, 0x03, 0xf0, 0xcc, 0xdb, 0xdb, - 0x19, 0xec, 0xed, 0xfa, 0x3b, 0x83, 0x65, 0x2b, 0xe7, 0xda, 0x87, 0x95, 0x09, 0x9b, 0xd7, 0x49, - 0x18, 0xb4, 0x0e, 0x0b, 0x64, 0x14, 0xfa, 0xc9, 0x89, 0x9a, 0x53, 0x35, 0x09, 0xa6, 0x4d, 0x46, - 0xe1, 0x67, 0x27, 0x62, 0x97, 0xfb, 0x93, 0x95, 0x8f, 0xa8, 0x7d, 0xd9, 0xa7, 0x38, 0x09, 0x45, - 0x04, 0xfe, 0x8f, 0xa5, 0xd3, 0x87, 0xb5, 0xe9, 0xae, 0x16, 0x09, 0x28, 0x73, 0x49, 0x27, 0xa0, - 0xf8, 0x76, 0xbf, 0xa9, 0xa9, 0x6c, 0x7d, 0x41, 0x33, 0xfe, 0xdf, 0xa6, 0xcc, 0xfb, 0xa5, 0x94, - 0xd9, 0x34, 0xe3, 0x55, 0x75, 0xae, 0x94, 0x30, 0x62, 0xa0, 0x24, 0x27, 0x27, 0x19, 0x51, 0x43, - 0x73, 0xc9, 0xd3, 0xd2, 0xf5, 0x12, 0xe9, 0x63, 0xd5, 0xe8, 0x8d, 0x9b, 0xae, 0x93, 0x46, 0xfd, - 0xef, 0x9b, 0xb0, 0x20, 0x54, 0x47, 0x84, 0x9d, 0xd3, 0x80, 0xa0, 0x63, 0xd5, 0x86, 0x2a, 0x0f, - 0x1b, 0xe4, 0x56, 0x0a, 0x61, 0xca, 0xdb, 0xac, 0xbb, 0x39, 0x73, 0x8f, 0xee, 0xe4, 0x73, 0x8f, - 0x2c, 0x74, 0x08, 0x4b, 0xa5, 0xb7, 0x00, 0x5a, 0x33, 0x4f, 0x56, 0x9f, 0x3f, 0xdd, 0xb7, 0xae, - 0x58, 0x1d, 0x5b, 0xdc, 0xb2, 0xd0, 0x11, 0x74, 0xca, 0xe3, 0x11, 0x95, 0x0e, 0x4d, 0x3c, 0x19, - 0xba, 0xeb, 0x57, 0x2d, 0x1b, 0x46, 0x3f, 0x57, 0x46, 0x8b, 0x71, 0x54, 0x36, 0x3a, 0x31, 0x5a, - 0xcb, 0x46, 0xa7, 0x4c, 0xb1, 0x39, 0xf4, 0x09, 0x2c, 0x9a, 0x33, 0x02, 0xad, 0x9a, 0x27, 0x2a, - 0xc3, 0xad, 0xbb, 0x36, 0x7d, 0xd1, 0x20, 0xd2, 0x30, 0x27, 0x1a, 0xf6, 0xa4, 0x39, 0x63, 0x92, - 0x4c, 0x9a, 0x33, 0x7b, 0xbc, 0x34, 0xf7, 0x52, 0xfd, 0xbd, 0x18, 0x3d, 0x09, 0xad, 0xcf, 0x6e, - 0x80, 0xdd, 0xb7, 0xaf, 0x5c, 0x9f, 0x8c, 0x77, 0x9e, 0xa2, 0xe5, 0x78, 0x57, 0x6b, 0xa4, 0x1c, - 0xef, 0x89, 0xbc, 0x96, 0x16, 0x89, 0xaa, 0xfd, 0x6a, 0xc3, 0x40, 0xd5, 0x14, 0x9c, 0xd6, 0xf9, - 0xba, 0xf7, 0x67, 0x6f, 0x2a, 0xae, 0x79, 0xfa, 0xe8, 0x4b, 0xb1, 0x35, 0xc2, 0xc7, 0xbd, 0x20, - 0x89, 0xb7, 0xd5, 0xe7, 0xc3, 0x84, 0x0d, 0xb7, 0x95, 0x81, 0x87, 0xf2, 0x27, 0x74, 0x7b, 0x98, - 0x68, 0x39, 0x3d, 0x3e, 0x6e, 0x4a, 0xd5, 0xe3, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x75, 0x97, - 0x95, 0xa6, 0xbb, 0x0e, 0x00, 0x00, +func init() { proto.RegisterFile("wiki.proto", fileDescriptor_wiki_b7336222204a13c2) } + +var fileDescriptor_wiki_b7336222204a13c2 = []byte{ + // 1117 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x5d, 0x6f, 0xdc, 0x44, + 0x17, 0x7e, 0xbd, 0xd9, 0x0f, 0xef, 0x49, 0xb2, 0x4d, 0xe7, 0x2d, 0xc9, 0x76, 0x13, 0x42, 0xe4, + 0xb4, 0x22, 0x5c, 0x74, 0x53, 0xb6, 0x17, 0x08, 0x09, 0xa4, 0xa6, 0x4d, 0x52, 0x55, 0xaa, 0xa0, + 0x72, 0x96, 0x46, 0x20, 0x24, 0x6b, 0x62, 0x4f, 0x36, 0xa3, 0xd8, 0x6b, 0x33, 0x9e, 0x24, 0xda, + 0x1f, 0xc1, 0x35, 0x42, 0xe2, 0x86, 0x5b, 0x7e, 0x0d, 0xe2, 0x5f, 0x70, 0xcb, 0x25, 0x12, 0x12, + 0x9a, 0x8f, 0xb5, 0xc7, 0xf6, 0x66, 0x21, 0x04, 0x04, 0x77, 0x73, 0xce, 0xcc, 0x9c, 0x39, 0xe7, + 0x39, 0x1f, 0x8f, 0x0d, 0x70, 0x45, 0xcf, 0x69, 0x3f, 0x61, 0x31, 0x8f, 0x51, 0x73, 0x44, 0x39, + 0x0e, 0x27, 0xbd, 0xa5, 0xf4, 0x0c, 0x33, 0x12, 0x28, 0xad, 0xf3, 0xb5, 0x05, 0x77, 0x8f, 0xe9, + 0x39, 0x7d, 0x1e, 0x47, 0x11, 0xe5, 0xfb, 0x84, 0x63, 0x1a, 0xa6, 0x08, 0x41, 0x7d, 0x8c, 0x23, + 0xd2, 0xb5, 0xb6, 0xac, 0x9d, 0x25, 0x57, 0xae, 0xd1, 0x3d, 0x68, 0x90, 0x08, 0xd3, 0xb0, 0x5b, + 0x93, 0x4a, 0x25, 0xa0, 0x2e, 0xb4, 0x22, 0x92, 0xa6, 0x78, 0x44, 0xba, 0x0b, 0x52, 0x3f, 0x15, + 0xd1, 0x1a, 0xb4, 0x2e, 0x52, 0xc2, 0x3c, 0x1a, 0x74, 0xeb, 0x5b, 0xd6, 0x4e, 0xc3, 0x6d, 0x0a, + 0xf1, 0x65, 0x80, 0xd6, 0xa1, 0x2d, 0x37, 0xe4, 0x0b, 0x0d, 0x79, 0xc9, 0x16, 0x8a, 0x4f, 0x70, + 0x44, 0x9c, 0x21, 0xdc, 0x11, 0xee, 0xbc, 0xc6, 0x23, 0xf2, 0x86, 0xb0, 0x94, 0xc6, 0x63, 0xf4, + 0x1e, 0x34, 0x7d, 0xe9, 0x9d, 0x74, 0x67, 0x71, 0x70, 0xb7, 0xaf, 0x22, 0xe9, 0xbf, 0xa0, 0x5c, + 0xb9, 0xed, 0xea, 0x03, 0x68, 0x15, 0x9a, 0xa7, 0x31, 0x8b, 0x30, 0x97, 0x4e, 0xb6, 0x5d, 0x2d, + 0x39, 0x3f, 0x5b, 0x60, 0x4f, 0xcd, 0xa2, 0xf7, 0xa1, 0x75, 0xa9, 0x4c, 0x6b, 0x83, 0x6b, 0x53, + 0x83, 0xa5, 0x97, 0xdd, 0xe9, 0xb9, 0xeb, 0xec, 0x0a, 0x4c, 0x38, 0xe5, 0xe1, 0x34, 0x76, 0x25, + 0xa0, 0xfb, 0x60, 0x5f, 0xb0, 0xd0, 0x4b, 0x30, 0x3f, 0x93, 0xa1, 0xb7, 0xdd, 0xd6, 0x05, 0x0b, + 0x5f, 0x63, 0x7e, 0x26, 0x80, 0x95, 0x6a, 0x15, 0xb6, 0x5c, 0x67, 0x60, 0x37, 0x0d, 0xb0, 0x37, + 0x01, 0xce, 0x68, 0xca, 0x63, 0x46, 0x7d, 0x1c, 0x76, 0x5b, 0x5b, 0xd6, 0x8e, 0xed, 0x1a, 0x1a, + 0xf1, 0x04, 0xc3, 0x57, 0x5e, 0x80, 0x39, 0xee, 0xda, 0x0a, 0x77, 0x86, 0xaf, 0xf6, 0x31, 0xc7, + 0xce, 0x77, 0x16, 0xf4, 0x44, 0x20, 0x2f, 0x08, 0x37, 0x62, 0x49, 0x5d, 0xf2, 0xd5, 0x05, 0x49, + 0x39, 0x1a, 0x00, 0x30, 0x92, 0xc4, 0x29, 0xe5, 0x31, 0x9b, 0x68, 0x00, 0xd0, 0x14, 0x00, 0x37, + 0xdb, 0x71, 0x8d, 0x53, 0x22, 0x63, 0x09, 0x1e, 0x11, 0x15, 0x91, 0x4a, 0xbf, 0x2d, 0x14, 0x79, + 0x48, 0x3a, 0xfd, 0x0d, 0x57, 0xae, 0x85, 0x7b, 0x09, 0x61, 0x9e, 0xd4, 0xab, 0xe4, 0xb7, 0x12, + 0xc2, 0x84, 0x3b, 0x8e, 0x0b, 0xeb, 0x33, 0xbd, 0x4b, 0x93, 0x78, 0x9c, 0x12, 0xf4, 0x04, 0x6c, + 0x0d, 0x7a, 0xda, 0xb5, 0xb6, 0x16, 0xe6, 0x65, 0x27, 0x3b, 0xe8, 0xfc, 0x64, 0xc1, 0x3d, 0xb1, + 0x7b, 0xcc, 0x28, 0x27, 0xe2, 0xc8, 0x6d, 0x82, 0x9d, 0xa6, 0xa3, 0x66, 0xa4, 0x23, 0xcf, 0xff, + 0x42, 0x21, 0xff, 0x4f, 0xa1, 0xa3, 0x2a, 0xcf, 0x0b, 0x54, 0xe7, 0xc8, 0x68, 0x17, 0x07, 0xf7, + 0x4d, 0x9f, 0x0b, 0xad, 0xe5, 0x2e, 0xfb, 0x85, 0x4e, 0xeb, 0x42, 0xcb, 0x8f, 0xc7, 0x9c, 0x8c, + 0xb9, 0xae, 0x89, 0xa9, 0xe8, 0x3c, 0x85, 0xb7, 0x4a, 0x31, 0x69, 0x88, 0xde, 0x85, 0x3b, 0xc1, + 0x45, 0x12, 0x52, 0x1f, 0x73, 0xe2, 0x11, 0xc6, 0x62, 0xa6, 0xfb, 0xb4, 0x93, 0xa9, 0x0f, 0x84, + 0xd6, 0xf9, 0xc5, 0x52, 0x26, 0x3e, 0x4b, 0x02, 0x7c, 0x7b, 0x5c, 0xe6, 0x16, 0xc1, 0xec, 0x46, + 0xc8, 0x61, 0xab, 0xff, 0x01, 0x6c, 0x8d, 0xbf, 0x0e, 0x5b, 0xb3, 0x08, 0x5b, 0x1f, 0x56, 0xcb, + 0x31, 0x6b, 0xdc, 0xc4, 0x00, 0x33, 0xd0, 0x52, 0x82, 0xf3, 0x83, 0x06, 0x69, 0x9f, 0x84, 0xe4, + 0x1f, 0x06, 0xa9, 0x1a, 0xf6, 0xc2, 0xcd, 0xc2, 0x76, 0xba, 0x2a, 0x38, 0xd3, 0x57, 0x15, 0x9c, + 0xf3, 0xad, 0x05, 0xff, 0x17, 0x5b, 0x87, 0x74, 0x1c, 0xdc, 0x36, 0x88, 0x2c, 0x99, 0x35, 0x33, + 0x99, 0x3d, 0xb0, 0x19, 0xb9, 0xa4, 0x72, 0x6e, 0xaa, 0x2c, 0x67, 0x32, 0xda, 0x80, 0x76, 0x40, + 0x19, 0xf1, 0xe5, 0x23, 0x75, 0xb9, 0x99, 0x2b, 0x9c, 0x8f, 0x54, 0x77, 0xe6, 0xae, 0xe9, 0x84, + 0x3c, 0xd0, 0x93, 0x43, 0x79, 0xb5, 0x52, 0xee, 0x73, 0x35, 0x4b, 0x9c, 0x49, 0x1e, 0xd8, 0x21, + 0x0d, 0xff, 0xf6, 0xd6, 0x9e, 0x13, 0x96, 0x73, 0x99, 0x3b, 0xae, 0x9e, 0xd6, 0x8e, 0xcf, 0xa2, + 0xc7, 0x75, 0x68, 0x47, 0x34, 0x22, 0x1e, 0x9f, 0x24, 0x44, 0xb3, 0x84, 0x2d, 0x14, 0xc3, 0x49, + 0x42, 0x0a, 0xe3, 0x7a, 0xa1, 0x30, 0xae, 0x33, 0x46, 0xa8, 0xe7, 0x8c, 0x20, 0xe8, 0x6a, 0x55, + 0x0f, 0xc9, 0xbd, 0x30, 0x14, 0x58, 0xa4, 0xb7, 0xcc, 0x67, 0x48, 0x05, 0x7f, 0x0a, 0xb7, 0x96, + 0x5d, 0x25, 0xa0, 0x87, 0xd0, 0x51, 0x29, 0xa2, 0xf1, 0xd8, 0x0b, 0x48, 0xea, 0x4b, 0xcf, 0x6c, + 0x77, 0x39, 0xd3, 0xee, 0x93, 0xd4, 0x47, 0x1f, 0x42, 0x3d, 0x8d, 0x99, 0xea, 0xe0, 0xce, 0xe0, + 0xa1, 0x99, 0xa4, 0xaa, 0x7b, 0xfd, 0xa3, 0x98, 0xf1, 0x67, 0x13, 0x57, 0x5e, 0x71, 0xb6, 0xa1, + 0xa9, 0x64, 0xd4, 0x86, 0xc6, 0xf0, 0xe5, 0xf0, 0xd5, 0xc1, 0xca, 0xff, 0x50, 0x07, 0xe0, 0xb9, + 0x7b, 0xb0, 0x37, 0x3c, 0xd8, 0xf7, 0xf6, 0x86, 0x2b, 0x96, 0xe3, 0xc1, 0x5a, 0xc5, 0xd6, 0x4d, + 0xea, 0x03, 0x6d, 0xc2, 0x22, 0x19, 0x07, 0x5e, 0x7c, 0xaa, 0xe8, 0xa6, 0x26, 0x83, 0x68, 0x93, + 0x71, 0xf0, 0xe9, 0xa9, 0x24, 0x9c, 0xef, 0xad, 0x8c, 0x71, 0x0e, 0xe5, 0xf8, 0xe1, 0x24, 0x10, + 0xc8, 0xff, 0x97, 0x3a, 0x64, 0x00, 0x1b, 0xb3, 0x5d, 0xcc, 0x0b, 0x4e, 0xd6, 0x8e, 0x2e, 0x38, + 0xb1, 0x76, 0x7e, 0xd3, 0xa4, 0xf7, 0x8a, 0xa6, 0xfc, 0xdf, 0x2d, 0x91, 0x0f, 0x0a, 0x25, 0xb2, + 0x6d, 0xe6, 0xa9, 0xec, 0x5c, 0xa1, 0x40, 0x04, 0x3f, 0xc4, 0xa7, 0xa7, 0x29, 0x51, 0xdc, 0xb7, + 0xec, 0x6a, 0xe9, 0xcf, 0x15, 0xce, 0xc7, 0x6a, 0x6e, 0x1b, 0x2f, 0xdc, 0xa4, 0x6c, 0x06, 0x3f, + 0x36, 0x61, 0x51, 0xa8, 0x8e, 0x08, 0xbb, 0xa4, 0x3e, 0x41, 0x67, 0x6a, 0xcc, 0x94, 0xbe, 0x4b, + 0x90, 0x53, 0x2a, 0xf8, 0x19, 0x9f, 0x54, 0xbd, 0xed, 0xb9, 0x67, 0xf4, 0x80, 0x6e, 0xfe, 0xfa, + 0xcd, 0x4e, 0xcd, 0xae, 0x3d, 0xb6, 0xd0, 0x1b, 0x58, 0x2e, 0x10, 0x3b, 0xda, 0x30, 0xef, 0x97, + 0xbf, 0x61, 0x7a, 0x6f, 0x5f, 0xb3, 0x5b, 0xb0, 0x6b, 0xed, 0x58, 0xe8, 0x73, 0xe8, 0x14, 0x99, + 0x0f, 0x15, 0xae, 0x56, 0xbe, 0x02, 0x7a, 0x9b, 0xd7, 0x6d, 0x57, 0x4c, 0x1f, 0x2b, 0xd3, 0x39, + 0xef, 0x14, 0x4d, 0x57, 0xb8, 0xb3, 0x68, 0x7a, 0x06, 0x5d, 0x69, 0xd3, 0xe8, 0x08, 0x96, 0x4c, + 0x6a, 0x40, 0xeb, 0xe6, 0xbd, 0x12, 0x97, 0xf5, 0x36, 0x66, 0x6f, 0x56, 0x00, 0x36, 0x8c, 0x8a, + 0xb1, 0x5d, 0x35, 0x6a, 0xf0, 0x48, 0xd5, 0xa8, 0x39, 0xe9, 0x0d, 0xa3, 0x5f, 0xaa, 0x1f, 0x13, + 0x63, 0x4e, 0xa1, 0xcd, 0xf9, 0xc3, 0xb0, 0xf7, 0xce, 0xb5, 0xfb, 0xd7, 0xd5, 0x44, 0x56, 0xcc, + 0xc5, 0x9a, 0x28, 0x77, 0x51, 0xb1, 0x26, 0x2a, 0x1d, 0x60, 0xd8, 0x3d, 0x57, 0x33, 0xa2, 0x3c, + 0x58, 0x50, 0xb9, 0x64, 0x67, 0x4d, 0xc6, 0xde, 0x83, 0xf9, 0x87, 0xca, 0x8f, 0x3d, 0x7b, 0xfc, + 0x85, 0xb8, 0x10, 0xe2, 0x93, 0xbe, 0x1f, 0x47, 0xbb, 0x6a, 0xf9, 0x28, 0x66, 0xa3, 0x5d, 0x65, + 0xe6, 0x91, 0xfc, 0xe3, 0xdc, 0x1d, 0xc5, 0x5a, 0x4e, 0x4e, 0x4e, 0x9a, 0x52, 0xf5, 0xe4, 0xf7, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xbe, 0xe8, 0x4a, 0xa8, 0x0e, 0x00, 0x00, } diff --git a/vendor/vendor.json b/vendor/vendor.json index f4bcddb45..5f4027f65 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -601,12 +601,12 @@ "revisionTime": "2016-03-31T18:18:00Z" }, { - "checksumSHA1": "HFrazf0o65h+4Ik+5CVMeUkUzIc=", + "checksumSHA1": "6sL15NP2KTW8DuCGHz5rp7F2uLg=", "path": "gitlab.com/gitlab-org/gitaly-proto/go/gitalypb", - "revision": "f3b64ddf1bb5f25298901fbdbb831ee52b7c17bc", - "revisionTime": "2019-04-10T17:30:24Z", - "version": "v1.22.0", - "versionExact": "v1.22.0" + "revision": "a777d26a105f2da329a0d68e608a982fa69651ba", + "revisionTime": "2019-05-08T23:50:06Z", + "version": "v1.28.0", + "versionExact": "v1.28.0" }, { "checksumSHA1": "WMOuBgCyclqy+Mqunb0NbykaC4Y=", |