summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorJimmy Praet <jimmy.praet@telenet.be>2022-03-04 09:30:49 +0100
committerGitHub <noreply@github.com>2022-03-04 03:30:49 -0500
commit5184c83f6b702aeec3ea85263e16ccf5ebe89836 (patch)
treed5a5f04630815a7342c6e26409faeac75620573b /services
parent3c7201682cde10ed551476e13e9e1bfdd971e0c0 (diff)
downloadgitea-5184c83f6b702aeec3ea85263e16ccf5ebe89836.tar.gz
gitea-5184c83f6b702aeec3ea85263e16ccf5ebe89836.zip
Add config option to disable "Update branch by rebase" (#18745)
Diffstat (limited to 'services')
-rw-r--r--services/forms/repo_form.go1
-rw-r--r--services/pull/update.go8
2 files changed, 8 insertions, 1 deletions
diff --git a/services/forms/repo_form.go b/services/forms/repo_form.go
index da709ef800..3760c71f2a 100644
--- a/services/forms/repo_form.go
+++ b/services/forms/repo_form.go
@@ -151,6 +151,7 @@ type RepoSettingForm struct {
PullsAllowManualMerge bool
PullsDefaultMergeStyle string
EnableAutodetectManualMerge bool
+ PullsAllowRebaseUpdate bool
DefaultDeleteBranchAfterMerge bool
EnableTimetracker bool
AllowOnlyContributorsToTrackTime bool
diff --git a/services/pull/update.go b/services/pull/update.go
index f32dfad2ca..2ad58ecd29 100644
--- a/services/pull/update.go
+++ b/services/pull/update.go
@@ -10,6 +10,7 @@ import (
"code.gitea.io/gitea/models"
repo_model "code.gitea.io/gitea/models/repo"
+ "code.gitea.io/gitea/models/unit"
user_model "code.gitea.io/gitea/models/user"
"code.gitea.io/gitea/modules/git"
"code.gitea.io/gitea/modules/log"
@@ -97,7 +98,12 @@ func IsUserAllowedToUpdate(pull *models.PullRequest, user *user_model.User) (mer
// can't do rebase on protected branch because need force push
if pr.ProtectedBranch == nil {
- rebaseAllowed = true
+ prUnit, err := pr.BaseRepo.GetUnit(unit.TypePullRequests)
+ if err != nil {
+ log.Error("pr.BaseRepo.GetUnit(unit.TypePullRequests): %v", err)
+ return false, false, err
+ }
+ rebaseAllowed = prUnit.PullRequestsConfig().AllowRebaseUpdate
}
// Update function need push permission