From d409421784b1ecb65b3d9be6f0ba86b55bfdb083 Mon Sep 17 00:00:00 2001 From: Anton Popovichenko Date: Tue, 29 Apr 2025 00:00:44 +0200 Subject: [PATCH] tags: Log stderr message when mktag command failed --- internal/git/localrepo/tag.go | 6 ++++++ internal/gitaly/service/operations/tags.go | 8 ++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/internal/git/localrepo/tag.go b/internal/git/localrepo/tag.go index 59b8da8d8d..88091698c3 100644 --- a/internal/git/localrepo/tag.go +++ b/internal/git/localrepo/tag.go @@ -76,6 +76,12 @@ func (e MktagError) Error() string { return fmt.Sprintf("Could not update refs/tags/%s. Please refresh and try again.", e.tagName) } +// DetailedError provides a more detailed error message that includes the `stderr` content. +// Once the backwards compatibility requirement is removed, this can be moved to the Error() function. +func (e MktagError) DetailedError() string { + return fmt.Sprintf("mktag failed for refs/tags/%s, stderr: %q", e.tagName, e.stderr) +} + // WriteTag writes a tag to the repository's object database with // git-mktag and returns its object ID. // diff --git a/internal/gitaly/service/operations/tags.go b/internal/gitaly/service/operations/tags.go index 604299bc24..89c45a00a8 100644 --- a/internal/gitaly/service/operations/tags.go +++ b/internal/gitaly/service/operations/tags.go @@ -290,8 +290,12 @@ func (s *Server) createTag( return nil, "", structerr.NewInvalidArgument("formatting tag: %w", formatTagErr) } - var MktagError localrepo.MktagError - if errors.As(err, &MktagError) { + var mktagError localrepo.MktagError + if errors.As(err, &mktagError) { + // TODO: can be delete once localrepo.MktagError.Error() + // backwards compatibility requirement is removed. + s.logger.WithField("error", mktagError.DetailedError()).Error("making tag failed") + return nil, "", structerr.NewNotFound("Gitlab::Git::CommitError: %s", err.Error()) } return nil, "", structerr.NewInternal("writing tag: %w", err) -- GitLab