MCPcopy Create free account
hub / github.com/gogs/gogs / changeStatus

Method changeStatus

internal/database/issue.go:430–469  ·  view source on GitHub ↗
(e *xorm.Session, doer *User, repo *Repository, isClosed bool)

Source from the content-addressed store, hash-verified

428}
429
430func (issue *Issue) changeStatus(e *xorm.Session, doer *User, repo *Repository, isClosed bool) (err error) {
431 // Nothing should be performed if current status is same as target status
432 if issue.IsClosed == isClosed {
433 return nil
434 }
435 issue.IsClosed = isClosed
436
437 if err = updateIssueCols(e, issue, "is_closed"); err != nil {
438 return err
439 } else if err = updateIssueUsersByStatus(e, issue.ID, isClosed); err != nil {
440 return err
441 }
442
443 // Update issue count of labels
444 if err = issue.getLabels(e); err != nil {
445 return err
446 }
447 for idx := range issue.Labels {
448 if issue.IsClosed {
449 issue.Labels[idx].NumClosedIssues++
450 } else {
451 issue.Labels[idx].NumClosedIssues--
452 }
453 if err = updateLabel(e, issue.Labels[idx]); err != nil {
454 return err
455 }
456 }
457
458 // Update issue count of milestone
459 if err = changeMilestoneIssueStats(e, issue); err != nil {
460 return err
461 }
462
463 // New action comment
464 if _, err = createStatusComment(e, doer, repo, issue); err != nil {
465 return err
466 }
467
468 return nil
469}
470
471// ChangeStatus changes issue status to open or closed.
472func (issue *Issue) ChangeStatus(doer *User, repo *Repository, isClosed bool) (err error) {

Callers 2

ChangeStatusMethod · 0.95
MergeMethod · 0.80

Implementers 1

mailerIssueinternal/database/issue_mail.go

Calls 6

getLabelsMethod · 0.95
updateIssueColsFunction · 0.85
updateIssueUsersByStatusFunction · 0.85
updateLabelFunction · 0.85
createStatusCommentFunction · 0.85

Tested by

no test coverage detected