Skip to content

Commit 95b265c

Browse files
authored
Merge pull request #2 from GGHansome/github
feat: optimize code
2 parents 73a8e38 + 217c71e commit 95b265c

File tree

6 files changed

+26
-26
lines changed

6 files changed

+26
-26
lines changed

biz/event/event_manager.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def on_merge_request_reviewed(mr_review_entity: MergeRequestReviewEntity):
3333
"""
3434
notifier.send_notification(content=im_msg, msg_type='markdown', title='Merge Request Review',
3535
project_name=mr_review_entity.project_name,
36-
gitlab_url_slug=mr_review_entity.gitlab_url_slug)
36+
url_slug=mr_review_entity.url_slug)
3737

3838
# 记录到数据库
3939
ReviewService().insert_mr_review_log(mr_review_entity)
@@ -60,7 +60,7 @@ def on_push_reviewed(entity: PushReviewEntity):
6060
im_msg += f"#### AI Review 结果: \n {entity.review_result}\n\n"
6161
notifier.send_notification(content=im_msg, msg_type='markdown',
6262
title=f"{entity.project_name} Push Event", project_name=entity.project_name,
63-
gitlab_url_slug=entity.gitlab_url_slug)
63+
url_slug=entity.url_slug)
6464

6565
# 记录到数据库
6666
ReviewService().insert_push_review_log(entity)

biz/utils/im/dingtalk.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ def __init__(self, webhook_url=None):
1616
self.enabled = os.environ.get('DINGTALK_ENABLED', '0') == '1'
1717
self.default_webhook_url = webhook_url or os.environ.get('DINGTALK_WEBHOOK_URL')
1818

19-
def _get_webhook_url(self, project_name=None, gitlab_url_slug=None):
19+
def _get_webhook_url(self, project_name=None, url_slug=None):
2020
"""
2121
获取项目对应的 Webhook URL
2222
:param project_name: 项目名称
23-
:param gitlab_url_slug: 由 gitlab 项目的 url 转换而来的 slug
23+
:param url_slug: 由 gitlab 项目的 url 转换而来的 slug
2424
:return: Webhook URL
2525
:raises ValueError: 如果未找到 Webhook URL
2626
"""
@@ -33,7 +33,7 @@ def _get_webhook_url(self, project_name=None, gitlab_url_slug=None):
3333

3434
# 构造目标键
3535
target_key_project = f"DINGTALK_WEBHOOK_URL_{project_name.upper()}"
36-
target_key_url_slug = f"DINGTALK_WEBHOOK_URL_{gitlab_url_slug.upper()}"
36+
target_key_url_slug = f"DINGTALK_WEBHOOK_URL_{url_slug.upper()}"
3737

3838
# 遍历环境变量
3939
for env_key, env_value in os.environ.items():
@@ -50,13 +50,13 @@ def _get_webhook_url(self, project_name=None, gitlab_url_slug=None):
5050
# 如果既未找到匹配项,也没有默认值,抛出异常
5151
raise ValueError(f"未找到项目 '{project_name}' 对应的钉钉Webhook URL,且未设置默认的 Webhook URL。")
5252

53-
def send_message(self, content: str, msg_type='text', title='通知', is_at_all=False, project_name=None, gitlab_url_slug = None):
53+
def send_message(self, content: str, msg_type='text', title='通知', is_at_all=False, project_name=None, url_slug = None):
5454
if not self.enabled:
5555
logger.info("钉钉推送未启用")
5656
return
5757

5858
try:
59-
post_url = self._get_webhook_url(project_name=project_name, gitlab_url_slug=gitlab_url_slug)
59+
post_url = self._get_webhook_url(project_name=project_name, url_slug=url_slug)
6060
headers = {
6161
"Content-Type": "application/json",
6262
"Charset": "UTF-8"

biz/utils/im/feishu.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def __init__(self, webhook_url=None):
1414
self.default_webhook_url = webhook_url or os.environ.get('FEISHU_WEBHOOK_URL', '')
1515
self.enabled = os.environ.get('FEISHU_ENABLED', '0') == '1'
1616

17-
def _get_webhook_url(self, project_name=None, gitlab_url_slug=None):
17+
def _get_webhook_url(self, project_name=None, url_slug=None):
1818
"""
1919
获取项目对应的 Webhook URL
2020
:param project_name: 项目名称
@@ -30,7 +30,7 @@ def _get_webhook_url(self, project_name=None, gitlab_url_slug=None):
3030

