From 0b0456310f5929bef8c7a9af5d1044088bde7565 Mon Sep 17 00:00:00 2001 From: techknowlogick Date: Wed, 28 Oct 2020 23:57:15 -0400 Subject: [PATCH] Migration failure during reaction migration from gitea (#13344) (#13345) * Migrating reactions is just not that important A failure during migrating reactions should not cause failure of migration. Signed-off-by: Andrew Thornton * When checking issue reactions check the correct permission Signed-off-by: Andrew Thornton Co-authored-by: techknowlogick Co-authored-by: zeripath --- modules/migrations/gitea_downloader.go | 13 +++++++++++-- modules/migrations/migrate.go | 2 +- routers/api/v1/repo/issue_reaction.go | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/modules/migrations/gitea_downloader.go b/modules/migrations/gitea_downloader.go index 1531153f2..e30c92a2f 100644 --- a/modules/migrations/gitea_downloader.go +++ b/modules/migrations/gitea_downloader.go @@ -14,6 +14,7 @@ import ( "strings" "time" + "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/migrations/base" "code.gitea.io/gitea/modules/structs" @@ -395,7 +396,11 @@ func (g *GiteaDownloader) GetIssues(page, perPage int) ([]*base.Issue, bool, err reactions, err := g.getIssueReactions(issue.Index) if err != nil { - return nil, false, fmt.Errorf("error while loading reactions for issue #%d. Error: %v", issue.Index, err) + log.Warn("Unable to load reactions during migrating issue #%d to %s/%s. Error: %v", issue.Index, g.repoOwner, g.repoName, err) + if err2 := models.CreateRepositoryNotice( + fmt.Sprintf("Unable to load reactions during migrating issue #%d to %s/%s. Error: %v", issue.Index, g.repoOwner, g.repoName, err)); err2 != nil { + log.Error("create repository notice failed: ", err2) + } } var assignees []string @@ -534,7 +539,11 @@ func (g *GiteaDownloader) GetPullRequests(page, perPage int) ([]*base.PullReques reactions, err := g.getIssueReactions(pr.Index) if err != nil { - return nil, false, fmt.Errorf("error while loading reactions for pull #%d. Error: %v", pr.Index, err) + log.Warn("Unable to load reactions during migrating pull #%d to %s/%s. Error: %v", pr.Index, g.repoOwner, g.repoName, err) + if err2 := models.CreateRepositoryNotice( + fmt.Sprintf("Unable to load reactions during migrating pull #%d to %s/%s. Error: %v", pr.Index, g.repoOwner, g.repoName, err)); err2 != nil { + log.Error("create repository notice failed: ", err2) + } } var assignees []string diff --git a/modules/migrations/migrate.go b/modules/migrations/migrate.go index 191f2a555..3c505d82b 100644 --- a/modules/migrations/migrate.go +++ b/modules/migrations/migrate.go @@ -69,7 +69,7 @@ func MigrateRepository(ctx context.Context, doer *models.User, ownerName string, } if err2 := models.CreateRepositoryNotice(fmt.Sprintf("Migrate repository from %s failed: %v", opts.OriginalURL, err)); err2 != nil { - log.Error("create respotiry notice failed: ", err2) + log.Error("create repository notice failed: ", err2) } return nil, err } diff --git a/routers/api/v1/repo/issue_reaction.go b/routers/api/v1/repo/issue_reaction.go index 564f67e49..4ac6439d1 100644 --- a/routers/api/v1/repo/issue_reaction.go +++ b/routers/api/v1/repo/issue_reaction.go @@ -270,7 +270,7 @@ func GetIssueReactions(ctx *context.APIContext) { return } - if !ctx.Repo.CanRead(models.UnitTypeIssues) { + if !ctx.Repo.CanReadIssuesOrPulls(issue.IsPull) { ctx.Error(http.StatusForbidden, "GetIssueReactions", errors.New("no permission to get reactions")) return }