Skip to content

Commit 3bce19d

Browse files
committed
Fix bug
1 parent 2bfdb66 commit 3bce19d

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"
@@ -281,7 +284,17 @@ func handlePullRequestAutoMerge(pullID int64, sha string) {
281284
}
282285

283286
// We don't check doer's permission here because their permissions have been checked
284-
// before ids were written to the auto_merge table
287+
// before ids were stored to the auto_merge table
288+
perm := access_model.Permission{AccessMode: perm.AccessModeWrite}
289+
290+
if err := pull_service.CheckPullMergeable(ctx, doer, &perm, pr, pull_service.MergeCheckTypeGeneral, false); err != nil {
291+
if errors.Is(pull_service.ErrUserNotAllowedToMerge, err) {
292+
log.Info("%-v was scheduled to automerge by an unauthorized user", pr)
293+
return
294+
}
295+
log.Error("%-v CheckPullMergeable: %v", pr, err)
296+
return
297+
}
285298

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

0 commit comments

Comments
 (0)