From f5e796192cf2d6d0b3ff3b4f5825ddbb0ddde1de Mon Sep 17 00:00:00 2001 From: Roger Meier Date: Mon, 4 Nov 2019 21:00:57 +0000 Subject: Add tagger and timezone --- internal/git/log/commit.go | 4 + internal/git/log/commit_test.go | 14 +- internal/git/log/tag.go | 8 + internal/git/log/tag_test.go | 8 + internal/service/commit/between_test.go | 52 +++-- internal/service/commit/commits_by_message_test.go | 14 +- internal/service/commit/find_all_commits_test.go | 14 +- internal/service/commit/find_commit_test.go | 112 ++++++----- internal/service/commit/find_commits_test.go | 56 +++--- .../service/commit/last_commit_for_path_test.go | 14 +- internal/service/commit/testhelper_test.go | 7 +- internal/service/ref/refs_test.go | 154 +++++++++++--- internal/service/ref/testhelper_test.go | 42 ++-- internal/service/ref/util.go | 14 +- internal/service/ref/util_test.go | 56 +++--- internal/testhelper/testhelper.go | 5 + proto/go/gitalypb/ref.pb.go | 223 +++++++++++---------- proto/go/gitalypb/shared.pb.go | 127 ++++++------ proto/ref.proto | 1 + proto/shared.proto | 1 + ruby/lib/gitaly_server/utils.rb | 3 +- ruby/proto/gitaly/ref_pb.rb | 1 + ruby/proto/gitaly/shared_pb.rb | 1 + 23 files changed, 565 insertions(+), 366 deletions(-) diff --git a/internal/git/log/commit.go b/internal/git/log/commit.go index e0b7d30db..3fd7a4cfd 100644 --- a/internal/git/log/commit.go +++ b/internal/git/log/commit.go @@ -158,6 +158,10 @@ func parseCommitAuthor(line string) *gitalypb.CommitAuthor { author.Date = ×tamp.Timestamp{Seconds: sec} + if len(secSplit) == 2 { + author.Timezone = []byte(secSplit[1]) + } + return author } diff --git a/internal/git/log/commit_test.go b/internal/git/log/commit_test.go index a70efdb36..120604859 100644 --- a/internal/git/log/commit_test.go +++ b/internal/git/log/commit_test.go @@ -71,9 +71,10 @@ func TestParseRawCommit(t *testing.T) { out: &gitalypb.GitCommit{ Id: info.Oid, Author: &gitalypb.CommitAuthor{ - Name: []byte("Jane Doe"), - Email: []byte("janedoe@example.com"), - Date: ×tamp.Timestamp{Seconds: 9223371974719179007}, + Name: []byte("Jane Doe"), + Email: []byte("janedoe@example.com"), + Date: ×tamp.Timestamp{Seconds: 9223371974719179007}, + Timezone: []byte("+0200"), }, }, }, @@ -83,9 +84,10 @@ func TestParseRawCommit(t *testing.T) { out: &gitalypb.GitCommit{ Id: info.Oid, Author: &gitalypb.CommitAuthor{ - Name: []byte("Jane Doe"), - Email: []byte("janedoe@example.com"), - Date: ×tamp.Timestamp{Seconds: 9223371974719179007}, + Name: []byte("Jane Doe"), + Email: []byte("janedoe@example.com"), + Date: ×tamp.Timestamp{Seconds: 9223371974719179007}, + Timezone: []byte("+0200"), }, }, }, diff --git a/internal/git/log/tag.go b/internal/git/log/tag.go index fca94292d..52c340673 100644 --- a/internal/git/log/tag.go +++ b/internal/git/log/tag.go @@ -44,6 +44,8 @@ func GetTagCatfile(c *catfile.Batch, tagID, tagName string) (*gitalypb.Tag, erro type tagHeader struct { oid string tagType string + tag string + tagger string } func splitRawTag(r io.Reader) (*tagHeader, []byte, error) { @@ -75,6 +77,10 @@ func splitRawTag(r io.Reader) (*tagHeader, []byte, error) { header.oid = value case "type": header.tagType = value + case "tag": + header.tag = value + case "tagger": + header.tagger = value } } @@ -108,6 +114,8 @@ func buildAnnotatedTag(b *catfile.Batch, tagID, name string, header *tagHeader, } } + tag.Tagger = parseCommitAuthor(header.tagger) + return tag, nil } diff --git a/internal/git/log/tag_test.go b/internal/git/log/tag_test.go index 13ef06166..daa8540b4 100644 --- a/internal/git/log/tag_test.go +++ b/internal/git/log/tag_test.go @@ -69,6 +69,8 @@ func TestSplitRawTag(t *testing.T) { header: tagHeader{ oid: "c92faf3e0a557270141be67f206d7cdb99bfc3a2", tagType: "commit", + tag: "v2.6.16.28", + tagger: "Adrian Bunk 1156539089 +0200", }, body: nil, }, @@ -78,6 +80,8 @@ func TestSplitRawTag(t *testing.T) { header: tagHeader{ oid: "c92faf3e0a557270141be67f206d7cdb99bfc3a2", tagType: "commit", + tag: "v2.6.16.28", + tagger: "Adrian Bunk 1156539089 +0200", }, body: []byte("message"), }, @@ -87,6 +91,8 @@ func TestSplitRawTag(t *testing.T) { header: tagHeader{ oid: "c92faf3e0a557270141be67f206d7cdb99bfc3a2", tagType: "commit", + tag: "v2.6.16.28", + tagger: "Adrian Bunk 1156539089 +0200", }, body: []byte{}, }, @@ -96,6 +102,8 @@ func TestSplitRawTag(t *testing.T) { header: tagHeader{ oid: "c92faf3e0a557270141be67f206d7cdb99bfc3a2", tagType: "commit", + tag: "v2.6.16.28", + tagger: "Adrian Bunk 1156539089 +0200", }, body: []byte("Hello world\n\nThis is a message"), }, diff --git a/internal/service/commit/between_test.go b/internal/service/commit/between_test.go index cc4d14c64..78f678aaf 100644 --- a/internal/service/commit/between_test.go +++ b/internal/service/commit/between_test.go @@ -32,14 +32,16 @@ func TestSuccessfulCommitsBetween(t *testing.T) { Subject: []byte("Merge branch 'branch-merged' into 'master'"), Body: []byte("Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0000"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0000"), }, ParentIds: []string{ "1b12f15a11fc6e62177bef08f47bc7b5ce50b141", @@ -52,14 +54,16 @@ func TestSuccessfulCommitsBetween(t *testing.T) { Subject: []byte("Update README.md to include `Usage in testing and development`"), Body: []byte("Update README.md to include `Usage in testing and development`"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Luke \"Jared\" Bennett"), - Email: []byte("lbennett@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1491905339}, + Name: []byte("Luke \"Jared\" Bennett"), + Email: []byte("lbennett@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1491905339}, + Timezone: []byte("+0000"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Luke \"Jared\" Bennett"), - Email: []byte("lbennett@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1491905339}, + Name: []byte("Luke \"Jared\" Bennett"), + Email: []byte("lbennett@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1491905339}, + Timezone: []byte("+0000"), }, ParentIds: []string{"b83d6e391c22777fca1ed3012fce84f633d7fed0"}, BodySize: 62, @@ -69,14 +73,16 @@ func TestSuccessfulCommitsBetween(t *testing.T) { Subject: []byte("Merge branch 'gitlab-test-usage-dev-testing-docs' into 'master'"), Body: []byte("Merge branch 'gitlab-test-usage-dev-testing-docs' into 'master'\r\n\r\nUpdate README.md to include `Usage in testing and development`\r\n\r\nSee merge request !21"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Sean McGivern"), - Email: []byte("sean@mcgivern.me.uk"), - Date: ×tamp.Timestamp{Seconds: 1491906794}, + Name: []byte("Sean McGivern"), + Email: []byte("sean@mcgivern.me.uk"), + Date: ×tamp.Timestamp{Seconds: 1491906794}, + Timezone: []byte("+0000"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Sean McGivern"), - Email: []byte("sean@mcgivern.me.uk"), - Date: ×tamp.Timestamp{Seconds: 1491906794}, + Name: []byte("Sean McGivern"), + Email: []byte("sean@mcgivern.me.uk"), + Date: ×tamp.Timestamp{Seconds: 1491906794}, + Timezone: []byte("+0000"), }, ParentIds: []string{ "b83d6e391c22777fca1ed3012fce84f633d7fed0", @@ -92,12 +98,14 @@ func TestSuccessfulCommitsBetween(t *testing.T) { Name: []byte("Alejandro Rodríguez"), Email: []byte("alejorro70@gmail.com"), // Not the actual commit date, but the biggest we can represent - Date: ×tamp.Timestamp{Seconds: 9223371974719179007}, + Date: ×tamp.Timestamp{Seconds: 9223371974719179007}, + Timezone: []byte("+0000"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Alejandro Rodríguez"), - Email: []byte("alejorro70@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 9223371974719179007}, + Name: []byte("Alejandro Rodríguez"), + Email: []byte("alejorro70@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 9223371974719179007}, + Timezone: []byte("+0000"), }, ParentIds: []string{"e63f41fe459e62e1228fcef60d7189127aeba95a"}, BodySize: 18, diff --git a/internal/service/commit/commits_by_message_test.go b/internal/service/commit/commits_by_message_test.go index 40fb232d6..fd6f43ef7 100644 --- a/internal/service/commit/commits_by_message_test.go +++ b/internal/service/commit/commits_by_message_test.go @@ -86,14 +86,16 @@ func TestSuccessfulCommitsByMessageRequest(t *testing.T) { Subject: []byte("Files, encoding and much more"), Body: []byte("Files, encoding and much more\n\nSigned-off-by: Dmitriy Zaporozhets \n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393488896}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393488896}, + Timezone: []byte("+0200"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393488896}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393488896}, + Timezone: []byte("+0200"), }, ParentIds: []string{"cfe32cf61b73a0d5e9f13e774abde7ff789b1660"}, BodySize: 98, diff --git a/internal/service/commit/find_all_commits_test.go b/internal/service/commit/find_all_commits_test.go index 629207133..e79b1ae45 100644 --- a/internal/service/commit/find_all_commits_test.go +++ b/internal/service/commit/find_all_commits_test.go @@ -159,14 +159,16 @@ func TestSuccessfulFindAllCommitsRequest(t *testing.T) { Subject: []byte("Initial commit"), Body: []byte("Initial commit\n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393488198}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393488198}, + Timezone: []byte("-0800"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393488198}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393488198}, + Timezone: []byte("-0800"), }, ParentIds: nil, BodySize: 15, diff --git a/internal/service/commit/find_commit_test.go b/internal/service/commit/find_commit_test.go index 08cc730c8..dcfa5d019 100644 --- a/internal/service/commit/find_commit_test.go +++ b/internal/service/commit/find_commit_test.go @@ -57,14 +57,16 @@ func TestSuccessfulFindCommitRequest(t *testing.T) { Subject: []byte("adds bar folder and branch-test text file to check Repository merged_to_root_ref method"), Body: []byte("adds bar folder and branch-test text file to check Repository merged_to_root_ref method\n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("tiagonbotelho"), - Email: []byte("tiagonbotelho@hotmail.com"), - Date: ×tamp.Timestamp{Seconds: 1474470806}, + Name: []byte("tiagonbotelho"), + Email: []byte("tiagonbotelho@hotmail.com"), + Date: ×tamp.Timestamp{Seconds: 1474470806}, + Timezone: []byte("+0100"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("tiagonbotelho"), - Email: []byte("tiagonbotelho@hotmail.com"), - Date: ×tamp.Timestamp{Seconds: 1474470806}, + Name: []byte("tiagonbotelho"), + Email: []byte("tiagonbotelho@hotmail.com"), + Date: ×tamp.Timestamp{Seconds: 1474470806}, + Timezone: []byte("+0100"), }, ParentIds: []string{"1b12f15a11fc6e62177bef08f47bc7b5ce50b141"}, BodySize: 88, @@ -78,14 +80,16 @@ func TestSuccessfulFindCommitRequest(t *testing.T) { Subject: []byte("More submodules"), Body: []byte("More submodules\n\nSigned-off-by: Dmitriy Zaporozhets \n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491261}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491261}, + Timezone: []byte("+0200"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491261}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491261}, + Timezone: []byte("+0200"), }, ParentIds: []string{"d14d6c0abdd253381df51a723d58691b2ee1ab08"}, BodySize: 84, @@ -99,14 +103,16 @@ func TestSuccessfulFindCommitRequest(t *testing.T) { Subject: []byte("Merge branch 'branch-merged' into 'master'"), Body: []byte("Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0000"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0000"), }, ParentIds: []string{ "1b12f15a11fc6e62177bef08f47bc7b5ce50b141", @@ -123,14 +129,16 @@ func TestSuccessfulFindCommitRequest(t *testing.T) { Subject: []byte("Initial commit"), Body: []byte("Initial commit\n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393488198}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393488198}, + Timezone: []byte("-0800"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393488198}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393488198}, + Timezone: []byte("-0800"), }, ParentIds: nil, BodySize: 15, @@ -144,14 +152,16 @@ func TestSuccessfulFindCommitRequest(t *testing.T) { Subject: windows1251Message[:len(windows1251Message)-1], Body: windows1251Message, Author: &gitalypb.CommitAuthor{ - Name: []byte("Jacob Vosmaer"), - Email: []byte("jacob@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1512132977}, + Name: []byte("Jacob Vosmaer"), + Email: []byte("jacob@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1512132977}, + Timezone: []byte("+0100"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Jacob Vosmaer"), - Email: []byte("jacob@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1512132977}, + Name: []byte("Jacob Vosmaer"), + Email: []byte("jacob@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1512132977}, + Timezone: []byte("+0100"), }, ParentIds: []string{"e63f41fe459e62e1228fcef60d7189127aeba95a"}, BodySize: 49, @@ -165,14 +175,16 @@ func TestSuccessfulFindCommitRequest(t *testing.T) { Subject: []byte("Hello\xf0world"), Body: []byte("Hello\xf0world\n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Jacob Vosmaer"), - Email: []byte("jacob@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1517328273}, + Name: []byte("Jacob Vosmaer"), + Email: []byte("jacob@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1517328273}, + Timezone: []byte("+0100"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Jacob Vosmaer"), - Email: []byte("jacob@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1517328273}, + Name: []byte("Jacob Vosmaer"), + Email: []byte("jacob@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1517328273}, + Timezone: []byte("+0100"), }, ParentIds: []string{"60ecb67744cb56576c30214ff52294f8ce2def98"}, BodySize: 12, @@ -185,14 +197,16 @@ func TestSuccessfulFindCommitRequest(t *testing.T) { Id: bigCommitID, Subject: []byte("An empty commit with REALLY BIG message"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Scrooge McDuck"), - Email: []byte("scrooge@mcduck.com"), - Date: ×tamp.Timestamp{Seconds: bigCommit.Author.Date.Seconds}, + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: bigCommit.Author.Date.Seconds}, + Timezone: []byte("+0100"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Scrooge McDuck"), - Email: []byte("scrooge@mcduck.com"), - Date: ×tamp.Timestamp{Seconds: bigCommit.Committer.Date.Seconds}, + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: bigCommit.Committer.Date.Seconds}, + Timezone: []byte("+0100"), }, ParentIds: []string{"60ecb67744cb56576c30214ff52294f8ce2def98"}, Body: []byte(bigMessage[:helper.MaxCommitOrTagMessageSize]), @@ -207,14 +221,16 @@ func TestSuccessfulFindCommitRequest(t *testing.T) { Subject: []byte("Add file larger than 1 mb"), Body: []byte("Add file larger than 1 mb\n\nIn order to test Max File Size push rule we need a file larger than 1 MB\n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Ruben Davila"), - Email: []byte("rdavila84@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1523247267}, + Name: []byte("Ruben Davila"), + Email: []byte("rdavila84@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1523247267}, + Timezone: []byte("-0500"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Jacob Vosmaer"), - Email: []byte("jacob@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1527855450}, + Name: []byte("Jacob Vosmaer"), + Email: []byte("jacob@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1527855450}, + Timezone: []byte("+0200"), }, ParentIds: []string{"60ecb67744cb56576c30214ff52294f8ce2def98"}, BodySize: 100, diff --git a/internal/service/commit/find_commits_test.go b/internal/service/commit/find_commits_test.go index dd4c4d58f..3dff50d09 100644 --- a/internal/service/commit/find_commits_test.go +++ b/internal/service/commit/find_commits_test.go @@ -40,14 +40,16 @@ func TestFindCommitsFields(t *testing.T) { Subject: []byte("Merge branch 'branch-merged' into 'master'"), Body: []byte("Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0000"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0000"), }, ParentIds: []string{ "1b12f15a11fc6e62177bef08f47bc7b5ce50b141", @@ -63,14 +65,16 @@ func TestFindCommitsFields(t *testing.T) { Subject: windows1251Message[:len(windows1251Message)-1], Body: windows1251Message, Author: &gitalypb.CommitAuthor{ - Name: []byte("Jacob Vosmaer"), - Email: []byte("jacob@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1512132977}, + Name: []byte("Jacob Vosmaer"), + Email: []byte("jacob@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1512132977}, + Timezone: []byte("+0100"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Jacob Vosmaer"), - Email: []byte("jacob@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1512132977}, + Name: []byte("Jacob Vosmaer"), + Email: []byte("jacob@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1512132977}, + Timezone: []byte("+0100"), }, ParentIds: []string{"e63f41fe459e62e1228fcef60d7189127aeba95a"}, BodySize: 49, @@ -83,14 +87,16 @@ func TestFindCommitsFields(t *testing.T) { Subject: []byte("Hello\xf0world"), Body: []byte("Hello\xf0world\n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Jacob Vosmaer"), - Email: []byte("jacob@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1517328273}, + Name: []byte("Jacob Vosmaer"), + Email: []byte("jacob@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1517328273}, + Timezone: []byte("+0100"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Jacob Vosmaer"), - Email: []byte("jacob@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1517328273}, + Name: []byte("Jacob Vosmaer"), + Email: []byte("jacob@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1517328273}, + Timezone: []byte("+0100"), }, ParentIds: []string{"60ecb67744cb56576c30214ff52294f8ce2def98"}, BodySize: 12, @@ -103,14 +109,16 @@ func TestFindCommitsFields(t *testing.T) { Subject: []byte("Add file larger than 1 mb"), Body: []byte("Add file larger than 1 mb\n\nIn order to test Max File Size push rule we need a file larger than 1 MB\n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Ruben Davila"), - Email: []byte("rdavila84@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1523247267}, + Name: []byte("Ruben Davila"), + Email: []byte("rdavila84@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1523247267}, + Timezone: []byte("-0500"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Jacob Vosmaer"), - Email: []byte("jacob@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1527855450}, + Name: []byte("Jacob Vosmaer"), + Email: []byte("jacob@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1527855450}, + Timezone: []byte("+0200"), }, ParentIds: []string{"60ecb67744cb56576c30214ff52294f8ce2def98"}, BodySize: 100, diff --git a/internal/service/commit/last_commit_for_path_test.go b/internal/service/commit/last_commit_for_path_test.go index ccf581672..d027c6df2 100644 --- a/internal/service/commit/last_commit_for_path_test.go +++ b/internal/service/commit/last_commit_for_path_test.go @@ -26,14 +26,16 @@ func TestSuccessfulLastCommitForPathRequest(t *testing.T) { Subject: []byte("Change some files"), Body: []byte("Change some files\n\nSigned-off-by: Dmitriy Zaporozhets \n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491451}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491451}, + Timezone: []byte("+0200"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491451}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491451}, + Timezone: []byte("+0200"), }, ParentIds: []string{"6f6d7e7ed97bb5f0054f2b1df789b39ca89b6ff9"}, BodySize: 86, diff --git a/internal/service/commit/testhelper_test.go b/internal/service/commit/testhelper_test.go index 4137e9d6c..2c140392a 100644 --- a/internal/service/commit/testhelper_test.go +++ b/internal/service/commit/testhelper_test.go @@ -63,8 +63,9 @@ func newCommitServiceClient(t testing.TB, serviceSocketPath string) (gitalypb.Co func dummyCommitAuthor(ts int64) *gitalypb.CommitAuthor { return &gitalypb.CommitAuthor{ - Name: []byte("Ahmad Sherif"), - Email: []byte("ahmad+gitlab-test@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: ts}, + Name: []byte("Ahmad Sherif"), + Email: []byte("ahmad+gitlab-test@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: ts}, + Timezone: []byte("+0200"), } } diff --git a/internal/service/ref/refs_test.go b/internal/service/ref/refs_test.go index c50631825..a43b3161f 100644 --- a/internal/service/ref/refs_test.go +++ b/internal/service/ref/refs_test.go @@ -447,14 +447,16 @@ func TestSuccessfulFindAllTagsRequest(t *testing.T) { Subject: []byte("More submodules"), Body: []byte("More submodules\n\nSigned-off-by: Dmitriy Zaporozhets \n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491261}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491261}, + Timezone: []byte("+0200"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491261}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491261}, + Timezone: []byte("+0200"), }, ParentIds: []string{"d14d6c0abdd253381df51a723d58691b2ee1ab08"}, BodySize: 84, @@ -516,6 +518,12 @@ func TestSuccessfulFindAllTagsRequest(t *testing.T) { TargetCommit: gitCommit, Message: []byte("commit tag with a commit sha as the name"), MessageSize: 40, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: 1572776879}, + Timezone: []byte("+0100"), + }, }, { Name: []byte("tag-of-tag"), @@ -523,6 +531,12 @@ func TestSuccessfulFindAllTagsRequest(t *testing.T) { TargetCommit: gitCommit, Message: []byte("tag of a tag"), MessageSize: 12, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: 1572776879}, + Timezone: []byte("+0100"), + }, }, { Name: []byte("v1.0.0"), @@ -530,6 +544,12 @@ func TestSuccessfulFindAllTagsRequest(t *testing.T) { TargetCommit: gitCommit, Message: []byte("Release"), MessageSize: 7, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491299}, + Timezone: []byte("+0200"), + }, }, { Name: []byte("v1.1.0"), @@ -539,26 +559,40 @@ func TestSuccessfulFindAllTagsRequest(t *testing.T) { Subject: []byte("Add submodule from gitlab.com"), Body: []byte("Add submodule from gitlab.com\n\nSigned-off-by: Dmitriy Zaporozhets \n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491698}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491698}, + Timezone: []byte("+0200"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491698}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491698}, + Timezone: []byte("+0200"), }, ParentIds: []string{"570e7b2abdd848b95f2f578043fc23bd6f6fd24d"}, BodySize: 98, }, Message: []byte("Version 1.1.0"), MessageSize: 13, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393505709}, + Timezone: []byte("+0200"), + }, }, { Name: []byte("v1.2.0"), Id: string(annotatedTagID), Message: []byte("Blob tag"), MessageSize: 8, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: 1572776879}, + Timezone: []byte("+0100"), + }, }, { Name: []byte("v1.3.0"), @@ -585,6 +619,12 @@ func TestSuccessfulFindAllTagsRequest(t *testing.T) { Message: []byte(bigMessage[:helper.MaxCommitOrTagMessageSize]), MessageSize: int64(len(bigMessage)), TargetCommit: gitCommit, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: 1572776879}, + Timezone: []byte("+0100"), + }, }, } @@ -659,6 +699,12 @@ func TestFindAllTagNestedTags(t *testing.T) { Id: string(tagID), Message: []byte(tagMessage), MessageSize: int64(len([]byte(tagMessage))), + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: 1572776879}, + Timezone: []byte("+0100"), + }, } // only expect the TargetCommit to be populated if it is a commit and if its less than 10 tags deep @@ -913,14 +959,16 @@ func TestSuccessfulFindAllBranchesRequest(t *testing.T) { BodySize: 98, ParentIds: []string{"cfe32cf61b73a0d5e9f13e774abde7ff789b1660"}, Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393488896}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393488896}, + Timezone: []byte("+0200"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393488896}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393488896}, + Timezone: []byte("+0200"), }, }, } @@ -1293,14 +1341,16 @@ func TestSuccessfulFindTagRequest(t *testing.T) { Subject: []byte("More submodules"), Body: []byte("More submodules\n\nSigned-off-by: Dmitriy Zaporozhets \n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491261}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491261}, + Timezone: []byte("+0200"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491261}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491261}, + Timezone: []byte("+0200"), }, ParentIds: []string{"d14d6c0abdd253381df51a723d58691b2ee1ab08"}, BodySize: 84, @@ -1347,6 +1397,12 @@ func TestSuccessfulFindTagRequest(t *testing.T) { TargetCommit: gitCommit, Message: []byte("commit tag with a commit sha as the name"), MessageSize: 40, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: 1572776879}, + Timezone: []byte("+0100"), + }, }, { Name: []byte("tag-of-tag"), @@ -1354,6 +1410,12 @@ func TestSuccessfulFindTagRequest(t *testing.T) { TargetCommit: gitCommit, Message: []byte("tag of a tag"), MessageSize: 12, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: 1572776879}, + Timezone: []byte("+0100"), + }, }, { Name: []byte("v1.0.0"), @@ -1361,6 +1423,12 @@ func TestSuccessfulFindTagRequest(t *testing.T) { TargetCommit: gitCommit, Message: []byte("Release"), MessageSize: 7, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491299}, + Timezone: []byte("+0200"), + }, }, { Name: []byte("v1.1.0"), @@ -1370,26 +1438,40 @@ func TestSuccessfulFindTagRequest(t *testing.T) { Subject: []byte("Add submodule from gitlab.com"), Body: []byte("Add submodule from gitlab.com\n\nSigned-off-by: Dmitriy Zaporozhets \n"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491698}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491698}, + Timezone: []byte("+0200"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491698}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491698}, + Timezone: []byte("+0200"), }, ParentIds: []string{"570e7b2abdd848b95f2f578043fc23bd6f6fd24d"}, BodySize: 98, }, Message: []byte("Version 1.1.0"), MessageSize: 13, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393505709}, + Timezone: []byte("+0200"), + }, }, { Name: []byte("v1.2.0"), Id: string(annotatedTagID), Message: []byte("Blob tag"), MessageSize: 8, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: 1572776879}, + Timezone: []byte("+0100"), + }, }, { Name: []byte("v1.3.0"), @@ -1416,6 +1498,12 @@ func TestSuccessfulFindTagRequest(t *testing.T) { Message: []byte(bigMessage[:helper.MaxCommitOrTagMessageSize]), MessageSize: int64(len(bigMessage)), TargetCommit: gitCommit, + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: 1572776879}, + Timezone: []byte("+0100"), + }, }, } @@ -1496,6 +1584,12 @@ func TestFindTagNestedTag(t *testing.T) { Id: string(tagID), Message: []byte(tagMessage), MessageSize: int64(len([]byte(tagMessage))), + Tagger: &gitalypb.CommitAuthor{ + Name: []byte("Scrooge McDuck"), + Email: []byte("scrooge@mcduck.com"), + Date: ×tamp.Timestamp{Seconds: 1572776879}, + Timezone: []byte("+0100"), + }, } // only expect the TargetCommit to be populated if it is a commit and if its less than 10 tags deep if info.Type == "commit" && tc.depth < log.MaxTagReferenceDepth { diff --git a/internal/service/ref/testhelper_test.go b/internal/service/ref/testhelper_test.go index 7c68f8416..609150b26 100644 --- a/internal/service/ref/testhelper_test.go +++ b/internal/service/ref/testhelper_test.go @@ -26,14 +26,16 @@ var ( ParentIds: []string{"6907208d755b60ebeacb2e9dfea74c92c3449a1f", "38008cb17ce1466d8fec2dfa6f6ab8dcfe5cf49e"}, Subject: []byte("Merge branch 'add-directory-with-space' into 'master'"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Stan Hu"), - Email: []byte("stanhu@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1471558878}, + Name: []byte("Stan Hu"), + Email: []byte("stanhu@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1471558878}, + Timezone: []byte("+0000"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Stan Hu"), - Email: []byte("stanhu@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1471558878}, + Name: []byte("Stan Hu"), + Email: []byte("stanhu@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1471558878}, + Timezone: []byte("+0000"), }, }, "refs/heads/improve/awesome": { @@ -43,14 +45,16 @@ var ( BodySize: 98, ParentIds: []string{"570e7b2abdd848b95f2f578043fc23bd6f6fd24d"}, Author: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491698}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491698}, + Timezone: []byte("+0200"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Dmitriy Zaporozhets"), - Email: []byte("dmitriy.zaporozhets@gmail.com"), - Date: ×tamp.Timestamp{Seconds: 1393491698}, + Name: []byte("Dmitriy Zaporozhets"), + Email: []byte("dmitriy.zaporozhets@gmail.com"), + Date: ×tamp.Timestamp{Seconds: 1393491698}, + Timezone: []byte("+0200"), }, }, "refs/heads/'test'": { @@ -60,14 +64,16 @@ var ( BodySize: 317, ParentIds: []string{"5937ac0a7beb003549fc5fd26fc247adbce4a52e", "4cd80ccab63c82b4bad16faa5193fbd2aa06df40"}, Author: &gitalypb.CommitAuthor{ - Name: []byte("Sytse Sijbrandij"), - Email: []byte("sytse@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1420925009}, + Name: []byte("Sytse Sijbrandij"), + Email: []byte("sytse@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1420925009}, + Timezone: []byte("+0000"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Sytse Sijbrandij"), - Email: []byte("sytse@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1420925009}, + Name: []byte("Sytse Sijbrandij"), + Email: []byte("sytse@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1420925009}, + Timezone: []byte("+0000"), }, }, } diff --git a/internal/service/ref/util.go b/internal/service/ref/util.go index d4b1120eb..eecc0c49d 100644 --- a/internal/service/ref/util.go +++ b/internal/service/ref/util.go @@ -34,17 +34,19 @@ func buildLocalBranch(name []byte, target *gitalypb.GitCommit) *gitalypb.FindLoc if author := target.Author; author != nil { response.CommitAuthor = &gitalypb.FindLocalBranchCommitAuthor{ - Name: author.Name, - Email: author.Email, - Date: author.Date, + Name: author.Name, + Email: author.Email, + Date: author.Date, + Timezone: author.Timezone, } } if committer := target.Committer; committer != nil { response.CommitCommitter = &gitalypb.FindLocalBranchCommitAuthor{ - Name: committer.Name, - Email: committer.Email, - Date: committer.Date, + Name: committer.Name, + Email: committer.Email, + Date: committer.Date, + Timezone: committer.Timezone, } } diff --git a/internal/service/ref/util_test.go b/internal/service/ref/util_test.go index 7a9d40d29..ac09bb8cc 100644 --- a/internal/service/ref/util_test.go +++ b/internal/service/ref/util_test.go @@ -21,14 +21,16 @@ func TestBuildLocalBranch(t *testing.T) { Subject: []byte("Merge branch 'branch-merged' into 'master'"), Body: []byte("Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0200"), }, Committer: &gitalypb.CommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0200"), }, ParentIds: []string{ "1b12f15a11fc6e62177bef08f47bc7b5ce50b141", @@ -41,14 +43,16 @@ func TestBuildLocalBranch(t *testing.T) { CommitId: "b83d6e391c22777fca1ed3012fce84f633d7fed0", CommitSubject: []byte("Merge branch 'branch-merged' into 'master'"), CommitAuthor: &gitalypb.FindLocalBranchCommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0200"), }, CommitCommitter: &gitalypb.FindLocalBranchCommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0200"), }, }, }, @@ -59,9 +63,10 @@ func TestBuildLocalBranch(t *testing.T) { Subject: []byte("Merge branch 'branch-merged' into 'master'"), Body: []byte("Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"), Committer: &gitalypb.CommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0200"), }, ParentIds: []string{ "1b12f15a11fc6e62177bef08f47bc7b5ce50b141", @@ -75,9 +80,10 @@ func TestBuildLocalBranch(t *testing.T) { CommitSubject: []byte("Merge branch 'branch-merged' into 'master'"), CommitAuthor: nil, CommitCommitter: &gitalypb.FindLocalBranchCommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0200"), }, }, }, @@ -88,9 +94,10 @@ func TestBuildLocalBranch(t *testing.T) { Subject: []byte("Merge branch 'branch-merged' into 'master'"), Body: []byte("Merge branch 'branch-merged' into 'master'\r\n\r\nadds bar folder and branch-test text file to check Repository merged_to_root_ref method\r\n\r\n\r\n\r\nSee merge request !12"), Author: &gitalypb.CommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0200"), }, ParentIds: []string{ "1b12f15a11fc6e62177bef08f47bc7b5ce50b141", @@ -103,9 +110,10 @@ func TestBuildLocalBranch(t *testing.T) { CommitId: "b83d6e391c22777fca1ed3012fce84f633d7fed0", CommitSubject: []byte("Merge branch 'branch-merged' into 'master'"), CommitAuthor: &gitalypb.FindLocalBranchCommitAuthor{ - Name: []byte("Job van der Voort"), - Email: []byte("job@gitlab.com"), - Date: ×tamp.Timestamp{Seconds: 1474987066}, + Name: []byte("Job van der Voort"), + Email: []byte("job@gitlab.com"), + Date: ×tamp.Timestamp{Seconds: 1474987066}, + Timezone: []byte("+0200"), }, CommitCommitter: nil, }, diff --git a/internal/testhelper/testhelper.go b/internal/testhelper/testhelper.go index f7809b2ee..d547d865a 100644 --- a/internal/testhelper/testhelper.go +++ b/internal/testhelper/testhelper.go @@ -165,7 +165,12 @@ func MustRunCommand(t testing.TB, stdin io.Reader, name string, args ...string) cmd := exec.Command(name, args...) if name == "git" { + cmd.Env = os.Environ() cmd.Env = append(command.GitEnv, cmd.Env...) + cmd.Env = append(cmd.Env, + "GIT_AUTHOR_DATE=1572776879 +0100", + "GIT_COMMITTER_DATE=1572776879 +0100", + ) } if stdin != nil { diff --git a/proto/go/gitalypb/ref.pb.go b/proto/go/gitalypb/ref.pb.go index 85bf911c9..e9753d9d3 100644 --- a/proto/go/gitalypb/ref.pb.go +++ b/proto/go/gitalypb/ref.pb.go @@ -672,6 +672,7 @@ type FindLocalBranchCommitAuthor struct { Name []byte `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Email []byte `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` Date *timestamp.Timestamp `protobuf:"bytes,3,opt,name=date,proto3" json:"date,omitempty"` + Timezone []byte `protobuf:"bytes,4,opt,name=timezone,proto3" json:"timezone,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -723,6 +724,13 @@ func (m *FindLocalBranchCommitAuthor) GetDate() *timestamp.Timestamp { return nil } +func (m *FindLocalBranchCommitAuthor) GetTimezone() []byte { + if m != nil { + return m.Timezone + } + return nil +} + type FindAllBranchesRequest struct { Repository *Repository `protobuf:"bytes,1,opt,name=repository,proto3" json:"repository,omitempty"` // Only return branches that are merged into root ref @@ -2073,113 +2081,114 @@ func init() { func init() { proto.RegisterFile("ref.proto", fileDescriptor_65d958559ea81b29) } var fileDescriptor_65d958559ea81b29 = []byte{ - // 1693 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x5f, 0x73, 0xdb, 0xb8, - 0x11, 0x0f, 0x65, 0x5b, 0x96, 0x56, 0x8a, 0x4c, 0xc3, 0xff, 0x64, 0x3a, 0x89, 0x1d, 0xe4, 0x9f, - 0xd3, 0xa4, 0x72, 0xa2, 0x4c, 0xfb, 0xd2, 0xce, 0xb4, 0xb2, 0xad, 0x26, 0x6e, 0x1c, 0xd9, 0x85, - 0xd4, 0x24, 0xfd, 0x37, 0x2c, 0x25, 0x41, 0x34, 0x5b, 0x4a, 0x54, 0x48, 0x28, 0x8e, 0x67, 0xda, - 0x3e, 0x75, 0x3a, 0xd3, 0xb9, 0x9b, 0xc9, 0xdb, 0xdd, 0x37, 0xb8, 0xaf, 0x72, 0x0f, 0xf7, 0x8d, - 0xee, 0xe9, 0x86, 0x00, 0x28, 0x92, 0x12, 0x25, 0x7b, 0x4e, 0x97, 0xbb, 0x27, 0x09, 0x8b, 0xdd, - 0xdf, 0x2e, 0x16, 0x8b, 0xc5, 0x0f, 0x84, 0xac, 0x4b, 0x3b, 0xa5, 0xbe, 0xeb, 0x30, 0x07, 0xa5, - 0x4d, 0x8b, 0x19, 0xf6, 0x85, 0x06, 0x4d, 0xdb, 0x69, 0x0a, 0x99, 0x96, 0xf7, 0xce, 0x0c, 0x97, - 0xb6, 0xe5, 0x68, 0xdb, 0x74, 0x1c, 0xd3, 0xa6, 0x7b, 0x7c, 0xd4, 0x1c, 0x74, 0xf6, 0x98, 0xd5, - 0xa5, 0x1e, 0x33, 0xba, 0x7d, 0xa1, 0x80, 0xff, 0x05, 0x2b, 0xc7, 0x96, 0xc7, 0x6a, 0xf4, 0x7c, - 0xdf, 0x76, 0x9a, 0x1e, 0xa1, 0xef, 0x06, 0xd4, 0x63, 0xa8, 0x0c, 0xe0, 0xd2, 0xbe, 0xe3, 0x59, - 0xcc, 0x71, 0x2f, 0x8a, 0xca, 0x8e, 0xb2, 0x9b, 0x2b, 0xa3, 0x92, 0x70, 0x57, 0x22, 0xc3, 0x19, - 0x12, 0xd1, 0x42, 0x5b, 0x90, 0x6d, 0x39, 0xdd, 0xae, 0xc5, 0x74, 0xab, 0x5d, 0x4c, 0xed, 0x28, - 0xbb, 0x59, 0x92, 0x11, 0x82, 0xa3, 0x36, 0x5a, 0x85, 0x05, 0xdb, 0xea, 0x5a, 0xac, 0x38, 0xb7, - 0xa3, 0xec, 0x5e, 0x27, 0x62, 0x80, 0xdf, 0xc0, 0x6a, 0xdc, 0xbb, 0xd7, 0x77, 0x7a, 0x1e, 0x45, - 0xbf, 0x01, 0xb5, 0x47, 0xcf, 0x75, 0x7f, 0x59, 0xba, 0xd3, 0xfc, 0x07, 0x6d, 0x31, 0xaf, 0xa8, - 0xec, 0xcc, 0xed, 0xe6, 0xca, 0x6b, 0x41, 0x10, 0xd2, 0xe6, 0x84, 0xcf, 0x92, 0x42, 0x2f, 0x3a, - 0xf4, 0x30, 0x81, 0x1b, 0xbf, 0xb3, 0x7a, 0xed, 0x43, 0xda, 0x31, 0x06, 0x36, 0xdb, 0x77, 0x8d, - 0x5e, 0xeb, 0xac, 0x66, 0x74, 0xe9, 0x0c, 0xeb, 0xc3, 0xcf, 0xe0, 0xe6, 0x04, 0x4c, 0x19, 0x35, - 0x82, 0xf9, 0x9e, 0xd1, 0xa5, 0x1c, 0x2e, 0x4f, 0xf8, 0x7f, 0x7c, 0x02, 0x9b, 0xbe, 0x51, 0xc5, - 0xb6, 0x43, 0x83, 0x59, 0xb2, 0x8c, 0xcb, 0xa0, 0x25, 0x01, 0xca, 0x10, 0x56, 0x61, 0xc1, 0x77, - 0x2b, 0xb2, 0x95, 0x27, 0x62, 0x80, 0x8f, 0x61, 0x5d, 0xda, 0x34, 0x0c, 0x73, 0xe6, 0x08, 0xf6, - 0x60, 0x63, 0x0c, 0x6d, 0xaa, 0xfb, 0x7f, 0x03, 0xf2, 0x0d, 0x08, 0xed, 0xcc, 0xb8, 0x05, 0xd3, - 0x4b, 0x6c, 0x1d, 0xd2, 0x7d, 0x97, 0x76, 0xac, 0x0f, 0xbc, 0xc6, 0xf2, 0x44, 0x8e, 0xf0, 0x43, - 0x58, 0x89, 0xb9, 0x9f, 0xb2, 0x5b, 0x5f, 0x2b, 0x50, 0xf4, 0x75, 0x8f, 0x9d, 0x96, 0x21, 0xf3, - 0x3b, 0x53, 0xae, 0xd0, 0x6f, 0x61, 0xd1, 0x73, 0x5c, 0xa6, 0x37, 0x2f, 0x78, 0xb8, 0x85, 0xf2, - 0x83, 0xc0, 0x60, 0x92, 0x9b, 0x52, 0xdd, 0x71, 0xd9, 0xfe, 0x05, 0x49, 0x7b, 0xfc, 0x17, 0xff, - 0x02, 0xd2, 0x42, 0x82, 0x32, 0x30, 0x5f, 0xab, 0xbc, 0xaa, 0xaa, 0xd7, 0xd0, 0x12, 0xe4, 0xfe, - 0x78, 0x7a, 0x58, 0x69, 0x54, 0x0f, 0xf5, 0x4a, 0xfd, 0x40, 0x55, 0x90, 0x0a, 0xf9, 0x40, 0x70, - 0x58, 0xad, 0x1f, 0xa8, 0x29, 0xfc, 0x56, 0xd4, 0xdd, 0x88, 0x07, 0xb9, 0xf4, 0x5f, 0x41, 0xa6, - 0x29, 0x65, 0xf2, 0x58, 0x6d, 0x4f, 0x08, 0x2b, 0x30, 0x21, 0x43, 0x03, 0xfc, 0x59, 0x4a, 0xec, - 0x7f, 0x82, 0x56, 0x52, 0x4e, 0xa7, 0xef, 0xd9, 0x3d, 0x28, 0xc8, 0x49, 0x6f, 0xc0, 0x8f, 0xae, - 0xdc, 0xbb, 0xeb, 0x42, 0x5a, 0x17, 0x42, 0xf4, 0x02, 0xa4, 0x40, 0x37, 0x06, 0xec, 0xcc, 0x71, - 0x8b, 0xf3, 0x3c, 0xfb, 0x77, 0x26, 0x44, 0x7d, 0xc0, 0x75, 0x2b, 0x5c, 0x95, 0xe4, 0x5b, 0x91, - 0x11, 0xaa, 0x81, 0x2a, 0x91, 0xc4, 0x0f, 0xa3, 0x6e, 0x71, 0xe1, 0xea, 0x60, 0x4b, 0xc2, 0xea, - 0x20, 0xb0, 0xc5, 0xe7, 0xb0, 0x35, 0x45, 0x3f, 0x31, 0x21, 0xab, 0xb0, 0x40, 0xbb, 0x86, 0x65, - 0xf3, 0x64, 0xe4, 0x89, 0x18, 0xa0, 0x12, 0xcc, 0xb7, 0x0d, 0x46, 0xf9, 0xfa, 0x73, 0x65, 0xad, - 0x24, 0x1a, 0x77, 0x29, 0x68, 0xdc, 0xa5, 0x46, 0xd0, 0xb8, 0x09, 0xd7, 0xc3, 0x5f, 0x28, 0xc3, - 0x43, 0xfd, 0x43, 0x14, 0xea, 0x36, 0xe4, 0xba, 0xd4, 0x35, 0x69, 0x5b, 0x77, 0x7a, 0xb6, 0x28, - 0xd6, 0x0c, 0x01, 0x21, 0x3a, 0xe9, 0xd9, 0x17, 0xe8, 0x01, 0x2c, 0x49, 0x85, 0x61, 0xe9, 0xcc, - 0xf1, 0x43, 0x5e, 0x10, 0xe2, 0x20, 0x08, 0xfc, 0x95, 0x32, 0xec, 0x0f, 0x63, 0x85, 0xb7, 0x3f, - 0x56, 0x78, 0xf7, 0xa3, 0x59, 0x4f, 0x30, 0x29, 0xc9, 0x0a, 0x1b, 0xda, 0x69, 0xcf, 0x21, 0x2d, - 0x64, 0x89, 0xc9, 0x7d, 0x08, 0x69, 0x66, 0xb8, 0x26, 0x65, 0x7c, 0x09, 0xb9, 0xf2, 0x72, 0x80, - 0xff, 0x3c, 0xd8, 0x35, 0x22, 0x15, 0xb0, 0x0e, 0x05, 0xdf, 0x69, 0xc3, 0x30, 0x67, 0x49, 0xdc, - 0x26, 0x64, 0x98, 0x61, 0xea, 0x3c, 0x10, 0xb1, 0xa1, 0x8b, 0x4c, 0xb4, 0x45, 0xfc, 0x04, 0x96, - 0x86, 0x0e, 0x64, 0x02, 0x6e, 0xc2, 0x1c, 0x33, 0x4c, 0x09, 0x9d, 0x0b, 0xa0, 0x7d, 0x0d, 0x5f, - 0x8e, 0x5f, 0x88, 0x4e, 0x29, 0x5a, 0xeb, 0x4c, 0x4d, 0xfa, 0x97, 0xa2, 0xe9, 0x0d, 0x91, 0xa4, - 0xff, 0x6d, 0x98, 0x67, 0x86, 0x19, 0x24, 0x3f, 0x16, 0x00, 0x9f, 0xc0, 0x6f, 0x41, 0x25, 0xb4, - 0x53, 0xfd, 0x60, 0x79, 0x6c, 0xa6, 0x7a, 0x52, 0x61, 0xce, 0xa5, 0x1d, 0x99, 0x11, 0xff, 0x2f, - 0x7e, 0x08, 0xcb, 0x11, 0xe4, 0xf0, 0xc2, 0x78, 0x6f, 0xd8, 0x03, 0xb1, 0x87, 0x19, 0x22, 0x06, - 0xf8, 0x3f, 0xb0, 0x72, 0xe0, 0x52, 0x83, 0xd1, 0xa0, 0xbd, 0x7c, 0xff, 0x38, 0x82, 0x1a, 0x49, - 0x45, 0x6a, 0x64, 0x1b, 0x72, 0x1e, 0x33, 0x5c, 0xa6, 0xf7, 0x1d, 0xab, 0x17, 0x74, 0x1c, 0xe0, - 0xa2, 0x53, 0x5f, 0x82, 0xbf, 0x51, 0x60, 0x35, 0x1e, 0xc0, 0xb0, 0x71, 0xa6, 0x3d, 0x66, 0xb0, - 0x81, 0xc7, 0xbd, 0x17, 0xc2, 0x9e, 0x91, 0xa4, 0x5d, 0xaa, 0x73, 0x55, 0x22, 0x4d, 0xd0, 0x7d, - 0x48, 0x8b, 0x22, 0x96, 0xa5, 0x59, 0x08, 0x8c, 0xa5, 0x99, 0x9c, 0xc5, 0x35, 0x48, 0x0b, 0x4b, - 0x94, 0x86, 0xd4, 0xc9, 0x4b, 0xf5, 0x1a, 0x2a, 0x00, 0x54, 0x09, 0xd1, 0xab, 0x6f, 0x8f, 0xea, - 0x8d, 0xba, 0xaa, 0xf8, 0xfd, 0xdf, 0x1f, 0x1f, 0xd5, 0x5e, 0x57, 0x8e, 0x8f, 0x0e, 0xd5, 0x14, - 0xda, 0x82, 0x8d, 0x88, 0x40, 0xaf, 0x37, 0x2a, 0xa4, 0xa1, 0x9f, 0x9e, 0x1c, 0xd5, 0x1a, 0xea, - 0x1c, 0xfe, 0x1b, 0xac, 0x1c, 0x52, 0x9b, 0x7e, 0xa2, 0x6c, 0xe2, 0x75, 0x58, 0x8d, 0xc3, 0x8b, - 0xd5, 0xe3, 0xbf, 0xc0, 0xb2, 0x5f, 0x81, 0x9f, 0xc6, 0xe9, 0xaf, 0xc5, 0x41, 0x19, 0xd9, 0x9e, - 0x30, 0xc3, 0xca, 0xd4, 0x0c, 0xff, 0x5f, 0x81, 0x65, 0x11, 0x33, 0xa1, 0x9d, 0x99, 0xca, 0xfc, - 0x31, 0x20, 0xfa, 0xa1, 0x45, 0xfb, 0x4c, 0x3f, 0xb7, 0xd8, 0x99, 0x2e, 0xf9, 0x47, 0x8a, 0x37, - 0x46, 0x55, 0xcc, 0xbc, 0xb1, 0xd8, 0xd9, 0x29, 0x97, 0xfb, 0x2b, 0x71, 0x69, 0x27, 0x68, 0x9c, - 0xfc, 0x3f, 0x7e, 0x0a, 0x28, 0x1a, 0x8a, 0x5c, 0xc9, 0x16, 0x64, 0x4d, 0x8b, 0xe9, 0xd4, 0x75, - 0x1d, 0x97, 0x87, 0x92, 0x25, 0x19, 0xd3, 0x62, 0x55, 0x7f, 0x8c, 0x3f, 0x2a, 0x70, 0xdf, 0xa7, - 0xcd, 0x11, 0x02, 0x78, 0xe0, 0xf4, 0x98, 0x61, 0xf5, 0xac, 0x9e, 0x29, 0x9b, 0xdc, 0x8f, 0xcb, - 0xe3, 0x09, 0x3c, 0xb8, 0x34, 0x20, 0xb9, 0xb2, 0xdb, 0x90, 0x17, 0xbb, 0xa0, 0x0b, 0xa6, 0x28, - 0x72, 0x95, 0x6b, 0x86, 0xa6, 0xbf, 0x9f, 0xcf, 0x28, 0x6a, 0x0a, 0x7f, 0xae, 0xc0, 0x1d, 0x1f, - 0x34, 0x20, 0x99, 0x3f, 0xf1, 0x12, 0x8f, 0xe0, 0xee, 0xf4, 0x68, 0xc2, 0x9d, 0x0b, 0xee, 0x83, - 0x60, 0x71, 0x19, 0x79, 0x21, 0x04, 0x2b, 0x1b, 0xc0, 0xda, 0x73, 0xea, 0x23, 0xbd, 0xa2, 0x9e, - 0x67, 0x98, 0xb3, 0x5d, 0xdc, 0x1b, 0xe0, 0xdf, 0x37, 0xba, 0xd5, 0x16, 0x65, 0x95, 0xf5, 0xaf, - 0x37, 0xf3, 0xa8, 0xed, 0xfb, 0x4a, 0xa9, 0x73, 0x24, 0x0c, 0x06, 0xff, 0x09, 0xd6, 0x47, 0xdd, - 0xca, 0x98, 0x8b, 0xb0, 0xd8, 0x15, 0xb2, 0xe0, 0x0a, 0x93, 0x43, 0xb4, 0xe6, 0x5f, 0xa7, 0x3e, - 0x3a, 0x4f, 0x46, 0x96, 0x2c, 0x70, 0x70, 0xb1, 0x0e, 0x32, 0xbc, 0xf8, 0xf0, 0x19, 0xac, 0xc9, - 0x77, 0x9c, 0xc8, 0xc6, 0x27, 0x7b, 0x47, 0xe2, 0x2a, 0xac, 0x8f, 0x7a, 0x92, 0x8b, 0x78, 0x04, - 0x8b, 0x42, 0x2b, 0xb8, 0xdd, 0x12, 0xae, 0xfe, 0x40, 0x03, 0x7b, 0xe2, 0x7d, 0x58, 0xb1, 0x6d, - 0x42, 0xbb, 0x4e, 0xd0, 0xbb, 0x66, 0xa6, 0x50, 0x2e, 0x07, 0x0b, 0xc9, 0x40, 0xd6, 0x57, 0xf0, - 0x45, 0x9c, 0x0f, 0xbc, 0x14, 0x0f, 0xc8, 0x04, 0xa7, 0x72, 0x09, 0x3f, 0x1b, 0xa3, 0x47, 0xa3, - 0x1d, 0x2c, 0xa4, 0xe1, 0x7f, 0x87, 0xa5, 0x53, 0xa3, 0xf5, 0xcf, 0x59, 0x1b, 0xd8, 0x26, 0x64, - 0x0c, 0xdb, 0xd6, 0x79, 0x5b, 0x12, 0xa4, 0x6f, 0xd1, 0xf0, 0xe3, 0xeb, 0x78, 0x18, 0x81, 0x1a, - 0x7a, 0x10, 0x11, 0x96, 0xff, 0xbb, 0x04, 0x40, 0x68, 0xa7, 0x4e, 0xdd, 0xf7, 0x56, 0x8b, 0x22, - 0x07, 0xd6, 0x12, 0x9f, 0xc4, 0xe8, 0x6e, 0x94, 0xd6, 0x4d, 0x7a, 0x85, 0x6b, 0xf7, 0x2e, 0xd1, - 0x92, 0x37, 0x49, 0xf6, 0xdb, 0x2f, 0x77, 0x17, 0x32, 0x29, 0x4d, 0x79, 0x8a, 0xce, 0x86, 0x04, - 0x29, 0xd2, 0x6b, 0xd0, 0xed, 0x44, 0x12, 0x19, 0x7d, 0xe8, 0x6a, 0x78, 0x9a, 0xca, 0x98, 0x9f, - 0x27, 0x0a, 0xd2, 0x05, 0x79, 0x8b, 0xbc, 0x72, 0xd1, 0xad, 0x11, 0x8c, 0x91, 0xc7, 0xb4, 0xb6, - 0x3d, 0x71, 0x3e, 0xc9, 0xc1, 0x1f, 0x20, 0x17, 0x79, 0x96, 0x22, 0x2d, 0x6a, 0x1c, 0x7f, 0x2a, - 0x6b, 0x5b, 0x89, 0x73, 0xe3, 0xd9, 0xa1, 0xe2, 0xca, 0x8d, 0x3d, 0xfa, 0xd0, 0xce, 0x65, 0x2f, - 0x4e, 0xed, 0xf6, 0x14, 0x8d, 0xe9, 0xa9, 0x19, 0x3a, 0xb9, 0x35, 0x91, 0xc6, 0x27, 0xa7, 0x66, - 0xba, 0x83, 0xba, 0x48, 0x8d, 0x24, 0xaf, 0xf1, 0xd4, 0xc4, 0xb9, 0x71, 0x3c, 0x35, 0x23, 0x6c, - 0x37, 0x0e, 0x5a, 0x85, 0x45, 0xc9, 0xc6, 0xd1, 0x7a, 0xd4, 0x28, 0xe4, 0xff, 0xda, 0xc6, 0x98, - 0x7c, 0x3c, 0xc7, 0xef, 0x44, 0xc9, 0x8f, 0x1d, 0xe2, 0x78, 0xc9, 0x4f, 0x6a, 0x2c, 0xf1, 0x92, - 0x9f, 0xd8, 0x09, 0xe2, 0x91, 0xbf, 0x84, 0xec, 0x90, 0x39, 0xa3, 0x62, 0x78, 0xa0, 0xe3, 0x34, - 0x5d, 0xdb, 0x4c, 0x98, 0x19, 0x8f, 0xbf, 0x01, 0xf9, 0x28, 0x59, 0x45, 0x5b, 0xc9, 0x14, 0x56, - 0x40, 0xde, 0x98, 0xc6, 0x6f, 0x25, 0xaa, 0x22, 0x51, 0xa3, 0x24, 0x30, 0x44, 0x4d, 0x60, 0x9e, - 0x21, 0x6a, 0x22, 0x6f, 0x8c, 0xa0, 0xd6, 0x00, 0x42, 0x96, 0x87, 0x36, 0xa3, 0xa9, 0x8b, 0x23, - 0x6a, 0x49, 0x53, 0xe3, 0x6b, 0xaf, 0x01, 0x84, 0x5c, 0x2b, 0xc4, 0x1b, 0xa3, 0x82, 0x21, 0xde, - 0x38, 0x35, 0x8b, 0xc6, 0xf7, 0x51, 0x81, 0xed, 0x4b, 0x78, 0x0f, 0x2a, 0x05, 0x50, 0x57, 0x63, - 0x6c, 0xda, 0xde, 0x95, 0xf5, 0x93, 0x4a, 0xe5, 0x7f, 0x0a, 0xdc, 0x98, 0x46, 0x53, 0xd0, 0xa3, - 0x28, 0xfc, 0x25, 0xd4, 0x4a, 0x7b, 0x7c, 0x35, 0xe5, 0xa4, 0x40, 0xfe, 0x0a, 0x85, 0x38, 0xd9, - 0x40, 0x37, 0x87, 0xd7, 0x71, 0x12, 0xf7, 0xd1, 0x6e, 0x4d, 0x9a, 0x9e, 0x80, 0x1e, 0x67, 0x01, - 0x21, 0x7a, 0x22, 0x0f, 0x09, 0xd1, 0x93, 0xc9, 0x43, 0x1c, 0xfd, 0x35, 0xe4, 0xa3, 0x5f, 0xa5, - 0xc3, 0x62, 0x4e, 0xf8, 0x52, 0x1e, 0x16, 0x73, 0xd2, 0x87, 0xec, 0x38, 0xee, 0x0b, 0xc8, 0x04, - 0x17, 0x2a, 0x1a, 0xb6, 0x9a, 0x91, 0x4b, 0x5c, 0x2b, 0x8e, 0x4f, 0x8c, 0x15, 0xde, 0xfe, 0x93, - 0x3f, 0xfb, 0x5a, 0xb6, 0xd1, 0x2c, 0xb5, 0x9c, 0xee, 0x9e, 0xf8, 0xfb, 0x73, 0xc7, 0x35, 0xf7, - 0x84, 0xad, 0xf8, 0xdc, 0xbf, 0x67, 0x3a, 0x72, 0xdc, 0x6f, 0x36, 0xd3, 0x5c, 0xf4, 0xec, 0xbb, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x4b, 0x81, 0x9a, 0x3e, 0x18, 0x00, 0x00, + // 1706 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdb, 0x72, 0x1b, 0x4d, + 0x11, 0xfe, 0x57, 0xb6, 0x65, 0xa9, 0xa5, 0xc8, 0xeb, 0xf1, 0x49, 0x5e, 0x27, 0xb1, 0x33, 0x39, + 0x39, 0x24, 0xc8, 0x89, 0x52, 0x70, 0x03, 0x55, 0x20, 0xdb, 0x22, 0x31, 0x71, 0x64, 0x33, 0x12, + 0x49, 0x38, 0xd5, 0xb2, 0x92, 0x46, 0xeb, 0x85, 0x95, 0x56, 0xd9, 0x1d, 0x25, 0x31, 0x05, 0x5c, + 0x51, 0x54, 0x51, 0x50, 0x95, 0x0b, 0xaa, 0xe0, 0x0d, 0x78, 0x15, 0x2e, 0x78, 0x23, 0xae, 0xa8, + 0x9d, 0x99, 0x3d, 0x49, 0x2b, 0xd9, 0x85, 0x08, 0xff, 0x55, 0x34, 0x3d, 0xdd, 0x5f, 0xf7, 0xf4, + 0xf4, 0x76, 0x7f, 0xe3, 0x40, 0xde, 0xa5, 0xbd, 0xca, 0xd0, 0x75, 0x98, 0x83, 0xb2, 0xa6, 0xc5, + 0x0c, 0xfb, 0x52, 0x83, 0xb6, 0xed, 0xb4, 0x85, 0x4c, 0x2b, 0x7a, 0x17, 0x86, 0x4b, 0xbb, 0x72, + 0xb5, 0x6b, 0x3a, 0x8e, 0x69, 0xd3, 0x03, 0xbe, 0x6a, 0x8f, 0x7a, 0x07, 0xcc, 0xea, 0x53, 0x8f, + 0x19, 0xfd, 0xa1, 0x50, 0xc0, 0xbf, 0x85, 0xb5, 0x53, 0xcb, 0x63, 0x0d, 0xfa, 0xf1, 0xd0, 0x76, + 0xda, 0x1e, 0xa1, 0xef, 0x47, 0xd4, 0x63, 0xa8, 0x0a, 0xe0, 0xd2, 0xa1, 0xe3, 0x59, 0xcc, 0x71, + 0x2f, 0xcb, 0xca, 0x9e, 0xb2, 0x5f, 0xa8, 0xa2, 0x8a, 0x70, 0x57, 0x21, 0xe1, 0x0e, 0x89, 0x69, + 0xa1, 0x1d, 0xc8, 0x77, 0x9c, 0x7e, 0xdf, 0x62, 0xba, 0xd5, 0x2d, 0x67, 0xf6, 0x94, 0xfd, 0x3c, + 0xc9, 0x09, 0xc1, 0x49, 0x17, 0xad, 0xc3, 0x92, 0x6d, 0xf5, 0x2d, 0x56, 0x5e, 0xd8, 0x53, 0xf6, + 0x6f, 0x10, 0xb1, 0xc0, 0x6f, 0x61, 0x3d, 0xe9, 0xdd, 0x1b, 0x3a, 0x03, 0x8f, 0xa2, 0xef, 0x81, + 0x3a, 0xa0, 0x1f, 0x75, 0xff, 0x58, 0xba, 0xd3, 0xfe, 0x15, 0xed, 0x30, 0xaf, 0xac, 0xec, 0x2d, + 0xec, 0x17, 0xaa, 0x1b, 0x41, 0x10, 0xd2, 0xe6, 0x8c, 0xef, 0x92, 0xd2, 0x20, 0xbe, 0xf4, 0x30, + 0x81, 0x9b, 0x3f, 0xb0, 0x06, 0xdd, 0x63, 0xda, 0x33, 0x46, 0x36, 0x3b, 0x74, 0x8d, 0x41, 0xe7, + 0xa2, 0x61, 0xf4, 0xe9, 0x1c, 0xe7, 0xc3, 0xcf, 0xe1, 0xd6, 0x14, 0x4c, 0x19, 0x35, 0x82, 0xc5, + 0x81, 0xd1, 0xa7, 0x1c, 0xae, 0x48, 0xf8, 0x6f, 0x7c, 0x06, 0xdb, 0xbe, 0x51, 0xcd, 0xb6, 0x23, + 0x83, 0x79, 0xb2, 0x8c, 0xab, 0xa0, 0xa5, 0x01, 0xca, 0x10, 0xd6, 0x61, 0xc9, 0x77, 0x2b, 0xb2, + 0x55, 0x24, 0x62, 0x81, 0x4f, 0x61, 0x53, 0xda, 0xb4, 0x0c, 0x73, 0xee, 0x08, 0x0e, 0x60, 0x6b, + 0x02, 0x6d, 0xa6, 0xfb, 0xdf, 0x01, 0xf2, 0x0d, 0x08, 0xed, 0xcd, 0x79, 0x05, 0xb3, 0x4b, 0x6c, + 0x13, 0xb2, 0x43, 0x97, 0xf6, 0xac, 0x4f, 0xbc, 0xc6, 0x8a, 0x44, 0xae, 0xf0, 0x23, 0x58, 0x4b, + 0xb8, 0x9f, 0x71, 0x5b, 0xff, 0x54, 0xa0, 0xec, 0xeb, 0x9e, 0x3a, 0x1d, 0x43, 0xe6, 0x77, 0xae, + 0x5c, 0xa1, 0xef, 0xc3, 0xb2, 0xe7, 0xb8, 0x4c, 0x6f, 0x5f, 0xf2, 0x70, 0x4b, 0xd5, 0x87, 0x81, + 0xc1, 0x34, 0x37, 0x95, 0xa6, 0xe3, 0xb2, 0xc3, 0x4b, 0x92, 0xf5, 0xf8, 0xbf, 0xf8, 0x5b, 0x90, + 0x15, 0x12, 0x94, 0x83, 0xc5, 0x46, 0xed, 0x75, 0x5d, 0xfd, 0x0a, 0xad, 0x40, 0xe1, 0xc7, 0xe7, + 0xc7, 0xb5, 0x56, 0xfd, 0x58, 0xaf, 0x35, 0x8f, 0x54, 0x05, 0xa9, 0x50, 0x0c, 0x04, 0xc7, 0xf5, + 0xe6, 0x91, 0x9a, 0xc1, 0xef, 0x44, 0xdd, 0x8d, 0x79, 0x90, 0x47, 0xff, 0x0e, 0xe4, 0xda, 0x52, + 0x26, 0x3f, 0xab, 0xdd, 0x29, 0x61, 0x05, 0x26, 0x24, 0x34, 0xc0, 0x7f, 0xce, 0x88, 0xfb, 0x4f, + 0xd1, 0x4a, 0xcb, 0xe9, 0xec, 0x3b, 0xbb, 0x0f, 0x25, 0xb9, 0xe9, 0x8d, 0xf8, 0xa7, 0x2b, 0xef, + 0xee, 0x86, 0x90, 0x36, 0x85, 0x10, 0xbd, 0x04, 0x29, 0xd0, 0x8d, 0x11, 0xbb, 0x70, 0xdc, 0xf2, + 0x22, 0xcf, 0xfe, 0xdd, 0x29, 0x51, 0x1f, 0x71, 0xdd, 0x1a, 0x57, 0x25, 0xc5, 0x4e, 0x6c, 0x85, + 0x1a, 0xa0, 0x4a, 0x24, 0xf1, 0x0f, 0xa3, 0x6e, 0x79, 0xe9, 0xfa, 0x60, 0x2b, 0xc2, 0xea, 0x28, + 0xb0, 0xc5, 0x7f, 0x55, 0x60, 0x67, 0x86, 0x41, 0x6a, 0x46, 0xd6, 0x61, 0x89, 0xf6, 0x0d, 0xcb, + 0xe6, 0xd9, 0x28, 0x12, 0xb1, 0x40, 0x15, 0x58, 0xec, 0x1a, 0x8c, 0xf2, 0x04, 0x14, 0xaa, 0x5a, + 0x45, 0x74, 0xee, 0x4a, 0xd0, 0xb9, 0x2b, 0xad, 0xa0, 0x73, 0x13, 0xae, 0x87, 0x34, 0xc8, 0xf9, + 0xcd, 0xfc, 0x37, 0xce, 0x80, 0xf2, 0x74, 0x14, 0x49, 0xb8, 0xc6, 0x7f, 0x53, 0xc2, 0x2f, 0xfe, + 0x7f, 0x51, 0xc5, 0xbb, 0x50, 0xe8, 0x53, 0xd7, 0xa4, 0x5d, 0xdd, 0x19, 0xd8, 0xa2, 0x92, 0x73, + 0x04, 0x84, 0xe8, 0x6c, 0x60, 0x5f, 0xa2, 0x87, 0xb0, 0x22, 0x15, 0xc2, 0xba, 0x5a, 0xe0, 0x1d, + 0xa0, 0x24, 0xc4, 0x41, 0x10, 0xf8, 0x1f, 0x4a, 0xd8, 0x3c, 0x26, 0xaa, 0xf2, 0x70, 0xa2, 0x2a, + 0x1f, 0xc4, 0xaf, 0x24, 0xc5, 0xa4, 0x22, 0xcb, 0x2f, 0xb4, 0xd3, 0x5e, 0x40, 0x56, 0xc8, 0x52, + 0x13, 0xff, 0x08, 0xb2, 0xcc, 0x70, 0x4d, 0xca, 0xf8, 0x11, 0x0a, 0xd5, 0xd5, 0x00, 0xff, 0x45, + 0x70, 0xa5, 0x44, 0x2a, 0x60, 0x1d, 0x4a, 0xbe, 0xd3, 0x96, 0x61, 0xce, 0x93, 0xb8, 0x6d, 0xc8, + 0x31, 0xc3, 0xd4, 0x79, 0x20, 0xe2, 0xb2, 0x97, 0x99, 0xe8, 0x99, 0xf8, 0x29, 0xac, 0x84, 0x0e, + 0x64, 0x02, 0x6e, 0xc1, 0x02, 0x33, 0x4c, 0x09, 0x5d, 0x08, 0xa0, 0x7d, 0x0d, 0x5f, 0x8e, 0x5f, + 0x8a, 0x36, 0x2a, 0xfa, 0xee, 0x5c, 0x1d, 0xfc, 0xdb, 0xa2, 0x23, 0x86, 0x48, 0xd2, 0xff, 0x2e, + 0x2c, 0x32, 0xc3, 0x0c, 0x92, 0x9f, 0x08, 0x80, 0x6f, 0xe0, 0x77, 0xa0, 0x12, 0xda, 0xab, 0x7f, + 0xb2, 0x3c, 0x36, 0x57, 0x3d, 0xa9, 0xb0, 0xe0, 0xd2, 0x9e, 0xcc, 0x88, 0xff, 0x13, 0x3f, 0x82, + 0xd5, 0x18, 0x72, 0x34, 0x4d, 0x3e, 0x18, 0xf6, 0x48, 0xdc, 0x61, 0x8e, 0x88, 0x05, 0xfe, 0x3d, + 0xac, 0x1d, 0xb9, 0xd4, 0x60, 0x34, 0xe8, 0x3d, 0xff, 0x7d, 0x1c, 0x41, 0x8d, 0x64, 0x62, 0x35, + 0xb2, 0x0b, 0x05, 0x8f, 0x19, 0x2e, 0xd3, 0x87, 0x8e, 0x35, 0x08, 0xda, 0x11, 0x70, 0xd1, 0xb9, + 0x2f, 0xc1, 0xff, 0x52, 0x60, 0x3d, 0x19, 0x40, 0xd8, 0x55, 0xb3, 0x1e, 0x33, 0xd8, 0xc8, 0xe3, + 0xde, 0x4b, 0x51, 0x43, 0x49, 0xd3, 0xae, 0x34, 0xb9, 0x2a, 0x91, 0x26, 0xe8, 0x01, 0x64, 0x45, + 0x11, 0xcb, 0xd2, 0x2c, 0x05, 0xc6, 0xd2, 0x4c, 0xee, 0xe2, 0x06, 0x64, 0x85, 0x25, 0xca, 0x42, + 0xe6, 0xec, 0x95, 0xfa, 0x15, 0x2a, 0x01, 0xd4, 0x09, 0xd1, 0xeb, 0xef, 0x4e, 0x9a, 0xad, 0xa6, + 0xaa, 0xf8, 0xc3, 0xc1, 0x5f, 0x9f, 0x34, 0xde, 0xd4, 0x4e, 0x4f, 0x8e, 0xd5, 0x0c, 0xda, 0x81, + 0xad, 0x98, 0x40, 0x6f, 0xb6, 0x6a, 0xa4, 0xa5, 0x9f, 0x9f, 0x9d, 0x34, 0x5a, 0xea, 0x02, 0xfe, + 0x05, 0xac, 0x1d, 0x53, 0x9b, 0x7e, 0xa1, 0x6c, 0xe2, 0x4d, 0x58, 0x4f, 0xc2, 0x8b, 0xd3, 0xe3, + 0x9f, 0xc1, 0xaa, 0x5f, 0x81, 0x5f, 0xc6, 0xe9, 0x77, 0xc5, 0x87, 0x32, 0x76, 0x3d, 0x51, 0x86, + 0x95, 0x99, 0x19, 0xfe, 0x93, 0x02, 0xab, 0x22, 0x66, 0x42, 0x7b, 0x73, 0x95, 0xf9, 0x13, 0x40, + 0xf4, 0x53, 0x87, 0x0e, 0x99, 0xfe, 0xd1, 0x62, 0x17, 0xba, 0x24, 0x27, 0x19, 0xde, 0x18, 0x55, + 0xb1, 0xf3, 0xd6, 0x62, 0x17, 0xe7, 0x5c, 0xee, 0x9f, 0xc4, 0xa5, 0xbd, 0xa0, 0x71, 0xf2, 0xdf, + 0xf8, 0x19, 0xa0, 0x78, 0x28, 0xf2, 0x24, 0x3b, 0x90, 0x37, 0x2d, 0xa6, 0x53, 0xd7, 0x75, 0x5c, + 0x1e, 0x4a, 0x9e, 0xe4, 0x4c, 0x8b, 0xd5, 0xfd, 0x35, 0xfe, 0xac, 0xc0, 0x03, 0x9f, 0x53, 0xc7, + 0xd8, 0xe1, 0x91, 0x33, 0x60, 0x86, 0x35, 0xb0, 0x06, 0xa6, 0x6c, 0x72, 0xff, 0x5f, 0x92, 0x4f, + 0xe0, 0xe1, 0x95, 0x01, 0xc9, 0x93, 0xdd, 0x81, 0xa2, 0xb8, 0x05, 0x5d, 0xd0, 0x48, 0x91, 0xab, + 0x42, 0x3b, 0x32, 0xfd, 0xe1, 0x62, 0x4e, 0x51, 0x33, 0xf8, 0x2f, 0x0a, 0xdc, 0xf5, 0x41, 0x03, + 0x06, 0xfa, 0x35, 0x1f, 0xf1, 0x04, 0xee, 0xcd, 0x8e, 0x26, 0xba, 0xb9, 0x60, 0x1e, 0x04, 0x87, + 0xcb, 0xc9, 0x81, 0x10, 0x9c, 0x6c, 0x04, 0x1b, 0x2f, 0xa8, 0x8f, 0xf4, 0x9a, 0x7a, 0x9e, 0x61, + 0xce, 0x37, 0xb8, 0xb7, 0xc0, 0x9f, 0x37, 0xba, 0xd5, 0x15, 0x65, 0x95, 0xf7, 0xc7, 0x9b, 0x79, + 0xd2, 0xf5, 0x7d, 0x65, 0xd4, 0x05, 0x12, 0x05, 0x83, 0x7f, 0x02, 0x9b, 0xe3, 0x6e, 0x65, 0xcc, + 0x65, 0x58, 0xee, 0x0b, 0x59, 0x30, 0xc2, 0xe4, 0x12, 0x6d, 0xf8, 0xe3, 0xd4, 0x47, 0xe7, 0xc9, + 0xc8, 0x93, 0x25, 0x0e, 0x2e, 0xce, 0x41, 0xc2, 0xc1, 0x87, 0x2f, 0x60, 0x43, 0x3e, 0xf2, 0x44, + 0x36, 0xbe, 0xd8, 0x23, 0x13, 0xd7, 0x61, 0x73, 0xdc, 0x93, 0x3c, 0xc4, 0x63, 0x58, 0x16, 0x5a, + 0xc1, 0x74, 0x4b, 0x19, 0xfd, 0x81, 0x06, 0xf6, 0xc4, 0xe3, 0xb1, 0x66, 0xdb, 0x84, 0xf6, 0x9d, + 0xa0, 0x77, 0xcd, 0x4d, 0xa1, 0x5c, 0x0e, 0x16, 0x91, 0x81, 0xbc, 0xaf, 0xe0, 0x8b, 0x38, 0x1f, + 0x78, 0x25, 0x5e, 0x97, 0x29, 0x4e, 0xe5, 0x11, 0xbe, 0x31, 0x41, 0x8f, 0xc6, 0x3b, 0x58, 0xc4, + 0xd1, 0x7f, 0x09, 0x2b, 0xe7, 0x46, 0xe7, 0xd7, 0xf3, 0x36, 0xb0, 0x6d, 0xc8, 0x19, 0xb6, 0xad, + 0xf3, 0xb6, 0x24, 0x48, 0xdf, 0xb2, 0xe1, 0xc7, 0xd7, 0xf3, 0x30, 0x02, 0x35, 0xf2, 0x20, 0x22, + 0xac, 0xfe, 0x61, 0x05, 0x80, 0xd0, 0x5e, 0x93, 0xba, 0x1f, 0xac, 0x0e, 0x45, 0x0e, 0x6c, 0xa4, + 0xbe, 0x97, 0xd1, 0xbd, 0x38, 0xad, 0x9b, 0xf6, 0x44, 0xd7, 0xee, 0x5f, 0xa1, 0x25, 0x27, 0x49, + 0xfe, 0xdf, 0x7f, 0xdf, 0x5f, 0xca, 0x65, 0x34, 0xe5, 0x19, 0xba, 0x08, 0x09, 0x52, 0xac, 0xd7, + 0xa0, 0x3b, 0xa9, 0x24, 0x32, 0xfe, 0x0a, 0xd6, 0xf0, 0x2c, 0x95, 0x09, 0x3f, 0x4f, 0x15, 0xa4, + 0x0b, 0xf2, 0x16, 0x7b, 0x02, 0xa3, 0xdb, 0x63, 0x18, 0x63, 0x2f, 0x6d, 0x6d, 0x77, 0xea, 0x7e, + 0x9a, 0x83, 0x1f, 0x41, 0x21, 0xf6, 0x66, 0x45, 0x5a, 0xdc, 0x38, 0xf9, 0x8e, 0xd6, 0x76, 0x52, + 0xf7, 0x26, 0xb3, 0x43, 0xc5, 0xc8, 0x4d, 0xbc, 0x08, 0xd1, 0xde, 0x55, 0xcf, 0x51, 0xed, 0xce, + 0x0c, 0x8d, 0xd9, 0xa9, 0x09, 0x9d, 0xdc, 0x9e, 0x4a, 0xe3, 0xd3, 0x53, 0x33, 0xdb, 0x41, 0x53, + 0xa4, 0x46, 0x92, 0xd7, 0x64, 0x6a, 0x92, 0xdc, 0x38, 0x99, 0x9a, 0x31, 0xb6, 0x9b, 0x04, 0xad, + 0xc3, 0xb2, 0x64, 0xe3, 0x68, 0x33, 0x6e, 0x14, 0xf1, 0x7f, 0x6d, 0x6b, 0x42, 0x3e, 0x99, 0xe3, + 0xf7, 0xa2, 0xe4, 0x27, 0x3e, 0xe2, 0x64, 0xc9, 0x4f, 0x6b, 0x2c, 0xc9, 0x92, 0x9f, 0xda, 0x09, + 0x92, 0x91, 0xbf, 0x82, 0x7c, 0xc8, 0x9c, 0x51, 0x39, 0xfa, 0xa0, 0x93, 0x34, 0x5d, 0xdb, 0x4e, + 0xd9, 0x99, 0x8c, 0xbf, 0x05, 0xc5, 0x38, 0x59, 0x45, 0x3b, 0xe9, 0x14, 0x56, 0x40, 0xde, 0x9c, + 0xc5, 0x6f, 0x25, 0xaa, 0x22, 0x51, 0xe3, 0x24, 0x30, 0x42, 0x4d, 0x61, 0x9e, 0x11, 0x6a, 0x2a, + 0x6f, 0x8c, 0xa1, 0x36, 0x00, 0x22, 0x96, 0x87, 0xb6, 0xe3, 0xa9, 0x4b, 0x22, 0x6a, 0x69, 0x5b, + 0x93, 0x67, 0x6f, 0x00, 0x44, 0x5c, 0x2b, 0xc2, 0x9b, 0xa0, 0x82, 0x11, 0xde, 0x24, 0x35, 0x8b, + 0xc7, 0xf7, 0x59, 0x81, 0xdd, 0x2b, 0x78, 0x0f, 0xaa, 0x04, 0x50, 0xd7, 0x63, 0x6c, 0xda, 0xc1, + 0xb5, 0xf5, 0xd3, 0x4a, 0xe5, 0x8f, 0x0a, 0xdc, 0x9c, 0x45, 0x53, 0xd0, 0xe3, 0x38, 0xfc, 0x15, + 0xd4, 0x4a, 0x7b, 0x72, 0x3d, 0xe5, 0xb4, 0x40, 0x7e, 0x0e, 0xa5, 0x24, 0xd9, 0x40, 0xb7, 0xc2, + 0x71, 0x9c, 0xc6, 0x7d, 0xb4, 0xdb, 0xd3, 0xb6, 0xa7, 0xa0, 0x27, 0x59, 0x40, 0x84, 0x9e, 0xca, + 0x43, 0x22, 0xf4, 0x74, 0xf2, 0x90, 0x44, 0x7f, 0x03, 0xc5, 0xf8, 0x9f, 0xac, 0xa3, 0x62, 0x4e, + 0xf9, 0x33, 0x7a, 0x54, 0xcc, 0x69, 0x7f, 0xe5, 0x4e, 0xe2, 0xbe, 0x84, 0x5c, 0x30, 0x50, 0x51, + 0xd8, 0x6a, 0xc6, 0x86, 0xb8, 0x56, 0x9e, 0xdc, 0x98, 0x28, 0xbc, 0xc3, 0xa7, 0x3f, 0xf5, 0xb5, + 0x6c, 0xa3, 0x5d, 0xe9, 0x38, 0xfd, 0x03, 0xf1, 0xf3, 0x9b, 0x8e, 0x6b, 0x1e, 0x08, 0x5b, 0xf1, + 0x7f, 0x01, 0x07, 0xa6, 0x23, 0xd7, 0xc3, 0x76, 0x3b, 0xcb, 0x45, 0xcf, 0xff, 0x13, 0x00, 0x00, + 0xff, 0xff, 0x7d, 0xe4, 0x3f, 0x87, 0x5b, 0x18, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/go/gitalypb/shared.pb.go b/proto/go/gitalypb/shared.pb.go index 43c7b4cb7..1b1fa2d8d 100644 --- a/proto/go/gitalypb/shared.pb.go +++ b/proto/go/gitalypb/shared.pb.go @@ -378,6 +378,7 @@ type CommitAuthor struct { Name []byte `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Email []byte `protobuf:"bytes,2,opt,name=email,proto3" json:"email,omitempty"` Date *timestamp.Timestamp `protobuf:"bytes,3,opt,name=date,proto3" json:"date,omitempty"` + Timezone []byte `protobuf:"bytes,4,opt,name=timezone,proto3" json:"timezone,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -429,6 +430,13 @@ func (m *CommitAuthor) GetDate() *timestamp.Timestamp { return nil } +func (m *CommitAuthor) GetTimezone() []byte { + if m != nil { + return m.Timezone + } + return nil +} + type ExitStatus struct { Value int32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -728,63 +736,64 @@ func init() { func init() { proto.RegisterFile("shared.proto", fileDescriptor_d8a4e87e678c5ced) } var fileDescriptor_d8a4e87e678c5ced = []byte{ - // 920 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xdd, 0x6e, 0xe3, 0xc4, - 0x17, 0x5f, 0x3b, 0xce, 0xd7, 0x89, 0xdb, 0xbf, 0xff, 0x43, 0x11, 0xa6, 0xab, 0xdd, 0x0d, 0x46, - 0x42, 0x15, 0x82, 0xb4, 0xea, 0x4a, 0x7b, 0x01, 0x12, 0x22, 0x2d, 0xa1, 0xea, 0xb2, 0xad, 0xab, - 0x89, 0x0b, 0x82, 0x1b, 0x6b, 0x12, 0x4f, 0x27, 0x83, 0xec, 0x8c, 0x35, 0x9e, 0x54, 0x74, 0x2f, - 0x79, 0x20, 0x9e, 0x84, 0x27, 0xe0, 0x05, 0x78, 0x0c, 0xd0, 0xcc, 0xd8, 0x49, 0xb6, 0x2d, 0x88, - 0xbb, 0x39, 0xe7, 0xfc, 0xce, 0xf7, 0xf9, 0xd9, 0xe0, 0x57, 0x0b, 0x22, 0x69, 0x36, 0x2a, 0xa5, - 0x50, 0x02, 0x75, 0x18, 0x57, 0x24, 0xbf, 0xdb, 0x7f, 0xc1, 0x84, 0x60, 0x39, 0x3d, 0x34, 0xda, - 0xd9, 0xea, 0xe6, 0x50, 0xf1, 0x82, 0x56, 0x8a, 0x14, 0xa5, 0x05, 0xee, 0x0f, 0xef, 0x03, 0x32, - 0x5a, 0xcd, 0x25, 0x2f, 0x95, 0x90, 0x16, 0x11, 0xfd, 0xe1, 0x82, 0x1f, 0x97, 0x54, 0x12, 0xc5, - 0xc5, 0xf2, 0xa2, 0x62, 0x68, 0x04, 0xae, 0x28, 0x43, 0x67, 0xe8, 0x1c, 0xec, 0x1e, 0x3f, 0x1f, - 0xd9, 0x44, 0xa3, 0x6d, 0xc4, 0x46, 0xc0, 0xae, 0x28, 0xd1, 0x97, 0x30, 0xa8, 0xe6, 0xa2, 0xa4, - 0x69, 0x4e, 0x6f, 0x69, 0x1e, 0xba, 0xc6, 0x71, 0xff, 0x51, 0xc7, 0xa9, 0xc6, 0x61, 0x30, 0xf0, - 0x37, 0x1a, 0x8d, 0x5e, 0xc1, 0x07, 0x8a, 0x48, 0x46, 0x55, 0x2a, 0x69, 0x29, 0x2a, 0xae, 0x84, - 0xbc, 0x4b, 0x6f, 0x38, 0xcd, 0xb3, 0xb0, 0x35, 0x74, 0x0e, 0xfa, 0xf8, 0x7d, 0x6b, 0xc6, 0x6b, - 0xeb, 0xb7, 0xda, 0x88, 0xbe, 0x82, 0xa7, 0x24, 0xcb, 0xb8, 0x0e, 0x4c, 0xf2, 0x87, 0xbe, 0x9e, - 0xf1, 0xfd, 0x70, 0x03, 0xb9, 0xe7, 0x1f, 0xbd, 0x84, 0xfe, 0xba, 0x32, 0x34, 0x80, 0xee, 0xf5, - 0xe5, 0x77, 0x97, 0xf1, 0x0f, 0x97, 0xc1, 0x13, 0x2d, 0x5c, 0x5c, 0x27, 0xe3, 0x24, 0xc6, 0x81, - 0x83, 0x7c, 0xe8, 0x8d, 0x4f, 0x4f, 0x27, 0xd3, 0x69, 0x8c, 0x03, 0x37, 0x3a, 0x82, 0xb6, 0xe9, - 0x00, 0xed, 0x02, 0xe0, 0xc9, 0x55, 0x3c, 0x3d, 0x4f, 0x62, 0xfc, 0x63, 0xf0, 0x04, 0x01, 0x74, - 0xa6, 0x13, 0xfc, 0xfd, 0x44, 0xbb, 0x0c, 0xa0, 0x3b, 0x4d, 0x62, 0x3c, 0x3e, 0x9b, 0x04, 0x6e, - 0xf4, 0x9b, 0x0b, 0xb0, 0x49, 0x8d, 0x3e, 0x02, 0xbf, 0x52, 0x42, 0x12, 0x46, 0xd3, 0x25, 0x29, - 0xa8, 0x99, 0x55, 0x1f, 0x0f, 0x6a, 0xdd, 0x25, 0x29, 0x28, 0xfa, 0x18, 0x76, 0x24, 0xcd, 0x89, - 0xe2, 0xb7, 0x34, 0x2d, 0x89, 0x5a, 0xd4, 0x63, 0xf0, 0x1b, 0xe5, 0x15, 0x51, 0x0b, 0x74, 0x04, - 0x7b, 0x8c, 0xab, 0x54, 0xcc, 0x7e, 0xa6, 0x73, 0x95, 0x66, 0x5c, 0xd2, 0xb9, 0x8e, 0x5f, 0xb7, - 0x8d, 0x18, 0x57, 0xb1, 0x31, 0x7d, 0xd3, 0x58, 0xd0, 0x19, 0x0c, 0xb5, 0x07, 0xc9, 0x15, 0x95, - 0x4b, 0xa2, 0xe8, 0x7d, 0x5f, 0x4e, 0xab, 0xb0, 0x3d, 0x6c, 0x1d, 0xf4, 0xf1, 0x33, 0xc6, 0xd5, - 0xb8, 0x81, 0xbd, 0x1b, 0x86, 0xd3, 0x4a, 0xd7, 0xc7, 0xb6, 0x07, 0x1e, 0x76, 0x6c, 0x7d, 0x6c, - 0x6b, 0xc4, 0xe8, 0x13, 0xf8, 0x1f, 0xcb, 0xd3, 0x52, 0x0a, 0x93, 0xc3, 0xb4, 0xd1, 0x33, 0xb0, - 0x1d, 0x96, 0x5f, 0x59, 0xad, 0xee, 0xe3, 0xb5, 0xd7, 0x73, 0x02, 0xf7, 0xb5, 0xd7, 0xeb, 0x06, - 0x3d, 0xec, 0x69, 0x58, 0xf4, 0xa7, 0x03, 0xfd, 0x33, 0xae, 0x4e, 0x45, 0x51, 0x70, 0x85, 0x76, - 0xc1, 0xe5, 0x99, 0x39, 0xc5, 0x3e, 0x76, 0x79, 0x86, 0x42, 0xe8, 0x56, 0x2b, 0x53, 0x92, 0x19, - 0x9d, 0x8f, 0x1b, 0x11, 0x21, 0xf0, 0x66, 0x22, 0xbb, 0x33, 0xd3, 0xf2, 0xb1, 0x79, 0xa3, 0xcf, - 0xa0, 0x43, 0x56, 0x6a, 0x21, 0xa4, 0x99, 0xcb, 0xe0, 0x78, 0xaf, 0xb9, 0x49, 0x1b, 0x7d, 0x6c, - 0x6c, 0xb8, 0xc6, 0xa0, 0x63, 0xe8, 0xcf, 0x8d, 0x5e, 0x51, 0x19, 0xb6, 0xff, 0xc5, 0x61, 0x03, - 0x43, 0xcf, 0x00, 0x4a, 0x22, 0xe9, 0x52, 0xa5, 0x3c, 0xab, 0xc2, 0x8e, 0x99, 0x5f, 0xdf, 0x6a, - 0xce, 0xb3, 0x0a, 0x3d, 0x85, 0xbe, 0x2e, 0x24, 0xad, 0xf8, 0x5b, 0x1a, 0x76, 0x87, 0xce, 0x41, - 0x0b, 0xf7, 0xb4, 0x62, 0xca, 0xdf, 0xd2, 0x68, 0x01, 0xfe, 0x76, 0x58, 0xdd, 0x81, 0xb9, 0x09, - 0xc7, 0x76, 0xa0, 0xdf, 0x68, 0x0f, 0xda, 0xb4, 0x20, 0x3c, 0xaf, 0xbb, 0xb5, 0x02, 0x1a, 0x81, - 0x97, 0x11, 0x45, 0x4d, 0xaf, 0x03, 0xcd, 0x34, 0x43, 0xf1, 0x51, 0x43, 0xf1, 0x51, 0xd2, 0x7c, - 0x03, 0xb0, 0xc1, 0x45, 0x11, 0xc0, 0xe4, 0x17, 0xae, 0xa6, 0x8a, 0xa8, 0x55, 0xa5, 0x63, 0xde, - 0x92, 0x7c, 0x65, 0x13, 0xb5, 0xb1, 0x15, 0xa2, 0x04, 0x3a, 0x27, 0x92, 0x2c, 0xe7, 0x8b, 0x47, - 0xeb, 0x78, 0x05, 0x3b, 0x35, 0x4b, 0x6d, 0xef, 0xa6, 0x9e, 0xc1, 0xf1, 0xff, 0x9b, 0xf9, 0xac, - 0x37, 0x86, 0x7d, 0x8b, 0xb3, 0x52, 0xf4, 0xbb, 0x03, 0xad, 0x84, 0xb0, 0x47, 0x63, 0xda, 0xdd, - 0xba, 0xeb, 0xdd, 0x3e, 0xc8, 0xd1, 0xfa, 0x4f, 0x39, 0xf4, 0x4d, 0x14, 0xb4, 0xaa, 0x08, 0xa3, - 0x66, 0xcd, 0x3e, 0x6e, 0x44, 0xcd, 0xb6, 0xfa, 0x69, 0x37, 0xd0, 0x36, 0x1b, 0x18, 0xd4, 0x3a, - 0xbd, 0x04, 0x7d, 0x22, 0x8a, 0x30, 0x46, 0xa5, 0x39, 0xe3, 0x7f, 0x3c, 0x11, 0x8b, 0x89, 0x6e, - 0xc0, 0xbb, 0xae, 0xa8, 0x44, 0xef, 0x41, 0x9b, 0xe5, 0xe9, 0xfa, 0x32, 0x3d, 0x96, 0x9f, 0x67, - 0xeb, 0x1e, 0xdd, 0xc7, 0xf6, 0xd7, 0xda, 0xde, 0xdf, 0x0b, 0x18, 0xb0, 0x3c, 0x5d, 0x55, 0x9a, - 0x62, 0x05, 0xad, 0x49, 0x0b, 0x2c, 0xbf, 0xae, 0x35, 0xd1, 0xd7, 0x00, 0x96, 0x78, 0x57, 0x42, - 0xe4, 0xe8, 0x18, 0x60, 0x8b, 0x6e, 0x8e, 0xa9, 0x13, 0x35, 0x75, 0x6e, 0x48, 0x87, 0xb7, 0x50, - 0x9f, 0x9e, 0x34, 0x11, 0x92, 0xbb, 0x92, 0xbe, 0xfb, 0x7d, 0x03, 0xe8, 0x9c, 0xc6, 0x17, 0x17, - 0xe7, 0x49, 0xe0, 0xa0, 0x1e, 0x78, 0x27, 0x6f, 0xe2, 0x93, 0xc0, 0xd5, 0xaf, 0x04, 0x4f, 0x26, - 0x41, 0x0b, 0x75, 0xa1, 0x95, 0x8c, 0xcf, 0x02, 0xef, 0x8b, 0x18, 0xba, 0xa2, 0x4c, 0x95, 0x0e, - 0xf0, 0xfc, 0xc1, 0x8d, 0x5d, 0x50, 0xb5, 0x10, 0x59, 0x5c, 0xea, 0xef, 0x67, 0x15, 0xfe, 0xf5, - 0xeb, 0x3d, 0xc2, 0x6c, 0x7f, 0xf5, 0x71, 0x47, 0x94, 0xba, 0x8c, 0x93, 0xa3, 0x9f, 0xb4, 0x39, - 0x27, 0xb3, 0xd1, 0x5c, 0x14, 0x87, 0xf6, 0xf9, 0xb9, 0x90, 0xec, 0xd0, 0x3a, 0xd9, 0x7f, 0xd4, - 0x21, 0x13, 0xb5, 0x5c, 0xce, 0x66, 0x1d, 0xa3, 0x7a, 0xf9, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, - 0xec, 0x10, 0xbf, 0x4b, 0xfd, 0x06, 0x00, 0x00, + // 932 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0xdd, 0x6e, 0xe3, 0x44, + 0x14, 0x5e, 0x3b, 0xce, 0xdf, 0x89, 0x5b, 0xcc, 0x50, 0x84, 0xe9, 0x6a, 0x77, 0x83, 0x91, 0x50, + 0x85, 0x20, 0xad, 0xba, 0xd2, 0x5e, 0x80, 0x84, 0x48, 0x4b, 0xa8, 0xba, 0x6c, 0xeb, 0x6a, 0xe2, + 0x82, 0xe0, 0xc6, 0x9a, 0xc4, 0xd3, 0xc9, 0x20, 0x3b, 0x63, 0x8d, 0x27, 0x15, 0xed, 0x25, 0xe2, + 0x79, 0x78, 0x12, 0x9e, 0x80, 0x17, 0xe0, 0x31, 0x40, 0x33, 0x63, 0xa7, 0xd9, 0xb6, 0x20, 0xee, + 0xe6, 0x9c, 0xf3, 0x9d, 0xff, 0xf3, 0xd9, 0xe0, 0x57, 0x0b, 0x22, 0x69, 0x36, 0x2a, 0xa5, 0x50, + 0x02, 0x75, 0x18, 0x57, 0x24, 0xbf, 0xd9, 0x7d, 0xc1, 0x84, 0x60, 0x39, 0xdd, 0x37, 0xda, 0xd9, + 0xea, 0x6a, 0x5f, 0xf1, 0x82, 0x56, 0x8a, 0x14, 0xa5, 0x05, 0xee, 0x0e, 0xef, 0x03, 0x32, 0x5a, + 0xcd, 0x25, 0x2f, 0x95, 0x90, 0x16, 0x11, 0xfd, 0xe9, 0x82, 0x1f, 0x97, 0x54, 0x12, 0xc5, 0xc5, + 0xf2, 0xac, 0x62, 0x68, 0x04, 0xae, 0x28, 0x43, 0x67, 0xe8, 0xec, 0x6d, 0x1f, 0x3e, 0x1f, 0xd9, + 0x44, 0xa3, 0x4d, 0xc4, 0x9d, 0x80, 0x5d, 0x51, 0xa2, 0x2f, 0x61, 0x50, 0xcd, 0x45, 0x49, 0xd3, + 0x9c, 0x5e, 0xd3, 0x3c, 0x74, 0x8d, 0xe3, 0xee, 0xa3, 0x8e, 0x53, 0x8d, 0xc3, 0x60, 0xe0, 0x6f, + 0x34, 0x1a, 0xbd, 0x82, 0x0f, 0x14, 0x91, 0x8c, 0xaa, 0x54, 0xd2, 0x52, 0x54, 0x5c, 0x09, 0x79, + 0x93, 0x5e, 0x71, 0x9a, 0x67, 0x61, 0x6b, 0xe8, 0xec, 0xf5, 0xf1, 0xfb, 0xd6, 0x8c, 0xd7, 0xd6, + 0x6f, 0xb5, 0x11, 0x7d, 0x05, 0x4f, 0x49, 0x96, 0x71, 0x1d, 0x98, 0xe4, 0x0f, 0x7d, 0x3d, 0xe3, + 0xfb, 0xe1, 0x1d, 0xe4, 0x9e, 0x7f, 0xf4, 0x12, 0xfa, 0xeb, 0xca, 0xd0, 0x00, 0xba, 0x97, 0xe7, + 0xdf, 0x9d, 0xc7, 0x3f, 0x9c, 0x07, 0x4f, 0xb4, 0x70, 0x76, 0x99, 0x8c, 0x93, 0x18, 0x07, 0x0e, + 0xf2, 0xa1, 0x37, 0x3e, 0x3e, 0x9e, 0x4c, 0xa7, 0x31, 0x0e, 0xdc, 0xe8, 0x00, 0xda, 0xa6, 0x03, + 0xb4, 0x0d, 0x80, 0x27, 0x17, 0xf1, 0xf4, 0x34, 0x89, 0xf1, 0x8f, 0xc1, 0x13, 0x04, 0xd0, 0x99, + 0x4e, 0xf0, 0xf7, 0x13, 0xed, 0x32, 0x80, 0xee, 0x34, 0x89, 0xf1, 0xf8, 0x64, 0x12, 0xb8, 0xd1, + 0xef, 0x2e, 0xc0, 0x5d, 0x6a, 0xf4, 0x11, 0xf8, 0x95, 0x12, 0x92, 0x30, 0x9a, 0x2e, 0x49, 0x41, + 0xcd, 0xac, 0xfa, 0x78, 0x50, 0xeb, 0xce, 0x49, 0x41, 0xd1, 0xc7, 0xb0, 0x25, 0x69, 0x4e, 0x14, + 0xbf, 0xa6, 0x69, 0x49, 0xd4, 0xa2, 0x1e, 0x83, 0xdf, 0x28, 0x2f, 0x88, 0x5a, 0xa0, 0x03, 0xd8, + 0x61, 0x5c, 0xa5, 0x62, 0xf6, 0x33, 0x9d, 0xab, 0x34, 0xe3, 0x92, 0xce, 0x75, 0xfc, 0xba, 0x6d, + 0xc4, 0xb8, 0x8a, 0x8d, 0xe9, 0x9b, 0xc6, 0x82, 0x4e, 0x60, 0xa8, 0x3d, 0x48, 0xae, 0xa8, 0x5c, + 0x12, 0x45, 0xef, 0xfb, 0x72, 0x5a, 0x85, 0xed, 0x61, 0x6b, 0xaf, 0x8f, 0x9f, 0x31, 0xae, 0xc6, + 0x0d, 0xec, 0xed, 0x30, 0x9c, 0x56, 0xba, 0x3e, 0xb6, 0x39, 0xf0, 0xb0, 0x63, 0xeb, 0x63, 0x1b, + 0x23, 0x46, 0x9f, 0xc0, 0x3b, 0x2c, 0x4f, 0x4b, 0x29, 0x4c, 0x0e, 0xd3, 0x46, 0xcf, 0xc0, 0xb6, + 0x58, 0x7e, 0x61, 0xb5, 0xba, 0x8f, 0xd7, 0x5e, 0xcf, 0x09, 0xdc, 0xd7, 0x5e, 0xaf, 0x1b, 0xf4, + 0xb0, 0xa7, 0x61, 0xd1, 0x5f, 0x0e, 0xf4, 0x4f, 0xb8, 0x3a, 0x16, 0x45, 0xc1, 0x15, 0xda, 0x06, + 0x97, 0x67, 0xe6, 0x14, 0xfb, 0xd8, 0xe5, 0x19, 0x0a, 0xa1, 0x5b, 0xad, 0x4c, 0x49, 0x66, 0x74, + 0x3e, 0x6e, 0x44, 0x84, 0xc0, 0x9b, 0x89, 0xec, 0xc6, 0x4c, 0xcb, 0xc7, 0xe6, 0x8d, 0x3e, 0x83, + 0x0e, 0x59, 0xa9, 0x85, 0x90, 0x66, 0x2e, 0x83, 0xc3, 0x9d, 0xe6, 0x26, 0x6d, 0xf4, 0xb1, 0xb1, + 0xe1, 0x1a, 0x83, 0x0e, 0xa1, 0x3f, 0x37, 0x7a, 0x45, 0x65, 0xd8, 0xfe, 0x0f, 0x87, 0x3b, 0x18, + 0x7a, 0x06, 0x50, 0x12, 0x49, 0x97, 0x2a, 0xe5, 0x59, 0x15, 0x76, 0xcc, 0xfc, 0xfa, 0x56, 0x73, + 0x9a, 0x55, 0xe8, 0x29, 0xf4, 0x75, 0x21, 0x69, 0xc5, 0x6f, 0x69, 0xd8, 0x1d, 0x3a, 0x7b, 0x2d, + 0xdc, 0xd3, 0x8a, 0x29, 0xbf, 0xa5, 0xd1, 0x6f, 0x0e, 0xf8, 0x9b, 0x71, 0x75, 0x0b, 0xe6, 0x28, + 0x1c, 0xdb, 0x82, 0x7e, 0xa3, 0x1d, 0x68, 0xd3, 0x82, 0xf0, 0xbc, 0x6e, 0xd7, 0x0a, 0x68, 0x04, + 0x5e, 0x46, 0x14, 0x35, 0xcd, 0x0e, 0x34, 0xd5, 0x0c, 0xc7, 0x47, 0x0d, 0xc7, 0x47, 0x49, 0xf3, + 0x11, 0xc0, 0x06, 0x87, 0x76, 0xa1, 0xa7, 0xbf, 0x0b, 0xb7, 0x62, 0x49, 0xcd, 0x28, 0x7c, 0xbc, + 0x96, 0xa3, 0x08, 0x60, 0xf2, 0x0b, 0x57, 0x53, 0x45, 0xd4, 0xaa, 0xd2, 0xf9, 0xae, 0x49, 0xbe, + 0xb2, 0x45, 0xb4, 0xb1, 0x15, 0xa2, 0x04, 0x3a, 0x47, 0x92, 0x2c, 0xe7, 0x8b, 0x47, 0x6b, 0x7c, + 0x05, 0x5b, 0x35, 0x85, 0xed, 0x60, 0x4c, 0xad, 0x83, 0xc3, 0x77, 0x9b, 0xe1, 0xad, 0xd7, 0x89, + 0x7d, 0x8b, 0xb3, 0x52, 0xf4, 0x87, 0x03, 0xad, 0x84, 0xb0, 0x47, 0x63, 0xda, 0xc5, 0xbb, 0xeb, + 0xc5, 0x3f, 0xc8, 0xd1, 0xfa, 0x5f, 0x39, 0xf4, 0xc1, 0x14, 0xb4, 0xaa, 0x08, 0x6b, 0x1a, 0x6f, + 0x44, 0x4d, 0xc5, 0xfa, 0x69, 0xd7, 0xd3, 0x36, 0xeb, 0x19, 0xd4, 0x3a, 0xbd, 0x21, 0x7d, 0x3f, + 0x8a, 0x30, 0x46, 0xa5, 0xb9, 0xf1, 0x7f, 0xbd, 0x1f, 0x8b, 0x89, 0xae, 0xc0, 0xbb, 0xac, 0xa8, + 0x44, 0xef, 0x41, 0x9b, 0xe5, 0xe9, 0xfa, 0x6c, 0x3d, 0x96, 0x9f, 0x66, 0xeb, 0x1e, 0xdd, 0xc7, + 0x76, 0xdb, 0xda, 0xdc, 0xed, 0x0b, 0x18, 0xb0, 0x3c, 0x5d, 0x55, 0x9a, 0x7f, 0x05, 0xad, 0x19, + 0x0d, 0x2c, 0xbf, 0xac, 0x35, 0xd1, 0xd7, 0x00, 0x96, 0x95, 0x17, 0x42, 0xe4, 0xe8, 0x10, 0x60, + 0x83, 0x8b, 0x8e, 0xa9, 0x13, 0x35, 0x75, 0xde, 0x31, 0x12, 0x6f, 0xa0, 0x3e, 0x3d, 0x6a, 0x22, + 0x24, 0x37, 0x25, 0x7d, 0xfb, 0xe3, 0x07, 0xd0, 0x39, 0x8e, 0xcf, 0xce, 0x4e, 0x93, 0xc0, 0x41, + 0x3d, 0xf0, 0x8e, 0xde, 0xc4, 0x47, 0x81, 0xab, 0x5f, 0x09, 0x9e, 0x4c, 0x82, 0x16, 0xea, 0x42, + 0x2b, 0x19, 0x9f, 0x04, 0xde, 0x17, 0x31, 0x74, 0x45, 0x99, 0x2a, 0x1d, 0xe0, 0xf9, 0x83, 0xfb, + 0x3b, 0xa3, 0x6a, 0x21, 0xb2, 0xb8, 0xd4, 0x1f, 0xd7, 0x2a, 0xfc, 0xfb, 0xd7, 0x7b, 0x6c, 0xda, + 0xfc, 0x25, 0xe0, 0x8e, 0x28, 0x75, 0x19, 0x47, 0x07, 0x3f, 0x69, 0x73, 0x4e, 0x66, 0xa3, 0xb9, + 0x28, 0xf6, 0xed, 0xf3, 0x73, 0x21, 0xd9, 0xbe, 0x75, 0xb2, 0x3f, 0xb0, 0x7d, 0x26, 0x6a, 0xb9, + 0x9c, 0xcd, 0x3a, 0x46, 0xf5, 0xf2, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcd, 0xd3, 0x79, 0xc7, + 0x1a, 0x07, 0x00, 0x00, } diff --git a/proto/ref.proto b/proto/ref.proto index 37b5bd225..886881840 100644 --- a/proto/ref.proto +++ b/proto/ref.proto @@ -214,6 +214,7 @@ message FindLocalBranchCommitAuthor { bytes name = 1; bytes email = 2; google.protobuf.Timestamp date = 3; + bytes timezone = 4; } message FindAllBranchesRequest { diff --git a/proto/shared.proto b/proto/shared.proto index 439f1b906..883d04f9b 100644 --- a/proto/shared.proto +++ b/proto/shared.proto @@ -102,6 +102,7 @@ message CommitAuthor { bytes name = 1; bytes email = 2; google.protobuf.Timestamp date = 3; + bytes timezone = 4; } message ExitStatus { diff --git a/ruby/lib/gitaly_server/utils.rb b/ruby/lib/gitaly_server/utils.rb index e81e148e2..4ad28a136 100644 --- a/ruby/lib/gitaly_server/utils.rb +++ b/ruby/lib/gitaly_server/utils.rb @@ -23,7 +23,8 @@ module GitalyServer Gitaly::CommitAuthor.new( name: rugged_author[:name].b, email: rugged_author[:email].b, - date: Google::Protobuf::Timestamp.new(seconds: rugged_author[:time].to_i) + date: Google::Protobuf::Timestamp.new(seconds: rugged_author[:time].to_i), + timezone: rugged_author[:time].strftime("%z") ) end diff --git a/ruby/proto/gitaly/ref_pb.rb b/ruby/proto/gitaly/ref_pb.rb index 758e3a84f..d8c7395aa 100644 --- a/ruby/proto/gitaly/ref_pb.rb +++ b/ruby/proto/gitaly/ref_pb.rb @@ -64,6 +64,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do optional :name, :bytes, 1 optional :email, :bytes, 2 optional :date, :message, 3, "google.protobuf.Timestamp" + optional :timezone, :bytes, 4 end add_message "gitaly.FindAllBranchesRequest" do optional :repository, :message, 1, "gitaly.Repository" diff --git a/ruby/proto/gitaly/shared_pb.rb b/ruby/proto/gitaly/shared_pb.rb index dd8ef3531..d6dd836b6 100644 --- a/ruby/proto/gitaly/shared_pb.rb +++ b/ruby/proto/gitaly/shared_pb.rb @@ -42,6 +42,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do optional :name, :bytes, 1 optional :email, :bytes, 2 optional :date, :message, 3, "google.protobuf.Timestamp" + optional :timezone, :bytes, 4 end add_message "gitaly.ExitStatus" do optional :value, :int32, 1 -- cgit v1.2.3