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.16.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0aeb57ffe18b37314293be136e21b789b1c801df2e28c2dbc6ed383f4d23c02b |
|
MD5 | b9f50bf4f90121b3e639d0a61fca29db |
|
BLAKE2b-256 | 5d85c0344904745ab81390092e79c44aec3b5667152d1acc3db6049fd957fbae |
Close
Hashes for cloudcomponents.cdk_chatops-1.16.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 50eb359c7b28890f62658067340b3df99e09271ab17eb1e56410c760cc786885 |
|
MD5 | a0aaecc56f88e93f1e93a19269ec4601 |
|
BLAKE2b-256 | bfbea66380326782385315f49a11f33ee6bc08c9bca0cef314154ade35415b39 |