Skip to content

Commit 6ddb2dc

Browse files
authored
change the default action when deleting a release to not delete tag (#579)
1 parent 729ab80 commit 6ddb2dc

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

models/release.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ func UpdateRelease(gitRepo *git.Repository, rel *Release) (err error) {
189189
}
190190

191191
// DeleteReleaseByID deletes a release and corresponding Git tag by given ID.
192-
func DeleteReleaseByID(id int64, u *User) error {
192+
func DeleteReleaseByID(id int64, u *User, delTag bool) error {
193193
rel, err := GetReleaseByID(id)
194194
if err != nil {
195195
return fmt.Errorf("GetReleaseByID: %v", err)
@@ -207,11 +207,13 @@ func DeleteReleaseByID(id int64, u *User) error {
207207
return fmt.Errorf("DeleteReleaseByID: permission denied")
208208
}
209209

210-
_, stderr, err := process.ExecDir(-1, repo.RepoPath(),
211-
fmt.Sprintf("DeleteReleaseByID (git tag -d): %d", rel.ID),
212-
"git", "tag", "-d", rel.TagName)
213-
if err != nil && !strings.Contains(stderr, "not found") {
214-
return fmt.Errorf("git tag -d: %v - %s", err, stderr)
210+
if delTag {
211+
_, stderr, err := process.ExecDir(-1, repo.RepoPath(),
212+
fmt.Sprintf("DeleteReleaseByID (git tag -d): %d", rel.ID),
213+
"git", "tag", "-d", rel.TagName)
214+
if err != nil && !strings.Contains(stderr, "not found") {
215+
return fmt.Errorf("git tag -d: %v - %s", err, stderr)
216+
}
215217
}
216218

217219
if _, err = x.Id(rel.ID).Delete(new(Release)); err != nil {

routers/repo/release.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,8 @@ func EditReleasePost(ctx *context.Context, form auth.EditReleaseForm) {
296296

297297
// DeleteRelease delete a release
298298
func DeleteRelease(ctx *context.Context) {
299-
if err := models.DeleteReleaseByID(ctx.QueryInt64("id"), ctx.User); err != nil {
299+
delTag := ctx.QueryBool("delTag")
300+
if err := models.DeleteReleaseByID(ctx.QueryInt64("id"), ctx.User, delTag); err != nil {
300301
ctx.Flash.Error("DeleteReleaseByID: " + err.Error())
301302
} else {
302303
ctx.Flash.Success(ctx.Tr("repo.release.deletion_success"))

0 commit comments

Comments
 (0)