3131
# 构造目标键
3232
target_key_project = f"FEISHU_WEBHOOK_URL_{project_name.upper()}"
33-
target_key_url_slug = f"FEISHU_WEBHOOK_URL_{gitlab_url_slug.upper()}"
33+
target_key_url_slug = f"FEISHU_WEBHOOK_URL_{url_slug.upper()}"
3434

3535
# 遍历环境变量
3636
for env_key, env_value in os.environ.items():
@@ -47,7 +47,7 @@ def _get_webhook_url(self, project_name=None, gitlab_url_slug=None):
4747
# 如果既未找到匹配项,也没有默认值,抛出异常
4848
raise ValueError(f"未找到项目 '{project_name}' 对应的 Feishu Webhook URL,且未设置默认的 Webhook URL。")
4949

50-
def send_message(self, content, msg_type='text', title=None, is_at_all=False, project_name=None, gitlab_url_slug=None):
50+
def send_message(self, content, msg_type='text', title=None, is_at_all=False, project_name=None, url_slug=None):
5151
"""
5252
发送飞书消息
5353
:param content: 消息内容
@@ -61,7 +61,7 @@ def send_message(self, content, msg_type='text', title=None, is_at_all=False, pr
6161
return
6262

6363
try:
64-
post_url = self._get_webhook_url(project_name=project_name, gitlab_url_slug=gitlab_url_slug)
64+
post_url = self._get_webhook_url(project_name=project_name, url_slug=url_slug)
6565
if msg_type == 'markdown':
6666
data = {
6767
"msg_type": "interactive",

biz/utils/im/notifier.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,26 @@
33
from biz.utils.im.wecom import WeComNotifier
44

55

6-
def send_notification(content, msg_type='text', title="通知", is_at_all=False, project_name=None, gitlab_url_slug=None):
6+
def send_notification(content, msg_type='text', title="通知", is_at_all=False, project_name=None, url_slug=None):
77
"""
88
发送通知消息到配置的平台(钉钉和企业微信)
99
:param content: 消息内容
1010
:param msg_type: 消息类型,支持text和markdown
1111
:param title: 消息标题(markdown类型时使用)
1212
:param is_at_all: 是否@所有人
13-
:param gitlab_url_slug: 由gitlab服务器的url地址(如:http://www.gitlab.com)转换成的slug格式,如: www_gitlab_com
13+
:param url_slug: 由gitlab服务器的url地址(如:http://www.gitlab.com)转换成的slug格式,如: www_gitlab_com
1414
"""
1515
# 钉钉推送
1616
dingtalk_notifier = DingTalkNotifier()
1717
dingtalk_notifier.send_message(content=content, msg_type=msg_type, title=title, is_at_all=is_at_all,
18-
project_name=project_name, gitlab_url_slug=gitlab_url_slug)
18+
project_name=project_name, url_slug=url_slug)
1919

2020
# 企业微信推送
2121
wecom_notifier = WeComNotifier()
2222
wecom_notifier.send_message(content=content, msg_type=msg_type, title=title, is_at_all=is_at_all,
23-
project_name=project_name, gitlab_url_slug=gitlab_url_slug)
23+
project_name=project_name, url_slug=url_slug)
2424

2525
# 飞书推送
2626
feishu_notifier = FeishuNotifier()
2727
feishu_notifier.send_message(content=content, msg_type=msg_type, title=title, is_at_all=is_at_all,
28-
project_name=project_name, gitlab_url_slug=gitlab_url_slug)
28+
project_name=project_name, url_slug=url_slug)

biz/utils/im/wecom.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ def __init__(self, webhook_url=None):
1414
self.default_webhook_url = webhook_url or os.environ.get('WECOM_WEBHOOK_URL', '')
1515
self.enabled = os.environ.get('WECOM_ENABLED', '0') == '1'
1616

17-
def _get_webhook_url(self, project_name=None, gitlab_url_slug=None):
17+
def _get_webhook_url(self, project_name=None, url_slug=None):
1818
"""
1919
获取项目对应的 Webhook URL
2020
:param project_name: 项目名称
@@ -30,7 +30,7 @@ def _get_webhook_url(self, project_name=None, gitlab_url_slug=None):
3030

3131
# 构造目标键
3232
target_key_project = f"WECOM_WEBHOOK_URL_{project_name.upper()}"
33-
target_key_url_slug = f"WECOM_WEBHOOK_URL_{gitlab_url_slug.upper()}"
33+
target_key_url_slug = f"WECOM_WEBHOOK_URL_{url_slug.upper()}"
3434

3535
# 遍历环境变量
3636
for env_key, env_value in os.environ.items():
@@ -67,22 +67,22 @@ def format_markdown_content(self, content, title=None):
6767
return formatted_content
6868

6969
def send_message(self, content, msg_type='text', title=None, is_at_all=False, project_name=None,
70-
gitlab_url_slug=None):
70+
url_slug=None):
7171
"""
7272
发送企业微信消息
7373
:param content: 消息内容
7474
:param msg_type: 消息类型,支持 text 和 markdown
7575
:param title: 消息标题 (markdown 类型时使用)
7676
:param is_at_all: 是否 @所有人
7777
:param project_name: 关联项目名称
78-
:param gitlab_url_slug: GitLab URL Slug
78+
:param url_slug: GitLab URL Slug
7979
"""
8080
if not self.enabled:
8181
logger.info("企业微信推送未启用")
8282
return
8383

8484
try:
85-
post_url = self._get_webhook_url(project_name=project_name, gitlab_url_slug=gitlab_url_slug)
85+
post_url = self._get_webhook_url(project_name=project_name, url_slug=url_slug)
8686
data = self._build_markdown_message(content, title) if msg_type == 'markdown' else self._build_text_message(
8787
content, is_at_all)
8888

biz/utils/queue.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@
1414
queues = {}
1515

1616

17-
def handle_queue(function: callable, data: any, gitlab_token: str, gitlab_url: str, gitlab_url_slug: str):
17+
def handle_queue(function: callable, data: any, token: str, url: str, url_slug: str):
1818
if queue_driver == 'rq':
19-
if gitlab_url_slug not in queues:
19+
if url_slug not in queues:
2020
logger.info(f'REDIS_HOST: {os.getenv("REDIS_HOST", "127.0.0.1")},REDIS_PORT: {os.getenv("REDIS_PORT", 6379)}')
21-
queues[gitlab_url_slug] = Queue(gitlab_url_slug, connection=Redis(os.getenv('REDIS_HOST', '127.0.0.1'),
21+
queues[url_slug] = Queue(url_slug, connection=Redis(os.getenv('REDIS_HOST', '127.0.0.1'),
2222
os.getenv('REDIS_PORT', 6379)))
2323

24-
queues[gitlab_url_slug].enqueue(function, data, gitlab_token, gitlab_url, gitlab_url_slug)
24+
queues[url_slug].enqueue(function, data, token, url, url_slug)
2525
else:
26-
process = Process(target=function, args=(data, gitlab_token, gitlab_url, gitlab_url_slug))
26+
process = Process(target=function, args=(data, token, url, url_slug))
2727
process.start()

0 commit comments

Comments
 (0)