Skip to content

Commit e8950d3

Browse files
Uses only project enforced
1 parent 00785b2 commit e8950d3

File tree

5 files changed

+13
-12
lines changed

5 files changed

+13
-12
lines changed

marge/job.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ def opts(self):
3939
def execute(self):
4040
raise NotImplementedError
4141

42-
def is_auto_squash_enabled(self, merge_request):
43-
return self._project.squash_option == "always" or merge_request.squash
44-
4542
def ensure_mergeable_mr(self, merge_request):
4643
merge_request.refetch_info()
4744
log.info('Ensuring MR !%s is mergeable', merge_request.iid)
@@ -50,7 +47,12 @@ def ensure_mergeable_mr(self, merge_request):
5047
if merge_request.work_in_progress:
5148
raise CannotMerge("Sorry, I can't merge requests marked as Work-In-Progress!")
5249

53-
if self.is_auto_squash_enabled(merge_request) and self._options.requests_commit_tagging:
50+
auto_squash = (
51+
self._project.squash_enforced or
52+
merge_request.squash
53+
)
54+
55+
if auto_squash and self._options.requests_commit_tagging:
5456
raise CannotMerge(
5557
"Sorry, merging requests marked as auto-squash would ruin my commit tagging!"
5658
)

marge/merge_request.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,6 @@ def blocking_discussions_resolved(self):
159159
def force_remove_source_branch(self):
160160
return self.info['force_remove_source_branch']
161161

162-
def auto_squash(self, project):
163-
return project.squash_option == "always" or self.squash
164-
165162
def update_sha(self, sha):
166163
"""record the updated sha. We don't use refetch_info instead as it may hit cache."""
167164
self._info['sha'] = sha

marge/project.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def merge_requests_enabled(self):
9191

9292
@property
9393
def squash_option(self):
94-
return self.info['squash_option']
94+
return self.info.get('squash_option', None)
9595

9696
@property
9797
def only_allow_merge_if_pipeline_succeeds(self):
@@ -116,6 +116,10 @@ def access_level(self):
116116
assert effective_access is not None, "GitLab failed to provide user permissions on project"
117117
return AccessLevel(effective_access['access_level'])
118118

119+
@property
120+
def squash_enforced(self):
121+
return self.squash_option == 'always'
122+
119123

120124
# pylint: disable=invalid-name
121125
@unique

marge/single_merge_job.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,7 @@ def update_merge_request_and_accept(self, approvals):
9292

9393
self.ensure_mergeable_mr(merge_request)
9494

95-
auto_squash = None
96-
if self.is_auto_squash_enabled(merge_request):
97-
auto_squash = True
95+
auto_squash = True if target_project.squash_enforced else None
9896

9997
try:
10098
ret = merge_request.accept(

pylintrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ max-line-length=110
3030
[DESIGN]
3131
max-args=10
3232
max-attributes=15
33-
max-public-methods=40
33+
max-public-methods=35
3434
# Maximum number of locals for function / method body
3535
max-locals=25
3636

0 commit comments

Comments
 (0)