Constructs for chattool integration: #slack / msteams
Project description
@cloudcomponents/cdk-chatops
Constructs for chattool integration: #slack / msteams
Install
TypeScript/JavaScript:
npm i @cloudcomponents/cdk-chatops
Python:
pip install cloudcomponents.cdk-chatops
How to use
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826
from aws_cdk.core import Construct, Stack, StackProps
from aws_cdk.aws_codecommit import Repository
from aws_cdk.aws_codepipeline import Pipeline, Artifact
from aws_cdk.aws_codepipeline_actions import CodeCommitSourceAction, ManualApprovalAction
from cloudcomponents.cdk_developer_tools_notifications import RepositoryNotificationRule, PipelineNotificationRule, RepositoryEvent, PipelineEvent, SlackChannel, MSTeamsIncomingWebhook
from cloudcomponents.cdk_chatops import SlackChannelConfiguration, MSTeamsIncomingWebhookConfiguration, AccountLabelMode
class NotificationsStack(Stack):
def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, synthesizer=None, terminationProtection=None, analyticsReporting=None):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting)
repository = Repository(self, "Repository",
repository_name="notifications-repository"
)
slack_channel = SlackChannelConfiguration(self, "SlackChannel",
slack_workspace_id=process.env.SLACK_WORKSPACE_ID,
configuration_name="notifications",
slack_channel_id=process.env.SLACK_CHANNEL_ID
)
webhook = MSTeamsIncomingWebhookConfiguration(self, "MSTeamsWebhook",
url=process.env.INCOMING_WEBHOOK_URL,
account_label_mode=AccountLabelMode.ID_AND_ALIAS,
theme_color="#FF0000"
)
RepositoryNotificationRule(self, "RepoNotifications",
name="notifications-repository",
repository=repository,
events=[RepositoryEvent.COMMENTS_ON_COMMITS, RepositoryEvent.PULL_REQUEST_CREATED, RepositoryEvent.PULL_REQUEST_MERGED
],
targets=[
SlackChannel(slack_channel),
MSTeamsIncomingWebhook(webhook)
]
)
source_artifact = Artifact()
source_action = CodeCommitSourceAction(
action_name="CodeCommit",
repository=repository,
output=source_artifact
)
approval_action = ManualApprovalAction(
action_name="Approval"
)
pipeline = Pipeline(self, "Pipeline",
pipeline_name="notifications-pipeline",
stages=[StageProps(
stage_name="Source",
actions=[source_action]
), StageProps(
stage_name="Approval",
actions=[approval_action]
)
]
)
PipelineNotificationRule(self, "PipelineNotificationRule",
name="pipeline-notification",
pipeline=pipeline,
events=[PipelineEvent.PIPELINE_EXECUTION_STARTED, PipelineEvent.PIPELINE_EXECUTION_FAILED, PipelineEvent.PIPELINE_EXECUTION_SUCCEEDED, PipelineEvent.MANUAL_APPROVAL_NEEDED, PipelineEvent.MANUAL_APPROVAL_SUCCEEDED
],
targets=[
SlackChannel(slack_channel),
MSTeamsIncomingWebhook(webhook)
]
)
MSTeams
- Navigate to the channel where you want to add the webhook and select (•••) More Options from the top navigation bar.
- Choose Connectors from the drop-down menu and search for Incoming Webhook.
- Select the Configure button, provide a name, and, optionally, upload an image avatar for your webhook.
- The dialog window will present a unique URL that will map to the channel. Make sure that you copy and save the URL—you will need to provide it to the outside service.
- Select the Done button. The webhook will be available in the team channel.
API Reference
See API.md.
Example
See more complete examples.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for cloudcomponents.cdk-chatops-1.11.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 456749c4cda373ff729f4d4175d106817cac7145d229f0ddd632e06cfabae9ad |
|
MD5 | 39732200e122d283ea1b9b03df9d34d4 |
|
BLAKE2b-256 | 472ee782326fe72211a7470295d44ba138eddcd1d307e3bae5d8f5ef32cabd05 |
Close
Hashes for cloudcomponents.cdk_chatops-1.11.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a76139ac5886257471b60cdbd70c4e231f96e66770a7cbc981889c958b5b6e0 |
|
MD5 | 9a5c91c132b17de03ac6c4edff34b661 |
|
BLAKE2b-256 | 8f959a649f4237b38aaa65383a2ce8bc1a6feb142af183f3bbc120dd5068e28a |