Check if the release is converted from the tag when updating the release (#30984)

Call `notify_service.NewRelease` when a release is created
from an existing tag.
This commit is contained in:
Zettat123 2024-05-15 22:25:47 +08:00 committed by GitHub
parent d0d6aad85f
commit fc89363832
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -204,7 +204,7 @@ func UpdateRelease(ctx context.Context, doer *user_model.User, gitRepo *git.Repo
if rel.ID == 0 { if rel.ID == 0 {
return errors.New("UpdateRelease only accepts an exist release") return errors.New("UpdateRelease only accepts an exist release")
} }
isCreated, err := createTag(gitRepo.Ctx, gitRepo, rel, "") isTagCreated, err := createTag(gitRepo.Ctx, gitRepo, rel, "")
if err != nil { if err != nil {
return err return err
} }
@ -216,6 +216,12 @@ func UpdateRelease(ctx context.Context, doer *user_model.User, gitRepo *git.Repo
} }
defer committer.Close() defer committer.Close()
oldRelease, err := repo_model.GetReleaseByID(ctx, rel.ID)
if err != nil {
return err
}
isConvertedFromTag := oldRelease.IsTag && !rel.IsTag
if err = repo_model.UpdateRelease(ctx, rel); err != nil { if err = repo_model.UpdateRelease(ctx, rel); err != nil {
return err return err
} }
@ -292,7 +298,7 @@ func UpdateRelease(ctx context.Context, doer *user_model.User, gitRepo *git.Repo
} }
if !rel.IsDraft { if !rel.IsDraft {
if !isCreated { if !isTagCreated && !isConvertedFromTag {
notify_service.UpdateRelease(gitRepo.Ctx, doer, rel) notify_service.UpdateRelease(gitRepo.Ctx, doer, rel)
return nil return nil
} }