Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'internal/gitaly/service')
-rw-r--r--internal/gitaly/service/commit/commit_signatures.go64
-rw-r--r--internal/gitaly/service/commit/find_commits.go2
-rw-r--r--internal/gitaly/service/commit/last_commit_for_path.go2
-rw-r--r--internal/gitaly/service/commit/list_all_commits.go2
-rw-r--r--internal/gitaly/service/commit/list_commits.go2
-rw-r--r--internal/gitaly/service/commit/list_commits_by_oid.go2
-rw-r--r--internal/gitaly/service/commit/list_commits_by_ref_name.go2
-rw-r--r--internal/gitaly/service/commit/list_last_commits_for_tree.go2
-rw-r--r--internal/gitaly/service/operations/revert.go78
-rw-r--r--internal/gitaly/service/operations/revert_test.go118
-rw-r--r--internal/gitaly/service/operations/tags.go2
-rw-r--r--internal/gitaly/service/ref/find_all_tags.go5
-rw-r--r--internal/gitaly/service/ref/find_tag.go2
-rw-r--r--internal/gitaly/service/ref/util.go4
-rw-r--r--internal/gitaly/service/repository/remove_all_test.go1
15 files changed, 65 insertions, 223 deletions
diff --git a/internal/gitaly/service/commit/commit_signatures.go b/internal/gitaly/service/commit/commit_signatures.go
index 9dc5a9819..122f48c45 100644
--- a/internal/gitaly/service/commit/commit_signatures.go
+++ b/internal/gitaly/service/commit/commit_signatures.go
@@ -1,7 +1,6 @@
package commit
import (
- "bufio"
"bytes"
"errors"
"fmt"
@@ -47,6 +46,7 @@ func (s *server) GetCommitSignatures(request *gitalypb.GetCommitSignaturesReques
}
}
+ parser := catfile.NewParser()
for _, commitID := range request.CommitIds {
commitObj, err := objectReader.Object(ctx, git.Revision(commitID)+"^{commit}")
if err != nil {
@@ -56,19 +56,26 @@ func (s *server) GetCommitSignatures(request *gitalypb.GetCommitSignaturesReques
return structerr.NewInternal("%w", err)
}
- signatureKey, commitText, err := extractSignature(commitObj)
+ commit, err := parser.ParseCommit(commitObj)
if err != nil {
return structerr.NewInternal("%w", err)
}
+ signature := []byte{}
+ if len(commit.SignatureData.Signatures) > 0 {
+ // While there could be potentially multiple signatures in a Git
+ // commit, like Git, we only consider the first.
+ signature = commit.SignatureData.Signatures[0]
+ }
+
signer := gitalypb.GetCommitSignaturesResponse_SIGNER_USER
if signingKeys != nil {
- if err := signingKeys.Verify(signatureKey, commitText); err == nil {
+ if err := signingKeys.Verify(signature, commit.SignatureData.Payload); err == nil {
signer = gitalypb.GetCommitSignaturesResponse_SIGNER_SYSTEM
}
}
- if err = sendResponse(commitID, signatureKey, commitText, signer, stream); err != nil {
+ if err = sendResponse(commitID, signature, commit.SignatureData.Payload, signer, stream); err != nil {
return structerr.NewInternal("%w", err)
}
}
@@ -76,55 +83,6 @@ func (s *server) GetCommitSignatures(request *gitalypb.GetCommitSignaturesReques
return nil
}
-func extractSignature(reader io.Reader) ([]byte, []byte, error) {
- commitText := []byte{}
- signatureKey := []byte{}
- sawSignature := false
- inSignature := false
- lineBreak := []byte("\n")
- whiteSpace := []byte(" ")
- bufferedReader := bufio.NewReader(reader)
-
- for {
- line, err := bufferedReader.ReadBytes('\n')
-
- if errors.Is(err, io.EOF) {
- commitText = append(commitText, line...)
- break
- }
- if err != nil {
- return nil, nil, err
- }
-
- if !sawSignature && !inSignature {
- for _, signatureField := range [][]byte{[]byte("gpgsig "), []byte("gpgsig-sha256 ")} {
- if !bytes.HasPrefix(line, signatureField) {
- continue
- }
-
- sawSignature, inSignature = true, true
- line = bytes.TrimPrefix(line, signatureField)
- break
- }
- }
-
- if inSignature && !bytes.Equal(line, lineBreak) {
- line = bytes.TrimPrefix(line, whiteSpace)
- signatureKey = append(signatureKey, line...)
- } else if inSignature {
- inSignature = false
- commitText = append(commitText, line...)
- } else {
- commitText = append(commitText, line...)
- }
- }
-
- // Remove last line break from signature
- signatureKey = bytes.TrimSuffix(signatureKey, lineBreak)
-
- return signatureKey, commitText, nil
-}
-
func sendResponse(
commitID string,
signatureKey []byte,
diff --git a/internal/gitaly/service/commit/find_commits.go b/internal/gitaly/service/commit/find_commits.go
index e2d717b25..15425330c 100644
--- a/internal/gitaly/service/commit/find_commits.go
+++ b/internal/gitaly/service/commit/find_commits.go
@@ -195,7 +195,7 @@ func (g *GetCommits) Commit(ctx context.Context, trailers, shortStat, refs bool)
}
}
- return commit, nil
+ return commit.GitCommit, nil
}
func streamCommits(getCommits *GetCommits, stream gitalypb.CommitService_FindCommitsServer, trailers, shortStat bool, refs bool) error {
diff --git a/internal/gitaly/service/commit/last_commit_for_path.go b/internal/gitaly/service/commit/last_commit_for_path.go
index e0f69a97c..555a34e77 100644
--- a/internal/gitaly/service/commit/last_commit_for_path.go
+++ b/internal/gitaly/service/commit/last_commit_for_path.go
@@ -57,7 +57,7 @@ func (s *server) lastCommitForPath(ctx context.Context, in *gitalypb.LastCommitF
return &gitalypb.LastCommitForPathResponse{}, nil
}
- return &gitalypb.LastCommitForPathResponse{Commit: commit}, err
+ return &gitalypb.LastCommitForPathResponse{Commit: commit.GitCommit}, err
}
func validateLastCommitForPathRequest(locator storage.Locator, in *gitalypb.LastCommitForPathRequest) error {
diff --git a/internal/gitaly/service/commit/list_all_commits.go b/internal/gitaly/service/commit/list_all_commits.go
index 0ee326c23..62633d6e5 100644
--- a/internal/gitaly/service/commit/list_all_commits.go
+++ b/internal/gitaly/service/commit/list_all_commits.go
@@ -79,7 +79,7 @@ func (s *server) ListAllCommits(
return structerr.NewInternal("parsing commit: %w", err)
}
- if err := chunker.Send(commit); err != nil {
+ if err := chunker.Send(commit.GitCommit); err != nil {
return structerr.NewInternal("sending commit: %w", err)
}
}
diff --git a/internal/gitaly/service/commit/list_commits.go b/internal/gitaly/service/commit/list_commits.go
index 1a16158a5..09f627873 100644
--- a/internal/gitaly/service/commit/list_commits.go
+++ b/internal/gitaly/service/commit/list_commits.go
@@ -139,7 +139,7 @@ func (s *server) ListCommits(
return structerr.NewInternal("parsing commit: %w", err)
}
- if err := chunker.Send(commit); err != nil {
+ if err := chunker.Send(commit.GitCommit); err != nil {
return structerr.NewInternal("sending commit: %w", err)
}
}
diff --git a/internal/gitaly/service/commit/list_commits_by_oid.go b/internal/gitaly/service/commit/list_commits_by_oid.go
index 3175c4307..f97c2aca5 100644
--- a/internal/gitaly/service/commit/list_commits_by_oid.go
+++ b/internal/gitaly/service/commit/list_commits_by_oid.go
@@ -50,7 +50,7 @@ func (s *server) ListCommitsByOid(in *gitalypb.ListCommitsByOidRequest, stream g
return err
}
- if err := sender.Send(commit); err != nil {
+ if err := sender.Send(commit.GitCommit); err != nil {
return err
}
}
diff --git a/internal/gitaly/service/commit/list_commits_by_ref_name.go b/internal/gitaly/service/commit/list_commits_by_ref_name.go
index e77c9f916..6c6d25b07 100644
--- a/internal/gitaly/service/commit/list_commits_by_ref_name.go
+++ b/internal/gitaly/service/commit/list_commits_by_ref_name.go
@@ -37,7 +37,7 @@ func (s *server) ListCommitsByRefName(in *gitalypb.ListCommitsByRefNameRequest,
}
commitByRef := &gitalypb.ListCommitsByRefNameResponse_CommitForRef{
- Commit: commit, RefName: refName,
+ Commit: commit.GitCommit, RefName: refName,
}
if err := sender.Send(commitByRef); err != nil {
diff --git a/internal/gitaly/service/commit/list_last_commits_for_tree.go b/internal/gitaly/service/commit/list_last_commits_for_tree.go
index fa7e7d0f7..85a5d2a69 100644
--- a/internal/gitaly/service/commit/list_last_commits_for_tree.go
+++ b/internal/gitaly/service/commit/list_last_commits_for_tree.go
@@ -74,7 +74,7 @@ func (s *server) listLastCommitsForTree(in *gitalypb.ListLastCommitsForTreeReque
commitForTree := &gitalypb.ListLastCommitsForTreeResponse_CommitForTree{
PathBytes: []byte(entry.Path),
- Commit: commit,
+ Commit: commit.GitCommit,
}
batch = append(batch, commitForTree)
diff --git a/internal/gitaly/service/operations/revert.go b/internal/gitaly/service/operations/revert.go
index 72e45dc8f..90d03a7dd 100644
--- a/internal/gitaly/service/operations/revert.go
+++ b/internal/gitaly/service/operations/revert.go
@@ -6,7 +6,6 @@ import (
"fmt"
"time"
- "gitlab.com/gitlab-org/gitaly/v16/internal/featureflag"
"gitlab.com/gitlab-org/gitaly/v16/internal/git"
"gitlab.com/gitlab-org/gitaly/v16/internal/git/localrepo"
"gitlab.com/gitlab-org/gitaly/v16/internal/git/remoterepo"
@@ -88,46 +87,22 @@ func (s *Server) UserRevert(ctx context.Context, req *gitalypb.UserRevertRequest
if err != nil {
var conflictErr *localrepo.MergeTreeConflictError
if errors.As(err, &conflictErr) {
- if featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- conflictingFiles := make([][]byte, 0, len(conflictErr.ConflictingFileInfo))
- for _, conflictingFileInfo := range conflictErr.ConflictingFileInfo {
- conflictingFiles = append(conflictingFiles, []byte(conflictingFileInfo.FileName))
- }
- return nil, structerr.NewFailedPrecondition("revert: there are conflicting files").WithDetail(
- &gitalypb.UserRevertError{
- Error: &gitalypb.UserRevertError_MergeConflict{
- MergeConflict: &gitalypb.MergeConflictError{
- ConflictingFiles: conflictingFiles,
- },
- },
- })
- } else {
- return &gitalypb.UserRevertResponse{
- // it's better that this error matches the git2go for now
- CreateTreeError: "revert: could not apply due to conflicts",
- CreateTreeErrorCode: gitalypb.UserRevertResponse_CONFLICT,
- }, nil
- }
+ return &gitalypb.UserRevertResponse{
+ // it's better that this error matches the git2go for now
+ CreateTreeError: "revert: could not apply due to conflicts",
+ CreateTreeErrorCode: gitalypb.UserRevertResponse_CONFLICT,
+ }, nil
}
return nil, structerr.NewInternal("merge-tree: %w", err)
}
if oursCommit.TreeId == treeOID.String() {
- if featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- return nil, structerr.NewFailedPrecondition("revert: could not apply because the result was empty").WithDetail(
- &gitalypb.UserRevertError{
- Error: &gitalypb.UserRevertError_ChangesAlreadyApplied{
- ChangesAlreadyApplied: &gitalypb.ChangesAlreadyAppliedError{},
- },
- })
- } else {
- return &gitalypb.UserRevertResponse{
- // it's better that this error matches the git2go for now
- CreateTreeError: "revert: could not apply because the result was empty",
- CreateTreeErrorCode: gitalypb.UserRevertResponse_EMPTY,
- }, nil
- }
+ return &gitalypb.UserRevertResponse{
+ // it's better that this error matches the git2go for now
+ CreateTreeError: "revert: could not apply because the result was empty",
+ CreateTreeErrorCode: gitalypb.UserRevertResponse_EMPTY,
+ }, nil
}
newrev, err = quarantineRepo.WriteCommit(
@@ -191,39 +166,18 @@ func (s *Server) UserRevert(ctx context.Context, req *gitalypb.UserRevertRequest
return nil, structerr.NewInternal("checking for ancestry: %w", err)
}
if !ancestor {
- if featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- return nil, structerr.NewFailedPrecondition("revert: branch diverged").WithDetail(
- &gitalypb.UserRevertError{
- Error: &gitalypb.UserRevertError_NotAncestor{
- NotAncestor: &gitalypb.NotAncestorError{
- ParentRevision: []byte(oldrev.Revision()),
- ChildRevision: []byte(newrev.Revision()),
- },
- },
- })
- } else {
- return &gitalypb.UserRevertResponse{
- CommitError: "Branch diverged",
- }, nil
- }
+ return &gitalypb.UserRevertResponse{
+ CommitError: "Branch diverged",
+ }, nil
}
}
if err := s.updateReferenceWithHooks(ctx, req.GetRepository(), req.User, quarantineDir, referenceName, newrev, oldrev); err != nil {
var customHookErr updateref.CustomHookError
if errors.As(err, &customHookErr) {
- if featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- return nil, structerr.NewPermissionDenied("revert: custom hook error").WithDetail(
- &gitalypb.UserRevertError{
- Error: &gitalypb.UserRevertError_CustomHook{
- CustomHook: customHookErr.Proto(),
- },
- })
- } else {
- return &gitalypb.UserRevertResponse{
- PreReceiveError: customHookErr.Error(),
- }, nil
- }
+ return &gitalypb.UserRevertResponse{
+ PreReceiveError: customHookErr.Error(),
+ }, nil
}
return nil, fmt.Errorf("update reference with hooks: %w", err)
diff --git a/internal/gitaly/service/operations/revert_test.go b/internal/gitaly/service/operations/revert_test.go
index 754bf0748..225669662 100644
--- a/internal/gitaly/service/operations/revert_test.go
+++ b/internal/gitaly/service/operations/revert_test.go
@@ -19,8 +19,6 @@ import (
"gitlab.com/gitlab-org/gitaly/v16/internal/testhelper/testcfg"
"gitlab.com/gitlab-org/gitaly/v16/internal/testhelper/testserver"
"gitlab.com/gitlab-org/gitaly/v16/proto/go/gitalypb"
- "google.golang.org/grpc/codes"
- "google.golang.org/grpc/status"
"google.golang.org/protobuf/types/known/timestamppb"
)
@@ -429,7 +427,6 @@ func TestServer_UserRevert_quarantine(t *testing.T) {
testhelper.NewFeatureSets(
featureflag.GPGSigning,
- featureflag.ReturnStructuredErrorsInUserRevert,
).Run(t, testServerUserRevertQuarantine)
}
@@ -471,22 +468,9 @@ func testServerUserRevertQuarantine(t *testing.T, ctx context.Context) {
Message: []byte("Reverting " + revertedCommit.Id),
Timestamp: &timestamppb.Timestamp{Seconds: 12345},
})
- if featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- expectedError := structerr.NewPermissionDenied("revert: custom hook error").WithDetail(
- &gitalypb.UserRevertError{
- Error: &gitalypb.UserRevertError_CustomHook{
- CustomHook: &gitalypb.CustomHookError{
- HookType: gitalypb.CustomHookError_HOOK_TYPE_PRERECEIVE,
- },
- },
- })
- testhelper.RequireGrpcError(t, expectedError, err)
- } else {
- require.NoError(t, err)
- require.NotNil(t, response)
- require.NotEmpty(t, response.PreReceiveError)
-
- }
+ require.NoError(t, err)
+ require.NotNil(t, response)
+ require.NotEmpty(t, response.PreReceiveError)
objectHash, err := repo.ObjectHash(ctx)
require.NoError(t, err)
@@ -615,7 +599,6 @@ func TestServer_UserRevert_stableID(t *testing.T) {
testhelper.NewFeatureSets(
featureflag.GPGSigning,
- featureflag.ReturnStructuredErrorsInUserRevert,
).Run(t, testServerUserRevertStableID)
}
@@ -669,10 +652,8 @@ func testServerUserRevertStableID(t *testing.T, ctx context.Context) {
"sha256": "28b57208e72bc2317143571997b9cfc444a51b52a43dde1c0282633a2b60de71",
}),
}, response.BranchUpdate)
- if !featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- require.Empty(t, response.CreateTreeError)
- require.Empty(t, response.CreateTreeErrorCode)
- }
+ require.Empty(t, response.CreateTreeError)
+ require.Empty(t, response.CreateTreeErrorCode)
// headCommit is pointed commit after revert
headCommit, err := repo.ReadCommit(ctx, git.Revision(git.DefaultBranch))
@@ -714,7 +695,6 @@ func TestServer_UserRevert_successfulIntoEmptyRepo(t *testing.T) {
testhelper.NewFeatureSets(
featureflag.GPGSigning,
- featureflag.ReturnStructuredErrorsInUserRevert,
).Run(t, testServerUserRevertSuccessfulIntoEmptyRepo)
}
@@ -772,10 +752,8 @@ func testServerUserRevertSuccessfulIntoEmptyRepo(t *testing.T, ctx context.Conte
}
require.Equal(t, expectedBranchUpdate, response.BranchUpdate)
- if !featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- require.Empty(t, response.CreateTreeError)
- require.Empty(t, response.CreateTreeErrorCode)
- }
+ require.Empty(t, response.CreateTreeError)
+ require.Empty(t, response.CreateTreeErrorCode)
require.Equal(t, request.Message, headCommit.Subject)
require.Equal(t, revertedCommit.Id, headCommit.ParentIds[0])
gittest.RequireTree(t, cfg, repoPath, response.BranchUpdate.CommitId,
@@ -789,7 +767,6 @@ func TestServer_UserRevert_successfulGitHooks(t *testing.T) {
testhelper.NewFeatureSets(
featureflag.GPGSigning,
- featureflag.ReturnStructuredErrorsInUserRevert,
).Run(t, testServerUserRevertSuccessfulGitHooks)
}
@@ -829,9 +806,7 @@ func testServerUserRevertSuccessfulGitHooks(t *testing.T, ctx context.Context) {
response, err := client.UserRevert(ctx, request)
require.NoError(t, err)
- if !featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- require.Empty(t, response.PreReceiveError)
- }
+ require.Empty(t, response.PreReceiveError)
headCommit, err := repo.ReadCommit(ctx, git.Revision(destinationBranch))
require.NoError(t, err)
gittest.RequireTree(t, cfg, repoPath, headCommit.Id, nil)
@@ -847,7 +822,6 @@ func TestServer_UserRevert_failedDueToPreReceiveError(t *testing.T) {
testhelper.NewFeatureSets(
featureflag.GPGSigning,
- featureflag.ReturnStructuredErrorsInUserRevert,
).Run(t, testServerUserRevertFailedDueToPreReceiveError)
}
@@ -885,19 +859,9 @@ func testServerUserRevertFailedDueToPreReceiveError(t *testing.T, ctx context.Co
t.Run(hookName, func(t *testing.T) {
gittest.WriteCustomHook(t, repoPath, hookName, hookContent)
- if featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- _, err := client.UserRevert(ctx, request)
- actualStatus, _ := status.FromError(err)
- require.Equal(t, actualStatus.Code(), codes.PermissionDenied)
- require.Equal(t, actualStatus.Message(), "revert: custom hook error")
- revertError, ok := actualStatus.Details()[0].(*gitalypb.UserRevertError)
- require.True(t, ok)
- require.Contains(t, revertError.GetCustomHook().String(), "GL_ID="+gittest.TestUser.GlId)
- } else {
- response, err := client.UserRevert(ctx, request)
- require.NoError(t, err)
- require.Contains(t, response.PreReceiveError, "GL_ID="+gittest.TestUser.GlId)
- }
+ response, err := client.UserRevert(ctx, request)
+ require.NoError(t, err)
+ require.Contains(t, response.PreReceiveError, "GL_ID="+gittest.TestUser.GlId)
})
}
}
@@ -907,7 +871,6 @@ func TestServer_UserRevert_failedDueToCreateTreeErrorConflict(t *testing.T) {
testhelper.NewFeatureSets(
featureflag.GPGSigning,
- featureflag.ReturnStructuredErrorsInUserRevert,
).Run(t, testServerUserRevertFailedDueToCreateTreeErrorConflict)
}
@@ -954,20 +917,10 @@ func testServerUserRevertFailedDueToCreateTreeErrorConflict(t *testing.T, ctx co
Message: []byte("Reverting " + revertedCommit.Id),
}
- if featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- _, err = client.UserRevert(ctx, request)
- actualStatus, _ := status.FromError(err)
- require.Equal(t, actualStatus.Code(), codes.FailedPrecondition)
- require.Equal(t, actualStatus.Message(), "revert: there are conflicting files")
- revertError, ok := actualStatus.Details()[0].(*gitalypb.UserRevertError)
- require.True(t, ok)
- require.NotNil(t, revertError.GetMergeConflict())
- } else {
- response, err := client.UserRevert(ctx, request)
- require.NoError(t, err)
- require.NotEmpty(t, response.CreateTreeError)
- require.Equal(t, gitalypb.UserRevertResponse_CONFLICT, response.CreateTreeErrorCode)
- }
+ response, err := client.UserRevert(ctx, request)
+ require.NoError(t, err)
+ require.NotEmpty(t, response.CreateTreeError)
+ require.Equal(t, gitalypb.UserRevertResponse_CONFLICT, response.CreateTreeErrorCode)
}
func TestServer_UserRevert_failedDueToCreateTreeErrorEmpty(t *testing.T) {
@@ -975,7 +928,6 @@ func TestServer_UserRevert_failedDueToCreateTreeErrorEmpty(t *testing.T) {
testhelper.NewFeatureSets(
featureflag.GPGSigning,
- featureflag.ReturnStructuredErrorsInUserRevert,
).Run(t, testServerUserRevertFailedDueToCreateTreeErrorEmpty)
}
@@ -1037,25 +989,13 @@ func testServerUserRevertFailedDueToCreateTreeErrorEmpty(t *testing.T, ctx conte
response, err := client.UserRevert(ctx, request)
require.NoError(t, err)
+ require.Empty(t, response.CreateTreeError)
+ require.Equal(t, gitalypb.UserRevertResponse_NONE, response.CreateTreeErrorCode)
- if featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- _, err = client.UserRevert(ctx, request)
-
- expectedError := structerr.NewFailedPrecondition("revert: could not apply because the result was empty").WithDetail(
- &gitalypb.UserRevertError{
- Error: &gitalypb.UserRevertError_ChangesAlreadyApplied{},
- })
- testhelper.RequireGrpcError(t, expectedError, err)
- } else {
- require.NoError(t, err)
- require.Empty(t, response.CreateTreeError)
- require.Equal(t, gitalypb.UserRevertResponse_NONE, response.CreateTreeErrorCode)
-
- response, err = client.UserRevert(ctx, request)
- require.NoError(t, err)
- require.NotEmpty(t, response.CreateTreeError)
- require.Equal(t, gitalypb.UserRevertResponse_EMPTY, response.CreateTreeErrorCode)
- }
+ response, err = client.UserRevert(ctx, request)
+ require.NoError(t, err)
+ require.NotEmpty(t, response.CreateTreeError)
+ require.Equal(t, gitalypb.UserRevertResponse_EMPTY, response.CreateTreeErrorCode)
}
func TestServer_UserRevert_failedDueToCommitError(t *testing.T) {
@@ -1063,7 +1003,6 @@ func TestServer_UserRevert_failedDueToCommitError(t *testing.T) {
testhelper.NewFeatureSets(
featureflag.GPGSigning,
- featureflag.ReturnStructuredErrorsInUserRevert,
).Run(t, testServerUserRevertFailedDueToCommitError)
}
@@ -1106,17 +1045,8 @@ func testServerUserRevertFailedDueToCommitError(t *testing.T, ctx context.Contex
Message: []byte("Reverting " + revertedCommit.Id),
StartBranchName: []byte(sourceBranch),
}
- response, err := client.UserRevert(ctx, request)
- if featureflag.ReturnStructuredErrorsInUserRevert.IsEnabled(ctx) {
- actualStatus, _ := status.FromError(err)
- require.Equal(t, actualStatus.Code(), codes.FailedPrecondition)
- require.Equal(t, actualStatus.Message(), "revert: branch diverged")
- revertError, ok := actualStatus.Details()[0].(*gitalypb.UserRevertError)
- require.True(t, ok)
- require.NotNil(t, revertError.GetNotAncestor())
- } else {
- require.NoError(t, err)
- require.Equal(t, "Branch diverged", response.CommitError)
- }
+ response, err := client.UserRevert(ctx, request)
+ require.NoError(t, err)
+ require.Equal(t, "Branch diverged", response.CommitError)
}
diff --git a/internal/gitaly/service/operations/tags.go b/internal/gitaly/service/operations/tags.go
index 83b2d7b1f..bc78ca810 100644
--- a/internal/gitaly/service/operations/tags.go
+++ b/internal/gitaly/service/operations/tags.go
@@ -331,7 +331,7 @@ func (s *Server) createTag(
if err != nil {
return nil, "", structerr.NewInternal("getting commit: %w", err)
}
- tagObject.TargetCommit = peeledTargetCommit
+ tagObject.TargetCommit = peeledTargetCommit.GitCommit
}
return tagObject, refObjectID, nil
diff --git a/internal/gitaly/service/ref/find_all_tags.go b/internal/gitaly/service/ref/find_all_tags.go
index 2091b0011..e58917c15 100644
--- a/internal/gitaly/service/ref/find_all_tags.go
+++ b/internal/gitaly/service/ref/find_all_tags.go
@@ -100,10 +100,11 @@ func (s *server) findAllTags(ctx context.Context, repo *localrepo.Repo, sortFiel
// which refers to a commit object. Otherwise, we discard the object's
// contents.
if peeledTag.ObjectType() == "commit" {
- result.TargetCommit, err = parser.ParseCommit(peeledTag)
+ commit, err := parser.ParseCommit(peeledTag)
if err != nil {
return fmt.Errorf("parsing tagged commit: %w", err)
}
+ result.TargetCommit = commit.GitCommit
} else {
if _, err := io.Copy(io.Discard, peeledTag); err != nil {
return fmt.Errorf("discarding tagged object contents: %w", err)
@@ -117,7 +118,7 @@ func (s *server) findAllTags(ctx context.Context, repo *localrepo.Repo, sortFiel
result = &gitalypb.Tag{
Id: tag.ObjectID().String(),
- TargetCommit: commit,
+ TargetCommit: commit.GitCommit,
}
default:
if _, err := io.Copy(io.Discard, tag); err != nil {
diff --git a/internal/gitaly/service/ref/find_tag.go b/internal/gitaly/service/ref/find_tag.go
index 69f3d93f8..1c700bd65 100644
--- a/internal/gitaly/service/ref/find_tag.go
+++ b/internal/gitaly/service/ref/find_tag.go
@@ -57,7 +57,7 @@ func parseTagLine(ctx context.Context, objectReader catfile.ObjectContentReader,
if err != nil {
return nil, fmt.Errorf("getting commit catfile: %w", err)
}
- tag.TargetCommit = commit
+ tag.TargetCommit = commit.GitCommit
return tag, nil
default:
return tag, nil
diff --git a/internal/gitaly/service/ref/util.go b/internal/gitaly/service/ref/util.go
index 4f90c3b0d..144d83308 100644
--- a/internal/gitaly/service/ref/util.go
+++ b/internal/gitaly/service/ref/util.go
@@ -35,7 +35,7 @@ func buildAllBranchesBranch(ctx context.Context, objectReader catfile.ObjectCont
return &gitalypb.FindAllBranchesResponse_Branch{
Name: elements[0],
- Target: target,
+ Target: target.GitCommit,
}, nil
}
@@ -47,7 +47,7 @@ func buildBranch(ctx context.Context, objectReader catfile.ObjectContentReader,
return &gitalypb.Branch{
Name: elements[0],
- TargetCommit: target,
+ TargetCommit: target.GitCommit,
}, nil
}
diff --git a/internal/gitaly/service/repository/remove_all_test.go b/internal/gitaly/service/repository/remove_all_test.go
index fd913523a..785f54b01 100644
--- a/internal/gitaly/service/repository/remove_all_test.go
+++ b/internal/gitaly/service/repository/remove_all_test.go
@@ -28,7 +28,6 @@ Issue: https://gitlab.com/gitlab-org/gitaly/-/issues/5269`)
require.DirExists(t, repo1Path)
require.DirExists(t, repo1Path)
- //nolint:staticcheck
_, err := client.RemoveAll(ctx, &gitalypb.RemoveAllRequest{
StorageName: cfg.Storages[0].Name,
})