|
|
|
@ -364,7 +364,7 @@ func NewIssue(repo *Repository, issue *Issue, labelIDs []int64, uuids []string)
|
|
|
|
|
ActUserID: issue.Poster.Id,
|
|
|
|
|
ActUserName: issue.Poster.Name,
|
|
|
|
|
ActEmail: issue.Poster.Email,
|
|
|
|
|
OpType: CREATE_ISSUE,
|
|
|
|
|
OpType: ACTION_CREATE_ISSUE,
|
|
|
|
|
Content: fmt.Sprintf("%d|%s", issue.Index, issue.Name),
|
|
|
|
|
RepoID: repo.ID,
|
|
|
|
|
RepoUserName: repo.Owner.Name,
|
|
|
|
@ -1564,9 +1564,24 @@ func createComment(e *xorm.Session, u *User, repo *Repository, issue *Issue, com
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Compose comment action, could be plain comment, close or reopen issue.
|
|
|
|
|
// This object will be used to notify watchers in the end of function.
|
|
|
|
|
act := &Action{
|
|
|
|
|
ActUserID: u.Id,
|
|
|
|
|
ActUserName: u.Name,
|
|
|
|
|
ActEmail: u.Email,
|
|
|
|
|
Content: fmt.Sprintf("%d|%s", issue.Index, strings.Split(content, "\n")[0]),
|
|
|
|
|
RepoID: repo.ID,
|
|
|
|
|
RepoUserName: repo.Owner.Name,
|
|
|
|
|
RepoName: repo.Name,
|
|
|
|
|
IsPrivate: repo.IsPrivate,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Check comment type.
|
|
|
|
|
switch cmtType {
|
|
|
|
|
case COMMENT_TYPE_COMMENT:
|
|
|
|
|
act.OpType = ACTION_COMMENT_ISSUE
|
|
|
|
|
|
|
|
|
|
if _, err = e.Exec("UPDATE `issue` SET num_comments=num_comments+1 WHERE id=?", issue.ID); err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
@ -1593,23 +1608,9 @@ func createComment(e *xorm.Session, u *User, repo *Repository, issue *Issue, com
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Notify watchers.
|
|
|
|
|
act := &Action{
|
|
|
|
|
ActUserID: u.Id,
|
|
|
|
|
ActUserName: u.Name,
|
|
|
|
|
ActEmail: u.Email,
|
|
|
|
|
OpType: COMMENT_ISSUE,
|
|
|
|
|
Content: fmt.Sprintf("%d|%s", issue.Index, strings.Split(content, "\n")[0]),
|
|
|
|
|
RepoID: repo.ID,
|
|
|
|
|
RepoUserName: repo.Owner.Name,
|
|
|
|
|
RepoName: repo.Name,
|
|
|
|
|
IsPrivate: repo.IsPrivate,
|
|
|
|
|
}
|
|
|
|
|
if err = notifyWatchers(e, act); err != nil {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case COMMENT_TYPE_REOPEN:
|
|
|
|
|
act.OpType = ACTION_REOPEN_ISSUE
|
|
|
|
|
|
|
|
|
|
if issue.IsPull {
|
|
|
|
|
_, err = e.Exec("UPDATE `repository` SET num_closed_pulls=num_closed_pulls-1 WHERE id=?", repo.ID)
|
|
|
|
|
} else {
|
|
|
|
@ -1619,6 +1620,8 @@ func createComment(e *xorm.Session, u *User, repo *Repository, issue *Issue, com
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
case COMMENT_TYPE_CLOSE:
|
|
|
|
|
act.OpType = ACTION_CLOSE_ISSUE
|
|
|
|
|
|
|
|
|
|
if issue.IsPull {
|
|
|
|
|
_, err = e.Exec("UPDATE `repository` SET num_closed_pulls=num_closed_pulls+1 WHERE id=?", repo.ID)
|
|
|
|
|
} else {
|
|
|
|
@ -1629,6 +1632,11 @@ func createComment(e *xorm.Session, u *User, repo *Repository, issue *Issue, com
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Notify watchers for whatever action comes in.
|
|
|
|
|
if err = notifyWatchers(e, act); err != nil {
|
|
|
|
|
return nil, fmt.Errorf("notifyWatchers: %v", err)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return comment, nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|