]> source.dussan.org Git - gitea.git/commitdiff
Do not use lower tag names to find releases/tags (#29261)
authorJason Song <i@wolfogre.com>
Mon, 19 Feb 2024 09:31:36 +0000 (17:31 +0800)
committerGitHub <noreply@github.com>
Mon, 19 Feb 2024 09:31:36 +0000 (09:31 +0000)
Fix #26090, see
https://github.com/go-gitea/gitea/issues/26090#issuecomment-1952013206

Since `TagName` stores the original tag name and `LowerTagName` stores
the lower tag name, it doesn't make sense to use lowercase tags as
`TagNames` in `FindReleasesOptions`.

https://github.com/go-gitea/gitea/blob/5e72526da4e915791f03af056890e16821bde052/services/repository/push.go#L396-L397

While the only other usage looks correct:

https://github.com/go-gitea/gitea/blob/5e72526da4e915791f03af056890e16821bde052/routers/web/repo/repo.go#L416

services/repository/push.go

index bedcf6f2524b55e2b49a99cf6d58297f27cda4c8..c76025b6a78b928dab3607868692061193d724ac 100644 (file)
@@ -321,14 +321,9 @@ func pushUpdateAddTags(ctx context.Context, repo *repo_model.Repository, gitRepo
                return nil
        }
 
-       lowerTags := make([]string, 0, len(tags))
-       for _, tag := range tags {
-               lowerTags = append(lowerTags, strings.ToLower(tag))
-       }
-
        releases, err := db.Find[repo_model.Release](ctx, repo_model.FindReleasesOptions{
                RepoID:   repo.ID,
-               TagNames: lowerTags,
+               TagNames: tags,
        })
        if err != nil {
                return fmt.Errorf("db.Find[repo_model.Release]: %w", err)
@@ -338,6 +333,11 @@ func pushUpdateAddTags(ctx context.Context, repo *repo_model.Repository, gitRepo
                relMap[rel.LowerTagName] = rel
        }
 
+       lowerTags := make([]string, 0, len(tags))
+       for _, tag := range tags {
+               lowerTags = append(lowerTags, strings.ToLower(tag))
+       }
+
        newReleases := make([]*repo_model.Release, 0, len(lowerTags)-len(relMap))
 
        emailToUser := make(map[string]*user_model.User)