forked from meolu/walle-web
-
Notifications
You must be signed in to change notification settings - Fork 0
/
dingding.py
52 lines (45 loc) · 1.59 KB
/
dingding.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# -*- coding: utf-8 -*-
"""
walle-web
:copyright: © 2015-2019 walle-web.io
:created time: 2018-12-23 20:17:14
:author: [email protected]
"""
import json
import requests
from . import Notice
from walle.model.project import ProjectModel
class Dingding(Notice):
def deploy_task(self, project_info, notice_info):
if notice_info['repo_mode'] == ProjectModel.repo_mode_tag:
version = notice_info['tag']
else:
version = '%s/%s' % (notice_info['branch'], notice_info['commit'])
data = {
"msgtype": "markdown",
"markdown": {
"title": "上线单通知",
"text": """#### ![screenshot](http://walle-web.io/dingding.jpg) %s %s \n> **项目**:%s \n
> **任务**:%s \n
> **版本**:%s \n """ % (
notice_info['username'], notice_info['title'], notice_info['project_name'], notice_info['task_name'],
version)}
}
'''
上线单新建, 上线完成, 上线失败
@param hook:
@param notice_info:
'title',
'username',
'project_name',
'task_name',
'branch',
'commit',
'is_branch',
@return:
'''
headers = {'Content-Type': 'application/json;charset=UTF-8'}
for hook in project_info['notice_hook'].split(';'):
response = requests.post(hook, data=json.dumps(data).encode('utf-8'), headers=headers)
# @todo增加可能错误到console中显示
return True