jira webhook发消息_jenkins webhook

jira webhook发消息_jenkins webhookJIRAWebhookWebhook1处理webhook事件2变量替换3过滤器3.1JQL3.2Webhook事件类型3.2.1插件和系统事件3.2.2问题时间3.2.3版本事件3.2.4项目事件3.2.5用户事件3.2.6特征状态事件3.2.7备注事件3.2.8Confluencewebhook事件3.3例程请求3.4例程响应3.4.1Confluence…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定


Webhook

webhook是为插件通过HTTP回调监听产品内事件的标准机制。一个插件能够在Atlassian Connect装饰器中注册一个用于监听事件的webhook。

1 处理webhook事件

为了能够接收webhook事件,你的插件需要在它的JSON装饰器中包含webhook模块的声明。这个声明包含了插件用于接收webhook事件的相对网址。换句话说,应用会发送一个HTTP POST给该资源来作为对应用事件的响应。处理POST的插件代码应该处理该消息中主体部分的几乎仍一个信息。每个发送给插件的webhook的POST也将会包含授权报头来允许插件来对请求消息进行验证。尤其是,JWT token能够被发现在HTTP报头的“Authentication”中。

注意:如果使用Aapache和mod_wsgi来提供文件给Django应用,授权报头默认是被去除的。额外的配置要求保证授权报头是可见的。

重要:一定要注意,webhook传递是不可靠的。当一个webhook事件被触发,一个POST请求将会被发送给对应的插件。如果这个时候插件挂掉了或者因为网络问题插件和Aatlassion应用通信异常,你将会无法接收到该事件。总的来说,webhook是可靠的,但是webhook的传递通常是不可靠的。

2 变量替换

Jira的webhook也提供了添加和替换url中的变量的方法。这与插件中的上下文参数很相似。

例如,当我们注册一个包含${
project.id}的url来监听一个项目事件时,一个POST消息将会被发送到包含${
project.id}的地址,${
project.id}的值可以根据被触发事件的项目的ID确定。

3 过滤器

过滤器可以使webhook只对满足特定条件的事件进行触发。过滤器的值如何看上去准确,过滤器是否都可用,取决于事件类型。下面的章节会介绍所有的可能性。

3.1 JQL

问题相关的时间可以用JQL过滤。webhook仅仅对满足JQL查询条件的问题的事件进行触发。JQL查询(“project = TEST AND fixVersion = future”)可以被放进“filter”属性中。

JQL过滤器仅支持以下事件类型:

  • jira:issue_created
  • jira:issue_deleted
  • jira:issue_updated
  • comment_created
  • comment_updated
  • comment_deleted

3.2 Webhook 事件类型

下面是所有可用的事件类型:

3.2.1 插件和系统事件

- connect_addon_disabled
- connect_addon_enabled

Jetbrains全家桶1年46,售后保障稳定

3.2.2 问题时间

- jira:issue_created
- jira:issue_deleted
- jira:issue_updated

上下文参数有${
project.id}, ${project.key}, ${issue.key}, ${
issue.id}

3.2.3 版本事件

- jira:version_created
- jira:version_deleted
- jira:version_merged
- jira:version_updated
- jira:version_moved
- jira:version_released
- jira:version_unreleased

上下文参数有${
project.id}, ${project.key}, ${
version.id}
version_merged事件的特殊上下文参数是${
mergedVersion.id}

3.2.4 项目事件

- project_created
- project_updated
- project_deleted

上下文参数有${
project.id}, ${project.key}

3.2.5 用户事件

- user_created
- user_deleted
- user_updated

上下文参数有:${
modifiedUser.name}, ${modifiedUser.key}

3.2.6 特征状态事件

- option_voting_changed
- option_watching_changed
- option_unassigned_issues_changed
- option_subtasks_changed
- option_attachments_changed
- option_issuelinks_changed
- option_timetracking_changed

3.2.7 备注事件

- comment_created
- comment_updated
- comment_deleted

3.2.8 Confluence webhook事件

- attachment_created
- attachment_removed
- attachment_restored
- attachment_trashed
- attachment_updated
- attachment_viewed
- blog_created
- blog_removed
- blog_restored
- blog_trashed
- blog_updated
- blog_viewed
- blueprint_page_created
- comment_created
- comment_removed
- comment_updated
- connect_addon_disabled
- connect_addon_enabled
- content_created
- content_restored
- content_trashed
- content_updated
- content_permissions_updated
- group_created
- group_removed
- label_added
- label_created
- label_deleted
- label_removed
- Login
- login_failed
- Logout
- page_children_reordered
- page_created
- page_moved
- page_removed
- page_restored
- page_trashed
- page_updated
- page_viewed
- relation_created
- relation_deleted
- search_performed
- space_created
- space_logo_updated
- space_permissions_updated
- space_removed
- space_updated
- theme_enabled
- user_created
- user_deactivated
- user_followed
- user_reactivated
- user_removed

