@@ -54,6 +54,7 @@ def handle_push_event(webhook_data: dict, gitlab_token: str, gitlab_url: str, gi
5454 score = score ,
5555 review_result = review_result ,
5656 url_slug = gitlab_url_slug ,
57+ webhook_data = webhook_data ,
5758 additions = additions ,
5859 deletions = deletions ,
5960 ))
@@ -73,10 +74,15 @@ def handle_merge_request_event(webhook_data: dict, gitlab_token: str, gitlab_url
7374 :param gitlab_url_slug:
7475 :return:
7576 '''
77+ merge_review_only_protected_branches = os .environ .get ('MERGE_REVIEW_ONLY_PROTECTED_BRANCHES_ENABLED' , '0' ) == '1'
7678 try :
7779 # 解析Webhook数据
7880 handler = MergeRequestHandler (webhook_data , gitlab_token , gitlab_url )
7981 logger .info ('Merge Request Hook event received' )
82+ # 如果开启了仅review projected branches的,判断当前目标分支是否为projected branches
83+ if merge_review_only_protected_branches and not handler .target_branch_protected ():
84+ logger .info ("Merge Request target branch not match protected branches, ignored." )
85+ return
8086
8187 if handler .action not in ['open' , 'update' ]:
8288 logger .info (f"Merge Request Hook event, action={ handler .action } , ignored." )
@@ -123,6 +129,7 @@ def handle_merge_request_event(webhook_data: dict, gitlab_token: str, gitlab_url
123129 url = webhook_data ['object_attributes' ]['url' ],
124130 review_result = review_result ,
125131 url_slug = gitlab_url_slug ,
132+ webhook_data = webhook_data ,
126133 additions = additions ,
127134 deletions = deletions ,
128135 )
@@ -175,6 +182,7 @@ def handle_github_push_event(webhook_data: dict, github_token: str, github_url:
175182 score = score ,
176183 review_result = review_result ,
177184 url_slug = github_url_slug ,
185+ webhook_data = webhook_data ,
178186 additions = additions ,
179187 deletions = deletions ,
180188 ))
@@ -194,10 +202,15 @@ def handle_github_pull_request_event(webhook_data: dict, github_token: str, gith
194202 :param github_url_slug:
195203 :return:
196204 '''
205+ merge_review_only_protected_branches = os .environ .get ('MERGE_REVIEW_ONLY_PROTECTED_BRANCHES_ENABLED' , '0' ) == '1'
197206 try :
198207 # 解析Webhook数据
199208 handler = GithubPullRequestHandler (webhook_data , github_token , github_url )
200209 logger .info ('GitHub Pull Request event received' )
210+ # 如果开启了仅review projected branches的,判断当前目标分支是否为projected branches
211+ if merge_review_only_protected_branches and not handler .target_branch_protected ():
212+ logger .info ("Merge Request target branch not match protected branches, ignored." )
213+ return
201214
202215 if handler .action not in ['opened' , 'synchronize' ]:
203216 logger .info (f"Pull Request Hook event, action={ handler .action } , ignored." )
@@ -244,6 +257,7 @@ def handle_github_pull_request_event(webhook_data: dict, github_token: str, gith
244257 url = webhook_data ['pull_request' ]['html_url' ],
245258 review_result = review_result ,
246259 url_slug = github_url_slug ,
260+ webhook_data = webhook_data ,
247261 additions = additions ,
248262 deletions = deletions ,
249263 ))
0 commit comments