1
1
mirror of https://github.com/go-gitea/gitea synced 2025-12-07 13:28:25 +00:00

More improvements

This commit is contained in:
Lunny Xiao
2024-11-10 13:29:12 -08:00
parent 406884a6f4
commit ed261f1403
7 changed files with 39 additions and 22 deletions
+12 -7
View File
@@ -188,15 +188,20 @@ func UpdateIssuesCommit(ctx context.Context, doer *user_model.User, repo *repo_m
continue
}
}
isClosed := ref.Action == references.XRefActionCloses
if isClosed && len(ref.TimeLog) > 0 {
if err := issueAddTime(ctx, refIssue, doer, c.Timestamp, ref.TimeLog); err != nil {
closeOrReopen := ref.Action == references.XRefActionCloses
refIssue.Repo = refRepo
if closeOrReopen && !refIssue.IsClosed {
if len(ref.TimeLog) > 0 {
if err := issueAddTime(ctx, refIssue, doer, c.Timestamp, ref.TimeLog); err != nil {
return err
}
}
if err := CloseIssue(ctx, refIssue, doer, c.Sha1); err != nil {
return err
}
}
if isClosed && !refIssue.IsClosed {
refIssue.Repo = refRepo
if err := CloseIssue(ctx, refIssue, doer, c.Sha1); err != nil {
} else if !closeOrReopen && refIssue.IsClosed {
if err := ReopenIssue(ctx, refIssue, doer, c.Sha1); err != nil {
return err
}
}
+2 -6
View File
@@ -14,7 +14,7 @@ import (
// CloseIssue close and issue.
func CloseIssue(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, commitID string) error {
comment, err := issues_model.ChangeIssueStatus(ctx, issue, doer, true)
comment, err := issues_model.CloseIssue(ctx, issue, doer)
if err != nil {
if issues_model.IsErrDependenciesLeft(err) {
if err := issues_model.FinishIssueStopwatchIfPossible(ctx, doer, issue); err != nil {
@@ -36,15 +36,11 @@ func CloseIssue(ctx context.Context, issue *issues_model.Issue, doer *user_model
// ReopenIssue reopen an issue.
// FIXME: If some issues dependent this one are closed, should we also reopen them?
func ReopenIssue(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, commitID string) error {
comment, err := issues_model.ChangeIssueStatus(ctx, issue, doer, false)
comment, err := issues_model.ReopenIssue(ctx, issue, doer)
if err != nil {
return err
}
if err := issues_model.FinishIssueStopwatchIfPossible(ctx, doer, issue); err != nil {
return err
}
notify_service.IssueChangeStatus(ctx, doer, commitID, issue, comment, false)
return nil
+6 -2
View File
@@ -242,14 +242,18 @@ func handleCloseCrossReferences(ctx context.Context, pr *issues_model.PullReques
if err = ref.Issue.LoadRepo(ctx); err != nil {
return err
}
isClosed := ref.RefAction == references.XRefActionCloses
if isClosed && !ref.Issue.IsClosed {
closeOrReopen := ref.RefAction == references.XRefActionCloses
if closeOrReopen && !ref.Issue.IsClosed {
if err = issue_service.CloseIssue(ctx, ref.Issue, doer, pr.MergedCommitID); err != nil {
// Allow ErrDependenciesLeft
if !issues_model.IsErrDependenciesLeft(err) {
return err
}
}
} else if !closeOrReopen && ref.Issue.IsClosed {
if err = issue_service.ReopenIssue(ctx, ref.Issue, doer, pr.MergedCommitID); err != nil {
return err
}
}
}
return nil