3.3 例程请求

 POST /jira-issue_created?user_id=admin&user_key=admin HTTP/1.1
 Authorization: JWT ...
 Atlassian-Connect-Version: x.x
 Content-Type: application/json
 {
   timestamp: 1426661049725,
   webhookEvent: 'jira:issue_created',
   ...
 }

3.4 例程响应

JIRA 问题相关的Webhook事件结构

{ 
   
   "timestamp"
   "event"
   "user": { 
   
     // See User shape in the linked document
   },
   "issue": { 
   
     // See Issue shape in the linked document
   },
   "changelog" : { 
   
     // See Changelog shape in the linked document
   },
   "comment" : { 
   
     // See Comment shape in in the linked document
   }
 }

3.4.1 Confluence 页面创建

{ 
   
   "page": { 
   
     "spaceKey": "~admin",
     "modificationDate": 1471926079631,
     "creatorKey": "ff80808154510724015451074c160001",
     "creatorName": "admin",
     "lastModifierKey": "ff80808154510724015451074c160001",
     "self": "https://cloud-development-environment.atlassian.net/wiki/display/~admin/Some+random+test+page",
     "lastModifierName": "admin",
     "id": 16777227,
     "title": "Some random test page",
     "creationDate": 1471926079631,
     "version": 1
   },
   "user": "admin",
   "userKey": "ff80808154510724015451074c160001",
   "timestamp": 1471926079645,
   "username": "admin"
 }

3.4.2 Confluence备注创建

 { 
   
   "comment": { 
   
     "spaceKey": "~admin",
     "parent": { 
   
       "spaceKey": "~admin",
       "modificationDate": 1471926079631,
       "creatorKey": "ff80808154510724015451074c160001",
       "creatorName": "admin",
       "lastModifierKey": "ff80808154510724015451074c160001",
       "self": "https://cloud-development-environment.atlassian.net/wiki/display/~admin/Some+random+test+page",
       "lastModifierName": "admin",
       "id": 16777227,
       "title": "Some random test page",
       "creationDate": 1471926079631,
       "version": 1
     },
     "modificationDate": 1471926091465,
     "creatorKey": "ff80808154510724015451074c160001",
     "creatorName": "admin",
     "lastModifierKey": "ff80808154510724015451074c160001",
     "self": "https://cloud-development-environment/wiki/display/~admin/Some+random+test+page?focusedCommentId=16777228#comment-16777228",
     "lastModifierName": "admin",
     "id": 16777228,
     "creationDate": 1471926091465,
     "version": 1
   },
   "user": "admin",
   "userKey": "ff80808154510724015451074c160001",
   "timestamp": 1471926091468,
   "username": "admin"
 }

4 检查webhook内容

Pending… …

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/215538.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • spawn-fcgi原理及源代码分析

    spawn-fcgi原理及源代码分析spawn-fcgi是一个小程序,作用是管理fast-cgi进程,功能和php-fpm类似,简单小巧,原先是属于lighttpd的一部分。后来因为使用比較广泛。所以就迁移出来作为独立项目了。本文介绍的

  • 快速排序(过程图解)

     假设我们现在对“6  1  27  9  3  4  510  8”这个10个数进行排序。首先在这个序列中随便找一个数作为基准数(不要被这个名词吓到了,就是一个用来参照的数,待会你就知道它用来做啥的了)。为了方便,就让第一个数6作为基准数吧。接下来,需要将这个序列中所有比基准数大的数放在6的右边,比基准数小的数放在6的左边,类似下面这种排列。    3  1  25  4  …

  • vc 识别移动硬盘 U盘,本地硬盘[通俗易懂]

    vc 识别移动硬盘 U盘,本地硬盘[通俗易懂]vc 识别移动硬盘 U盘,本地硬盘

  • vue中父组件向子组件传值

    vue中父组件向子组件传值首先在以下案例中,App.vue是父组件,Second-module.vue是子组件。总体来说,父传子就是这四个步骤:父组件的data中定义值,引入并调用子组件,在引用的子组件的标签上通过v-bind指令给子组件传值,子组件通过在data中定义的props属性接收父组件传过来的值然后应用到子组件里。首先,值肯定是定义在父组件中的,供所有子组件共享,所以要在父组件的data中定义值:…

  • HDFS分布式文件存储系统详解

    HDFS分布式文件存储系统详解HDFS简介一、HDFS:HadoopDistributedFileSystem          1. 一个分布式文件系统           2. 基于流数据模式访问和处理超大文件的需求而开发的          3. 适合应用在大规模数据集上     优点:                1.处理超大文件                   能用来存储管理PB级的数据 …

  • java 除法取商_java除法怎样取小数部分「建议收藏」

    java 除法取商_java除法怎样取小数部分「建议收藏」2016-09-0100:30最佳答案C++的优先级优先级操作符结合性1::左2.->[]()左3++–~!-+&*()sizeofnewdeletecastname_cast单目操作符右4.*->*左5*/%左6+-左7<<>>左8<<=>>=…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号