Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
holmes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
QA
holmes
Commits
9dbfcaf8
Commit
9dbfcaf8
authored
Apr 19, 2021
by
黎博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
67196c5e
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
36 additions
and
114 deletions
+36
-114
LinkEntity.java
src/main/java/cn/qg/holmes/entity/ding/LinkEntity.java
+0
-42
MarkdownEntity.java
src/main/java/cn/qg/holmes/entity/ding/MarkdownEntity.java
+0
-56
DingdingUtils.java
src/main/java/cn/qg/holmes/utils/DingdingUtils.java
+19
-2
JiraWebhookUtils.java
src/main/java/cn/qg/holmes/utils/JiraWebhookUtils.java
+17
-14
No files found.
src/main/java/cn/qg/holmes/entity/ding/LinkEntity.java
deleted
100644 → 0
View file @
67196c5e
package
cn
.
qg
.
holmes
.
entity
.
ding
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.Data
;
@Data
public
class
LinkEntity
{
private
String
msgType
;
// 显示标题
private
String
title
;
// 显示内容
private
String
content
;
// icon url
private
String
picUrl
;
// 内容对链接
private
String
messageUrl
;
public
String
getMsgType
()
{
return
"link"
;
}
public
String
getJSONObjectString
()
{
// text类型
JSONObject
linkContent
=
new
JSONObject
();
linkContent
.
put
(
"title"
,
this
.
getTitle
());
linkContent
.
put
(
"text"
,
this
.
getContent
());
linkContent
.
put
(
"picUrl"
,
this
.
getPicUrl
());
linkContent
.
put
(
"messageUrl"
,
this
.
getMessageUrl
());
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"msgtype"
,
this
.
getMsgType
());
json
.
put
(
"link"
,
linkContent
);
return
json
.
toJSONString
();
}
}
src/main/java/cn/qg/holmes/entity/ding/MarkdownEntity.java
deleted
100644 → 0
View file @
67196c5e
package
cn
.
qg
.
holmes
.
entity
.
ding
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.Data
;
import
java.util.ArrayList
;
import
java.util.List
;
@Data
public
class
MarkdownEntity
{
private
String
msgType
;
// 显示标题
private
String
title
;
// 显示内容
private
String
content
;
// 是否at所有人
private
Boolean
isAtAll
;
// 被@人的手机号(在content里添加@人的手机号)
private
List
<
String
>
atMobiles
;
public
String
getMsgType
()
{
return
"markdown"
;
}
public
String
getJSONObjectString
()
{
// markdown类型
JSONObject
markdownContent
=
new
JSONObject
();
markdownContent
.
put
(
"title"
,
this
.
getTitle
());
markdownContent
.
put
(
"text"
,
this
.
getContent
());
// at some body
JSONObject
atMobile
=
new
JSONObject
();
if
(
this
.
getAtMobiles
().
size
()
>
0
){
List
<
String
>
mobiles
=
new
ArrayList
<
String
>();
for
(
int
i
=
0
;
i
<
this
.
getAtMobiles
().
size
();
i
++){
mobiles
.
add
(
this
.
getAtMobiles
().
get
(
i
));
}
if
(
mobiles
.
size
()>
0
){
atMobile
.
put
(
"atMobiles"
,
mobiles
);
}
atMobile
.
put
(
"isAtAll"
,
this
.
getIsAtAll
());
}
JSONObject
json
=
new
JSONObject
();
json
.
put
(
"msgtype"
,
this
.
getMsgType
());
json
.
put
(
"markdown"
,
markdownContent
);
json
.
put
(
"at"
,
atMobile
);
return
json
.
toJSONString
();
}
}
src/main/java/cn/qg/holmes/utils/DingdingUtils.java
View file @
9dbfcaf8
package
cn
.
qg
.
holmes
.
utils
;
package
cn
.
qg
.
holmes
.
utils
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
lombok.extern.slf4j.Slf4j
;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map
;
@Slf4j
public
class
DingdingUtils
{
public
class
DingdingUtils
{
public
static
boolean
sendToDingding
(
String
jsonString
,
String
webhook
)
{
public
static
boolean
sendToDingding
(
String
jsonString
,
String
webhook
)
{
Map
<
String
,
Object
>
headers
=
new
HashMap
<>();
Map
<
String
,
Object
>
headers
=
new
HashMap
<>();
headers
.
put
(
"Content-Type"
,
"application/json; charset=utf-8"
);
headers
.
put
(
"Content-Type"
,
"application/json; charset=utf-8"
);
HttpClientUtils
.
doPostJson
(
webhook
,
jsonString
,
headers
);
JSONObject
result
=
HttpClientUtils
.
doPostJson
(
webhook
,
jsonString
,
headers
);
return
true
;
log
.
info
(
"发送给钉钉: {}, 内容:{}, 钉钉返回结果:{}"
,
webhook
,
jsonString
,
result
);
return
result
.
get
(
"errmsg"
).
equals
(
"ok"
);
}
public
static
String
buildMarkdownMsg
(
String
key
,
String
summary
,
String
creator
,
String
assignee
,
String
priority
)
{
Map
<
String
,
Object
>
markdown
=
new
HashMap
<>();
Map
<
String
,
String
>
content
=
new
HashMap
<>();
markdown
.
put
(
"msgtype"
,
"markdown"
);
String
title
=
creator
+
"提交了BUG:"
+
key
;
content
.
put
(
"title"
,
title
);
content
.
put
(
"text"
,
"##"
+
title
+
"\n"
+
"### 概要:"
+
summary
+
"(http://jira2.quantgroup.cn/browse/"
+
key
+
")"
+
"\n"
+
"- 优先级:"
+
priority
+
"\n"
+
"- 经办人:"
+
assignee
);
markdown
.
put
(
"markdown"
,
content
);
return
JSON
.
toJSONString
(
markdown
);
}
}
}
}
src/main/java/cn/qg/holmes/utils/JiraWebhookUtils.java
View file @
9dbfcaf8
package
cn
.
qg
.
holmes
.
utils
;
package
cn
.
qg
.
holmes
.
utils
;
import
cn.qg.holmes.entity.ding.LinkEntity
;
import
com.alibaba.fastjson.JSON
;
import
cn.qg.holmes.entity.ding.MarkdownEntity
;
import
com.jayway.jsonpath.JsonPath
;
import
com.jayway.jsonpath.JsonPath
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.HashMap
;
import
java.util.Map
;
@Slf4j
@Slf4j
public
class
JiraWebhookUtils
{
public
class
JiraWebhookUtils
{
...
@@ -19,18 +21,19 @@ public class JiraWebhookUtils {
...
@@ -19,18 +21,19 @@ public class JiraWebhookUtils {
String
key
=
JsonPath
.
read
(
jiraData
,
"$.issue.key"
);
String
key
=
JsonPath
.
read
(
jiraData
,
"$.issue.key"
);
String
summary
=
JsonPath
.
read
(
jiraData
,
"$.issue.fields.summary"
);
String
summary
=
JsonPath
.
read
(
jiraData
,
"$.issue.fields.summary"
);
String
priority
=
JsonPath
.
read
(
jiraData
,
"$.issue.fields.priority.name"
);
String
priority
=
JsonPath
.
read
(
jiraData
,
"$.issue.fields.priority.name"
);
// LinkEntity linkEntity = new LinkEntity();
String
markdownMsg
=
DingdingUtils
.
buildMarkdownMsg
(
key
,
summary
,
creator
,
assignee
,
priority
);
// linkEntity.setTitle(creator + " 提交了BUG:" + key);
DingdingUtils
.
sendToDingding
(
markdownMsg
,
url
);
// String content = "标题:" + summary + "\n" + "优先级:" + priority + "\n" + "报告人:" + creator + "\n" + "经办人:" + assignee;
// linkEntity.setContent(content);
// linkEntity.setMessageUrl(null);
// linkEntity.setMessageUrl("http://jira2.quantgroup.cn/browse/" + key);
// DingdingUtils.sendToDingding(linkEntity.getJSONObjectString(), url);
MarkdownEntity
markdownEntity
=
new
MarkdownEntity
();
markdownEntity
.
setTitle
(
creator
+
" 提交了BUG:"
+
key
);
String
content
=
"标题:"
+
summary
+
"\n"
+
"优先级:"
+
priority
+
"\n"
+
"经办人:"
+
assignee
;
markdownEntity
.
setContent
(
content
);
DingdingUtils
.
sendToDingding
(
markdownEntity
.
getJSONObjectString
(),
url
);
}
}
}
}
public
static
void
main
(
String
[]
args
)
{
String
url
=
"https://oapi.dingtalk.com/robot/send?access_token=835663338d638e40daaf3ab358af741ef0680a826a962c91bedc53b149d85ee1"
;
Map
<
String
,
Object
>
markdown
=
new
HashMap
<>();
Map
<
String
,
String
>
content
=
new
HashMap
<>();
markdown
.
put
(
"msgtype"
,
"markdown"
);
content
.
put
(
"title"
,
"黎博提交了BUG:CSXT-142"
);
content
.
put
(
"text"
,
"## 黎博提交了BUG:CSXT-142"
+
"\n"
+
"### 概要:[【羊小咩v7.6.00】【iOS】【搜索】首页主搜索和专题页或者满减页等搜索逻辑问题]"
+
"(http://jira2.quantgroup.cn/browse/CSXT-143)"
+
"\n"
+
"优先级:"
+
"P3一般"
+
"\n"
+
"经办人:"
+
"于巧玲"
);
markdown
.
put
(
"markdown"
,
content
);
DingdingUtils
.
sendToDingding
(
JSON
.
toJSONString
(
markdown
),
url
);
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment