| @@ -8,7 +8,6 @@ import ( | |||
| "fmt" | |||
| "code.gitea.io/gitea/modules/log" | |||
| api "code.gitea.io/gitea/modules/structs" | |||
| "code.gitea.io/gitea/modules/util" | |||
| "github.com/go-xorm/xorm" | |||
| @@ -235,42 +234,6 @@ func createReview(e Engine, opts CreateReviewOptions) (*Review, error) { | |||
| return nil, err | |||
| } | |||
| var reviewHookType HookEventType | |||
| switch opts.Type { | |||
| case ReviewTypeApprove: | |||
| reviewHookType = HookEventPullRequestApproved | |||
| case ReviewTypeComment: | |||
| reviewHookType = HookEventPullRequestComment | |||
| case ReviewTypeReject: | |||
| reviewHookType = HookEventPullRequestRejected | |||
| default: | |||
| // unsupported review webhook type here | |||
| return review, nil | |||
| } | |||
| pr := opts.Issue.PullRequest | |||
| if err := pr.LoadIssue(); err != nil { | |||
| return nil, err | |||
| } | |||
| mode, err := AccessLevel(opts.Issue.Poster, opts.Issue.Repo) | |||
| if err != nil { | |||
| return nil, err | |||
| } | |||
| if err := PrepareWebhooks(opts.Issue.Repo, reviewHookType, &api.PullRequestPayload{ | |||
| Action: api.HookIssueSynchronized, | |||
| Index: opts.Issue.Index, | |||
| PullRequest: pr.APIFormat(), | |||
| Repository: opts.Issue.Repo.APIFormat(mode), | |||
| Sender: opts.Reviewer.APIFormat(), | |||
| }); err != nil { | |||
| return nil, err | |||
| } | |||
| go HookQueue.Add(opts.Issue.Repo.ID) | |||
| return review, nil | |||
| } | |||
| @@ -0,0 +1,57 @@ | |||
| // Copyright 2019 The Gitea Authors. | |||
| // All rights reserved. | |||
| // Use of this source code is governed by a MIT-style | |||
| // license that can be found in the LICENSE file. | |||
| package pull | |||
| import ( | |||
| "code.gitea.io/gitea/models" | |||
| api "code.gitea.io/gitea/modules/structs" | |||
| ) | |||
| // CreateReview creates a new review based on opts | |||
| func CreateReview(opts models.CreateReviewOptions) (*models.Review, error) { | |||
| review, err := models.CreateReview(opts) | |||
| if err != nil { | |||
| return nil, err | |||
| } | |||
| var reviewHookType models.HookEventType | |||
| switch opts.Type { | |||
| case models.ReviewTypeApprove: | |||
| reviewHookType = models.HookEventPullRequestApproved | |||
| case models.ReviewTypeComment: | |||
| reviewHookType = models.HookEventPullRequestComment | |||
| case models.ReviewTypeReject: | |||
| reviewHookType = models.HookEventPullRequestRejected | |||
| default: | |||
| // unsupported review webhook type here | |||
| return review, nil | |||
| } | |||
| pr := opts.Issue.PullRequest | |||
| if err := pr.LoadIssue(); err != nil { | |||
| return nil, err | |||
| } | |||
| mode, err := models.AccessLevel(opts.Issue.Poster, opts.Issue.Repo) | |||
| if err != nil { | |||
| return nil, err | |||
| } | |||
| if err := models.PrepareWebhooks(opts.Issue.Repo, reviewHookType, &api.PullRequestPayload{ | |||
| Action: api.HookIssueSynchronized, | |||
| Index: opts.Issue.Index, | |||
| PullRequest: pr.APIFormat(), | |||
| Repository: opts.Issue.Repo.APIFormat(mode), | |||
| Sender: opts.Reviewer.APIFormat(), | |||
| }); err != nil { | |||
| return nil, err | |||
| } | |||
| go models.HookQueue.Add(opts.Issue.Repo.ID) | |||
| return review, nil | |||
| } | |||
| @@ -12,6 +12,7 @@ import ( | |||
| "code.gitea.io/gitea/modules/context" | |||
| "code.gitea.io/gitea/modules/log" | |||
| "code.gitea.io/gitea/modules/notification" | |||
| pull_service "code.gitea.io/gitea/modules/pull" | |||
| ) | |||
| // CreateCodeComment will create a code comment including an pending review if required | |||
| @@ -53,7 +54,7 @@ func CreateCodeComment(ctx *context.Context, form auth.CodeCommentForm) { | |||
| } | |||
| // No pending review exists | |||
| // Create a new pending review for this issue & user | |||
| if review, err = models.CreateReview(models.CreateReviewOptions{ | |||
| if review, err = pull_service.CreateReview(models.CreateReviewOptions{ | |||
| Type: models.ReviewTypePending, | |||
| Reviewer: ctx.User, | |||
| Issue: issue, | |||
| @@ -61,6 +62,7 @@ func CreateCodeComment(ctx *context.Context, form auth.CodeCommentForm) { | |||
| ctx.ServerError("CreateCodeComment", err) | |||
| return | |||
| } | |||
| } | |||
| } | |||
| if review.ID == 0 { | |||