diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-cloudcomponents-cdk-chatops.spec | 556 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 558 insertions, 0 deletions
@@ -0,0 +1 @@ +/cloudcomponents.cdk-chatops-2.1.0.tar.gz diff --git a/python-cloudcomponents-cdk-chatops.spec b/python-cloudcomponents-cdk-chatops.spec new file mode 100644 index 0000000..c80d5a8 --- /dev/null +++ b/python-cloudcomponents-cdk-chatops.spec @@ -0,0 +1,556 @@ +%global _empty_manifest_terminate_build 0 +Name: python-cloudcomponents.cdk-chatops +Version: 2.1.0 +Release: 1 +Summary: Constructs for chattool integration: #slack / msteams +License: MIT +URL: https://github.com/cloudcomponents/cdk-constructs +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/b3/4e/6da2908cce32885064a86a5c0b14b3f77a9a77c32871998e7c9a37a442a0/cloudcomponents.cdk-chatops-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-chatops + +[](https://github.com/cloudcomponents/cdk-constructs/actions?query=workflow=Build) +[](https://github.com/hupe1980/cdkdx) +[](https://www.npmjs.com/package/@cloudcomponents/cdk-chatops) +[](https://pypi.org/project/cloudcomponents.cdk-chatops/) + +> Constructs for chattool integration: #slack / msteams + +## Install + +TypeScript/JavaScript: + +```bash +npm i @cloudcomponents/cdk-chatops +``` + +Python: + +```bash +pip install cloudcomponents.cdk-chatops +``` + +## How to use + +```python +import { + RepositoryNotificationRule, + PipelineNotificationRule, + RepositoryEvent, + PipelineEvent, + SlackChannel, + MSTeamsIncomingWebhook, +} from '@cloudcomponents/cdk-developer-tools-notifications'; +import { + SlackChannelConfiguration, + MSTeamsIncomingWebhookConfiguration, + AccountLabelMode, +} from '@cloudcomponents/cdk-chatops'; +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, ManualApprovalAction } from 'aws-cdk-lib/aws-codepipeline-actions'; +import { Construct } from 'constructs'; + +export class NotificationsStack extends Stack { + constructor(scope: Construct, id: string, props?: StackProps) { + super(scope, id, props); + + const repository = new Repository(this, 'Repository', { + repositoryName: 'notifications-repository', + }); + + const slackChannel = new SlackChannelConfiguration(this, 'SlackChannel', { + slackWorkspaceId: process.env.SLACK_WORKSPACE_ID as string, + configurationName: 'notifications', + slackChannelId: process.env.SLACK_CHANNEL_ID as string, + }); + + const webhook = new MSTeamsIncomingWebhookConfiguration( + this, + 'MSTeamsWebhook', + { + url: process.env.INCOMING_WEBHOOK_URL as string, + accountLabelMode: AccountLabelMode.ID_AND_ALIAS, + themeColor: '#FF0000', + }, + ); + + new RepositoryNotificationRule(this, 'RepoNotifications', { + name: 'notifications-repository', + repository, + events: [ + RepositoryEvent.COMMENTS_ON_COMMITS, + RepositoryEvent.PULL_REQUEST_CREATED, + RepositoryEvent.PULL_REQUEST_MERGED, + ], + targets: [ + new SlackChannel(slackChannel), + new MSTeamsIncomingWebhook(webhook), + ], + }); + + const sourceArtifact = new Artifact(); + + const sourceAction = new CodeCommitSourceAction({ + actionName: 'CodeCommit', + repository, + output: sourceArtifact, + }); + + const approvalAction = new ManualApprovalAction({ + actionName: 'Approval', + }); + + const pipeline = new Pipeline(this, 'Pipeline', { + pipelineName: 'notifications-pipeline', + stages: [ + { + stageName: 'Source', + actions: [sourceAction], + }, + { + stageName: 'Approval', + actions: [approvalAction], + }, + ], + }); + + new PipelineNotificationRule(this, 'PipelineNotificationRule', { + name: 'pipeline-notification', + pipeline, + events: [ + PipelineEvent.PIPELINE_EXECUTION_STARTED, + PipelineEvent.PIPELINE_EXECUTION_FAILED, + PipelineEvent.PIPELINE_EXECUTION_SUCCEEDED, + // PipelineEvent.ACTION_EXECUTION_STARTED, + // PipelineEvent.ACTION_EXECUTION_SUCCEEDED, + // PipelineEvent.ACTION_EXECUTION_FAILED, + PipelineEvent.MANUAL_APPROVAL_NEEDED, + PipelineEvent.MANUAL_APPROVAL_SUCCEEDED, + // PipelineEvent.MANUAL_APPROVAL_FAILED, + // PipelineEvent.STAGE_EXECUTION_STARTED, + // PipelineEvent.STAGE_EXECUTION_SUCCEEDED, + // PipelineEvent.STAGE_EXECUTION_FAILED, + ], + targets: [ + new SlackChannel(slackChannel), + new MSTeamsIncomingWebhook(webhook), + ], + }); + } +} +``` + +## MSTeams + +[Add incoming webhook](https://docs.microsoft.com/de-de/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook): + +1. Navigate to the channel where you want to add the webhook and select (•••) More Options from the top navigation bar. +2. Choose Connectors from the drop-down menu and search for Incoming Webhook. +3. Select the Configure button, provide a name, and, optionally, upload an image avatar for your webhook. +4. The dialog window will present a unique URL that will map to the channel. Make sure that you copy and save the URL—you will need to provide it to the outside service. +5. Select the Done button. The webhook will be available in the team channel. + +## API Reference + +See [API.md](https://github.com/cloudcomponents/cdk-constructs/tree/master/packages/cdk-chatops/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-chatops/LICENSE) + + + + +%package -n python3-cloudcomponents.cdk-chatops +Summary: Constructs for chattool integration: #slack / msteams +Provides: python-cloudcomponents.cdk-chatops +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-cloudcomponents.cdk-chatops +[](https://github.com/cloudcomponents/cdk-constructs) + +# @cloudcomponents/cdk-chatops + +[](https://github.com/cloudcomponents/cdk-constructs/actions?query=workflow=Build) +[](https://github.com/hupe1980/cdkdx) +[](https://www.npmjs.com/package/@cloudcomponents/cdk-chatops) +[](https://pypi.org/project/cloudcomponents.cdk-chatops/) + +> Constructs for chattool integration: #slack / msteams + +## Install + +TypeScript/JavaScript: + +```bash +npm i @cloudcomponents/cdk-chatops +``` + +Python: + +```bash +pip install cloudcomponents.cdk-chatops +``` + +## How to use + +```python +import { + RepositoryNotificationRule, + PipelineNotificationRule, + RepositoryEvent, + PipelineEvent, + SlackChannel, + MSTeamsIncomingWebhook, +} from '@cloudcomponents/cdk-developer-tools-notifications'; +import { + SlackChannelConfiguration, + MSTeamsIncomingWebhookConfiguration, + AccountLabelMode, +} from '@cloudcomponents/cdk-chatops'; +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, ManualApprovalAction } from 'aws-cdk-lib/aws-codepipeline-actions'; +import { Construct } from 'constructs'; + +export class NotificationsStack extends Stack { + constructor(scope: Construct, id: string, props?: StackProps) { + super(scope, id, props); + + const repository = new Repository(this, 'Repository', { + repositoryName: 'notifications-repository', + }); + + const slackChannel = new SlackChannelConfiguration(this, 'SlackChannel', { + slackWorkspaceId: process.env.SLACK_WORKSPACE_ID as string, + configurationName: 'notifications', + slackChannelId: process.env.SLACK_CHANNEL_ID as string, + }); + + const webhook = new MSTeamsIncomingWebhookConfiguration( + this, + 'MSTeamsWebhook', + { + url: process.env.INCOMING_WEBHOOK_URL as string, + accountLabelMode: AccountLabelMode.ID_AND_ALIAS, + themeColor: '#FF0000', + }, + ); + + new RepositoryNotificationRule(this, 'RepoNotifications', { + name: 'notifications-repository', + repository, + events: [ + RepositoryEvent.COMMENTS_ON_COMMITS, + RepositoryEvent.PULL_REQUEST_CREATED, + RepositoryEvent.PULL_REQUEST_MERGED, + ], + targets: [ + new SlackChannel(slackChannel), + new MSTeamsIncomingWebhook(webhook), + ], + }); + + const sourceArtifact = new Artifact(); + + const sourceAction = new CodeCommitSourceAction({ + actionName: 'CodeCommit', + repository, + output: sourceArtifact, + }); + + const approvalAction = new ManualApprovalAction({ + actionName: 'Approval', + }); + + const pipeline = new Pipeline(this, 'Pipeline', { + pipelineName: 'notifications-pipeline', + stages: [ + { + stageName: 'Source', + actions: [sourceAction], + }, + { + stageName: 'Approval', + actions: [approvalAction], + }, + ], + }); + + new PipelineNotificationRule(this, 'PipelineNotificationRule', { + name: 'pipeline-notification', + pipeline, + events: [ + PipelineEvent.PIPELINE_EXECUTION_STARTED, + PipelineEvent.PIPELINE_EXECUTION_FAILED, + PipelineEvent.PIPELINE_EXECUTION_SUCCEEDED, + // PipelineEvent.ACTION_EXECUTION_STARTED, + // PipelineEvent.ACTION_EXECUTION_SUCCEEDED, + // PipelineEvent.ACTION_EXECUTION_FAILED, + PipelineEvent.MANUAL_APPROVAL_NEEDED, + PipelineEvent.MANUAL_APPROVAL_SUCCEEDED, + // PipelineEvent.MANUAL_APPROVAL_FAILED, + // PipelineEvent.STAGE_EXECUTION_STARTED, + // PipelineEvent.STAGE_EXECUTION_SUCCEEDED, + // PipelineEvent.STAGE_EXECUTION_FAILED, + ], + targets: [ + new SlackChannel(slackChannel), + new MSTeamsIncomingWebhook(webhook), + ], + }); + } +} +``` + +## MSTeams + +[Add incoming webhook](https://docs.microsoft.com/de-de/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook): + +1. Navigate to the channel where you want to add the webhook and select (•••) More Options from the top navigation bar. +2. Choose Connectors from the drop-down menu and search for Incoming Webhook. +3. Select the Configure button, provide a name, and, optionally, upload an image avatar for your webhook. +4. The dialog window will present a unique URL that will map to the channel. Make sure that you copy and save the URL—you will need to provide it to the outside service. +5. Select the Done button. The webhook will be available in the team channel. + +## API Reference + +See [API.md](https://github.com/cloudcomponents/cdk-constructs/tree/master/packages/cdk-chatops/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-chatops/LICENSE) + + + + +%package help +Summary: Development documents and examples for cloudcomponents.cdk-chatops +Provides: python3-cloudcomponents.cdk-chatops-doc +%description help +[](https://github.com/cloudcomponents/cdk-constructs) + +# @cloudcomponents/cdk-chatops + +[](https://github.com/cloudcomponents/cdk-constructs/actions?query=workflow=Build) +[](https://github.com/hupe1980/cdkdx) +[](https://www.npmjs.com/package/@cloudcomponents/cdk-chatops) +[](https://pypi.org/project/cloudcomponents.cdk-chatops/) + +> Constructs for chattool integration: #slack / msteams + +## Install + +TypeScript/JavaScript: + +```bash +npm i @cloudcomponents/cdk-chatops +``` + +Python: + +```bash +pip install cloudcomponents.cdk-chatops +``` + +## How to use + +```python +import { + RepositoryNotificationRule, + PipelineNotificationRule, + RepositoryEvent, + PipelineEvent, + SlackChannel, + MSTeamsIncomingWebhook, +} from '@cloudcomponents/cdk-developer-tools-notifications'; +import { + SlackChannelConfiguration, + MSTeamsIncomingWebhookConfiguration, + AccountLabelMode, +} from '@cloudcomponents/cdk-chatops'; +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, ManualApprovalAction } from 'aws-cdk-lib/aws-codepipeline-actions'; +import { Construct } from 'constructs'; + +export class NotificationsStack extends Stack { + constructor(scope: Construct, id: string, props?: StackProps) { + super(scope, id, props); + + const repository = new Repository(this, 'Repository', { + repositoryName: 'notifications-repository', + }); + + const slackChannel = new SlackChannelConfiguration(this, 'SlackChannel', { + slackWorkspaceId: process.env.SLACK_WORKSPACE_ID as string, + configurationName: 'notifications', + slackChannelId: process.env.SLACK_CHANNEL_ID as string, + }); + + const webhook = new MSTeamsIncomingWebhookConfiguration( + this, + 'MSTeamsWebhook', + { + url: process.env.INCOMING_WEBHOOK_URL as string, + accountLabelMode: AccountLabelMode.ID_AND_ALIAS, + themeColor: '#FF0000', + }, + ); + + new RepositoryNotificationRule(this, 'RepoNotifications', { + name: 'notifications-repository', + repository, + events: [ + RepositoryEvent.COMMENTS_ON_COMMITS, + RepositoryEvent.PULL_REQUEST_CREATED, + RepositoryEvent.PULL_REQUEST_MERGED, + ], + targets: [ + new SlackChannel(slackChannel), + new MSTeamsIncomingWebhook(webhook), + ], + }); + + const sourceArtifact = new Artifact(); + + const sourceAction = new CodeCommitSourceAction({ + actionName: 'CodeCommit', + repository, + output: sourceArtifact, + }); + + const approvalAction = new ManualApprovalAction({ + actionName: 'Approval', + }); + + const pipeline = new Pipeline(this, 'Pipeline', { + pipelineName: 'notifications-pipeline', + stages: [ + { + stageName: 'Source', + actions: [sourceAction], + }, + { + stageName: 'Approval', + actions: [approvalAction], + }, + ], + }); + + new PipelineNotificationRule(this, 'PipelineNotificationRule', { + name: 'pipeline-notification', + pipeline, + events: [ + PipelineEvent.PIPELINE_EXECUTION_STARTED, + PipelineEvent.PIPELINE_EXECUTION_FAILED, + PipelineEvent.PIPELINE_EXECUTION_SUCCEEDED, + // PipelineEvent.ACTION_EXECUTION_STARTED, + // PipelineEvent.ACTION_EXECUTION_SUCCEEDED, + // PipelineEvent.ACTION_EXECUTION_FAILED, + PipelineEvent.MANUAL_APPROVAL_NEEDED, + PipelineEvent.MANUAL_APPROVAL_SUCCEEDED, + // PipelineEvent.MANUAL_APPROVAL_FAILED, + // PipelineEvent.STAGE_EXECUTION_STARTED, + // PipelineEvent.STAGE_EXECUTION_SUCCEEDED, + // PipelineEvent.STAGE_EXECUTION_FAILED, + ], + targets: [ + new SlackChannel(slackChannel), + new MSTeamsIncomingWebhook(webhook), + ], + }); + } +} +``` + +## MSTeams + +[Add incoming webhook](https://docs.microsoft.com/de-de/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook): + +1. Navigate to the channel where you want to add the webhook and select (•••) More Options from the top navigation bar. +2. Choose Connectors from the drop-down menu and search for Incoming Webhook. +3. Select the Configure button, provide a name, and, optionally, upload an image avatar for your webhook. +4. The dialog window will present a unique URL that will map to the channel. Make sure that you copy and save the URL—you will need to provide it to the outside service. +5. Select the Done button. The webhook will be available in the team channel. + +## API Reference + +See [API.md](https://github.com/cloudcomponents/cdk-constructs/tree/master/packages/cdk-chatops/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-chatops/LICENSE) + + + + +%prep +%autosetup -n cloudcomponents.cdk-chatops-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-chatops -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 @@ -0,0 +1 @@ +4c9c844628057bdfd44c90ea2109ca0c cloudcomponents.cdk-chatops-2.1.0.tar.gz |