自定义消息
项目级配置里有两个都能写内容的输入框,区别是在内置消息之上追加还是把内置消息整个换掉:
| 配置项 | 是否勾选 禁用内置消息 | 效果 |
|---|---|---|
自定义内容 | 不勾选 | 内置消息照发,你写的内容追加在最后 |
自定义消息 | 勾选 | 内置消息完全不发,只发你写的内容 |
两个框都在项目配置的 钉钉配置 里,勾选机器人后点 advanced 展开。
内置消息长什么样
不勾 禁用内置消息 时,插件发的是这样一条 ACTION_CARD:
markdown
# [项目名](项目地址)
---
- 任务:[#42](本次构建地址)
- 状态:成功
- 持续时间:1 min 20 sec
- 执行人:张三
这里是你在「自定义内容」里写的东西外加『更改记录』『控制台』两个按钮。
禁用内置消息之后
勾上 禁用内置消息,上面那些就全没了,只剩你在 自定义消息 里写的内容。想保留项目名、状态之类的信息, 自己用环境变量拼:
markdown
# ${PROJECT_NAME} ${JOB_STATUS}
- 构建:[${JOB_NAME}](${JOB_URL})
- 耗时:${JOB_DURATION}
- 触发人:${EXECUTOR_NAME}
> 分支 ${GIT_BRANCH},提交 ${GIT_COMMIT}有几件事跟着一起变了,配之前先知道:
- 按钮没有了。『更改记录』『控制台』两个默认按钮只属于内置消息,自定义消息发的是
MARKDOWN类型,这个类型不支持按钮。想留住这两个入口就在正文里写成链接:[更改记录](${JOB_URL}changes)、[控制台](${JOB_URL}console)。 - 消息类型固定是
MARKDOWN,目前不能选。所以@在手机端不可点击,详见 @ 人。 - 标题不受这里控制。 钉钉在会话列表里透出的那行字始终是
项目名 + 状态,例如my-job 成功(用关键词安全策略的话后面还会自动拼上关键词),改不了。正文里的# 一级标题是消息内部的标题, 两回事。 通知人依然生效。 里面配的@会追加到消息末尾,除非正文里已经写过同样的@。
关于换行
自定义消息 和 自定义内容 都是多行文本框,直接按回车换行就行。
TIP
钉钉的 markdown 只支持一个子集,能用哪些语法见 Markdown 语法。
只想给某几种结果换内容
自定义消息 是整个机器人配置共用的,不区分构建结果。想让成功和失败发不一样的东西,两个办法:
- 同一个机器人在正文里用
${JOB_STATUS}把状态带出来,内容本身保持通用 - 在系统设置里配两个机器人(webhook 可以填同一个群),项目里就会出现两条独立配置, 各自勾不同的
通知时机、写不同的自定义消息
需要完全自由的控制流就别用项目级配置了,改用 pipeline 的 dingtalk 步骤。
