Skip to content
Snippets Groups Projects
Commit 37b15c72 authored by André Anjos's avatar André Anjos :speech_balloon:
Browse files

[release] Ensure merge-when-pipeline-succeeds is properly set

parent f2a22d74
No related branches found
No related tags found
1 merge request!16New commitfile command
Pipeline #26964 passed
...@@ -229,7 +229,7 @@ def update_tag_comments(gitpkg, tag_name, tag_comments_list, dry_run=False): ...@@ -229,7 +229,7 @@ def update_tag_comments(gitpkg, tag_name, tag_comments_list, dry_run=False):
def update_files_with_mr(gitpkg, files_dict, message, branch, automerge, def update_files_with_mr(gitpkg, files_dict, message, branch, automerge,
dry_run): dry_run, user_id):
"""Update (via a commit) files of a given gitlab package, through an MR """Update (via a commit) files of a given gitlab package, through an MR
This function can update a file in a gitlab package, but will do this This function can update a file in a gitlab package, but will do this
...@@ -244,6 +244,7 @@ def update_files_with_mr(gitpkg, files_dict, message, branch, automerge, ...@@ -244,6 +244,7 @@ def update_files_with_mr(gitpkg, files_dict, message, branch, automerge,
automerge: If we should set the "merge if build suceeds" flag on the automerge: If we should set the "merge if build suceeds" flag on the
created MR created MR
dry_run: If True, nothing will be pushed to gitlab dry_run: If True, nothing will be pushed to gitlab
user_id: The integer which numbers the user to attribute this MR to
""" """
...@@ -268,17 +269,15 @@ def update_files_with_mr(gitpkg, files_dict, message, branch, automerge, ...@@ -268,17 +269,15 @@ def update_files_with_mr(gitpkg, files_dict, message, branch, automerge,
logger.debug("Creating merge request %s -> master", branch) logger.debug("Creating merge request %s -> master", branch)
logger.debug("Set merge-when-pipeline-succeeds = %s", automerge) logger.debug("Set merge-when-pipeline-succeeds = %s", automerge)
if not dry_run: if not dry_run:
mr = project.mergerequests.create({ mr = gitpkg.mergerequests.create({
'source_branch': branch, 'source_branch': branch,
'target_branch': 'master', 'target_branch': 'master',
'title': message, 'title': message,
'remove_source_branch': True,
'assignee_id': user_id,
}) })
accept = { time.sleep(0.5) # to avoid the MR to be merged automatically - bug?
'merge_when_pipeline_succeeds': 'true' if automerge else 'false', mr.merge(merge_when_pipeline_succeeds=automerge)
'should_remove_source_branch': 'true',
}
mr.merge(accept)
def update_files_at_master(gitpkg, files_dict, message, dry_run): def update_files_at_master(gitpkg, files_dict, message, dry_run):
......
...@@ -57,6 +57,8 @@ def commitfile(package, message, file, path, branch, auto_merge, dry_run): ...@@ -57,6 +57,8 @@ def commitfile(package, message, file, path, branch, auto_merge, dry_run):
raise RuntimeError('PACKAGE should be specified as "group/name"') raise RuntimeError('PACKAGE should be specified as "group/name"')
gl = get_gitlab_instance() gl = get_gitlab_instance()
gl.auth()
user_id = gl.user.attributes['id']
# we lookup the gitlab package once # we lookup the gitlab package once
use_package = gl.projects.get(package) use_package = gl.projects.get(package)
...@@ -75,10 +77,10 @@ def commitfile(package, message, file, path, branch, auto_merge, dry_run): ...@@ -75,10 +77,10 @@ def commitfile(package, message, file, path, branch, auto_merge, dry_run):
contents = f.read() contents = f.read()
components = os.path.splitext(path)[0].split(os.sep) components = os.path.splitext(path)[0].split(os.sep)
branch = 'update-%s' % components[-1].lower() branch = branch or 'update-%s' % components[-1].lower()
message = message or ("[%s] update" % \ message = message or ("%s update" % \
''.join(['[%s]' % k for k in components])) ''.join(['[%s]' % k.lower() for k in components]))
# commit and push changes # commit and push changes
update_files_with_mr(use_package, {path: contents}, message, branch, update_files_with_mr(use_package, {path: contents}, message, branch,
auto_merge, dry_run) auto_merge, dry_run, user_id)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment