mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 13:28:25 +00:00 
			
		
		
		
	move CreateReview to moduels/pull (#7841)
This commit is contained in:
		@@ -8,7 +8,6 @@ import (
 | 
				
			|||||||
	"fmt"
 | 
						"fmt"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/modules/log"
 | 
						"code.gitea.io/gitea/modules/log"
 | 
				
			||||||
	api "code.gitea.io/gitea/modules/structs"
 | 
					 | 
				
			||||||
	"code.gitea.io/gitea/modules/util"
 | 
						"code.gitea.io/gitea/modules/util"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"github.com/go-xorm/xorm"
 | 
						"github.com/go-xorm/xorm"
 | 
				
			||||||
@@ -235,42 +234,6 @@ func createReview(e Engine, opts CreateReviewOptions) (*Review, error) {
 | 
				
			|||||||
		return nil, err
 | 
							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
 | 
						return review, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										57
									
								
								modules/pull/review.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								modules/pull/review.go
									
									
									
									
									
										Normal file
									
								
							@@ -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/context"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/log"
 | 
						"code.gitea.io/gitea/modules/log"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/notification"
 | 
						"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
 | 
					// 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
 | 
								// No pending review exists
 | 
				
			||||||
			// Create a new pending review for this issue & user
 | 
								// 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,
 | 
									Type:     models.ReviewTypePending,
 | 
				
			||||||
				Reviewer: ctx.User,
 | 
									Reviewer: ctx.User,
 | 
				
			||||||
				Issue:    issue,
 | 
									Issue:    issue,
 | 
				
			||||||
@@ -61,6 +62,7 @@ func CreateCodeComment(ctx *context.Context, form auth.CodeCommentForm) {
 | 
				
			|||||||
				ctx.ServerError("CreateCodeComment", err)
 | 
									ctx.ServerError("CreateCodeComment", err)
 | 
				
			||||||
				return
 | 
									return
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	if review.ID == 0 {
 | 
						if review.ID == 0 {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user