mirror of
https://github.com/harness/drone.git
synced 2025-05-08 07:21:10 +08:00
Merge branch 'mg/pr-review/unresolved-block-merge' of _OKE5H2PQKOUfzFFDuD4FA/default/CODE/gitness (#66)
This commit is contained in:
commit
15e394c058
@ -83,10 +83,27 @@ func (c *Controller) Merge(
|
||||
return types.MergeResponse{}, usererror.BadRequest("Pull request must be open")
|
||||
}
|
||||
|
||||
if pr.UnresolvedCount > 0 {
|
||||
return types.MergeResponse{}, usererror.BadRequest("Pull requests with unresolved comments can't be merged. Resolve all the comments first.")
|
||||
}
|
||||
|
||||
if pr.IsDraft {
|
||||
return types.MergeResponse{}, usererror.BadRequest("Draft pull requests can't be merged. Clear the draft flag first.")
|
||||
}
|
||||
|
||||
reviewers, err := c.reviewerStore.List(ctx, pr.ID)
|
||||
if err != nil {
|
||||
return types.MergeResponse{}, fmt.Errorf("failed to load list of reviwers: %w", err)
|
||||
}
|
||||
|
||||
// TODO: We need to extend this section. A review decision might be for an older commit.
|
||||
// TODO: Repository admin users should be able to override this and proceed with the merge.
|
||||
for _, reviewer := range reviewers {
|
||||
if reviewer.ReviewDecision == enum.PullReqReviewDecisionChangeReq {
|
||||
return types.MergeResponse{}, usererror.BadRequest("At least one reviewer still requests changes.")
|
||||
}
|
||||
}
|
||||
|
||||
sourceRepo := targetRepo
|
||||
if pr.SourceRepoID != pr.TargetRepoID {
|
||||
sourceRepo, err = c.repoStore.Find(ctx, pr.SourceRepoID)
|
||||
|
@ -38,12 +38,12 @@ func HandleReviewSubmit(pullreqCtrl *pullreq.Controller) http.HandlerFunc {
|
||||
return
|
||||
}
|
||||
|
||||
review, err := pullreqCtrl.ReviewSubmit(ctx, session, repoRef, pullreqNumber, in)
|
||||
_, err = pullreqCtrl.ReviewSubmit(ctx, session, repoRef, pullreqNumber, in)
|
||||
if err != nil {
|
||||
render.TranslatedUserError(w, err)
|
||||
return
|
||||
}
|
||||
|
||||
render.JSON(w, http.StatusOK, review)
|
||||
w.WriteHeader(http.StatusNoContent)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user