Table of Contents |
---|
Status | ||||
---|---|---|---|---|
|
...
Add webhook integration to Slack
Navigate to the Slack App Directory web page
Search for the Incoming WebHooks app
Click Add to Slack
Select a channel in Slack that you want messages to be sent to
Click Add Incoming WebHooks integration
Slack will generate a Webhook URL for the integration. Copy this URL as you will need it shortly. At this point you can also customize the name, description and icon used by the integration. Save changes when done.
...
...
Jira Allowlist : Wildcard Expression
If you enable the Jira allow list, the webhook URL supplied by Slack needs to be added, for example:
Code Block |
---|
https://hooks.slack.com/* |
Issue Event driven Slack notification
Go JEMH > Notifications and select the Slack transport tab. Click New Transport Config.
...
Enter the key of the project that you want to integrate with Slack, and save your changes.
...
Select event templates
Select the Slack transport tab under Transports section. Then, under the
Go to Project specific configurations select the mapping you want to edit then click the pencil icon to edit your project mapping configuration.
...
You will be presented with the slack project mapping configuration.
...
Now, when an issue event is fired for the project (and that event type has a template selected), the configured Slack channel will receive a message for it.
...
Jira Allowlist : Wildcard Expression
If you enable the Jira allow list, the webhook URL supplied by Slack needs to be added, for example:
...
PostFunction Slack notification
The slack postfunction needs content that is in a JSON format:
Using Rich Message Formats: https://api.slack.com/messaging/composing/layouts
Here is a minimalistic example:
Code Block |
---|
{"text": "This is a line of text in a channel.\nAnd this is another line of text."} |
The Slack IssueEvent templates could also be used as a basis, pasted as custom content, eg:
Code Block |
---|
#set ($user = "<${baseurl}/secure/ViewProfile.jspa?name=$!actionUser.getUsername()|$!actionUser.getDisplayName()>")
#set ($linkedissue = "<${baseurl}/browse/${issue.getKey()}|$!issue.getKey()>")
#set ($title = $i18n.getText("email.event.activity.commented.issue", $user, "*", "*", $linkedissue))
#set ($simple = $i18n.getText("email.event.activity.commented.issue", $!actionUser.getDisplayName(), "", "", $!issue.getKey()))
{
"text": "$simple",
"blocks": [
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "$title"
}
},
{
"type": "section",
"block_id": "section1",
"text": {
"type": "mrkdwn",
"text": "<${baseurl}/browse/${issue.getKey()}|$!issue.getSummary()>"
}
},
{
"type": "section",
"block_id": "section2",
"text": {
"type": "mrkdwn",
"text": " Your text here > < & & "
}
}
]
} |
Currently, a bug
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|