From b9963809c2e56332b2facd6699d6054ed77ecc21 Mon Sep 17 00:00:00 2001 From: "Babak K. Shandiz" Date: Mon, 29 Jul 2024 23:25:34 +0100 Subject: [PATCH] Use signature-stripped tag annotation content Signed-off-by: Babak K. Shandiz --- pkg/cmd/release/create/create.go | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/pkg/cmd/release/create/create.go b/pkg/cmd/release/create/create.go index 1cfc5ba06..132e2c801 100644 --- a/pkg/cmd/release/create/create.go +++ b/pkg/cmd/release/create/create.go @@ -516,12 +516,32 @@ func createRun(opts *CreateOptions) error { } func gitTagInfo(client *git.Client, tagName string) (string, error) { - cmd, err := client.Command(context.Background(), "tag", "--list", tagName, "--format=%(contents:subject)%0a%0a%(contents:body)") + contentCmd, err := client.Command(context.Background(), "tag", "--list", tagName, "--format=%(contents)") if err != nil { return "", err } - b, err := cmd.Output() - return string(b), err + content, err := contentCmd.Output() + if err != nil { + return "", err + } + + signatureCmd, err := client.Command(context.Background(), "tag", "--list", tagName, "--format=%(contents:signature)") + if err != nil { + return "", err + } + signature, err := signatureCmd.Output() + if err != nil { + return "", err + } + + if len(signature) == 0 { + // The tag annotation content has no trailing signature to strip out, + // so we return the entire content. + return string(content), nil + } + + body, _ := strings.CutSuffix(string(content), "\n"+string(signature)) + return body, nil } func detectPreviousTag(client *git.Client, headRef string) (string, error) {