diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-11-10 18:15:19 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-11-10 18:15:19 +0300 |
commit | 1e9c49fe63942cf425ce08499b22dbd2de06b00f (patch) | |
tree | 4131f139193ee7cebf8c4022e05eba30bec6217f | |
parent | 2bd521042d2f57792c1fba46900f09bc5a32929e (diff) | |
parent | 73b6417d6c9ca8d52d715fa5f80d712791e21a1d (diff) |
Merge branch 'no_object_hash_checksum' into 'master'
Extract a zero checksum constant
See merge request https://gitlab.com/gitlab-org/gitaly/-/merge_requests/5036
Merged-by: Patrick Steinhardt <psteinhardt@gitlab.com>
Approved-by: Patrick Steinhardt <psteinhardt@gitlab.com>
Co-authored-by: James Fargher <jfargher@gitlab.com>
-rw-r--r-- | internal/git/checksum.go | 5 | ||||
-rw-r--r-- | internal/git/checksum_test.go | 4 | ||||
-rw-r--r-- | internal/gitaly/service/repository/calculate_checksum.go | 2 | ||||
-rw-r--r-- | internal/gitaly/service/repository/calculate_checksum_test.go | 4 |
4 files changed, 8 insertions, 7 deletions
diff --git a/internal/git/checksum.go b/internal/git/checksum.go index ce4fb25d0..89f0e8404 100644 --- a/internal/git/checksum.go +++ b/internal/git/checksum.go @@ -8,6 +8,9 @@ import ( "regexp" ) +// ZeroChecksum is the hex representation of a checksum with no references added. +const ZeroChecksum = "0000000000000000000000000000000000000000" + var refsAllowed = regexp.MustCompile(`HEAD|(refs/(heads|tags|keep-around|merge-requests|environments|notes)/)`) // Checksum is a hash representation of all references in a repository. @@ -65,7 +68,7 @@ func (c *Checksum) Bytes() []byte { // String returns the checksum as a hex encoded string. func (c *Checksum) String() string { if c.IsZero() { - return ObjectHashSHA1.ZeroOID.String() + return ZeroChecksum } return hex.EncodeToString(c.Bytes()) } diff --git a/internal/git/checksum_test.go b/internal/git/checksum_test.go index b70650d3d..857dd292d 100644 --- a/internal/git/checksum_test.go +++ b/internal/git/checksum_test.go @@ -1,5 +1,3 @@ -//go:build !gitaly_test_sha256 - package git import ( @@ -53,7 +51,7 @@ func TestChecksum(t *testing.T) { { desc: "zero", expectedZero: true, - expected: ObjectHashSHA1.ZeroOID.String(), + expected: ZeroChecksum, }, { desc: "single ref", diff --git a/internal/gitaly/service/repository/calculate_checksum.go b/internal/gitaly/service/repository/calculate_checksum.go index 6bff6e61d..78d99ccef 100644 --- a/internal/gitaly/service/repository/calculate_checksum.go +++ b/internal/gitaly/service/repository/calculate_checksum.go @@ -48,7 +48,7 @@ func (s *server) CalculateChecksum(ctx context.Context, in *gitalypb.CalculateCh if err := cmd.Wait(); checksum.IsZero() || err != nil { if s.isValidRepo(ctx, repo) { - return &gitalypb.CalculateChecksumResponse{Checksum: git.ObjectHashSHA1.ZeroOID.String()}, nil + return &gitalypb.CalculateChecksumResponse{Checksum: git.ZeroChecksum}, nil } return nil, status.Errorf(codes.DataLoss, "CalculateChecksum: not a git repository '%s'", repoPath) diff --git a/internal/gitaly/service/repository/calculate_checksum_test.go b/internal/gitaly/service/repository/calculate_checksum_test.go index 7924ead17..4ff6b5ec0 100644 --- a/internal/gitaly/service/repository/calculate_checksum_test.go +++ b/internal/gitaly/service/repository/calculate_checksum_test.go @@ -51,7 +51,7 @@ func TestEmptyRepositoryCalculateChecksum(t *testing.T) { response, err := client.CalculateChecksum(ctx, request) require.NoError(t, err) - require.Equal(t, git.ObjectHashSHA1.ZeroOID.String(), response.Checksum) + require.Equal(t, git.ZeroChecksum, response.Checksum) } func TestBrokenRepositoryCalculateChecksum(t *testing.T) { @@ -125,5 +125,5 @@ func TestInvalidRefsCalculateChecksum(t *testing.T) { response, err := client.CalculateChecksum(ctx, request) require.NoError(t, err) - require.Equal(t, git.ObjectHashSHA1.ZeroOID.String(), response.Checksum) + require.Equal(t, git.ZeroChecksum, response.Checksum) } |