aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZettat123 <zettat123@gmail.com>2024-05-15 22:25:47 +0800
committerGitHub <noreply@github.com>2024-05-15 14:25:47 +0000
commitfc89363832c87678d9e35e865b49c63c7ad498f2 (patch)
tree703ea31cb58c9238bebcb0abd3159d5c94ca6e7d
parentd0d6aad85f4d1e2a6d2a6524fe13eccecfd350af (diff)
downloadgitea-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.go10
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
}