Skip to content
Snippets Groups Projects

mrhlpr: mr: use a simpler mechanism to detect if user approved a MR

Merged Clayton Craft requested to merge craftyguy/fix_approval_fetch into master
All threads resolved!
+ 8
10
@@ -549,16 +549,14 @@ def finish(
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:
mr.approve(git.sha())
# 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"]]
if gl.user is None:
raise e
if gl.user.id not in approved_by_ids:
raise RuntimeError("Approving failed, and MR not yet approved") from e
if mr.approvals.get().attributes["user_has_approved"]:
print("MR has already been approved by you!")
else:
print("Approving MR...")
try:
mr.approve(git.sha())
except Exception as e:
raise RuntimeError("Approval failed, your approval was not added!") from e
if comment:
print("Adding the comment...")
Loading