[API] fix deleting an issue when the git repo does not exist

Fixes: https://codeberg.org/forgejo/forgejo/issues/629
(cherry picked from commit 5f06dcae26)
(cherry picked from commit 1d8ae34e57)
(cherry picked from commit 398580975c)
(cherry picked from commit d007bf4c07)
This commit is contained in:
Loïc Dachary 2023-04-09 11:46:25 +02:00 committed by Earl Warren
parent 3ad2e63c09
commit 985e378272
No known key found for this signature in database
GPG key ID: 0579CB2928A78A00

View file

@ -4,6 +4,7 @@
package issue package issue
import ( import (
"context"
"fmt" "fmt"
activities_model "code.gitea.io/gitea/models/activities" activities_model "code.gitea.io/gitea/models/activities"
@ -132,11 +133,17 @@ func UpdateAssignees(issue *issues_model.Issue, oneAssignee string, multipleAssi
// DeleteIssue deletes an issue // DeleteIssue deletes an issue
func DeleteIssue(doer *user_model.User, gitRepo *git.Repository, issue *issues_model.Issue) error { func DeleteIssue(doer *user_model.User, gitRepo *git.Repository, issue *issues_model.Issue) error {
var ctx context.Context
if gitRepo == nil {
ctx = db.DefaultContext
} else {
ctx = gitRepo.Ctx
}
// load issue before deleting it // load issue before deleting it
if err := issue.LoadAttributes(gitRepo.Ctx); err != nil { if err := issue.LoadAttributes(ctx); err != nil {
return err return err
} }
if err := issue.LoadPullRequest(gitRepo.Ctx); err != nil { if err := issue.LoadPullRequest(ctx); err != nil {
return err return err
} }
@ -152,7 +159,7 @@ func DeleteIssue(doer *user_model.User, gitRepo *git.Repository, issue *issues_m
} }
} }
notification.NotifyDeleteIssue(gitRepo.Ctx, doer, issue) notification.NotifyDeleteIssue(ctx, doer, issue)
return nil return nil
} }