diff --git a/mrhlpr/mr.py b/mrhlpr/mr.py index 587ebd1f77cb95fa29ddd29aeea0694c0fa7df3d..2380c8166a230f5b754ca4a87328cf886032aa9e 100644 --- a/mrhlpr/mr.py +++ b/mrhlpr/mr.py @@ -468,10 +468,11 @@ def finish( git.push_head(remote_local, status.source_branch) gl = gitlab_api.Gitlab(url="https://gitlab.com", private_token=gitlab_token) + gl.auth() project = gl.projects.get(origin.project_id) mr = project.mergerequests.get(mr_id) - if skip_approve: - print("Skipping approval per request...") + if skip_approve or (gl.user and mr.author and gl.user.id == mr.author.get("id")): + print("Skipping approval...") else: print("Approving MR...") try: @@ -479,7 +480,6 @@ def finish( # For some reason, approve fails with auth error if already approved... except gitlab_api.GitlabAuthenticationError as e: approved_by_ids = [ap["id"] for ap in mr.approval_state.get().rules[0]["approved_by"]] - gl.auth() if gl.user is None: raise e if gl.user.id not in approved_by_ids: