Skip to content

Commit 1271148

Browse files
author
xin.xu1
committed
修复 Gitlab 不同版本 mr 请求区别
1 parent 980cd34 commit 1271148

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

gitlab_integration/gitlab_fetcher.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,4 +202,16 @@ def _build_authenticated_url(self, repo_url):
202202
elif repo_url.startswith("http://"):
203203
return f"http://oauth2:{token}@{repo_url[7:]}"
204204
else:
205-
raise ValueError("Unsupported URL scheme")
205+
raise ValueError("Unsupported URL scheme")
206+
207+
def is_merge_request_opened(gitlab_payload) -> bool:
208+
"""
209+
判断是否是merge request打开事件
210+
"""
211+
try:
212+
gitlab_merge_request_old = gitlab_payload.get("object_attributes").get("state") == "opened" and gitlab_payload.get("object_attributes").get("merge_status") == "preparing"
213+
gitlab_merge_request_new = gitlab_payload.get("object_attributes").get("state") == "merged" and gitlab_payload.get("object_attributes").get("merge_status") == "can_be_merged"
214+
return gitlab_merge_request_old or gitlab_merge_request_new
215+
except Exception as e:
216+
log.error(f"判断是否是merge request打开事件失败: {e}")
217+
return False

gitlab_integration/webhook_listener.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from response_module.response_controller import ReviewResponse
88
from review_engine.review_engine import ReviewEngine
99
from utils.logger import log
10-
10+
from gitlab_integration.gitlab_fetcher import is_merge_request_opened
1111

1212
class WebhookListener:
1313
def __init__(self):
@@ -53,7 +53,7 @@ def handle_merge_request(self, gitlab_payload, reply):
5353
"""
5454
处理合并请求事件
5555
"""
56-
if gitlab_payload.get("object_attributes").get("state") == "opened" and gitlab_payload.get("object_attributes").get("merge_status") == "preparing":
56+
if is_merge_request_opened(gitlab_payload):
5757
log.info("首次merge_request ", gitlab_payload)
5858
project_id = gitlab_payload.get('project')['id']
5959
merge_request_iid = gitlab_payload.get("object_attributes")["iid"]

0 commit comments

Comments
 (0)