* Don't allow merging PR's which are being conflict checked (#19357) - Backport of #19357 - When a PR is still being conflict checked, don't allow the PR to be merged(the merge button could already be visible before e.g. a new commit was pushed to the PR). - Resolves #19352 * Update error message
This commit is contained in:
parent
ee3a21a537
commit
081449d7a5
@ -36,6 +36,7 @@ var (
|
|||||||
ErrUserNotAllowedToMerge = errors.New("user not allowed to merge")
|
ErrUserNotAllowedToMerge = errors.New("user not allowed to merge")
|
||||||
ErrHasMerged = errors.New("has already been merged")
|
ErrHasMerged = errors.New("has already been merged")
|
||||||
ErrIsWorkInProgress = errors.New("work in progress PRs cannot be merged")
|
ErrIsWorkInProgress = errors.New("work in progress PRs cannot be merged")
|
||||||
|
ErrIsChecking = errors.New("cannot merge while conflict checking is in progress")
|
||||||
ErrNotMergableState = errors.New("not in mergeable state")
|
ErrNotMergableState = errors.New("not in mergeable state")
|
||||||
ErrDependenciesLeft = errors.New("is blocked by an open dependency")
|
ErrDependenciesLeft = errors.New("is blocked by an open dependency")
|
||||||
)
|
)
|
||||||
@ -88,6 +89,10 @@ func CheckPullMergable(ctx context.Context, doer *user_model.User, perm *models.
|
|||||||
return ErrNotMergableState
|
return ErrNotMergableState
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if pr.IsChecking() {
|
||||||
|
return ErrIsChecking
|
||||||
|
}
|
||||||
|
|
||||||
if err := CheckPRReadyToMerge(pr, false); err != nil {
|
if err := CheckPRReadyToMerge(pr, false); err != nil {
|
||||||
if models.IsErrNotAllowedToMerge(err) {
|
if models.IsErrNotAllowedToMerge(err) {
|
||||||
if force {
|
if force {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user