Skip to content

Commit

Permalink
Prevent NPE due to missing repo in regression in go-gitea#17551
Browse files Browse the repository at this point in the history
Ensure that the Repo is set on issues loaded as dependencies.

Signed-off-by: Andrew Thornton <art27@cantab.net>
  • Loading branch information
zeripath committed Nov 17, 2021
1 parent d8a8961 commit 1717ea0
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions models/issue.go
Original file line number Diff line number Diff line change
Expand Up @@ -1928,26 +1928,38 @@ func (issue *Issue) getParticipantIDsByIssue(e db.Engine) ([]int64, error) {

// Get Blocked By Dependencies, aka all issues this issue is blocked by.
func (issue *Issue) getBlockedByDependencies(e db.Engine) (issueDeps []*DependencyInfo, err error) {
return issueDeps, e.
err = e.
Table("issue").
Join("INNER", "repository", "repository.id = issue.repo_id").
Join("INNER", "issue_dependency", "issue_dependency.dependency_id = issue.id").
Where("issue_id = ?", issue.ID).
// sort by repo id then created date, with the issues of the same repo at the beginning of the list
OrderBy("CASE WHEN issue.repo_id = " + strconv.FormatInt(issue.RepoID, 10) + " THEN 0 ELSE issue.repo_id END, issue.created_unix DESC").
Find(&issueDeps)

for _, depInfo := range issueDeps {
depInfo.Issue.Repo = &depInfo.Repository
}

return issueDeps, err
}

// Get Blocking Dependencies, aka all issues this issue blocks.
func (issue *Issue) getBlockingDependencies(e db.Engine) (issueDeps []*DependencyInfo, err error) {
return issueDeps, e.
err = e.
Table("issue").
Join("INNER", "repository", "repository.id = issue.repo_id").
Join("INNER", "issue_dependency", "issue_dependency.issue_id = issue.id").
Where("dependency_id = ?", issue.ID).
// sort by repo id then created date, with the issues of the same repo at the beginning of the list
OrderBy("CASE WHEN issue.repo_id = " + strconv.FormatInt(issue.RepoID, 10) + " THEN 0 ELSE issue.repo_id END, issue.created_unix DESC").
Find(&issueDeps)

for _, depInfo := range issueDeps {
depInfo.Issue.Repo = &depInfo.Repository
}

return issueDeps, err
}

// BlockedByDependencies finds all Dependencies an issue is blocked by
Expand Down

0 comments on commit 1717ea0

Please sign in to comment.