@@ -13,7 +13,7 @@ def __init__(self, webhook_url=None):
1313 self .default_webhook_url = webhook_url or os .environ .get ('FEISHU_WEBHOOK_URL' , '' )
1414 self .enabled = os .environ .get ('FEISHU_ENABLED' , '0' ) == '1'
1515
16- def _get_webhook_url (self , project_name = None , url_base = None ):
16+ def _get_webhook_url (self , project_name = None , gitlab_url_slug = None ):
1717 """
1818 获取项目对应的 Webhook URL
1919 :param project_name: 项目名称
@@ -27,17 +27,17 @@ def _get_webhook_url(self, project_name=None, url_base=None):
2727 else :
2828 raise ValueError (_ ("未提供项目名称,且未设置默认的 飞书 Webhook URL。" ))
2929
30- # 遍历所有环境变量(忽略大小写),找到项目对应的 Webhook URL
31- target_key = f"FEISHU_WEBHOOK_URL_{ project_name .upper ()} "
32- for env_key , env_value in os .environ .items ():
33- if env_key .upper () == target_key :
34- return env_value # 找到匹配项,直接返回
35-
36- # url_base 优先级次之
37- target_key_url_base = f"WECOM_WEBHOOK_URL_{ url_base .upper ()} "
30+ # 构造目标键
31+ target_key_project = f"FEISHU_WEBHOOK_URL_{ project_name .upper ()} "
32+ target_key_url_slug = f"FEISHU_WEBHOOK_URL_{ gitlab_url_slug .upper ()} "
33+
34+ # 遍历环境变量
3835 for env_key , env_value in os .environ .items ():
39- if target_key_url_base != None and env_key .upper () == target_key_url_base :
40- return env_value # 找到匹配项,直接返回
36+ env_key_upper = env_key .upper ()
37+ if env_key_upper == target_key_project :
38+ return env_value # 找到项目名称对应的 Webhook URL,直接返回
39+ if env_key_upper == target_key_url_slug :
40+ return env_value # 找到 GitLab URL 对应的 Webhook URL,直接返回
4141
4242 # 如果未找到匹配的环境变量,降级使用全局的 Webhook URL
4343 if self .default_webhook_url :
@@ -46,7 +46,7 @@ def _get_webhook_url(self, project_name=None, url_base=None):
4646 # 如果既未找到匹配项,也没有默认值,抛出异常
4747 raise ValueError (_ ("未找到项目 '{project_name}' 对应的 Feishu Webhook URL,且未设置默认的 Webhook URL。" ))
4848
49- def send_message (self , content , msg_type = 'text' , title = None , is_at_all = False , project_name = None , url_base = None ):
49+ def send_message (self , content , msg_type = 'text' , title = None , is_at_all = False , project_name = None , gitlab_url_slug = None ):
5050 """
5151 发送飞书消息
5252 :param content: 消息内容
@@ -60,7 +60,7 @@ def send_message(self, content, msg_type='text', title=None, is_at_all=False, pr
6060 return
6161
6262 try :
63- post_url = self ._get_webhook_url (project_name = project_name , url_base = url_base )
63+ post_url = self ._get_webhook_url (project_name = project_name , gitlab_url_slug = gitlab_url_slug )
6464 if msg_type == 'markdown' :
6565 data = {
6666 "msg_type" : "interactive" ,
0 commit comments