mirror of
https://github.com/harness/drone.git
synced 2025-05-11 14:40:05 +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")
|
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 {
|
if pr.IsDraft {
|
||||||
return types.MergeResponse{}, usererror.BadRequest("Draft pull requests can't be merged. Clear the draft flag first.")
|
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
|
sourceRepo := targetRepo
|
||||||
if pr.SourceRepoID != pr.TargetRepoID {
|
if pr.SourceRepoID != pr.TargetRepoID {
|
||||||
sourceRepo, err = c.repoStore.Find(ctx, pr.SourceRepoID)
|
sourceRepo, err = c.repoStore.Find(ctx, pr.SourceRepoID)
|
||||||
|
@ -38,12 +38,12 @@ func HandleReviewSubmit(pullreqCtrl *pullreq.Controller) http.HandlerFunc {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
review, err := pullreqCtrl.ReviewSubmit(ctx, session, repoRef, pullreqNumber, in)
|
_, err = pullreqCtrl.ReviewSubmit(ctx, session, repoRef, pullreqNumber, in)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
render.TranslatedUserError(w, err)
|
render.TranslatedUserError(w, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
render.JSON(w, http.StatusOK, review)
|
w.WriteHeader(http.StatusNoContent)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user