天天看點

Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知

在做流水線送出的時候,經常會說誰送出的代碼,觸發了流水線,導緻流水線成功或者失敗,這都有一個消息的回報和通知。

之前版本控制的時候有郵件通知,開發同學在gitlab上面送出了代碼,然後會自動的觸發Jenkins,gitlab在觸發Jenkins的時候會傳遞一些參數,比如項目的資訊和送出人的資訊。比如誰送出的,郵箱是多少,這些會傳遞到Jenkins裡面來。Jenkins被gitlab觸發之後就會進行建構,最後成功或者失敗都會有一個Email通知發給送出人。

釘釘與消息通知

  • 釘釘開發文檔:自定義機器人接入 - 釘釘開放平台

1. 釘釘通知

1.1 建立群機器人

Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知
Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知
Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知
Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知

添加完機器人之後會給你生成一個連結,調用這個連結就可以往這個群裡面發送消息 ,為了避免有些時候,有人把這個洩露出去了,别人拿到會發一些垃圾消息搞破壞,是以機器人這裡有個安全的設定

  • 自定義關鍵詞:最多可以設定10個關鍵詞,消息中至少包含其中1個關鍵詞才可以發送成功。例如添加了一個自定義關鍵詞:監控報警,則這個機器人所發送的消息,必須包含監控報警這個詞,才能發送成功。
  • IP位址(段):設定後,隻有來自IP位址範圍内的請求才會被正常處理。支援兩種設定方式:IP位址和IP位址段,暫不支援IPv6位址白名單,格式如下。
格式 說明
1.1.1.1 開發者的出口公網IP位址(非區域網路位址)
1.1.1.0/24 用CIDR表示的一個網段

有了webhook之後就可以向其發送請求,釘釘的消息類型和資料格式:消息類型和資料格式 - 釘釘開放平台

因為關鍵字裡面沒有建構通知,是以消息會發送失敗。 

Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知
Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知
Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知
#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"
}'
           

超連結消息 

Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知
Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知

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>  ![screenshot](http://wechatapppro-1252524126.file.myqcloud.com/app7x5jejrv6551/image/compress/640480598kmgc1v610gr1.png)\n> ###### 更多詳細資訊點選 [課程連結](https://www.idevops.site/detail/term_6054ad6b126c2_MTE8oq/25) \n"
    },
    "at": {
        "atMobiles": [
            "158115965723"
        ],
        "atUserIds": [
            "user123"
        ],
        "isAtAll": true
    }
}'
           
Jenkins 實踐擴充 企業微信消息通知1. 釘釘通知

 actionCard

{
    "actionCard": {
        "title": "DEVOPS第一期JenkinsCI/CD實踐訓練營", 
        "text": "![screenshot](http://wechatapppro-1252524126.file.myqcloud.com/app7x5jejrv6551/image/compress/640480598kmgc1v610gr1.png) ### 第一期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去測試------->各種消息的結構體。