天天看點

Jenkins 釘釘 機器人 Python版本

最近在做一點Jenkins的探索,想把OCLint的結果解析出來用釘釘的形式發送到釘釘群(參考文檔),以便大家接受及時消息。

簡單說一下大概的步驟:

建立一個機器人

Jenkins 釘釘 機器人 Python版本

按照下一步下一步就行了。

最後:

Jenkins 釘釘 機器人 Python版本

獲得到一個

webhook

發送消息

其實發送消息十分簡單,官網寫的比較詳細了(官方文檔)。

但是官方的文檔隻有Java和PHP的。

但是。。。。。Java好久不用,PHP不會。。。。。。。

隻能用

python

想辦法,沒有啥樣的執行個體隻能自己動手了:

#!/usr/bin/python
    #coding=utf-8
    import urllib
    import urllib2
    import json
    import sys
    import socket

    reload(sys)
    sys.setdefaultencoding('utf8')

    # 擷取釘釘消息
    def extractionMessage() :
        #拼接需要發送的消息
        return "##### <font color=orange> 釘釘message </font>"

    #發送釘釘消息
    def sendDingDingMessage(url, data):
        req = urllib2.Request(url)
        req.add_header("Content-Type", "application/json; charset=utf-8")
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
        response = opener.open(req, json.dumps(data))
        return response.read()

    #主函數
    def main():
        posturl = "https://oapi.dingtalk.com/robot/send?access_token=????????????????????????????"
        data = {"msgtype": "markdown", "markdown": {"text": extractionMessage(),"title":"Jenkins","isAtAll": "false"}}
        sendDingDingMessage(posturl, data)

    main()
           

具體解析OCLint的結果XML的代碼和解析log的代碼就不貼了,别忘了 把main()中的posturl換成自己的webhook位址 就OK了。

附上一個結果,這裡用的是

markdown

格式,其他格式參考官方文檔:(官方文檔)。

Jenkins 釘釘 機器人 Python版本