diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2018-09-20 19:10:08 +0300 |
---|---|---|
committer | Jacob Vosmaer <jacob@gitlab.com> | 2018-09-20 19:10:08 +0300 |
commit | a491a6a3f0d7272692e7d069259e13cb448e8a6f (patch) | |
tree | 434f7bf0e3dca3a069528027a7f0d314f3078753 | |
parent | 3ed43d613d0e9131c33ba4f5cc15e6e3520429a8 (diff) | |
parent | 0c82f37e359dec9e4afae64f1881afac2109c7cf (diff) |
Merge branch 'osw-use-max-patch-bytes-limit' into 'master'
Use CommitDiffRequest.MaxPatchBytes instead of hardcoded limit for single diff patches
Closes gitlab-ce#50635
See merge request gitlab-org/gitaly!880
-rw-r--r-- | changelogs/unreleased/osw-use-max-patch-bytes-limit.yml | 5 | ||||
-rw-r--r-- | internal/diff/diff.go | 45 | ||||
-rw-r--r-- | internal/diff/diff_test.go | 93 | ||||
-rw-r--r-- | internal/service/diff/commit.go | 1 | ||||
-rw-r--r-- | internal/service/diff/commit_test.go | 47 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION | 2 | ||||
-rw-r--r-- | vendor/gitlab.com/gitlab-org/gitaly-proto/go/diff.pb.go | 120 | ||||
-rw-r--r-- | vendor/vendor.json | 10 |
8 files changed, 247 insertions, 76 deletions
diff --git a/changelogs/unreleased/osw-use-max-patch-bytes-limit.yml b/changelogs/unreleased/osw-use-max-patch-bytes-limit.yml new file mode 100644 index 000000000..e599c28e8 --- /dev/null +++ b/changelogs/unreleased/osw-use-max-patch-bytes-limit.yml @@ -0,0 +1,5 @@ +--- +title: Use CommitDiffRequest.MaxPatchBytes instead of hardcoded limit for single diff patches +merge_request: 880 +author: +type: changed diff --git a/internal/diff/diff.go b/internal/diff/diff.go index 1d5966d73..a1d53b0d0 100644 --- a/internal/diff/diff.go +++ b/internal/diff/diff.go @@ -14,10 +14,6 @@ import ( const blankID = "0000000000000000000000000000000000000000" -// MaxPatchBytes is a limitation of a single diff patch, -// patches surpassing this limit are pruned by default. -const MaxPatchBytes = 100000 - // Diff represents a single parsed diff entry type Diff struct { FromID string @@ -69,8 +65,27 @@ type Limits struct { SafeMaxLines int // Number of bytes to parse (including lines preceded with --- or +++), after which all subsequent files are collapsed. SafeMaxBytes int + // Number of bytes a single patch can have. Patches surpassing this limit are pruned / nullified. + MaxPatchBytes int } +const ( + // maxFilesUpperBound controls how much MaxFiles limit can reach + maxFilesUpperBound = 5000 + // maxLinesUpperBound controls how much MaxLines limit can reach + maxLinesUpperBound = 250000 + // maxBytesUpperBound controls how much MaxBytes limit can reach + maxBytesUpperBound = 5000 * 5120 // 24MB + // safeMaxFilesUpperBound controls how much SafeMaxBytes limit can reach + safeMaxFilesUpperBound = 500 + // safeMaxLinesUpperBound controls how much SafeMaxLines limit can reach + safeMaxLinesUpperBound = 25000 + // safeMaxBytesUpperBound controls how much SafeMaxBytes limit can reach + safeMaxBytesUpperBound = 500 * 5120 // 2.4MB + // maxPatchBytesUpperBound controls how much MaxPatchBytes limit can reach + maxPatchBytesUpperBound = 512000 // 500KB +) + var ( rawLineRegexp = regexp.MustCompile(`(?m)^:(\d+) (\d+) ([[:xdigit:]]{40}) ([[:xdigit:]]{40}) ([ADTUXMRC]\d*)\t(.*?)(?:\t(.*?))?$`) diffHeaderRegexp = regexp.MustCompile(`(?m)^diff --git "?a/(.*?)"? "?b/(.*?)"?$`) @@ -78,6 +93,8 @@ var ( // NewDiffParser returns a new Parser func NewDiffParser(src io.Reader, limits Limits) *Parser { + limits.enforceUpperBound() + parser := &Parser{} reader := bufio.NewReader(src) @@ -158,7 +175,7 @@ func (parser *Parser) Parse() bool { if parser.limits.EnforceLimits { // Apply single-file size limit - if len(parser.currentDiff.Patch) >= MaxPatchBytes { + if len(parser.currentDiff.Patch) >= parser.limits.MaxPatchBytes { parser.prunePatch() parser.currentDiff.TooLarge = true } @@ -175,6 +192,17 @@ func (parser *Parser) Parse() bool { return true } +// enforceUpperBound ensures every limit value is within its corresponding upperbound +func (limit *Limits) enforceUpperBound() { + limit.MaxFiles = min(limit.MaxFiles, maxFilesUpperBound) + limit.MaxLines = min(limit.MaxLines, maxLinesUpperBound) + limit.MaxBytes = min(limit.MaxBytes, maxBytesUpperBound) + limit.SafeMaxFiles = min(limit.SafeMaxFiles, safeMaxFilesUpperBound) + limit.SafeMaxLines = min(limit.SafeMaxLines, safeMaxLinesUpperBound) + limit.SafeMaxBytes = min(limit.SafeMaxBytes, safeMaxBytesUpperBound) + limit.MaxPatchBytes = min(limit.MaxPatchBytes, maxPatchBytesUpperBound) +} + // prunePatch nullifies the current diff patch and reduce lines and bytes processed // according to it. func (parser *Parser) prunePatch() { @@ -201,6 +229,13 @@ func (parser *Parser) isOverSafeLimits() bool { parser.bytesProcessed > parser.limits.SafeMaxBytes } +func min(x, y int) int { + if x < y { + return x + } + return y +} + func (parser *Parser) cacheRawLines(reader *bufio.Reader) { for { line, err := reader.ReadBytes('\n') diff --git a/internal/diff/diff_test.go b/internal/diff/diff_test.go index abece29e3..9684642f5 100644 --- a/internal/diff/diff_test.go +++ b/internal/diff/diff_test.go @@ -36,6 +36,7 @@ index 0000000000000000000000000000000000000000..3be11c69355948412925fa5e073d76d5 MaxFiles: 5, MaxBytes: 10000000, MaxLines: 10000000, + MaxPatchBytes: 100000, CollapseDiffs: true, } diffs := getDiffs(rawDiff, limits) @@ -97,6 +98,7 @@ index 0000000000000000000000000000000000000000..3be11c69355948412925fa5e073d76d5 MaxFiles: 4, MaxBytes: 10000000, MaxLines: 10000000, + MaxPatchBytes: 100000, CollapseDiffs: false, } diffParser := NewDiffParser(strings.NewReader(rawDiff), limits) @@ -136,6 +138,74 @@ index 0000000000000000000000000000000000000000..3be11c69355948412925fa5e073d76d5 require.Equal(t, expectedDiffs, diffs) } +func TestDiffParserWithLargeDiffWithFalseCollapseDiffsAndCustomPatchLimitFlag(t *testing.T) { + bigPatch := "@@ -0,0 +1,100000 @@\n" + strings.Repeat("+Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua\n", 1000) + rawDiff := fmt.Sprintf(`:000000 100644 0000000000000000000000000000000000000000 4cc7061661b8f52891bc1b39feb4d856b21a1067 A big.txt +:000000 100644 0000000000000000000000000000000000000000 3be11c69355948412925fa5e073d76d58ff3afd2 A file-00.txt + +diff --git a/big.txt b/big.txt +new file mode 100644 +index 0000000000000000000000000000000000000000..4cc7061661b8f52891bc1b39feb4d856b21a1067 +--- /dev/null ++++ b/big.txt +%sdiff --git a/file-00.txt b/file-00.txt +new file mode 100644 +index 0000000000000000000000000000000000000000..3be11c69355948412925fa5e073d76d58ff3afd2 +--- /dev/null ++++ b/file-00.txt +@@ -0,0 +1 @@ ++Lorem ipsum +`, bigPatch) + + limits := Limits{ + EnforceLimits: true, + SafeMaxFiles: 3, + SafeMaxBytes: 200, + SafeMaxLines: 200, + MaxFiles: 4, + MaxBytes: 10000000, + MaxLines: 10000000, + MaxPatchBytes: 125000, // bumping from default 100KB to 125kb (first patch has 124.6KB) + CollapseDiffs: false, + } + diffParser := NewDiffParser(strings.NewReader(rawDiff), limits) + + diffs := []*Diff{} + for diffParser.Parse() { + diffs = append(diffs, diffParser.Diff()) + } + + expectedDiffs := []*Diff{ + &Diff{ + OldMode: 0, + NewMode: 0100644, + FromID: "0000000000000000000000000000000000000000", + ToID: "4cc7061661b8f52891bc1b39feb4d856b21a1067", + FromPath: []byte("big.txt"), + ToPath: []byte("big.txt"), + Status: 'A', + Collapsed: false, + Patch: []byte(bigPatch), + lineCount: 1000, + TooLarge: false, + }, + &Diff{ + OldMode: 0, + NewMode: 0100644, + FromID: "0000000000000000000000000000000000000000", + ToID: "3be11c69355948412925fa5e073d76d58ff3afd2", + FromPath: []byte("file-00.txt"), + ToPath: []byte("file-00.txt"), + Status: 'A', + Collapsed: false, + Patch: []byte("@@ -0,0 +1 @@\n+Lorem ipsum\n"), + lineCount: 1, + }, + } + + require.Equal(t, expectedDiffs, diffs) +} + func TestDiffParserWithLargeDiffOfSmallPatches(t *testing.T) { patch := "@@ -0,0 +1,5 @@\n" + strings.Repeat("+Lorem\n", 5) rawDiff := `:000000 100644 0000000000000000000000000000000000000000 b6507e5b5ce18077e3ec8aaa2291404e5051d45d A expand-collapse/file-0.txt @@ -163,6 +233,7 @@ index 0000000000000000000000000000000000000000..b6507e5b5ce18077e3ec8aaa2291404e MaxFiles: 10000000, MaxBytes: 10000000, MaxLines: 10000000, + MaxPatchBytes: 100000, CollapseDiffs: true, } diffs := getDiffs(rawDiff, limits) @@ -209,6 +280,28 @@ index 0000000000000000000000000000000000000000..b6507e5b5ce18077e3ec8aaa2291404e require.Equal(t, expectedDiffs, diffs) } +func TestDiffLimitsBeingEnforcedByUpperBound(t *testing.T) { + limits := Limits{ + SafeMaxLines: 999999999, + SafeMaxFiles: 999999999, + SafeMaxBytes: 999999999, + MaxFiles: 999999999, + MaxBytes: 0, + MaxLines: 0, + MaxPatchBytes: 0, + } + + diffParser := NewDiffParser(strings.NewReader(""), limits) + + require.Equal(t, diffParser.limits.SafeMaxBytes, safeMaxBytesUpperBound) + require.Equal(t, diffParser.limits.SafeMaxFiles, safeMaxFilesUpperBound) + require.Equal(t, diffParser.limits.SafeMaxLines, safeMaxLinesUpperBound) + require.Equal(t, diffParser.limits.MaxFiles, maxFilesUpperBound) + require.Equal(t, diffParser.limits.MaxBytes, 0) + require.Equal(t, diffParser.limits.MaxLines, 0) + require.Equal(t, diffParser.limits.MaxPatchBytes, 0) +} + func getDiffs(rawDiff string, limits Limits) []*Diff { diffParser := NewDiffParser(strings.NewReader(rawDiff), limits) diff --git a/internal/service/diff/commit.go b/internal/service/diff/commit.go index 45cd3f8f4..cbf4aeeb2 100644 --- a/internal/service/diff/commit.go +++ b/internal/service/diff/commit.go @@ -60,6 +60,7 @@ func (s *server) CommitDiff(in *pb.CommitDiffRequest, stream pb.DiffService_Comm limits.MaxFiles = int(in.MaxFiles) limits.MaxLines = int(in.MaxLines) limits.MaxBytes = int(in.MaxBytes) + limits.MaxPatchBytes = int(in.MaxPatchBytes) } limits.CollapseDiffs = in.CollapseDiffs limits.SafeMaxFiles = int(in.SafeMaxFiles) diff --git a/internal/service/diff/commit_test.go b/internal/service/diff/commit_test.go index 17baf59c9..bc176951e 100644 --- a/internal/service/diff/commit_test.go +++ b/internal/service/diff/commit_test.go @@ -436,8 +436,8 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) { leftCommit := "184a47d38677e2e439964859b877ae9bc424ab11" type diffAttributes struct { - path string - collapsed, overflowMarker bool + path string + collapsed, overflowMarker, tooLarge bool } requestsAndResults := []struct { @@ -465,6 +465,7 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) { MaxFiles: 3, MaxLines: 1000, MaxBytes: 3 * 5 * 1024, + MaxPatchBytes: 100000, }, result: []diffAttributes{ {path: "CHANGELOG"}, @@ -480,6 +481,7 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) { MaxFiles: 5, MaxLines: 90, MaxBytes: 5 * 5 * 1024, + MaxPatchBytes: 100000, }, result: []diffAttributes{ {path: "CHANGELOG"}, @@ -494,6 +496,7 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) { MaxFiles: 5, MaxLines: 1000, MaxBytes: 6900, + MaxPatchBytes: 100000, }, result: []diffAttributes{ {path: "CHANGELOG"}, @@ -514,6 +517,7 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) { SafeMaxFiles: 1, SafeMaxLines: 1000, SafeMaxBytes: 1 * 5 * 1024, + MaxPatchBytes: 100000, }, result: []diffAttributes{ {path: "CHANGELOG"}, @@ -523,6 +527,27 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) { }, }, { + desc: "set as too large when exceeding single patch limit", + request: pb.CommitDiffRequest{ + EnforceLimits: true, + CollapseDiffs: false, + MaxFiles: 5, + MaxLines: 1000, + MaxBytes: 3 * 5 * 1024, + SafeMaxFiles: 3, + SafeMaxLines: 1000, + SafeMaxBytes: 1 * 5 * 1024, + MaxPatchBytes: 1200, + }, + result: []diffAttributes{ + {path: "CHANGELOG", tooLarge: true}, + {path: "CONTRIBUTING.md", tooLarge: true}, + {path: "LICENSE", tooLarge: false}, + {path: "PROCESS.md", tooLarge: true}, + {path: "VERSION", tooLarge: false}, + }, + }, + { desc: "collapse after safe max file count is exceeded", request: pb.CommitDiffRequest{ EnforceLimits: true, @@ -533,6 +558,7 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) { SafeMaxFiles: 1, SafeMaxLines: 1000, SafeMaxBytes: 1 * 5 * 1024, + MaxPatchBytes: 100000, }, result: []diffAttributes{ {path: "CHANGELOG"}, @@ -552,6 +578,7 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) { SafeMaxFiles: 5, SafeMaxLines: 40, SafeMaxBytes: 5 * 5 * 1024, + MaxPatchBytes: 100000, }, result: []diffAttributes{ {path: "CHANGELOG", collapsed: true}, @@ -572,6 +599,7 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) { SafeMaxFiles: 4, SafeMaxLines: 1000, SafeMaxBytes: 4830, + MaxPatchBytes: 100000, }, result: []diffAttributes{ {path: "CHANGELOG"}, @@ -602,16 +630,14 @@ func TestSuccessfulCommitDiffRequestWithLimits(t *testing.T) { require.Equal(t, len(requestAndResult.result), len(receivedDiffs), "number of diffs received") for i, diff := range receivedDiffs { - if overflowMarker := requestAndResult.result[i].overflowMarker; overflowMarker { - require.Equal(t, overflowMarker, diff.OverflowMarker, "overflow marker") - continue - } + expectedDiff := requestAndResult.result[i] - require.Equal(t, requestAndResult.result[i].path, string(diff.FromPath), "path") + require.Equal(t, expectedDiff.overflowMarker, diff.OverflowMarker, "%s overflow marker", diff.FromPath) + require.Equal(t, expectedDiff.tooLarge, diff.TooLarge, "%s too large", diff.FromPath) + require.Equal(t, expectedDiff.path, string(diff.FromPath), "%s path", diff.FromPath) + require.Equal(t, expectedDiff.collapsed, diff.Collapsed, "%s collapsed", diff.FromPath) - collapsed := requestAndResult.result[i].collapsed - require.Equal(t, collapsed, diff.Collapsed, "%s collapsed", requestAndResult.result[i].path) - if collapsed { + if expectedDiff.collapsed { require.Empty(t, diff.Patch, "patch") } } @@ -975,6 +1001,7 @@ func getDiffsFromCommitDiffClient(t *testing.T, client pb.DiffService_CommitDiff Collapsed: fetchedDiff.Collapsed, OverflowMarker: fetchedDiff.OverflowMarker, Patch: fetchedDiff.RawPatchData, + TooLarge: fetchedDiff.TooLarge, } } else { currentDiff.Patch = append(currentDiff.Patch, fetchedDiff.RawPatchData...) diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION index 4c08787e6..a38b3bd31 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/VERSION @@ -1 +1 @@ -0.116.0 +0.117.0 diff --git a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/diff.pb.go b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/diff.pb.go index 663fe3e2b..2ae92f49d 100644 --- a/vendor/gitlab.com/gitlab-org/gitaly-proto/go/diff.pb.go +++ b/vendor/gitlab.com/gitlab-org/gitaly-proto/go/diff.pb.go @@ -31,6 +31,9 @@ type CommitDiffRequest struct { SafeMaxFiles int32 `protobuf:"varint,11,opt,name=safe_max_files,json=safeMaxFiles" json:"safe_max_files,omitempty"` SafeMaxLines int32 `protobuf:"varint,12,opt,name=safe_max_lines,json=safeMaxLines" json:"safe_max_lines,omitempty"` SafeMaxBytes int32 `protobuf:"varint,13,opt,name=safe_max_bytes,json=safeMaxBytes" json:"safe_max_bytes,omitempty"` + // Limitation of a single diff patch, + // patches surpassing this limit are pruned by default. + MaxPatchBytes int32 `protobuf:"varint,14,opt,name=max_patch_bytes,json=maxPatchBytes" json:"max_patch_bytes,omitempty"` } func (m *CommitDiffRequest) Reset() { *m = CommitDiffRequest{} } @@ -129,6 +132,13 @@ func (m *CommitDiffRequest) GetSafeMaxBytes() int32 { return 0 } +func (m *CommitDiffRequest) GetMaxPatchBytes() int32 { + if m != nil { + return m.MaxPatchBytes + } + return 0 +} + // A CommitDiffResponse corresponds to a single changed file in a commit. type CommitDiffResponse struct { FromPath []byte `protobuf:"bytes,1,opt,name=from_path,json=fromPath,proto3" json:"from_path,omitempty"` @@ -993,59 +1003,59 @@ var _DiffService_serviceDesc = grpc.ServiceDesc{ func init() { proto.RegisterFile("diff.proto", fileDescriptor4) } var fileDescriptor4 = []byte{ - // 849 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcb, 0x6e, 0x23, 0x45, - 0x14, 0xa5, 0x63, 0xbb, 0xd3, 0xbe, 0xee, 0xbc, 0x2a, 0x28, 0xd3, 0xf1, 0xb0, 0xb0, 0x5a, 0xcc, - 0x8c, 0x11, 0x52, 0x84, 0xc2, 0x86, 0x05, 0x42, 0x62, 0x26, 0x02, 0x65, 0x94, 0x88, 0x51, 0xb3, - 0x60, 0xc1, 0xa2, 0x55, 0x71, 0xdd, 0xb6, 0x4b, 0x74, 0x77, 0x99, 0xaa, 0x22, 0x1e, 0xff, 0x06, - 0xf0, 0x0f, 0x6c, 0xd8, 0xf3, 0x6b, 0x2c, 0x58, 0xa0, 0xaa, 0xea, 0x97, 0x13, 0x6b, 0x36, 0x33, - 0x0b, 0xef, 0x5c, 0xe7, 0x9c, 0xbe, 0xf7, 0xd4, 0x7d, 0x54, 0x02, 0xc0, 0x78, 0x96, 0x5d, 0x2c, - 0xa5, 0xd0, 0x82, 0xf8, 0x73, 0xae, 0x69, 0xbe, 0x1e, 0x87, 0x6a, 0x41, 0x25, 0x32, 0x87, 0xc6, - 0xff, 0xf5, 0xe0, 0xe4, 0x95, 0x28, 0x0a, 0xae, 0xaf, 0x78, 0x96, 0x25, 0xf8, 0xeb, 0x6f, 0xa8, - 0x34, 0xb9, 0x04, 0x90, 0xb8, 0x14, 0x8a, 0x6b, 0x21, 0xd7, 0x91, 0x37, 0xf1, 0xa6, 0xa3, 0x4b, - 0x72, 0xe1, 0x02, 0x5c, 0x24, 0x0d, 0x93, 0x74, 0x54, 0xe4, 0x53, 0x38, 0xcc, 0x31, 0xd3, 0xe9, - 0xcc, 0x46, 0x4b, 0x39, 0x8b, 0xf6, 0x26, 0xde, 0x74, 0x98, 0x84, 0x06, 0x75, 0x29, 0xae, 0x19, - 0x79, 0x0e, 0x47, 0x92, 0xcf, 0x17, 0x5d, 0x59, 0xcf, 0xca, 0x0e, 0x2c, 0xdc, 0xe8, 0xbe, 0x82, - 0x88, 0xcf, 0x4b, 0x21, 0x31, 0x5d, 0x2d, 0xb8, 0x46, 0xb5, 0xa4, 0x33, 0x4c, 0x67, 0x0b, 0x5a, - 0xce, 0x31, 0xea, 0x4f, 0xbc, 0x69, 0x90, 0x9c, 0x39, 0xfe, 0xa7, 0x86, 0x7e, 0x65, 0x59, 0xf2, - 0x31, 0x0c, 0x96, 0x54, 0x2f, 0x54, 0x34, 0x98, 0xf4, 0xa6, 0x61, 0xe2, 0x0e, 0xe4, 0x19, 0x1c, - 0xce, 0x44, 0x9e, 0xd3, 0xa5, 0xc2, 0xd4, 0x14, 0x45, 0x45, 0xbe, 0x8d, 0x72, 0x50, 0xa3, 0xe6, - 0xfa, 0x56, 0x86, 0x65, 0x26, 0xe4, 0x0c, 0xd3, 0x9c, 0x17, 0x5c, 0xab, 0x68, 0xdf, 0xc9, 0x2a, - 0xf4, 0xc6, 0x82, 0xe4, 0x29, 0x0c, 0x0b, 0xfa, 0x36, 0xcd, 0x78, 0x8e, 0x2a, 0x0a, 0x26, 0xde, - 0x74, 0x90, 0x04, 0x05, 0x7d, 0xfb, 0x9d, 0x39, 0xd7, 0x64, 0xce, 0x4b, 0x54, 0xd1, 0xb0, 0x21, - 0x6f, 0xcc, 0xb9, 0x26, 0xef, 0xd6, 0x1a, 0x55, 0x04, 0x0d, 0xf9, 0xd2, 0x9c, 0x4d, 0x09, 0x15, - 0xcd, 0x30, 0x6d, 0x63, 0x8f, 0xac, 0x22, 0x34, 0xe8, 0x6d, 0x1d, 0xbf, 0xab, 0x72, 0x49, 0xc2, - 0x0d, 0x95, 0x4b, 0xd4, 0x55, 0xb9, 0x6c, 0x07, 0x1b, 0x2a, 0x9b, 0x31, 0xfe, 0x77, 0x0f, 0x48, - 0xb7, 0xfd, 0x6a, 0x29, 0x4a, 0x85, 0xc6, 0x65, 0x26, 0x45, 0x91, 0x9a, 0xda, 0xd9, 0xf6, 0x87, - 0x49, 0x60, 0x80, 0x37, 0x54, 0x2f, 0xc8, 0x13, 0xd8, 0xd7, 0xc2, 0x51, 0x7b, 0x96, 0xf2, 0xb5, - 0xa8, 0x09, 0xfb, 0x55, 0xd3, 0x53, 0xdf, 0x1c, 0xaf, 0x19, 0x39, 0x85, 0x81, 0x16, 0x06, 0xee, - 0x5b, 0xb8, 0xaf, 0xc5, 0x35, 0x23, 0xe7, 0x10, 0x88, 0x9c, 0xa5, 0x85, 0x60, 0x18, 0x0d, 0xac, - 0xb5, 0x7d, 0x91, 0xb3, 0x5b, 0xc1, 0xd0, 0x50, 0x25, 0xae, 0x1c, 0xe5, 0x3b, 0xaa, 0xc4, 0x95, - 0xa5, 0xce, 0xc0, 0xbf, 0xe3, 0x25, 0x95, 0xeb, 0xaa, 0x31, 0xd5, 0xc9, 0x5c, 0x57, 0xd2, 0x95, - 0x71, 0x35, 0x5b, 0xa4, 0x8c, 0x6a, 0x6a, 0x2b, 0x1f, 0x26, 0xa1, 0xa4, 0xab, 0x37, 0x06, 0xbc, - 0xa2, 0x9a, 0x92, 0x09, 0x84, 0x58, 0xb2, 0x54, 0x64, 0x4e, 0x68, 0x1b, 0x10, 0x24, 0x80, 0x25, - 0xfb, 0x21, 0xb3, 0x2a, 0xf2, 0x02, 0x8e, 0xc4, 0x3d, 0xca, 0x2c, 0x17, 0xab, 0xb4, 0xa0, 0xf2, - 0x17, 0x94, 0xb6, 0x07, 0x41, 0x72, 0x58, 0xc3, 0xb7, 0x16, 0x25, 0x9f, 0xc0, 0xb0, 0x1e, 0x1d, - 0x66, 0x1b, 0x10, 0x24, 0x2d, 0x60, 0x0a, 0xa8, 0x85, 0x48, 0x73, 0x2a, 0xe7, 0x68, 0x0b, 0x1f, - 0x24, 0x81, 0x16, 0xe2, 0xc6, 0x9c, 0x5f, 0xf7, 0x83, 0xe0, 0x78, 0x18, 0xff, 0xed, 0x35, 0xa5, - 0xc7, 0x5c, 0xd3, 0xdd, 0x59, 0xbd, 0x66, 0x81, 0xfa, 0x9d, 0x05, 0x8a, 0xff, 0xf2, 0x60, 0xd4, - 0xb1, 0xbb, 0xbb, 0x23, 0x12, 0xbf, 0x84, 0xd3, 0x8d, 0xba, 0x56, 0x33, 0xfd, 0x39, 0xf8, 0xcc, - 0x00, 0x2a, 0xf2, 0x26, 0xbd, 0xe9, 0xe8, 0xf2, 0xb4, 0x2e, 0x6a, 0x57, 0x5c, 0x49, 0x62, 0x56, - 0xf7, 0xc6, 0x4e, 0xc5, 0xfb, 0xf4, 0x66, 0x0c, 0x81, 0xc4, 0x7b, 0xae, 0xb8, 0x28, 0xab, 0x5a, - 0x34, 0xe7, 0xf8, 0xb3, 0xda, 0x69, 0x95, 0xa5, 0x72, 0x4a, 0xa0, 0x6f, 0x27, 0xd8, 0x55, 0xd5, - 0xfe, 0x8e, 0x7f, 0xf7, 0xe0, 0x30, 0xa1, 0xab, 0x9d, 0x7a, 0xa4, 0xe3, 0x67, 0x70, 0xd4, 0x78, - 0x7a, 0x87, 0xf7, 0x3f, 0x3c, 0xab, 0x7b, 0xef, 0x52, 0x7e, 0x58, 0xf3, 0xcf, 0xe1, 0xb8, 0x35, - 0xf5, 0x0e, 0xf7, 0x7f, 0x7a, 0x70, 0x6c, 0xae, 0xf8, 0xa3, 0xa6, 0x5a, 0xed, 0x8e, 0xfd, 0x9f, - 0x61, 0xd8, 0xb8, 0x32, 0xbe, 0x3b, 0x7b, 0x68, 0x7f, 0x9b, 0x07, 0x8a, 0x32, 0xc6, 0x35, 0x17, - 0xa5, 0xb2, 0x99, 0x06, 0x49, 0x0b, 0x18, 0x96, 0x61, 0x8e, 0x8e, 0xed, 0x39, 0xb6, 0x01, 0xe2, - 0xaf, 0xe1, 0xa4, 0x73, 0xe5, 0xaa, 0x38, 0x2f, 0x60, 0xa0, 0x0c, 0x50, 0xed, 0xcf, 0x49, 0x7d, - 0xdd, 0x56, 0xe9, 0xf8, 0xcb, 0x7f, 0x7a, 0x30, 0xb2, 0x20, 0xca, 0x7b, 0x3e, 0x43, 0xf2, 0x3d, - 0x40, 0xfb, 0x37, 0x86, 0x9c, 0x3f, 0xd8, 0xbb, 0x76, 0xa2, 0xc7, 0xe3, 0x6d, 0x94, 0xcb, 0x1e, - 0x7f, 0xf4, 0x85, 0x47, 0x5e, 0x6f, 0x3e, 0x41, 0xe3, 0x6d, 0x1b, 0x5c, 0x85, 0x7a, 0xba, 0x95, - 0xdb, 0x16, 0xcb, 0xbd, 0xfb, 0x0f, 0x62, 0x75, 0x67, 0xf5, 0x61, 0xac, 0x8d, 0x91, 0xb1, 0xb1, - 0xbe, 0x81, 0xfd, 0x6a, 0x0f, 0xc8, 0x59, 0x33, 0x04, 0x1b, 0xcb, 0x3a, 0x7e, 0xf2, 0x08, 0xef, - 0x7c, 0xff, 0x2d, 0x04, 0xf5, 0x28, 0x92, 0xae, 0x70, 0xc3, 0x45, 0xf4, 0x98, 0xe8, 0x84, 0xb8, - 0xea, 0x8e, 0x43, 0xf4, 0xb8, 0x35, 0x55, 0x90, 0xf3, 0x2d, 0x4c, 0x1b, 0xe5, 0xce, 0xb7, 0xff, - 0x14, 0x7e, 0xf9, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x14, 0xf1, 0x18, 0xaf, 0x38, 0x0a, 0x00, - 0x00, + // 864 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0x4d, 0x6f, 0xe3, 0x44, + 0x18, 0xc6, 0xcd, 0x47, 0x9d, 0x37, 0x6e, 0xda, 0x4e, 0x51, 0xd7, 0xcd, 0x72, 0x88, 0x2c, 0xb6, + 0x1b, 0x84, 0x54, 0xa1, 0x72, 0xe1, 0x80, 0x90, 0xd8, 0xad, 0x40, 0x5d, 0xb5, 0x62, 0x65, 0x0e, + 0x1c, 0x38, 0x58, 0xd3, 0xcc, 0x38, 0x1e, 0x61, 0x7b, 0xc2, 0xcc, 0xd0, 0xb4, 0x7f, 0x03, 0xf8, + 0x09, 0x48, 0x5c, 0xb8, 0xf3, 0xd7, 0x38, 0xa2, 0x79, 0xc7, 0x5f, 0x69, 0xa3, 0xbd, 0xec, 0x1e, + 0x7a, 0xcb, 0xfb, 0x3c, 0x8f, 0xdf, 0xef, 0x77, 0x5a, 0x00, 0x26, 0xd2, 0xf4, 0x6c, 0xa5, 0xa4, + 0x91, 0x64, 0xb8, 0x14, 0x86, 0xe6, 0xf7, 0xd3, 0x40, 0x67, 0x54, 0x71, 0xe6, 0xd0, 0xe8, 0xaf, + 0x3e, 0x1c, 0xbe, 0x96, 0x45, 0x21, 0xcc, 0x85, 0x48, 0xd3, 0x98, 0xff, 0xfa, 0x1b, 0xd7, 0x86, + 0x9c, 0x03, 0x28, 0xbe, 0x92, 0x5a, 0x18, 0xa9, 0xee, 0x43, 0x6f, 0xe6, 0xcd, 0xc7, 0xe7, 0xe4, + 0xcc, 0x39, 0x38, 0x8b, 0x1b, 0x26, 0xee, 0xa8, 0xc8, 0xa7, 0x30, 0xc9, 0x79, 0x6a, 0x92, 0x05, + 0x7a, 0x4b, 0x04, 0x0b, 0x77, 0x66, 0xde, 0x7c, 0x14, 0x07, 0x16, 0x75, 0x21, 0x2e, 0x19, 0x39, + 0x85, 0x7d, 0x25, 0x96, 0x59, 0x57, 0xd6, 0x43, 0xd9, 0x1e, 0xc2, 0x8d, 0xee, 0x2b, 0x08, 0xc5, + 0xb2, 0x94, 0x8a, 0x27, 0xeb, 0x4c, 0x18, 0xae, 0x57, 0x74, 0xc1, 0x93, 0x45, 0x46, 0xcb, 0x25, + 0x0f, 0xfb, 0x33, 0x6f, 0xee, 0xc7, 0xc7, 0x8e, 0xff, 0xa9, 0xa1, 0x5f, 0x23, 0x4b, 0x3e, 0x86, + 0xc1, 0x8a, 0x9a, 0x4c, 0x87, 0x83, 0x59, 0x6f, 0x1e, 0xc4, 0xce, 0x20, 0x2f, 0x60, 0xb2, 0x90, + 0x79, 0x4e, 0x57, 0x9a, 0x27, 0xb6, 0x29, 0x3a, 0x1c, 0xa2, 0x97, 0xbd, 0x1a, 0xb5, 0xe5, 0xa3, + 0x8c, 0x97, 0xa9, 0x54, 0x0b, 0x9e, 0xe4, 0xa2, 0x10, 0x46, 0x87, 0xbb, 0x4e, 0x56, 0xa1, 0x57, + 0x08, 0x92, 0xe7, 0x30, 0x2a, 0xe8, 0x5d, 0x92, 0x8a, 0x9c, 0xeb, 0xd0, 0x9f, 0x79, 0xf3, 0x41, + 0xec, 0x17, 0xf4, 0xee, 0x3b, 0x6b, 0xd7, 0x64, 0x2e, 0x4a, 0xae, 0xc3, 0x51, 0x43, 0x5e, 0x59, + 0xbb, 0x26, 0x6f, 0xee, 0x0d, 0xd7, 0x21, 0x34, 0xe4, 0x2b, 0x6b, 0xdb, 0x16, 0x6a, 0x9a, 0xf2, + 0xa4, 0xf5, 0x3d, 0x46, 0x45, 0x60, 0xd1, 0xeb, 0xda, 0x7f, 0x57, 0xe5, 0x82, 0x04, 0x1b, 0x2a, + 0x17, 0xa8, 0xab, 0x72, 0xd1, 0xf6, 0x36, 0x54, 0x2e, 0xe2, 0x29, 0xec, 0x5b, 0xc1, 0x8a, 0x9a, + 0x45, 0x56, 0xc9, 0x26, 0x28, 0xdb, 0x2b, 0xe8, 0xdd, 0x5b, 0x8b, 0xa2, 0x2e, 0xfa, 0x6f, 0x07, + 0x48, 0x77, 0x4d, 0xf4, 0x4a, 0x96, 0x9a, 0xdb, 0x6a, 0x52, 0x25, 0x0b, 0xfb, 0x7d, 0x86, 0x6b, + 0x12, 0xc4, 0xbe, 0x05, 0xde, 0x52, 0x93, 0x91, 0x67, 0xb0, 0x6b, 0xa4, 0xa3, 0x76, 0x90, 0x1a, + 0x1a, 0x59, 0x13, 0xf8, 0x55, 0x33, 0xfb, 0xa1, 0x35, 0x2f, 0x19, 0x39, 0x82, 0x81, 0x91, 0x16, + 0xee, 0x23, 0xdc, 0x37, 0xf2, 0x92, 0x91, 0x13, 0xf0, 0x65, 0xce, 0x92, 0x42, 0x32, 0x1e, 0x0e, + 0x30, 0xb7, 0x5d, 0x99, 0xb3, 0x6b, 0xc9, 0xb8, 0xa5, 0x4a, 0xbe, 0x76, 0xd4, 0xd0, 0x51, 0x25, + 0x5f, 0x23, 0x75, 0x0c, 0xc3, 0x1b, 0x51, 0x52, 0x75, 0x5f, 0x0d, 0xb0, 0xb2, 0x6c, 0x5b, 0x14, + 0x5d, 0x57, 0x05, 0x33, 0x6a, 0x28, 0x4e, 0x28, 0x88, 0x03, 0x45, 0xd7, 0x58, 0xef, 0x05, 0x35, + 0x94, 0xcc, 0x20, 0xe0, 0x25, 0x4b, 0x64, 0xea, 0x84, 0x38, 0x28, 0x3f, 0x06, 0x5e, 0xb2, 0x1f, + 0x52, 0x54, 0x91, 0x97, 0xb0, 0x2f, 0x6f, 0xb9, 0x4a, 0x73, 0xb9, 0x4e, 0x0a, 0xaa, 0x7e, 0xe1, + 0x0a, 0x67, 0xe5, 0xc7, 0x93, 0x1a, 0xbe, 0x46, 0x94, 0x7c, 0x02, 0xa3, 0x7a, 0xc5, 0x18, 0x0e, + 0xca, 0x8f, 0x5b, 0xc0, 0x36, 0xd0, 0x48, 0x99, 0xe4, 0x54, 0x2d, 0x39, 0x0e, 0xc8, 0x8f, 0x7d, + 0x23, 0xe5, 0x95, 0xb5, 0xdf, 0xf4, 0x7d, 0xff, 0x60, 0x14, 0xfd, 0xe3, 0x35, 0xad, 0xe7, 0xb9, + 0xa1, 0x4f, 0xe7, 0x44, 0x9b, 0x43, 0xeb, 0x77, 0x0e, 0x2d, 0xfa, 0xdb, 0x83, 0x71, 0x27, 0xdd, + 0xa7, 0xbb, 0x22, 0xd1, 0x2b, 0x38, 0xda, 0xe8, 0x6b, 0xb5, 0xd3, 0x9f, 0xc3, 0x90, 0x59, 0x40, + 0x87, 0xde, 0xac, 0x37, 0x1f, 0x9f, 0x1f, 0xd5, 0x4d, 0xed, 0x8a, 0x2b, 0x49, 0xc4, 0xea, 0xd9, + 0xe0, 0x56, 0xbc, 0xcf, 0x6c, 0xa6, 0xe0, 0x2b, 0x7e, 0x2b, 0xb4, 0x90, 0x65, 0xd5, 0x8b, 0xc6, + 0x8e, 0x3e, 0xab, 0x33, 0xad, 0xa2, 0x54, 0x99, 0x12, 0xe8, 0xe3, 0x06, 0xbb, 0xae, 0xe2, 0xef, + 0xe8, 0x77, 0x0f, 0x26, 0x31, 0x5d, 0x3f, 0xa9, 0xc7, 0x3c, 0x7a, 0x01, 0xfb, 0x4d, 0x4e, 0xef, + 0xc8, 0xfd, 0x0f, 0x0f, 0x75, 0xef, 0xdd, 0xca, 0x0f, 0x9b, 0xfc, 0x29, 0x1c, 0xb4, 0x49, 0xbd, + 0x23, 0xfb, 0x3f, 0x3d, 0x38, 0xb0, 0x25, 0xfe, 0x68, 0xa8, 0xd1, 0x4f, 0x27, 0xfd, 0x9f, 0x61, + 0xd4, 0x64, 0x65, 0xf3, 0xee, 0xdc, 0x21, 0xfe, 0xb6, 0x0f, 0x14, 0x65, 0x4c, 0x18, 0x21, 0x4b, + 0x8d, 0x91, 0x06, 0x71, 0x0b, 0x58, 0x96, 0xf1, 0x9c, 0x3b, 0xb6, 0xe7, 0xd8, 0x06, 0x88, 0xbe, + 0x86, 0xc3, 0x4e, 0xc9, 0x55, 0x73, 0x5e, 0xc2, 0x40, 0x5b, 0xa0, 0xba, 0x9f, 0xc3, 0xba, 0xdc, + 0x56, 0xe9, 0xf8, 0xf3, 0x7f, 0x7b, 0x30, 0x46, 0x90, 0xab, 0x5b, 0xb1, 0xe0, 0xe4, 0x7b, 0x80, + 0xf6, 0x6f, 0x0c, 0x39, 0x79, 0x70, 0x77, 0xed, 0x46, 0x4f, 0xa7, 0xdb, 0x28, 0x17, 0x3d, 0xfa, + 0xe8, 0x0b, 0x8f, 0xbc, 0xd9, 0x7c, 0x82, 0xa6, 0xdb, 0x2e, 0xb8, 0x72, 0xf5, 0x7c, 0x2b, 0xb7, + 0xcd, 0x97, 0x7b, 0xf7, 0x1f, 0xf8, 0xea, 0xee, 0xea, 0x43, 0x5f, 0x1b, 0x2b, 0x83, 0xbe, 0xbe, + 0x81, 0xdd, 0xea, 0x0e, 0xc8, 0x71, 0xb3, 0x04, 0x1b, 0xc7, 0x3a, 0x7d, 0xf6, 0x08, 0xef, 0x7c, + 0xff, 0x2d, 0xf8, 0xf5, 0x2a, 0x92, 0xae, 0x70, 0x23, 0x8b, 0xf0, 0x31, 0xd1, 0x71, 0x71, 0xd1, + 0x5d, 0x87, 0xf0, 0xf1, 0x68, 0x2a, 0x27, 0x27, 0x5b, 0x98, 0xd6, 0xcb, 0xcd, 0x10, 0xff, 0x79, + 0xfc, 0xf2, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4e, 0x5a, 0xc7, 0xa7, 0x60, 0x0a, 0x00, 0x00, } diff --git a/vendor/vendor.json b/vendor/vendor.json index 9ebe6a069..9813fc0ff 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -201,12 +201,12 @@ "revisionTime": "2017-12-31T12:27:32Z" }, { - "checksumSHA1": "pTq0hgmx7nHc5zLcRSSUfGjFVBM=", + "checksumSHA1": "J5+e1uiso5SbD8uR9VFB18dC0Ag=", "path": "gitlab.com/gitlab-org/gitaly-proto/go", - "revision": "a46e5e8996017eb2ae6cf700d1266bca693df067", - "revisionTime": "2018-09-05T17:09:14Z", - "version": "v0.116.0", - "versionExact": "v0.116.0" + "revision": "9b48e996a05d5347013dfc1f845b5c82abeb4450", + "revisionTime": "2018-09-06T18:35:31Z", + "version": "v0.117.0", + "versionExact": "v0.117.0" }, { "checksumSHA1": "nqWNlnMmVpt628zzvyo6Yv2CX5Q=", |