{"id":19896713,"url":"https://github.com/ogrodnek/code-pipeline-slack","last_synced_at":"2025-10-20T10:36:53.714Z","repository":{"id":52418531,"uuid":"137520176","full_name":"ogrodnek/code-pipeline-slack","owner":"ogrodnek","description":"Slack bot for code pipeline deployments","archived":false,"fork":false,"pushed_at":"2021-04-29T19:52:05.000Z","size":62,"stargazers_count":98,"open_issues_count":10,"forks_count":52,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-25T14:56:22.020Z","etag":null,"topics":["aws","slack","slackbot"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ogrodnek.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-06-15T18:29:37.000Z","updated_at":"2024-04-25T19:04:48.000Z","dependencies_parsed_at":"2022-09-01T12:02:58.443Z","dependency_job_id":null,"html_url":"https://github.com/ogrodnek/code-pipeline-slack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ogrodnek%2Fcode-pipeline-slack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ogrodnek%2Fcode-pipeline-slack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ogrodnek%2Fcode-pipeline-slack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ogrodnek%2Fcode-pipeline-slack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ogrodnek","download_url":"https://codeload.github.com/ogrodnek/code-pipeline-slack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252104109,"owners_count":21695418,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","slack","slackbot"],"created_at":"2024-11-12T18:40:14.595Z","updated_at":"2025-10-20T10:36:53.589Z","avatar_url":"https://github.com/ogrodnek.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Code Pipeline Slack Bot\n=======================\n\nThis bot will notify you of CodePipeline progress (using [CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)).\n\nWe attempt to provide a unified summary, by pulling together multiple events, as well as information obtained by the API into a single message view.\n\n![Build](build.gif)\n\n\n## Launch\n\n| us-east-1 | us-west-2 |\n| --------- | --------- |\n| [![Launch](https://s3.amazonaws.com/cloudformation-examples/cloudformation-launch-stack.png)](https://console.aws.amazon.com/cloudformation/home?region=us-east-1#/stacks/new?stackName=CodePipelineSlackNotifier\u0026templateURL=https://s3.amazonaws.com/code-pipeline-slack-us-east-1/template.yml) | [![Launch](https://s3.amazonaws.com/cloudformation-examples/cloudformation-launch-stack.png)](https://console.aws.amazon.com/cloudformation/home?region=us-west-2#/stacks/new?stackName=CodePipelineSlackNotifier\u0026templateURL=https://s3-us-west-2.amazonaws.com/code-pipeline-slack-us-west-2/template.yml) |\n\n\n## Configuration / Customization\n\nNo configuration is necessary per pipeline.  As part of the CF Stack, we subscribe to all CodePipeline and CodeBuild events (using [CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html)).\n\nWhen creating the CloudFormation stack, you can customize:\n\n- `SlackChannel` (defaults to `builds`).\n- `SlackBotName` (defaults to `PipelineBuildBot`).\n- `SlackBotIcon` (defaults to `:robot_face:` 🤖 ).\n\nAdditionally, you must provide both a `SlackOAuthAccessToken` and a `SlackBotUserOAuthAccessToken`, (see [BotUsers](https://api.slack.com/bot-users) for creating a slack bot user with an OAuth token). If you have the legacy integration token, just add that token to both fields. It is required to add the permission scope 'Access user’s public channels' (channels:history).\n\n## How it works\n\nWe utilize [CloudWatch Events](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) for CodePipline and CodeBuild to get notified of all status changes.\n\nUsing the notifications, as well as using the CodePipeline APIs, we are able to present a unified summary of your Pipeline and Build status.\n\n\n### IAM permissions\n\nAs part of the deployment, we create an IAM policy for the bot lambda function of:\n\n```\nPolicies:\n  - AWSLambdaBasicExecutionRole\n  - Version: '2012-10-17'\n    Statement:\n      - Effect: Allow\n        Action:\n          - 'codepipeline:Get*'\n          - 'codepipeline:List*'\n        Resource: '*'\n      - Effect: Allow\n        Action:\n          - 'codebuild:Get*'\n        Resource: '*'\n```\n\nSo we can retrieve information about all pipelines and builds.  See [template.yml](https://github.com/ogrodnek/code-pipeline-slack/blob/master/template.yml) for more detail.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fogrodnek%2Fcode-pipeline-slack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fogrodnek%2Fcode-pipeline-slack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fogrodnek%2Fcode-pipeline-slack/lists"}