diff options
Diffstat (limited to 'python-cloudcomponents-cdk-codepipeline-slack.spec')
-rw-r--r-- | python-cloudcomponents-cdk-codepipeline-slack.spec | 481 |
1 files changed, 481 insertions, 0 deletions
diff --git a/python-cloudcomponents-cdk-codepipeline-slack.spec b/python-cloudcomponents-cdk-codepipeline-slack.spec new file mode 100644 index 0000000..29b5d5b --- /dev/null +++ b/python-cloudcomponents-cdk-codepipeline-slack.spec @@ -0,0 +1,481 @@ +%global _empty_manifest_terminate_build 0 +Name: python-cloudcomponents.cdk-codepipeline-slack +Version: 2.1.0 +Release: 1 +Summary: Cdk component that provisions a #slack approval workflow and notification messages on codepipeline state changes +License: MIT +URL: https://github.com/cloudcomponents/cdk-constructs +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/ee/a1/666366ffeab1d13c5f958df8002fee563bc11f867d1c17159cbb66a60fa0/cloudcomponents.cdk-codepipeline-slack-2.1.0.tar.gz +BuildArch: noarch + +Requires: python3-aws-cdk-lib +Requires: python3-constructs +Requires: python3-jsii +Requires: python3-publication + +%description +[](https://github.com/cloudcomponents/cdk-constructs) + +# @cloudcomponents/cdk-codepipeline-slack + +[](https://github.com/cloudcomponents/cdk-constructs/actions?query=workflow=Build) +[](https://github.com/hupe1980/cdkdx) +[](https://www.npmjs.com/package/@cloudcomponents/cdk-codepipeline-slack) +[](https://pypi.org/project/cloudcomponents.cdk-codepipeline-slack/) +[](https://github.com/kolomied/awesome-cdk) + +> Cdk component that provisions a #slack approval workflow and notification messages on codepipeline state changes + + + + + +## Install + +TypeScript/JavaScript: + +```bash +npm install --save @cloudcomponents/cdk-codepipeline-slack +``` + +Python: + +```bash +pip install cloudcomponents.cdk-codepipeline-slack +``` + +## How to use + +```python +import { SlackApprovalAction, SlackNotifier } from '@cloudcomponents/cdk-codepipeline-slack'; +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 } from 'aws-cdk-lib/aws-codepipeline-actions'; +import { Construct } from 'constructs'; + +export class CodePipelineSlackApprovalStack extends Stack { + constructor(scope: Construct, id: string, props?: StackProps) { + super(scope, id, props); + + const repository = new Repository(this, 'Repository', { + repositoryName: 'MyRepositoryName', + }); + + const sourceArtifact = new Artifact(); + + const sourceAction = new CodeCommitSourceAction({ + actionName: 'CodeCommit', + repository, + output: sourceArtifact, + }); + + if (typeof process.env.SLACK_BOT_TOKEN === 'undefined') { + throw new Error('environment variable SLACK_BOT_TOKEN undefined'); + } + const slackBotToken = process.env.SLACK_BOT_TOKEN; + + if (typeof process.env.SLACK_SIGNING_SECRET === 'undefined') { + throw new Error('environment variable SLACK_SIGNING_SECRET undefined'); + } + const slackSigningSecret = process.env.SLACK_SIGNING_SECRET; + + if (typeof process.env.SLACK_CHANNEL_NAME === 'undefined') { + throw new Error('environment variable SLACK_CHANNEL_NAME undefined'); + } + const slackChannel = process.env.SLACK_CHANNEL_NAME; + + const approvalAction = new SlackApprovalAction({ + actionName: 'SlackApproval', + slackBotToken, + slackSigningSecret, + slackChannel, + externalEntityLink: 'http://cloudcomponents.org', + additionalInformation: 'Would you like to promote the build to production?', + }); + + const pipeline = new Pipeline(this, 'MyPipeline', { + pipelineName: 'MyPipeline', + stages: [ + { + stageName: 'Source', + actions: [sourceAction], + }, + { + stageName: 'Approval', + actions: [approvalAction], + }, + ], + }); + + new SlackNotifier(this, 'SlackNotifier', { + pipeline, + slackBotToken, + slackSigningSecret, + slackChannel, + }); + } +} +``` + +## 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](https://github.com/cloudcomponents/cdk-constructs/tree/master/packages/cdk-codepipeline-slack/API.md). + +## Example + +See more complete [examples](https://github.com/cloudcomponents/cdk-constructs/tree/master/examples). + +## License + +[MIT](https://github.com/cloudcomponents/cdk-constructs/tree/master/packages/cdk-codepipeline-slack/LICENSE) + + + + +%package -n python3-cloudcomponents.cdk-codepipeline-slack +Summary: Cdk component that provisions a #slack approval workflow and notification messages on codepipeline state changes +Provides: python-cloudcomponents.cdk-codepipeline-slack +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-cloudcomponents.cdk-codepipeline-slack +[](https://github.com/cloudcomponents/cdk-constructs) + +# @cloudcomponents/cdk-codepipeline-slack + +[](https://github.com/cloudcomponents/cdk-constructs/actions?query=workflow=Build) +[](https://github.com/hupe1980/cdkdx) +[](https://www.npmjs.com/package/@cloudcomponents/cdk-codepipeline-slack) +[](https://pypi.org/project/cloudcomponents.cdk-codepipeline-slack/) +[](https://github.com/kolomied/awesome-cdk) + +> Cdk component that provisions a #slack approval workflow and notification messages on codepipeline state changes + + + + + +## Install + +TypeScript/JavaScript: + +```bash +npm install --save @cloudcomponents/cdk-codepipeline-slack +``` + +Python: + +```bash +pip install cloudcomponents.cdk-codepipeline-slack +``` + +## How to use + +```python +import { SlackApprovalAction, SlackNotifier } from '@cloudcomponents/cdk-codepipeline-slack'; +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 } from 'aws-cdk-lib/aws-codepipeline-actions'; +import { Construct } from 'constructs'; + +export class CodePipelineSlackApprovalStack extends Stack { + constructor(scope: Construct, id: string, props?: StackProps) { + super(scope, id, props); + + const repository = new Repository(this, 'Repository', { + repositoryName: 'MyRepositoryName', + }); + + const sourceArtifact = new Artifact(); + + const sourceAction = new CodeCommitSourceAction({ + actionName: 'CodeCommit', + repository, + output: sourceArtifact, + }); + + if (typeof process.env.SLACK_BOT_TOKEN === 'undefined') { + throw new Error('environment variable SLACK_BOT_TOKEN undefined'); + } + const slackBotToken = process.env.SLACK_BOT_TOKEN; + + if (typeof process.env.SLACK_SIGNING_SECRET === 'undefined') { + throw new Error('environment variable SLACK_SIGNING_SECRET undefined'); + } + const slackSigningSecret = process.env.SLACK_SIGNING_SECRET; + + if (typeof process.env.SLACK_CHANNEL_NAME === 'undefined') { + throw new Error('environment variable SLACK_CHANNEL_NAME undefined'); + } + const slackChannel = process.env.SLACK_CHANNEL_NAME; + + const approvalAction = new SlackApprovalAction({ + actionName: 'SlackApproval', + slackBotToken, + slackSigningSecret, + slackChannel, + externalEntityLink: 'http://cloudcomponents.org', + additionalInformation: 'Would you like to promote the build to production?', + }); + + const pipeline = new Pipeline(this, 'MyPipeline', { + pipelineName: 'MyPipeline', + stages: [ + { + stageName: 'Source', + actions: [sourceAction], + }, + { + stageName: 'Approval', + actions: [approvalAction], + }, + ], + }); + + new SlackNotifier(this, 'SlackNotifier', { + pipeline, + slackBotToken, + slackSigningSecret, + slackChannel, + }); + } +} +``` + +## 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](https://github.com/cloudcomponents/cdk-constructs/tree/master/packages/cdk-codepipeline-slack/API.md). + +## Example + +See more complete [examples](https://github.com/cloudcomponents/cdk-constructs/tree/master/examples). + +## License + +[MIT](https://github.com/cloudcomponents/cdk-constructs/tree/master/packages/cdk-codepipeline-slack/LICENSE) + + + + +%package help +Summary: Development documents and examples for cloudcomponents.cdk-codepipeline-slack +Provides: python3-cloudcomponents.cdk-codepipeline-slack-doc +%description help +[](https://github.com/cloudcomponents/cdk-constructs) + +# @cloudcomponents/cdk-codepipeline-slack + +[](https://github.com/cloudcomponents/cdk-constructs/actions?query=workflow=Build) +[](https://github.com/hupe1980/cdkdx) +[](https://www.npmjs.com/package/@cloudcomponents/cdk-codepipeline-slack) +[](https://pypi.org/project/cloudcomponents.cdk-codepipeline-slack/) +[](https://github.com/kolomied/awesome-cdk) + +> Cdk component that provisions a #slack approval workflow and notification messages on codepipeline state changes + + + + + +## Install + +TypeScript/JavaScript: + +```bash +npm install --save @cloudcomponents/cdk-codepipeline-slack +``` + +Python: + +```bash +pip install cloudcomponents.cdk-codepipeline-slack +``` + +## How to use + +```python +import { SlackApprovalAction, SlackNotifier } from '@cloudcomponents/cdk-codepipeline-slack'; +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 } from 'aws-cdk-lib/aws-codepipeline-actions'; +import { Construct } from 'constructs'; + +export class CodePipelineSlackApprovalStack extends Stack { + constructor(scope: Construct, id: string, props?: StackProps) { + super(scope, id, props); + + const repository = new Repository(this, 'Repository', { + repositoryName: 'MyRepositoryName', + }); + + const sourceArtifact = new Artifact(); + + const sourceAction = new CodeCommitSourceAction({ + actionName: 'CodeCommit', + repository, + output: sourceArtifact, + }); + + if (typeof process.env.SLACK_BOT_TOKEN === 'undefined') { + throw new Error('environment variable SLACK_BOT_TOKEN undefined'); + } + const slackBotToken = process.env.SLACK_BOT_TOKEN; + + if (typeof process.env.SLACK_SIGNING_SECRET === 'undefined') { + throw new Error('environment variable SLACK_SIGNING_SECRET undefined'); + } + const slackSigningSecret = process.env.SLACK_SIGNING_SECRET; + + if (typeof process.env.SLACK_CHANNEL_NAME === 'undefined') { + throw new Error('environment variable SLACK_CHANNEL_NAME undefined'); + } + const slackChannel = process.env.SLACK_CHANNEL_NAME; + + const approvalAction = new SlackApprovalAction({ + actionName: 'SlackApproval', + slackBotToken, + slackSigningSecret, + slackChannel, + externalEntityLink: 'http://cloudcomponents.org', + additionalInformation: 'Would you like to promote the build to production?', + }); + + const pipeline = new Pipeline(this, 'MyPipeline', { + pipelineName: 'MyPipeline', + stages: [ + { + stageName: 'Source', + actions: [sourceAction], + }, + { + stageName: 'Approval', + actions: [approvalAction], + }, + ], + }); + + new SlackNotifier(this, 'SlackNotifier', { + pipeline, + slackBotToken, + slackSigningSecret, + slackChannel, + }); + } +} +``` + +## 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](https://github.com/cloudcomponents/cdk-constructs/tree/master/packages/cdk-codepipeline-slack/API.md). + +## Example + +See more complete [examples](https://github.com/cloudcomponents/cdk-constructs/tree/master/examples). + +## License + +[MIT](https://github.com/cloudcomponents/cdk-constructs/tree/master/packages/cdk-codepipeline-slack/LICENSE) + + + + +%prep +%autosetup -n cloudcomponents.cdk-codepipeline-slack-2.1.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-cloudcomponents.cdk-codepipeline-slack -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 2.1.0-1 +- Package Spec generated |