You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何根据Jenkins构建触发者,生成不同格式的Slack通知内容

Jenkins Groovy脚本:优化Slack构建触发者通知

需求回顾

原有脚本通过build-vars-plugin获取BUILD_USER_ID,向Slack发送触发者通知,现在需要针对不同触发场景优化显示:

  • 当触发者为name.surname格式(内部员工),自动添加统一邮箱后缀@example.com
  • 远程curl触发、定时cron触发时,保持原有显示内容不变

改写后的脚本

def startedBy = env.BUILD_USER_ID
def emailSuffix = "@example.com"
// 匹配name.surname格式的用户名(字母数字+点的组合)
def namePattern = ~/^\w+\.\w+$/

def displayName = (startedBy ==~ namePattern) ? "${startedBy}${emailSuffix}" : startedBy
def message = "\nJob started by: ${displayName}"
return message

逻辑说明

  • 直接获取BUILD_USER_ID环境变量的值
  • 定义统一的邮箱后缀常量,方便后续修改维护
  • 使用正则表达式^\w+\.\w+$匹配符合名.姓格式的用户名,确保仅对内部员工账号添加邮箱后缀
  • 根据匹配结果决定最终显示的触发者名称,非匹配场景(如remoteHost、timer)直接保留原内容
  • 最后构造并返回Slack通知消息

内容的提问来源于stack exchange,提问作者azertykitty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 13:45:53