Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Warning

Throughout Summer’23 we plan to make Outcoming WebHooks obsolete and substitute it with full-fledged Release Automation. Existing hooks will keep on operating. At some point we will remove ability to create new hooks / clone existing. And after decent graceful period we will fully deprecate old WebHooks functionality.

Table of Contents

Overview

Webhooks are aimed to integrate the Release Management app with other software in your organization to create a single and integrated workspace. Typical use cases are the following:

...

Webhooks configuration is located on the board administration tab.

...

Create a Hook

In order to create new webhook:

...

Webhook creation dialog has two tabs.

  • Summary

  • Headers

Summary tab

This tab contains the main properties

...

  • Injectable variables in URL. You are able to inject the following variables to the hook URL:

    • Package or version id

    • Package or version name

    • Destination column id. Internal id of the column where package or version has been moved. List of columns with their ids you can receive via REST API

    • Destination column name

    • Start date of package or version

    • Release date

    • Link to package or version. The direct URL to package or version which has triggered the webhook. Such a variable is very convenient for any kink of notifications so the people can navigate to release or version to see the details.

    • User name. Full name of a user who has triggered the webhook.

    • Environments variables

      • Name

      • Type

      • Build Numbers

    • Version only variables. They will not be replaced to any value if they will be used on the package context

      • Project name. Name of a parent version project

      • Project Key. Key of a parent version project

      • Project id. Id of a parent version project

  • Method. HTTP method which will be used for the webhook. Available options are:

    • GET

    • POST

    • PUT

    • DELETE

  • URL. The URL which will be called from the our server while the webhook execution.

  • Injectable variables in Body. The variables which could be injected into the body while the webhook execution. The variable list is the same as for URL injection plus

    • packages and versions description

  • Request body. The request body which will be used while the webhook execution. For instance, it could contact XML or JSON.

JS-like functions for injectable variables

To finetune your web hooks even further you can use JS-like function for injectable variables in URL and Body sections of the hook. Below is a list of functions that could be used:

...

entity.name above variable is used for example only. Functions are applicable to any string variable from the list.

Headers tab

On the headers tab, you can define headers for the webhook HTTP request.

The headers could be added in Key-Value format. Multiple headers are supported.

...

Webhook execution and history

The webhook will be executed if the trigger condition will be fulfilled. In the current version, the condition is a move of package or version to a particular column.

...

For each history items, the details could be reviewed: - full HTTP request with headers and full HTTP response. This will help to spot and solve any potential problems.

...

Important (!): IPs whitelisting

Webhooks are outcoming requests from our servers. If you want to receive these requests in your internal network (probably protected by Firewall) you need to while list IPs of our 3 nodes in different availability zones, namely:

IPs

135.181.149.107

157.90.227.168

162.55.36.74

🚀 Use cases

Info

All the below cases are available as templates for all the new boards created. Please use integration hints to receive help directly in the App.

...

Slack Integration

Webhooks could be used for pushing notifications to Slack. Let’s configure the notification for a case when a version is moved to Done status.

...

Step 8. Move any version to Done column and observe a notification in the slack channel.

...

🆕 MS Teams integration

Step 1. Go to the channel where you want to add the webhook and select ••• More options from the top navigation bar.

...

  • The "type" field must be "message".

  • The "attachments" array contains a set of card objects.

  • The "contentType" field must be set to Adaptive Card type.

  • The "content" object is the card formatted in JSON.

Create Jira Issue

Let’s create a webhook which can help us to create a Jira ticket when a version is moved to UAT status on the board.

...

  • Add Authorization header

    1. Key: Authorization

    2. Value: BASE64_TOKEN_FROM_PREVIOUS_STEP

  • Add Content-Type header

    1. Key: Content-Type

    2. Value: application/json

Jenkins Integration

By using this guide, you can trigger builds in Jenkins remotely as a result of version and/or release appearance in a specific status.

...

  • From the user list, find a user from step 2, click on the “configure” icon (the wrench and screwdriver) next to the user name

  • Underneath the user’s full name and description is a section labelled “API Token”. Click on the “Show API Token” button. This will reveal the API token you need to provide when triggering a job by URL

  • With this information, you can now create a URL that looks like this:
    http://user_name:your_tocken@your_jenkins.com/job/your_job_name/build?token=your_auth_tocken_from_step_3

More use cases

Please share your cases with us so we can share them here and help others.

...