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.19.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b364421ca2a2b32fd60fce42fad113bced78b222ccbb9736a4aee161db3a5530 |
|
MD5 | fab9a5c059a725a87e3a000f2d87278c |
|
BLAKE2b-256 | af45dd0a200ce64bbb5185d03b0e5398168d7ffbdc0744fdeaad7ba67b52e1cd |
Close
Hashes for cloudcomponents.cdk_codepipeline_slack-1.19.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b0d0a96d98b5db48ea5799a29c4c0c1a48e128c53e6eb98b8468176d2e5a2d8 |
|
MD5 | 086960f100224a008e7d75e555228989 |
|
BLAKE2b-256 | d3a6e90b34e6487f2417effa3d728934ed7700e96e1f0a740df55fb44159770a |