From 5c613ca4af2ae6b41369f5245fffb6baf4a2a023 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Fri, 24 Jun 2022 15:07:52 +0200 Subject: [PATCH 01/10] refactor nits --- models/issues/issue.go | 8 ++++---- models/issues/review.go | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/models/issues/issue.go b/models/issues/issue.go index 064f0d22abd01..91a1ab7edc64f 100644 --- a/models/issues/issue.go +++ b/models/issues/issue.go @@ -258,7 +258,7 @@ func (issue *Issue) loadPoster(ctx context.Context) (err error) { return err } -func (issue *Issue) loadPullRequest(ctx context.Context) (err error) { +func (issue *Issue) LoadPullRequestCtx(ctx context.Context) (err error) { if issue.IsPull && issue.PullRequest == nil { issue.PullRequest, err = GetPullRequestByIssueID(ctx, issue.ID) if err != nil { @@ -274,7 +274,7 @@ func (issue *Issue) loadPullRequest(ctx context.Context) (err error) { // LoadPullRequest loads pull request info func (issue *Issue) LoadPullRequest() error { - return issue.loadPullRequest(db.DefaultContext) + return issue.LoadPullRequestCtx(db.DefaultContext) } func (issue *Issue) loadComments(ctx context.Context) (err error) { @@ -390,7 +390,7 @@ func (issue *Issue) LoadAttributes(ctx context.Context) (err error) { return } - if err = issue.loadPullRequest(ctx); err != nil && !IsErrPullRequestNotExist(err) { + if err = issue.LoadPullRequestCtx(ctx); err != nil && !IsErrPullRequestNotExist(err) { // It is possible pull request is not yet created. return err } @@ -545,7 +545,7 @@ func ClearIssueLabels(issue *Issue, doer *user_model.User) (err error) { if err := issue.LoadRepo(ctx); err != nil { return err - } else if err = issue.loadPullRequest(ctx); err != nil { + } else if err = issue.LoadPullRequestCtx(ctx); err != nil { return err } diff --git a/models/issues/review.go b/models/issues/review.go index 1cb99dc3373ff..a31a29c34ac74 100644 --- a/models/issues/review.go +++ b/models/issues/review.go @@ -566,6 +566,7 @@ func MarkReviewsAsNotStale(issueID int64, commitID string) (err error) { } // DismissReview change the dismiss status of a review +// only if dismiss status changed and type is either approve or reject func DismissReview(review *Review, isDismiss bool) (err error) { if review.Dismissed == isDismiss || (review.Type != ReviewTypeApprove && review.Type != ReviewTypeReject) { return nil From e4056192caa5c0db0813913fb4fc1e7c96269636 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Fri, 24 Jun 2022 15:11:10 +0200 Subject: [PATCH 02/10] create issue_model.GetReviewByOpts() --- models/issues/review.go | 47 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/models/issues/review.go b/models/issues/review.go index a31a29c34ac74..d3bc1fc78fbf5 100644 --- a/models/issues/review.go +++ b/models/issues/review.go @@ -19,6 +19,7 @@ import ( "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/structs" "code.gitea.io/gitea/modules/timeutil" + "code.gitea.io/gitea/modules/util" "xorm.io/builder" ) @@ -474,6 +475,52 @@ func SubmitReview(doer *user_model.User, issue *Issue, reviewType ReviewType, co return review, comm, committer.Commit() } +// GetReviewOptions represent filter options for GetReviewByOpts +type GetReviewOptions struct { + db.ListOptions + IssueID int64 + ReviewerID int64 + ReviewerTeamID int64 + Official util.OptionalBool + Stale util.OptionalBool + Dismissed util.OptionalBool +} + +// GetReviewByOpts return reviews based on GetReviewOptions +func GetReviewByOpts(ctx context.Context, opts *GetReviewOptions) ([]*Review, error) { + if opts == nil { + return nil, fmt.Errorf("opts are nil") + } + + sess := db.GetEngine(ctx) + if opts.ListOptions.Page != -1 { + opts.SetDefaultValues() + sess = db.SetEnginePagination(sess, opts) + } + + if opts.IssueID != 0 { + sess.Where("issue_id=?", opts.IssueID) + } + if opts.ReviewerID != 0 { + sess.Where("reviewer_id=?", opts.ReviewerID) + } + if opts.ReviewerTeamID != 0 { + sess.Where("reviewerTeam_id=?", opts.ReviewerTeamID) + } + if !opts.Official.IsNone() { + sess.Where("official=?", opts.Official.IsTrue()) + } + if !opts.Stale.IsNone() { + sess.Where("stale=?", opts.Stale.IsTrue()) + } + if !opts.Dismissed.IsNone() { + sess.Where("dismissed=?", opts.Dismissed.IsTrue()) + } + + reviews := make([]*Review, 0, opts.PageSize) + return reviews, sess.Find(&reviews) +} + // GetReviewersByIssueID gets the latest review of each reviewer for a pull request func GetReviewersByIssueID(issueID int64) ([]*Review, error) { reviews := make([]*Review, 0, 10) From 74bd7bffb7c177af3025b47161a7214ac29768ed Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Fri, 24 Jun 2022 15:11:50 +0200 Subject: [PATCH 03/10] dismiss antecessors reviews if done via web too --- routers/api/v1/repo/pull_review.go | 2 +- routers/web/repo/pull_review.go | 2 +- services/pull/review.go | 90 ++++++++++++++++++------------ 3 files changed, 57 insertions(+), 37 deletions(-) diff --git a/routers/api/v1/repo/pull_review.go b/routers/api/v1/repo/pull_review.go index 57548f2102911..3c1c1bbdeecf6 100644 --- a/routers/api/v1/repo/pull_review.go +++ b/routers/api/v1/repo/pull_review.go @@ -886,7 +886,7 @@ func dismissReview(ctx *context.APIContext, msg string, isDismiss bool) { return } - _, err := pull_service.DismissReview(ctx, review.ID, msg, ctx.Doer, isDismiss) + _, err := pull_service.DismissReview(ctx, review.ID, msg, ctx.Doer, isDismiss, false) if err != nil { ctx.Error(http.StatusInternalServerError, "pull_service.DismissReview", err) return diff --git a/routers/web/repo/pull_review.go b/routers/web/repo/pull_review.go index cc7ae9bbfa3df..96c95ffb67071 100644 --- a/routers/web/repo/pull_review.go +++ b/routers/web/repo/pull_review.go @@ -236,7 +236,7 @@ func SubmitReview(ctx *context.Context) { // DismissReview dismissing stale review by repo admin func DismissReview(ctx *context.Context) { form := web.GetForm(ctx).(*forms.DismissReviewForm) - comm, err := pull_service.DismissReview(ctx, form.ReviewID, form.Message, ctx.Doer, true) + comm, err := pull_service.DismissReview(ctx, form.ReviewID, form.Message, ctx.Doer, true, true) if err != nil { ctx.ServerError("pull_service.DismissReview", err) return diff --git a/services/pull/review.go b/services/pull/review.go index 6bb8877b0ffaf..5455401109bdf 100644 --- a/services/pull/review.go +++ b/services/pull/review.go @@ -20,6 +20,7 @@ import ( "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/notification" "code.gitea.io/gitea/modules/setting" + "code.gitea.io/gitea/modules/util" ) // CreateCodeComment creates a comment on the code line @@ -271,51 +272,70 @@ func SubmitReview(ctx context.Context, doer *user_model.User, gitRepo *git.Repos } // DismissReview dismissing stale review by repo admin -func DismissReview(ctx context.Context, reviewID int64, message string, doer *user_model.User, isDismiss bool) (comment *issues_model.Comment, err error) { - review, err := issues_model.GetReviewByID(ctx, reviewID) - if err != nil { - return - } +func DismissReview(ctx context.Context, reviewID int64, message string, doer *user_model.User, isDismiss, dismissAntecessors bool) (comment *issues_model.Comment, err error) { + var review *issues_model.Review + if err = db.WithTx(func(ctx context.Context) error { + review, err = issues_model.GetReviewByID(ctx, reviewID) + if err != nil { + return err + } - if review.Type != issues_model.ReviewTypeApprove && review.Type != issues_model.ReviewTypeReject { - return nil, fmt.Errorf("not need to dismiss this review because it's type is not Approve or change request") - } + if review.Type != issues_model.ReviewTypeApprove && review.Type != issues_model.ReviewTypeReject { + return fmt.Errorf("not need to dismiss this review because it's type is not Approve or change request") + } - if err = issues_model.DismissReview(review, isDismiss); err != nil { - return - } + if err = issues_model.DismissReview(review, isDismiss); err != nil { + return err + } - if !isDismiss { - return nil, nil - } + if dismissAntecessors { + reviews, err := issues_model.GetReviewByOpts(ctx, &issues_model.GetReviewOptions{ + IssueID: review.IssueID, + ReviewerID: review.ReviewerID, + Dismissed: util.OptionalBoolFalse, + }) + if err != nil { + return err + } + for _, oldReview := range reviews { + if err = issues_model.DismissReview(oldReview, true); err != nil { + return err + } + } + } - // load data for notify - if err = review.LoadAttributes(ctx); err != nil { - return - } - if err = review.Issue.LoadPullRequest(); err != nil { - return - } - if err = review.Issue.LoadAttributes(ctx); err != nil { - return - } + if !isDismiss { + return nil + } - comment, err = issues_model.CreateComment(&issues_model.CreateCommentOptions{ - Doer: doer, - Content: message, - Type: issues_model.CommentTypeDismissReview, - ReviewID: review.ID, - Issue: review.Issue, - Repo: review.Issue.Repo, - }) - if err != nil { - return + // load data for notify + if err = review.LoadAttributes(ctx); err != nil { + return err + } + if err = review.Issue.LoadPullRequestCtx(ctx); err != nil { + return err + } + if err = review.Issue.LoadAttributes(ctx); err != nil { + return err + } + + comment, err = issues_model.CreateComment(&issues_model.CreateCommentOptions{ + Doer: doer, + Content: message, + Type: issues_model.CommentTypeDismissReview, + ReviewID: review.ID, + Issue: review.Issue, + Repo: review.Issue.Repo, + }) + + return err + }, ctx); err != nil { + return nil, err } comment.Review = review comment.Poster = doer comment.Issue = review.Issue - notification.NotifyPullRevieweDismiss(doer, review, comment) return comment, err From a0b5a6f2db584f85d0dce6b913d6804a2bf4ac3e Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Fri, 24 Jun 2022 15:46:52 +0200 Subject: [PATCH 04/10] replace GetReviewersByIssueID with GetReviewByOpts --- models/issues/review.go | 55 ++++++++++++++++++------------------ models/issues/review_test.go | 7 ++++- routers/web/repo/issue.go | 6 +++- 3 files changed, 39 insertions(+), 29 deletions(-) diff --git a/models/issues/review.go b/models/issues/review.go index d3bc1fc78fbf5..f4b41849af0ba 100644 --- a/models/issues/review.go +++ b/models/issues/review.go @@ -484,6 +484,7 @@ type GetReviewOptions struct { Official util.OptionalBool Stale util.OptionalBool Dismissed util.OptionalBool + LatestOnly bool } // GetReviewByOpts return reviews based on GetReviewOptions @@ -517,35 +518,35 @@ func GetReviewByOpts(ctx context.Context, opts *GetReviewOptions) ([]*Review, er sess.Where("dismissed=?", opts.Dismissed.IsTrue()) } - reviews := make([]*Review, 0, opts.PageSize) - return reviews, sess.Find(&reviews) -} - -// GetReviewersByIssueID gets the latest review of each reviewer for a pull request -func GetReviewersByIssueID(issueID int64) ([]*Review, error) { - reviews := make([]*Review, 0, 10) - - sess := db.GetEngine(db.DefaultContext) - - // Get latest review of each reviewer, sorted in order they were made - if err := sess.SQL("SELECT * FROM review WHERE id IN (SELECT max(id) as id FROM review WHERE issue_id = ? AND reviewer_team_id = 0 AND type in (?, ?, ?) AND dismissed = ? AND original_author_id = 0 GROUP BY issue_id, reviewer_id) ORDER BY review.updated_unix ASC", - issueID, ReviewTypeApprove, ReviewTypeReject, ReviewTypeRequest, false). - Find(&reviews); err != nil { - return nil, err + if opts.LatestOnly { + sess.Where(builder.In("review.id", + builder.Select("max(id)").From("review"). + Where(builder.Eq{ + "issue_id": opts.IssueID, + "original_author_id": 0, + "reviewer_team_id": 0, + "dismissed": opts.Dismissed.IsTrue(), + }.And(builder.In( + "type", + ReviewTypeApprove, ReviewTypeReject, ReviewTypeRequest, + ))). + GroupBy("issue_id, reviewer_id"). + OrderBy("review.updated_unix ASC")). + Or(builder.In("review.id", + builder.Select("max(id)").From("review"). + Where(builder.Eq{ + "issue_id": opts.IssueID, + "original_author_id": 0, + "reviewer_id": 0, + }.And(builder.Neq{ + "reviewer_team_id": 0, + })). + GroupBy("issue_id, reviewer_team_id"). + OrderBy("review.updated_unix ASC")))) } - teamReviewRequests := make([]*Review, 0, 5) - if err := sess.SQL("SELECT * FROM review WHERE id IN (SELECT max(id) as id FROM review WHERE issue_id = ? AND reviewer_team_id <> 0 AND original_author_id = 0 GROUP BY issue_id, reviewer_team_id) ORDER BY review.updated_unix ASC", - issueID). - Find(&teamReviewRequests); err != nil { - return nil, err - } - - if len(teamReviewRequests) > 0 { - reviews = append(reviews, teamReviewRequests...) - } - - return reviews, nil + reviews := make([]*Review, 0, opts.PageSize) + return reviews, sess.Find(&reviews) } // GetReviewersFromOriginalAuthorsByIssueID gets the latest review of each original authors for a pull request diff --git a/models/issues/review_test.go b/models/issues/review_test.go index 3506604b46dbe..d06f09bf3f5a7 100644 --- a/models/issues/review_test.go +++ b/models/issues/review_test.go @@ -11,6 +11,7 @@ import ( issues_model "code.gitea.io/gitea/models/issues" "code.gitea.io/gitea/models/unittest" user_model "code.gitea.io/gitea/models/user" + "code.gitea.io/gitea/modules/util" "github.com/stretchr/testify/assert" ) @@ -133,7 +134,11 @@ func TestGetReviewersByIssueID(t *testing.T) { UpdatedUnix: 946684814, }) - allReviews, err := issues_model.GetReviewersByIssueID(issue.ID) + allReviews, err := issues_model.GetReviewByOpts(db.DefaultContext, &issues_model.GetReviewOptions{ + IssueID: issue.ID, + Dismissed: util.OptionalBoolFalse, + LatestOnly: true, + }) for _, reviewer := range allReviews { assert.NoError(t, reviewer.LoadReviewer()) } diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index 5b72ff79af370..d1a10ac007252 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -500,7 +500,11 @@ func RetrieveRepoReviewers(ctx *context.Context, repo *repo_model.Repository, is } ctx.Data["OriginalReviews"] = originalAuthorReviews - reviews, err := issues_model.GetReviewersByIssueID(issue.ID) + reviews, err := issues_model.GetReviewByOpts(ctx, &issues_model.GetReviewOptions{ + IssueID: issue.ID, + Dismissed: util.OptionalBoolFalse, + LatestOnly: true, + }) if err != nil { ctx.ServerError("GetReviewersByIssueID", err) return From e7555e81625de3ca71e065de6dc92b7a83429014 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Fri, 24 Jun 2022 15:49:38 +0200 Subject: [PATCH 05/10] fix --- models/issues/review.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/models/issues/review.go b/models/issues/review.go index f4b41849af0ba..08bca8d56a3eb 100644 --- a/models/issues/review.go +++ b/models/issues/review.go @@ -500,26 +500,27 @@ func GetReviewByOpts(ctx context.Context, opts *GetReviewOptions) ([]*Review, er } if opts.IssueID != 0 { - sess.Where("issue_id=?", opts.IssueID) + sess = sess.Where("issue_id=?", opts.IssueID) } if opts.ReviewerID != 0 { - sess.Where("reviewer_id=?", opts.ReviewerID) + sess = sess.Where("reviewer_id=?", opts.ReviewerID) } if opts.ReviewerTeamID != 0 { - sess.Where("reviewerTeam_id=?", opts.ReviewerTeamID) + sess = sess.Where("reviewerTeam_id=?", opts.ReviewerTeamID) } if !opts.Official.IsNone() { - sess.Where("official=?", opts.Official.IsTrue()) + sess = sess.Where("official=?", opts.Official.IsTrue()) } if !opts.Stale.IsNone() { - sess.Where("stale=?", opts.Stale.IsTrue()) + sess = sess.Where("stale=?", opts.Stale.IsTrue()) } if !opts.Dismissed.IsNone() { - sess.Where("dismissed=?", opts.Dismissed.IsTrue()) + sess = sess.Where("dismissed=?", opts.Dismissed.IsTrue()) } if opts.LatestOnly { - sess.Where(builder.In("review.id", + // Get latest review of each reviewer, sorted in order they were made + sess = sess.Where(builder.In("review.id", builder.Select("max(id)").From("review"). Where(builder.Eq{ "issue_id": opts.IssueID, @@ -532,6 +533,7 @@ func GetReviewByOpts(ctx context.Context, opts *GetReviewOptions) ([]*Review, er ))). GroupBy("issue_id, reviewer_id"). OrderBy("review.updated_unix ASC")). + // Get latest review of each review-team, sorted in order they were made Or(builder.In("review.id", builder.Select("max(id)").From("review"). Where(builder.Eq{ From 983309fb5e840cc51414996c635fac8889011b0b Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 25 Jun 2022 20:00:21 +0200 Subject: [PATCH 06/10] fix --- services/pull/review.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/pull/review.go b/services/pull/review.go index 5455401109bdf..8de668ff70f6b 100644 --- a/services/pull/review.go +++ b/services/pull/review.go @@ -333,6 +333,10 @@ func DismissReview(ctx context.Context, reviewID int64, message string, doer *us return nil, err } + if !isDismiss { + return + } + comment.Review = review comment.Poster = doer comment.Issue = review.Issue From 4b84694a85b7c557185a4a53685e69d838f67c40 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 25 Jun 2022 20:06:32 +0200 Subject: [PATCH 07/10] prefent deadlock in integration test ... we need to do better --- services/pull/review.go | 95 ++++++++++++++++++----------------------- 1 file changed, 42 insertions(+), 53 deletions(-) diff --git a/services/pull/review.go b/services/pull/review.go index 8de668ff70f6b..ba6d86189c2e2 100644 --- a/services/pull/review.go +++ b/services/pull/review.go @@ -273,69 +273,58 @@ func SubmitReview(ctx context.Context, doer *user_model.User, gitRepo *git.Repos // DismissReview dismissing stale review by repo admin func DismissReview(ctx context.Context, reviewID int64, message string, doer *user_model.User, isDismiss, dismissAntecessors bool) (comment *issues_model.Comment, err error) { - var review *issues_model.Review - if err = db.WithTx(func(ctx context.Context) error { - review, err = issues_model.GetReviewByID(ctx, reviewID) - if err != nil { - return err - } - - if review.Type != issues_model.ReviewTypeApprove && review.Type != issues_model.ReviewTypeReject { - return fmt.Errorf("not need to dismiss this review because it's type is not Approve or change request") - } - - if err = issues_model.DismissReview(review, isDismiss); err != nil { - return err - } + review, err := issues_model.GetReviewByID(ctx, reviewID) + if err != nil { + return nil, err + } - if dismissAntecessors { - reviews, err := issues_model.GetReviewByOpts(ctx, &issues_model.GetReviewOptions{ - IssueID: review.IssueID, - ReviewerID: review.ReviewerID, - Dismissed: util.OptionalBoolFalse, - }) - if err != nil { - return err - } - for _, oldReview := range reviews { - if err = issues_model.DismissReview(oldReview, true); err != nil { - return err - } - } - } + if review.Type != issues_model.ReviewTypeApprove && review.Type != issues_model.ReviewTypeReject { + return nil, fmt.Errorf("not need to dismiss this review because it's type is not Approve or change request") + } - if !isDismiss { - return nil - } + if err = issues_model.DismissReview(review, isDismiss); err != nil { + return nil, err + } - // load data for notify - if err = review.LoadAttributes(ctx); err != nil { - return err - } - if err = review.Issue.LoadPullRequestCtx(ctx); err != nil { - return err + if dismissAntecessors { + reviews, err := issues_model.GetReviewByOpts(ctx, &issues_model.GetReviewOptions{ + IssueID: review.IssueID, + ReviewerID: review.ReviewerID, + Dismissed: util.OptionalBoolFalse, + }) + if err != nil { + return nil, err } - if err = review.Issue.LoadAttributes(ctx); err != nil { - return err + for _, oldReview := range reviews { + if err = issues_model.DismissReview(oldReview, true); err != nil { + return nil, err + } } + } - comment, err = issues_model.CreateComment(&issues_model.CreateCommentOptions{ - Doer: doer, - Content: message, - Type: issues_model.CommentTypeDismissReview, - ReviewID: review.ID, - Issue: review.Issue, - Repo: review.Issue.Repo, - }) + if !isDismiss { + return nil, nil + } - return err - }, ctx); err != nil { + // load data for notify + if err = review.LoadAttributes(ctx); err != nil { return nil, err } - - if !isDismiss { - return + if err = review.Issue.LoadPullRequestCtx(ctx); err != nil { + return nil, err } + if err = review.Issue.LoadAttributes(ctx); err != nil { + return nil, err + } + + comment, err = issues_model.CreateComment(&issues_model.CreateCommentOptions{ + Doer: doer, + Content: message, + Type: issues_model.CommentTypeDismissReview, + ReviewID: review.ID, + Issue: review.Issue, + Repo: review.Issue.Repo, + }) comment.Review = review comment.Poster = doer From df4d3029dd03ca76d16b3ac1b10a517cb98b39c3 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 25 Jun 2022 20:16:34 +0200 Subject: [PATCH 08/10] fix-fix --- services/pull/review.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/pull/review.go b/services/pull/review.go index ba6d86189c2e2..e19300af07831 100644 --- a/services/pull/review.go +++ b/services/pull/review.go @@ -325,10 +325,14 @@ func DismissReview(ctx context.Context, reviewID int64, message string, doer *us Issue: review.Issue, Repo: review.Issue.Repo, }) + if err != nil { + return + } comment.Review = review comment.Poster = doer comment.Issue = review.Issue + notification.NotifyPullRevieweDismiss(doer, review, comment) return comment, err From 26f40396d6efdb6b74756675fa956539080a1166 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 19 Jul 2022 15:37:37 +0200 Subject: [PATCH 09/10] adjust to master --- models/issues/review_test.go | 2 +- routers/web/repo/issue.go | 2 +- services/pull/review.go | 16 ---------------- 3 files changed, 2 insertions(+), 18 deletions(-) diff --git a/models/issues/review_test.go b/models/issues/review_test.go index d06f09bf3f5a7..08bd396927e4f 100644 --- a/models/issues/review_test.go +++ b/models/issues/review_test.go @@ -134,7 +134,7 @@ func TestGetReviewersByIssueID(t *testing.T) { UpdatedUnix: 946684814, }) - allReviews, err := issues_model.GetReviewByOpts(db.DefaultContext, &issues_model.GetReviewOptions{ + allReviews, err := issues_model.GetReviews(db.DefaultContext, &issues_model.GetReviewOptions{ IssueID: issue.ID, Dismissed: util.OptionalBoolFalse, LatestOnly: true, diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index 40ce402a485b5..a5267ffcd445a 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -500,7 +500,7 @@ func RetrieveRepoReviewers(ctx *context.Context, repo *repo_model.Repository, is } ctx.Data["OriginalReviews"] = originalAuthorReviews - reviews, err := issues_model.GetReviewByOpts(ctx, &issues_model.GetReviewOptions{ + reviews, err := issues_model.GetReviews(ctx, &issues_model.GetReviewOptions{ IssueID: issue.ID, Dismissed: util.OptionalBoolFalse, LatestOnly: true, diff --git a/services/pull/review.go b/services/pull/review.go index b23ea58eeb6ae..6a392bad08952 100644 --- a/services/pull/review.go +++ b/services/pull/review.go @@ -296,22 +296,6 @@ func DismissReview(ctx context.Context, reviewID, repoID int64, message string, return nil, err } - if dismissAntecessors { - reviews, err := issues_model.GetReviewByOpts(ctx, &issues_model.GetReviewOptions{ - IssueID: review.IssueID, - ReviewerID: review.ReviewerID, - Dismissed: util.OptionalBoolFalse, - }) - if err != nil { - return nil, err - } - for _, oldReview := range reviews { - if err = issues_model.DismissReview(oldReview, true); err != nil { - return nil, err - } - } - } - if dismissPriors { reviews, err := issues_model.GetReviews(ctx, &issues_model.GetReviewOptions{ IssueID: review.IssueID, From 5eaf5b1e6bd4ea5c1467663bc05c7faf02302860 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Tue, 19 Jul 2022 16:33:30 +0200 Subject: [PATCH 10/10] CI.restart()