Skip to content

Commit f71f696

Browse files
author
sunminghui
committed
优先加载env
1 parent 3da073b commit f71f696

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

api.py

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
from dotenv import load_dotenv
2+
3+
load_dotenv("conf/.env")
4+
15
import atexit
26
import json
37
import os
@@ -7,22 +11,20 @@
711

812
from apscheduler.schedulers.background import BackgroundScheduler
913
from apscheduler.triggers.cron import CronTrigger
10-
from dotenv import load_dotenv
1114
from flask import Flask, request, jsonify
1215

1316
from biz.gitlab.webhook_handler import slugify_url
14-
from biz.queue.worker import handle_merge_request_event, handle_push_event, handle_github_pull_request_event, handle_github_push_event
17+
from biz.queue.worker import handle_merge_request_event, handle_push_event, handle_github_pull_request_event, \
18+
handle_github_push_event
1519
from biz.service.review_service import ReviewService
1620
from biz.utils.im import notifier
1721
from biz.utils.log import logger
1822
from biz.utils.queue import handle_queue
1923
from biz.utils.reporter import Reporter
2024

2125
from biz.utils.config_checker import check_config
22-
load_dotenv("conf/.env")
23-
api_app = Flask(__name__)
24-
2526

27+
api_app = Flask(__name__)
2628

2729
push_review_enabled = os.environ.get('PUSH_REVIEW_ENABLED', '0') == '1'
2830

@@ -113,42 +115,46 @@ def handle_webhook():
113115

114116
# 判断是GitLab还是GitHub的webhook
115117
webhook_source = request.headers.get('X-GitHub-Event')
116-
118+
117119
if webhook_source: # GitHub webhook
118120
return handle_github_webhook(webhook_source, data)
119121
else: # GitLab webhook
120122
return handle_gitlab_webhook(data)
121123
else:
122124
return jsonify({'message': 'Invalid data format'}), 400
123125

126+
124127
def handle_github_webhook(event_type, data):
125128
# 获取GitHub配置
126129
github_token = os.getenv('GITHUB_ACCESS_TOKEN') or request.headers.get('X-GitHub-Token')
127130
if not github_token:
128131
return jsonify({'message': 'Missing GitHub access token'}), 400
129-
132+
130133
github_url = os.getenv('GITHUB_URL') or 'https://github.com'
131134
github_url_slug = slugify_url(github_url)
132-
135+
133136
# 打印整个payload数据
134137
logger.info(f'Received GitHub event: {event_type}')
135138
logger.info(f'Payload: {json.dumps(data)}')
136-
139+
137140
if event_type == "pull_request":
138141
# 使用handle_queue进行异步处理
139142
handle_queue(handle_github_pull_request_event, data, github_token, github_url, github_url_slug)
140143
# 立马返回响应
141-
return jsonify({'message': f'GitHub request received(event_type={event_type}), will process asynchronously.'}), 200
144+
return jsonify(
145+
{'message': f'GitHub request received(event_type={event_type}), will process asynchronously.'}), 200
142146
elif event_type == "push":
143147
# 使用handle_queue进行异步处理
144148
handle_queue(handle_github_push_event, data, github_token, github_url, github_url_slug)
145149
# 立马返回响应
146-
return jsonify({'message': f'GitHub request received(event_type={event_type}), will process asynchronously.'}), 200
150+
return jsonify(
151+
{'message': f'GitHub request received(event_type={event_type}), will process asynchronously.'}), 200
147152
else:
148153
error_message = f'Only pull_request and push events are supported for GitHub webhook, but received: {event_type}.'
149154
logger.error(error_message)
150155
return jsonify(error_message), 400
151156

157+
152158
def handle_gitlab_webhook(data):
153159
object_kind = data.get("object_kind")
154160

@@ -198,6 +204,7 @@ def handle_gitlab_webhook(data):
198204
logger.error(error_message)
199205
return jsonify(error_message), 400
200206

207+
201208
if __name__ == '__main__':
202209
check_config()
203210
# 启动定时任务调度器

0 commit comments

Comments
 (0)