code.gitea.io/gitea@v1.21.7/services/issue/status.go (about) 1 // Copyright 2019 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package issue 5 6 import ( 7 "context" 8 9 issues_model "code.gitea.io/gitea/models/issues" 10 user_model "code.gitea.io/gitea/models/user" 11 "code.gitea.io/gitea/modules/log" 12 notify_service "code.gitea.io/gitea/services/notify" 13 ) 14 15 // ChangeStatus changes issue status to open or closed. 16 func ChangeStatus(ctx context.Context, issue *issues_model.Issue, doer *user_model.User, commitID string, closed bool) error { 17 comment, err := issues_model.ChangeIssueStatus(ctx, issue, doer, closed) 18 if err != nil { 19 if issues_model.IsErrDependenciesLeft(err) && closed { 20 if err := issues_model.FinishIssueStopwatchIfPossible(ctx, doer, issue); err != nil { 21 log.Error("Unable to stop stopwatch for issue[%d]#%d: %v", issue.ID, issue.Index, err) 22 } 23 } 24 return err 25 } 26 27 if closed { 28 if err := issues_model.FinishIssueStopwatchIfPossible(ctx, doer, issue); err != nil { 29 return err 30 } 31 } 32 33 notify_service.IssueChangeStatus(ctx, doer, commitID, issue, comment, closed) 34 35 return nil 36 }