Commit 8a2cc10b authored by 黎博's avatar 黎博

fix error

parent cf0a9424
...@@ -116,6 +116,12 @@ ...@@ -116,6 +116,12 @@
<version>4.4</version> <version>4.4</version>
</dependency> </dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package cn.qg.holmes.controller.jira; package cn.qg.holmes.controller.jira;
import cn.qg.holmes.utils.JiraWebhookUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -14,37 +15,19 @@ import java.io.BufferedReader; ...@@ -14,37 +15,19 @@ import java.io.BufferedReader;
public class JiraWebhookController { public class JiraWebhookController {
@PostMapping("/webhook") @PostMapping("/webhook")
public Boolean jiraWebhook(HttpServletRequest request) { public void jiraWebhook(HttpServletRequest request) {
log.info("已进入jira webhook!"); BufferedReader br = null;
// BufferedReader br = null; StringBuilder jiraData = new StringBuilder();
// String str, wholeStr = "";
// try {
// br = request.getReader();
// while ((str = br.readLine()) != null) {
// wholeStr += str;
// }
// log.info("jiraWebHook body: {}", wholeStr);
// } catch (Exception e) {
// log.error("jiraWebHook error", e);
// } finally {
// if (br != null) {
// try {
// br.close();
// } catch (Exception e) {
// }
// }
// }
try { try {
BufferedReader br = request.getReader();
String str = ""; String str = "";
StringBuilder requestData = new StringBuilder(); br = request.getReader();
while((str = br.readLine()) != null){ while((str = br.readLine()) != null){
requestData.append(str); jiraData.append(str);
} }
br.close(); br.close();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
return false; JiraWebhookUtils.sendDingdingMsg(jiraData.toString());
} }
} }
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();
}
}
package cn.qg.holmes.utils;
import java.util.HashMap;
import java.util.Map;
public class DingdingUtils {
public static boolean sendToDingding(String jsonString, String webhook) {
Map<String, Object> headers = new HashMap<>();
Map<String, Object> params = new HashMap<>();
headers.put("content-type", "application/json; charset=utf-8");
HttpClientUtils.doPostJson(webhook, jsonString, headers);
return true;
}
}
package cn.qg.holmes.utils;
import cn.qg.holmes.entity.ding.LinkEntity;
import com.jayway.jsonpath.JsonPath;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
@Slf4j
public class JiraWebhookUtils {
public static void sendDingdingMsg(String jiraData) {
String url = "https://oapi.dingtalk.com/robot/send?access_token=835663338d638e40daaf3ab358af741ef0680a826a962c91bedc53b149d85ee1";
String webhookEvent = JsonPath.read(jiraData, "$.webhookEvent");
if (StringUtils.equals(webhookEvent, "jira:issue_created")) {
String creator = JsonPath.read(jiraData, "$.issue.fields.creator.displayName");
String assignee = JsonPath.read(jiraData, "$.issue.fields.assignee.displayName");
String key = JsonPath.read(jiraData, "$.issue.key");
String summary = JsonPath.read(jiraData, "$.issue.fields.summary");
LinkEntity linkEntity = new LinkEntity();
linkEntity.setTitle(creator + " 创建故障 " + key + "给@" + assignee + ", 请注意查看!");
linkEntity.setContent(summary);
linkEntity.setMessageUrl("http://jira2.quantgroup.cn/browse/" + key);
DingdingUtils.sendToDingding(linkEntity.getJSONObjectString(), url);
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment