* fix pr count error * fix teststags/v1.10.0-rc1
func (issue *Issue) BlockingDependencies() ([]*Issue, error) { | func (issue *Issue) BlockingDependencies() ([]*Issue, error) { | ||||
return issue.getBlockingDependencies(x) | return issue.getBlockingDependencies(x) | ||||
} | } | ||||
func (issue *Issue) updateClosedNum(e Engine) (err error) { | |||||
if issue.IsPull { | |||||
_, err = e.Exec("UPDATE `repository` SET num_closed_pulls=(SELECT count(*) FROM issue WHERE repo_id=? AND is_pull=? AND is_closed=?) WHERE id=?", | |||||
issue.RepoID, | |||||
true, | |||||
true, | |||||
issue.RepoID, | |||||
) | |||||
} else { | |||||
_, err = e.Exec("UPDATE `repository` SET num_closed_issues=(SELECT count(*) FROM issue WHERE repo_id=? AND is_pull=? AND is_closed=?) WHERE id=?", | |||||
issue.RepoID, | |||||
false, | |||||
true, | |||||
issue.RepoID, | |||||
) | |||||
} | |||||
return | |||||
} |
act.OpType = ActionReopenPullRequest | act.OpType = ActionReopenPullRequest | ||||
} | } | ||||
if opts.Issue.IsPull { | |||||
_, err = e.Exec("UPDATE `repository` SET num_closed_pulls=num_closed_pulls-1 WHERE id=?", opts.Repo.ID) | |||||
} else { | |||||
_, err = e.Exec("UPDATE `repository` SET num_closed_issues=num_closed_issues-1 WHERE id=?", opts.Repo.ID) | |||||
} | |||||
if err != nil { | |||||
if err = opts.Issue.updateClosedNum(e); err != nil { | |||||
return err | return err | ||||
} | } | ||||
act.OpType = ActionClosePullRequest | act.OpType = ActionClosePullRequest | ||||
} | } | ||||
if opts.Issue.IsPull { | |||||
_, err = e.Exec("UPDATE `repository` SET num_closed_pulls=num_closed_pulls+1 WHERE id=?", opts.Repo.ID) | |||||
} else { | |||||
_, err = e.Exec("UPDATE `repository` SET num_closed_issues=num_closed_issues+1 WHERE id=?", opts.Repo.ID) | |||||
} | |||||
if err != nil { | |||||
if err = opts.Issue.updateClosedNum(e); err != nil { | |||||
return err | return err | ||||
} | } | ||||
} | } |
} | } | ||||
// ***** END: Repository.NumClosedIssues ***** | // ***** END: Repository.NumClosedIssues ***** | ||||
// ***** START: Repository.NumClosedPulls ***** | |||||
desc = "repository count 'num_closed_pulls'" | |||||
results, err = x.Query("SELECT repo.id FROM `repository` repo WHERE repo.num_closed_pulls!=(SELECT COUNT(*) FROM `issue` WHERE repo_id=repo.id AND is_closed=? AND is_pull=?)", true, true) | |||||
if err != nil { | |||||
log.Error("Select %s: %v", desc, err) | |||||
} else { | |||||
for _, result := range results { | |||||
id := com.StrTo(result["id"]).MustInt64() | |||||
log.Trace("Updating %s: %d", desc, id) | |||||
_, err = x.Exec("UPDATE `repository` SET num_closed_pulls=(SELECT COUNT(*) FROM `issue` WHERE repo_id=? AND is_closed=? AND is_pull=?) WHERE id=?", id, true, true, id) | |||||
if err != nil { | |||||
log.Error("Update %s[%d]: %v", desc, id, err) | |||||
} | |||||
} | |||||
} | |||||
// ***** END: Repository.NumClosedPulls ***** | |||||
// FIXME: use checker when stop supporting old fork repo format. | // FIXME: use checker when stop supporting old fork repo format. | ||||
// ***** START: Repository.NumForks ***** | // ***** START: Repository.NumForks ***** | ||||
results, err = x.Query("SELECT repo.id FROM `repository` repo WHERE repo.num_forks!=(SELECT COUNT(*) FROM `repository` WHERE fork_id=repo.id)") | results, err = x.Query("SELECT repo.id FROM `repository` repo WHERE repo.num_forks!=(SELECT COUNT(*) FROM `repository` WHERE fork_id=repo.id)") |