需要在jira上注册一个钩子,当issue状态变更,或者新增issue等操作时,接收jira回调信息,触发系统其他操作。
参考文档:https://developer.atlassian.com/server/jira/platform/webhooks/
一、注册webHook
请求url:<JIRA_URL>/rest/webhooks/1.0/webhook,发送post请求,需要如下信息:
name–是创建的hook的名字(必须有);
url–事件触发后回调的地址(必须有);
events–哪些事件会触发hook,事件很多,详见文档;
filters–过滤条件,使用jql语法;excludebody–是否不需要回调信息(hook回调,会包含相关信息,true就是不需要信息)。
jql语法文档:https://support.atlassian.com/jira-service-desk-cloud/docs/advanced-search-reference-jql-fields/?_ga=2.124421194.1703533170.1565329940-469854552.1550548587#Advancedsearching-fieldsreference-fields
{
"name": "my first webhook via rest",
"url": "http://www.example.com/webhooks",
"events": [
"jira:issue_created",
"jira:issue_updated"
],
"filters": {
"issue-related-events-section": "Project = JRA AND resolution = Fixed"
},
"excludeBody" : false
}
java调用,需要的依赖可见上篇文章使用Java client对接jira api
public static void registerHook() throws UnirestException {
//接收jira创建、更新,注释新增、更新的事件回调
List<String> events = Lists.newArrayList("jira:issue_created", "jira:issue_updated","comment_created"
,"comment_updated");
Map<String, Object> map = new HashMap<>();
//jira回调的你的应用程序的地址
map.put("url", "http://you.app.com/webhooks");
map.put("name"