@@ -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 , url_base = None ):
17+ def _get_webhook_url (self , project_name = None , gitlab_url_slug = None ):
1818 """
1919 获取项目对应的 Webhook URL
2020 :param project_name: 项目名称
@@ -28,17 +28,17 @@ def _get_webhook_url(self, project_name=None, url_base=None):
2828 else :
2929 raise ValueError ("未提供项目名称,且未设置默认的 飞书 Webhook URL。" )
3030
31- # 遍历所有环境变量(忽略大小写),找到项目对应的 Webhook URL
32- target_key = f"FEISHU_WEBHOOK_URL_{ project_name .upper ()} "
33- for env_key , env_value in os .environ .items ():
34- if env_key .upper () == target_key :
35- return env_value # 找到匹配项,直接返回
36-
37- # url_base 优先级次之
38- target_key_url_base = f"WECOM_WEBHOOK_URL_{ url_base .upper ()} "
31+ # 构造目标键
32+ target_key_project = f"FEISHU_WEBHOOK_URL_{ project_name .upper ()} "
33+ target_key_url_slug = f"FEISHU_WEBHOOK_URL_{ gitlab_url_slug .upper ()} "
34+
35+ # 遍历环境变量
3936 for env_key , env_value in os .environ .items ():
40- if target_key_url_base != None and env_key .upper () == target_key_url_base :
41- return env_value # 找到匹配项,直接返回
37+ env_key_upper = env_key .upper ()
38+ if env_key_upper == target_key_project :
39+ return env_value # 找到项目名称对应的 Webhook URL,直接返回
40+ if env_key_upper == target_key_url_slug :
41+ return env_value # 找到 GitLab URL 对应的 Webhook URL,直接返回
4242
4343 # 如果未找到匹配的环境变量,降级使用全局的 Webhook URL
4444 if self .default_webhook_url :
@@ -47,7 +47,7 @@ def _get_webhook_url(self, project_name=None, url_base=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 , url_base = None ):
50+ def send_message (self , content , msg_type = 'text' , title = None , is_at_all = False , project_name = None , gitlab_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 , url_base = url_base )
64+ post_url = self ._get_webhook_url (project_name = project_name , gitlab_url_slug = gitlab_url_slug )
6565 if msg_type == 'markdown' :
6666 data = {
6767 "msg_type" : "interactive" ,
0 commit comments