Skip to content

Commit 9b830ea

Browse files
committed
Fix bug
1 parent 3d4c608 commit 9b830ea

File tree

1 file changed

+14
-1
lines changed

1 file changed

+14
-1
lines changed

services/automerge/automerge.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,15 @@ package automerge
55

66
import (
77
"context"
8+
"errors"
89
"fmt"
910
"strconv"
1011
"strings"
1112

1213
"code.gitea.io/gitea/models/db"
1314
issues_model "code.gitea.io/gitea/models/issues"
15+
"code.gitea.io/gitea/models/perm"
16+
access_model "code.gitea.io/gitea/models/perm/access"
1417
pull_model "code.gitea.io/gitea/models/pull"
1518
repo_model "code.gitea.io/gitea/models/repo"
1619
user_model "code.gitea.io/gitea/models/user"
@@ -269,7 +272,17 @@ func handlePullRequestAutoMerge(pullID int64, sha string) {
269272
}
270273

271274
// We don't check doer's permission here because their permissions have been checked
272-
// before ids were written to the auto_merge table
275+
// before ids were stored to the auto_merge table
276+
perm := access_model.Permission{AccessMode: perm.AccessModeWrite}
277+
278+
if err := pull_service.CheckPullMergeable(ctx, doer, &perm, pr, pull_service.MergeCheckTypeGeneral, false); err != nil {
279+
if errors.Is(pull_service.ErrUserNotAllowedToMerge, err) {
280+
log.Info("%-v was scheduled to automerge by an unauthorized user", pr)
281+
return
282+
}
283+
log.Error("%-v CheckPullMergeable: %v", pr, err)
284+
return
285+
}
273286

274287
if err := pull_service.Merge(ctx, pr, doer, baseGitRepo, scheduledPRM.MergeStyle, "", scheduledPRM.Message, true); err != nil {
275288
log.Error("pull_service.Merge: %v", err)

0 commit comments

Comments
 (0)