mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	Fix PullRequestList.GetIssueIDs's logic (#31352)
fix a bug from #30490 `prs.GetIssueIDs()` will also be used in other places, e.g. `InvalidateCodeComments` so we should not add `if pr.Issue == nil` in it, or if `pr.Issue` is already loaded, you will not get the issueID in the results list and this is not an expected result. So this will caused a bug: before calling `InvalidateCodeComments`, all `pr.Issues` in `prs` are loaded, so `issueIDs` in this function will always be `[]`. 
This commit is contained in:
		| @@ -192,8 +192,10 @@ func (prs PullRequestList) LoadIssues(ctx context.Context) (IssueList, error) { | |||||||
| 		return nil, nil | 		return nil, nil | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Load issues. | 	// Load issues which are not loaded | ||||||
| 	issueIDs := prs.GetIssueIDs() | 	issueIDs := container.FilterSlice(prs, func(pr *PullRequest) (int64, bool) { | ||||||
|  | 		return pr.IssueID, pr.Issue == nil && pr.IssueID > 0 | ||||||
|  | 	}) | ||||||
| 	issues := make(map[int64]*Issue, len(issueIDs)) | 	issues := make(map[int64]*Issue, len(issueIDs)) | ||||||
| 	if err := db.GetEngine(ctx). | 	if err := db.GetEngine(ctx). | ||||||
| 		In("id", issueIDs). | 		In("id", issueIDs). | ||||||
| @@ -229,10 +231,7 @@ func (prs PullRequestList) LoadIssues(ctx context.Context) (IssueList, error) { | |||||||
| // GetIssueIDs returns all issue ids | // GetIssueIDs returns all issue ids | ||||||
| func (prs PullRequestList) GetIssueIDs() []int64 { | func (prs PullRequestList) GetIssueIDs() []int64 { | ||||||
| 	return container.FilterSlice(prs, func(pr *PullRequest) (int64, bool) { | 	return container.FilterSlice(prs, func(pr *PullRequest) (int64, bool) { | ||||||
| 		if pr.Issue == nil { | 		return pr.IssueID, pr.IssueID > 0 | ||||||
| 			return pr.IssueID, pr.IssueID > 0 |  | ||||||
| 		} |  | ||||||
| 		return 0, false |  | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user