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.9.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90eb3703a629a62dd65c5fdef3e82d6cd2c3cb5cae7dd4cf630a792bd84e3680 |
|
MD5 | 1c211fdeeae349884aa066e13f67c2c0 |
|
BLAKE2b-256 | fcc2873a571110124aca2a6ef3f9a9b36538bdfa2498433597f8269255f26b6e |
Close
Hashes for cloudcomponents.cdk_codepipeline_slack-1.9.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcc33926c825ada0a03898e4f84839d4a22837d31b1303c42331c93adf772e3f |
|
MD5 | 8abe5995b4261c568c023d136835afa1 |
|
BLAKE2b-256 | 36e2e398f561e9006812a1b96ca3e05a25fb8e4e67080d79d91dfa7e00d80816 |