在做流水線送出的時候,經常會說誰送出的代碼,觸發了流水線,導緻流水線成功或者失敗,這都有一個消息的回報和通知。
之前版本控制的時候有郵件通知,開發同學在gitlab上面送出了代碼,然後會自動的觸發Jenkins,gitlab在觸發Jenkins的時候會傳遞一些參數,比如項目的資訊和送出人的資訊。比如誰送出的,郵箱是多少,這些會傳遞到Jenkins裡面來。Jenkins被gitlab觸發之後就會進行建構,最後成功或者失敗都會有一個Email通知發給送出人。
釘釘與消息通知
- 釘釘開發文檔:自定義機器人接入 - 釘釘開放平台
1. 釘釘通知
1.1 建立群機器人

添加完機器人之後會給你生成一個連結,調用這個連結就可以往這個群裡面發送消息 ,為了避免有些時候,有人把這個洩露出去了,别人拿到會發一些垃圾消息搞破壞,是以機器人這裡有個安全的設定
- 自定義關鍵詞:最多可以設定10個關鍵詞,消息中至少包含其中1個關鍵詞才可以發送成功。例如添加了一個自定義關鍵詞:監控報警,則這個機器人所發送的消息,必須包含監控報警這個詞,才能發送成功。
- IP位址(段):設定後,隻有來自IP位址範圍内的請求才會被正常處理。支援兩種設定方式:IP位址和IP位址段,暫不支援IPv6位址白名單,格式如下。
格式 | 說明 |
1.1.1.1 | 開發者的出口公網IP位址(非區域網路位址) |
1.1.1.0/24 | 用CIDR表示的一個網段 |
有了webhook之後就可以向其發送請求,釘釘的消息類型和資料格式:消息類型和資料格式 - 釘釘開放平台
因為關鍵字裡面沒有建構通知,是以消息會發送失敗。
#post請求位址
https://oapi.dingtalk.com/robot/send?access_token=a054e493663471009fc3aad90bda43cf738903ad29a49e996ef69711957e1603
#消息格式
{
"at": {
"atMobiles": [
"15011495602"
],
"atUserIds": [
""
],
"isAtAll": true
},
"text": {
"content": "建構通知 DEVOPS我就是我, @kkobe 是不一樣的煙火"
},
"msgtype": "text"
}
這樣就将一條消息發出去并且@所有人了。在往Jenkins流水線裡面去放就是封裝為http請求了,比如使用curl指令。
curl --location --request POST 'https://oapi.dingtalk.com/robot/send?access_token=a054e493663471009fc3aad90bda43cf738903ad29a49e996ef69711957e1603' \
--header 'Content-Type: application/json' \
--data-raw '{
"at": {
"atMobiles": [
"15011495602"
],
"atUserIds": [
""
],
"isAtAll": true
},
"text": {
"content": "建構通知 DEVOPS我就是我, @kkobe 是不一樣的煙火"
},
"msgtype": "text"
}'
超連結消息
MarkDown格式消息
curl --location --request POST 'https://oapi.dingtalk.com/robot/send?access_token=a054e493663471009fc3aad90bda43cf738903ad29a49e996ef69711957e1603' \
--header 'Content-Type: application/json' \
--data-raw '{
"msgtype": "markdown",
"markdown": {
"title": "明天的DEVOPS課程安排",
"text": "## 建構通知 《Jenkins實踐擴充》 \n ### 1.内容1 \n ### 2.内容1 \n ### 3.内容1 \n ### 4.内容1 \n> \n> ###### 更多詳細資訊點選 [課程連結](https://www.idevops.site/detail/term_6054ad6b126c2_MTE8oq/25) \n"
},
"at": {
"atMobiles": [
"158115965723"
],
"atUserIds": [
"user123"
],
"isAtAll": true
}
}'
actionCard
{
"actionCard": {
"title": "DEVOPS第一期JenkinsCI/CD實踐訓練營",
"text": " ### 第一期JenkinsCI/CD實踐訓練營",
"btnOrientation": "0",
"singleTitle" : "閱讀全文",
"singleURL" : "https://www.idevops.site/detail/term_6054ad6b126c2_MTE8oq/25/"
},
"msgtype": "actionCard"
}
feedCard
{
"msgtype":"feedCard",
"feedCard": {
"links": [
{
"title": "第一期實踐訓練營",
"messageURL": "https://www.dingtalk.com/",
"picURL": "http://wechatapppro-1252524126.file.myqcloud.com/app7x5jejrv6551/image/compress/640480598kmgc1v610gr1.png"
},
{
"title": "DEVOPS第二期實踐訓練營",
"messageURL": "https://www.dingtalk.com/",
"picURL": "http://wechatapppro-1252524126.file.myqcloud.com/app7x5jejrv6551/image/compress/640480598kmgc1v610gr1.png"
},
{
"title": "DEVOPS第三期實踐訓練營",
"messageURL": "https://www.dingtalk.com/",
"picURL": "http://wechatapppro-1252524126.file.myqcloud.com/app7x5jejrv6551/image/compress/640480598kmgc1v610gr1.png"
}
]
}
}
上面就是-------------->添加機器人---------->擷取webhook----------->然後通過postman去測試------->各種消息的結構體。