From 1aeeaa8e89ce41350f3c98ce9726f96a1eb7b72c Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Fri, 13 Dec 2019 13:07:11 +0800 Subject: [PATCH] fix issue indexer not triggered when migrating a repository (#9333) --- modules/indexer/issues/indexer.go | 37 ++++++++++++++----------- modules/notification/indexer/indexer.go | 5 ++++ 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/modules/indexer/issues/indexer.go b/modules/indexer/issues/indexer.go index df8bfd6305..be2d626454 100644 --- a/modules/indexer/issues/indexer.go +++ b/modules/indexer/issues/indexer.go @@ -138,26 +138,31 @@ func populateIssueIndexer() { } for _, repo := range repos { - is, err := models.Issues(&models.IssuesOptions{ - RepoIDs: []int64{repo.ID}, - IsClosed: util.OptionalBoolNone, - IsPull: util.OptionalBoolNone, - }) - if err != nil { - log.Error("Issues: %v", err) - continue - } - if err = models.IssueList(is).LoadDiscussComments(); err != nil { - log.Error("LoadComments: %v", err) - continue - } - for _, issue := range is { - UpdateIssueIndexer(issue) - } + UpdateRepoIndexer(repo) } } } +// UpdateRepoIndexer add/update all issues of the repositories +func UpdateRepoIndexer(repo *models.Repository) { + is, err := models.Issues(&models.IssuesOptions{ + RepoIDs: []int64{repo.ID}, + IsClosed: util.OptionalBoolNone, + IsPull: util.OptionalBoolNone, + }) + if err != nil { + log.Error("Issues: %v", err) + return + } + if err = models.IssueList(is).LoadDiscussComments(); err != nil { + log.Error("LoadComments: %v", err) + return + } + for _, issue := range is { + UpdateIssueIndexer(issue) + } +} + // UpdateIssueIndexer add/update an issue to the issue indexer func UpdateIssueIndexer(issue *models.Issue) { var comments []string diff --git a/modules/notification/indexer/indexer.go b/modules/notification/indexer/indexer.go index 66614b2c20..606024f397 100644 --- a/modules/notification/indexer/indexer.go +++ b/modules/notification/indexer/indexer.go @@ -107,3 +107,8 @@ func (r *indexerNotifier) NotifyIssueChangeContent(doer *models.User, issue *mod func (r *indexerNotifier) NotifyIssueChangeTitle(doer *models.User, issue *models.Issue, oldTitle string) { issue_indexer.UpdateIssueIndexer(issue) } + +func (r *indexerNotifier) NotifyMigrateRepository(doer *models.User, u *models.User, repo *models.Repository) { + issue_indexer.UpdateRepoIndexer(repo) + models.UpdateRepoIndexer(repo) +}