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
import { RepositoryNotificationRule, PipelineNotificationRule, RepositoryEvent, PipelineEvent, SlackChannel, MSTeamsIncomingWebhook, } from '@cloudcomponents/cdk-developer-tools-notifications'; import { SlackChannelConfiguration, MSTeamsIncomingWebhookConfiguration, AccountLabelMode, } from '@cloudcomponents/cdk-chatops'; import { Stack, StackProps } from 'aws-cdk-lib'; import { Repository } from 'aws-cdk-lib/aws-codecommit'; import { Pipeline, Artifact } from 'aws-cdk-lib/aws-codepipeline'; import { CodeCommitSourceAction, ManualApprovalAction } from 'aws-cdk-lib/aws-codepipeline-actions'; import { Construct } from 'constructs'; export class NotificationsStack extends Stack { constructor(scope: Construct, id: string, props?: StackProps) { super(scope, id, props); const repository = new Repository(this, 'Repository', { repositoryName: 'notifications-repository', }); const slackChannel = new SlackChannelConfiguration(this, 'SlackChannel', { slackWorkspaceId: process.env.SLACK_WORKSPACE_ID as string, configurationName: 'notifications', slackChannelId: process.env.SLACK_CHANNEL_ID as string, }); const webhook = new MSTeamsIncomingWebhookConfiguration( this, 'MSTeamsWebhook', { url: process.env.INCOMING_WEBHOOK_URL as string, accountLabelMode: AccountLabelMode.ID_AND_ALIAS, themeColor: '#FF0000', }, ); new RepositoryNotificationRule(this, 'RepoNotifications', { name: 'notifications-repository', repository, events: [ RepositoryEvent.COMMENTS_ON_COMMITS, RepositoryEvent.PULL_REQUEST_CREATED, RepositoryEvent.PULL_REQUEST_MERGED, ], targets: [ new SlackChannel(slackChannel), new MSTeamsIncomingWebhook(webhook), ], }); const sourceArtifact = new Artifact(); const sourceAction = new CodeCommitSourceAction({ actionName: 'CodeCommit', repository, output: sourceArtifact, }); const approvalAction = new ManualApprovalAction({ actionName: 'Approval', }); const pipeline = new Pipeline(this, 'Pipeline', { pipelineName: 'notifications-pipeline', stages: [ { stageName: 'Source', actions: [sourceAction], }, { stageName: 'Approval', actions: [approvalAction], }, ], }); new PipelineNotificationRule(this, 'PipelineNotificationRule', { name: 'pipeline-notification', pipeline, events: [ PipelineEvent.PIPELINE_EXECUTION_STARTED, PipelineEvent.PIPELINE_EXECUTION_FAILED, PipelineEvent.PIPELINE_EXECUTION_SUCCEEDED, // PipelineEvent.ACTION_EXECUTION_STARTED, // PipelineEvent.ACTION_EXECUTION_SUCCEEDED, // PipelineEvent.ACTION_EXECUTION_FAILED, PipelineEvent.MANUAL_APPROVAL_NEEDED, PipelineEvent.MANUAL_APPROVAL_SUCCEEDED, // PipelineEvent.MANUAL_APPROVAL_FAILED, // PipelineEvent.STAGE_EXECUTION_STARTED, // PipelineEvent.STAGE_EXECUTION_SUCCEEDED, // PipelineEvent.STAGE_EXECUTION_FAILED, ], targets: [ new SlackChannel(slackChannel), new 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-2.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a3a29c5aa14dd83948c9c5855d05213a4b3f0b35878c733c126f8266430607c |
|
MD5 | 4c9c844628057bdfd44c90ea2109ca0c |
|
BLAKE2-256 | b34e6da2908cce32885064a86a5c0b14b3f77a9a77c32871998e7c9a37a442a0 |
Close
Hashes for cloudcomponents.cdk_chatops-2.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc6626004f15fe1b9c0a42869f9edcb4bf2a9120ed1d87913b2feb16a00a3c36 |
|
MD5 | ebdf5b89afa2f9895aafcfc8d00d6d44 |
|
BLAKE2-256 | 495b2adc0131e3cf0e5d567598710dbd59b041685e0d5b670f0a30a5f0cdd245 |