Jenkins 钉钉 机器人 Python版本

时间:2022-08-16 08:48:33

最近在做一点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版本