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):
super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection)
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.0.81.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | da854828af4f8366b114cf6cd3e5a2a87361c39e8481c68d187214deaa680d53 |
|
MD5 | c0d2d7236bdf6309d23d21153ed8fedc |
|
BLAKE2b-256 | 19bdb7fdf1ac075c47778bdb7b993e4107563f7191b3740edcc8f19f62bfe940 |
Close
Hashes for cloudcomponents.cdk_codepipeline_slack-1.0.81-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2542fd299fa2d2e35e124559743079d1626b524d32fbb484b490bd69de0452e |
|
MD5 | f98aef643ba527f84427c7ac323d6056 |
|
BLAKE2b-256 | a827ff189467d28b4857de64922f3501ab4a619abf604d339ddaf9dac38b473a |