diff options
author | Zettat123 <zettat123@gmail.com> | 2024-05-15 22:25:47 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-15 14:25:47 +0000 |
commit | fc89363832c87678d9e35e865b49c63c7ad498f2 (patch) | |
tree | 703ea31cb58c9238bebcb0abd3159d5c94ca6e7d | |
parent | d0d6aad85f4d1e2a6d2a6524fe13eccecfd350af (diff) | |
download | gitea-fc89363832c87678d9e35e865b49c63c7ad498f2.tar.gz gitea-fc89363832c87678d9e35e865b49c63c7ad498f2.zip |
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.
-rw-r--r-- | services/release/release.go | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/services/release/release.go b/services/release/release.go index ba5fd1dd98..399fdc79c0 100644 --- a/services/release/release.go +++ b/services/release/release.go @@ -204,7 +204,7 @@ func UpdateRelease(ctx context.Context, doer *user_model.User, gitRepo *git.Repo if rel.ID == 0 { 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 { return err } @@ -216,6 +216,12 @@ func UpdateRelease(ctx context.Context, doer *user_model.User, gitRepo *git.Repo } 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 { return err } @@ -292,7 +298,7 @@ func UpdateRelease(ctx context.Context, doer *user_model.User, gitRepo *git.Repo } if !rel.IsDraft { - if !isCreated { + if !isTagCreated && !isConvertedFromTag { notify_service.UpdateRelease(gitRepo.Ctx, doer, rel) return nil } |