Cdk component that provisions a #slack approval workflow and notification messages on codepipeline state changes
Project description
@cloudcomponents/cdk-codepipeline-slack
Cdk component that provisions a #slack approval workflow and notification messages on codepipeline state changes
Install
TypeScript/JavaScript:
npm install --save @cloudcomponents/cdk-codepipeline-slack
Python:
pip install cloudcomponents.cdk-codepipeline-slack
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, CodeBuildAction
from aws_cdk.aws_codebuild import PipelineProject
from cloudcomponents.cdk_codepipeline_slack import SlackApprovalAction, SlackNotifier
class CodePipelineSlackApprovalStack(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="MyRepositoryName"
)
source_artifact = Artifact()
source_action = CodeCommitSourceAction(
action_name="CodeCommit",
repository=repository,
output=source_artifact
)
project = PipelineProject(self, "MyProject")
build_action = CodeBuildAction(
action_name="CodeBuild",
project=project,
input=source_artifact
)
slack_bot_token = process.env.SLACK_BOT_TOKEN
slack_signing_secret = process.env.SLACK_SIGNING_SECRET
slack_channel = process.env.SLACK_CHANNEL_NAME
approval_action = SlackApprovalAction(
action_name="SlackApproval",
slack_bot_token=slack_bot_token,
slack_signing_secret=slack_signing_secret,
slack_channel=slack_channel,
external_entity_link="http://cloudcomponents.org",
additional_information="Would you like to promote the build to production?"
)
pipeline = Pipeline(self, "MyPipeline",
pipeline_name="MyPipeline",
stages=[StageProps(
stage_name="Source",
actions=[source_action]
), StageProps(
stage_name="Build",
actions=[build_action]
), StageProps(
stage_name="Approval",
actions=[approval_action]
)
]
)
SlackNotifier(self, "SlackNotifier",
pipeline=pipeline,
slack_bot_token=slack_bot_token,
slack_signing_secret=slack_signing_secret,
slack_channel=slack_channel
)
Slack App Settings
Create an app that’s just for your workspace
OAuth & Permissions
Grant the channels::history
-Scope to the Bot in your app and Add the Bot to the configured Slack-Channel
Select Permission Scopes:
Interactive Components
Enter the url of your api from the AWS Api Gateway and append /slack/actions
:
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-codepipeline-slack-1.44.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cf37ee090fe1769729f0f64c5e7fa32918f8733333d35ed404a0eaa618cb6d90 |
|
MD5 | 5f6105c68d21306056dd798853e0ec71 |
|
BLAKE2b-256 | 92351430f9ba9e041bb7ac011be507fa1e335a84395460287e284537fa5c549c |
Close
Hashes for cloudcomponents.cdk_codepipeline_slack-1.44.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05a70779a6a748f826834c94098b010c35bfe7935c2ac7649513bae4af890dde |
|
MD5 | 06600063aa9d7be8391c393bb7be9efc |
|
BLAKE2b-256 | 13ab72ab2108b1043294fb3d6696aa88c504393c8215fefe5390e29df0c9aeba |