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… …

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux yum卸载与安装软件包,Linux yum命令详解(查询、安装、升级和卸载软件包)…[通俗易懂]

    linux yum卸载与安装软件包,Linux yum命令详解(查询、安装、升级和卸载软件包)…[通俗易懂]yum提供了查询、安装、升级和卸载软件包的命令,一一给大家介绍。查询査询yum源服务器上所有可安装的软件包列表[root@localhostyum.repos.d]#yumlist#查询所有可用软件包列表InstalledPackages#已经安装的软件包ConsdeKit.i6860.4.1-3.el6@anaconda-CentOS-201207051201J386/6.3Cons…

    2022年6月9日
    34
  • SpringBoot整合RabbitMQ 实现五种消息模型 详细教程

    SpringBoot整合RabbitMQ 实现五种消息模型 详细教程今天说下了消息队列中间件,各种队列性能对比,RabbitMQ队列,交换机(Exchange)以及消息中间件的应用场景,然后带着大家一起实现RabbitMQ的五种消息模型。消息队列中间件消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和终一致性[架构]使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,K…

    2022年5月15日
    42
  • Java学习之Spring框架入门篇

    Java学习之Spring框架入门篇0x00前言最近在学SSM的三大框架,上篇文章,已经更新了Mybatis的相关内容,那么这篇文章就来写写Spring的入门。0x01Spring概述S

    2021年12月12日
    42
  • 软件安装目录_手机软件安装目录

    软件安装目录_手机软件安装目录在进行windows系统的重新安装后,需要安装大批的应用软件,在进行重新安装大量的应用软件中,难免会有遗落,我使用一种方法,就是将自己的安装软件做一个记录,方便下一次进行安装参考,此文会在不断更新,以

    2022年8月2日
    7
  • 费曼学习法

    费曼学习法费曼学习法我的理解:费曼学习法就是把学好的东西用简洁易懂的语言,传授给别人举例:你学完微积分,然后自己去培训班,自己做老师,传授给学生们,并且学生们都能听懂费曼学习法的四个步骤:1.确定目标

    2022年7月31日
    10
  • 解决ORA-01008: 并非所有变量都已绑定(详解问题所在)

    解决ORA-01008: 并非所有变量都已绑定(详解问题所在)将executeUpdate(sql)或executeQuery(sql)括号中的sql删除。问题代码:publicstaticvoidmain(String[]args)throwsException{Connectionconnection=null;Statementstatement=null;connection=DBHelper.getConnection();Stringsql=”up

    2025年9月28日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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