diff --git a/internal/database/release.go b/internal/database/release.go index ae56c8362..384501aed 100644 --- a/internal/database/release.go +++ b/internal/database/release.go @@ -13,7 +13,6 @@ import ( "github.com/gogs/git-module" "gogs.io/gogs/internal/errutil" - "gogs.io/gogs/internal/process" apiv1types "gogs.io/gogs/internal/route/api/v1/types" ) @@ -359,11 +358,13 @@ func DeleteReleaseOfRepoByID(repoID, id int64) error { return errors.Newf("GetRepositoryByID: %v", err) } - _, stderr, err := process.ExecDir(-1, repo.RepoPath(), - fmt.Sprintf("DeleteReleaseByID (git tag -d): %d", rel.ID), - "git", "tag", "-d", rel.TagName) - if err != nil && !strings.Contains(stderr, "not found") { - return errors.Newf("git tag -d: %v - %s", err, stderr) + gitRepo, err := git.Open(repo.RepoPath()) + if err != nil { + return errors.Newf("open repository: %v", err) + } + err = gitRepo.DeleteTag(rel.TagName) + if err != nil && !strings.Contains(err.Error(), "not found") { + return errors.Newf("delete tag: %v", err) } if _, err = x.Id(rel.ID).Delete(new(Release)); err != nil {