{"id":22048906,"url":"https://github.com/chaostoolkit-incubator/chaostoolkit-slack","last_synced_at":"2025-05-08T23:07:39.920Z","repository":{"id":65632291,"uuid":"122120353","full_name":"chaostoolkit-incubator/chaostoolkit-slack","owner":"chaostoolkit-incubator","description":"Chaos Toolkit Plugin for Slack","archived":false,"fork":false,"pushed_at":"2023-11-10T21:38:38.000Z","size":59,"stargazers_count":6,"open_issues_count":2,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-11-04T01:51:59.620Z","etag":null,"topics":["chaos-engineering","chaostoolkit","chaostoolkit-integration","slack"],"latest_commit_sha":null,"homepage":"","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/chaostoolkit-incubator.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-19T21:03:48.000Z","updated_at":"2023-03-27T01:47:00.000Z","dependencies_parsed_at":"2024-06-18T17:54:10.002Z","dependency_job_id":null,"html_url":"https://github.com/chaostoolkit-incubator/chaostoolkit-slack","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-incubator%2Fchaostoolkit-slack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-incubator%2Fchaostoolkit-slack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-incubator%2Fchaostoolkit-slack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chaostoolkit-incubator%2Fchaostoolkit-slack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chaostoolkit-incubator","download_url":"https://codeload.github.com/chaostoolkit-incubator/chaostoolkit-slack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227351639,"owners_count":17768412,"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":["chaos-engineering","chaostoolkit","chaostoolkit-integration","slack"],"created_at":"2024-11-30T14:13:40.933Z","updated_at":"2024-11-30T14:13:41.050Z","avatar_url":"https://github.com/chaostoolkit-incubator.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Chaos Toolkit Extension for Slack\n\n[![Build](https://github.com/chaostoolkit-incubator/chaostoolkit-slack/actions/workflows/build.yaml/badge.svg)](https://github.com/chaostoolkit-incubator/chaostoolkit-slack/actions/workflows/build.yaml)\n\nThis project is an extension for the Chaos Toolkit to target [Slack][slack].\n\n[slack]: https://slack.com/\n\n## Install\n\nThis package requires Python 3.7+\n\nTo be used from your experiment, this package must be installed in the Python\nenvironment where [chaostoolkit][] already lives.\n\n[chaostoolkit]: https://github.com/chaostoolkit/chaostoolkit\n\n```\n$ pip install -U chaostoolkit-slack\n```\n\n### Slack App\n\nTo use this extension, you need to create a Slack app in your workspace.\nPlease follow the Slack documentation to create a basic app:\n\nhttps://api.slack.com/apps?new_app=1\nhttps://api.slack.com/tutorials\n\nYou can start from this manifest if you want:\n\n```yaml\ndisplay_information:\n  name: Chaos Toolkit events\n  long_description: Get live feedback information of all your Chaos Engineering\n    experiments executed from Chaos Toolkit. See which experiments deviated and\n    investigate their logs directly from a Slack thread.\n  description: Chaos Engineering experiments live events from Chaos Toolkit.\n  background_color: \"#ffffff\"\nsettings:\n  org_deploy_enabled: false\n  socket_mode_enabled: false\n  is_hosted: false\n  token_rotation_enabled: false\nfeatures:\n  bot_user:\n    display_name: chaostoolkit\noauth_config:\n  scopes:\n    bot:\n      - channels:read\n      - chat:write\n      - files:write\n```\n\nOnce your application is created, you may want to set the Chaos Toolkit\n[logo][logo] to clarify to your users where these messages come from.\n\n[logo]: https://chaostoolkit.org/resources/logos/\n\n### Slack Token\n\nPlease follow the procedure on Slack to create a token suitable for\nAPI calls made using the Python client. The token should start with `xoxb-`.\nYou can find the token in your app settings under the `OAuth \u0026 Permissions`\npage.\n\nThe token should have at least the following scopes:\n\n`channels:read`, `chat:write` and `files:write`\n\n[tokendoc]: https://api.slack.com/authentication/basics\n\n### Install your Slack app\n\nOnce created, you need to install the app in your workspace and invite it in\nany channel you wish to send events to. This channel will also have to be part\nspecified as a controls argument (see below).\n\nNow you should be good to go!\n\n## Usage\n\nCurrently, this extension only provides a control to send Chaos\nToolkit events to Slack channels.\n\nTo use this extension, add the following to your experiment (or settings):\n\n```json\n\"secrets\": {\n    \"slack\": {\n        \"token\": \"xoxb-...\"\n    }\n},\n\"controls\": [\n    {\n        \"name\": \"slack\",\n        \"provider\": {\n            \"type\": \"python\",\n            \"module\": \"chaosslack.control\",\n            \"secrets\": [\"slack\"],\n            \"arguments\": {\n                \"channel\": \"general\"\n            }\n        }\n    }\n]\n```\n\n## Contribute\n\nIf you wish to contribute more functions to this package, you are more than\nwelcome to do so. Please fork this project, make your changes following the\nusual [PEP 8][pep8] code style, add appropriate tests and submit a PR for\nreview.\n\n[pep8]: https://pycodestyle.readthedocs.io/en/latest/\n\nThe Chaos Toolkit projects require all contributors must sign a\n[Developer Certificate of Origin][dco] on each commit they would like to merge\ninto the master branch of the repository. Please, make sure you can abide by\nthe rules of the DCO before submitting a PR.\n\n[dco]: https://github.com/probot/dco#how-it-works\n\n### Develop\n\nIf you wish to develop on this project, make sure to install the development\ndependencies. But first, [create a virtual environment][venv] and then install\nthose dependencies.\n\n[venv]: https://docs.chaostoolkit.org/reference/usage/install/#create-a-virtual-environment\n\n```console\n$ pip install -r requirements-dev.txt -r requirements.txt\n```\n\nThen, point your environment to this directory:\n\n```console\n$ pip install -e .\n```\n\nNow, you can edit the files and they will be automatically be seen by your\nenvironment, even when running from the `chaos` command locally.\n\nTo run the tests for the project execute the following:\n\n```\n$ pytest\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaostoolkit-incubator%2Fchaostoolkit-slack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchaostoolkit-incubator%2Fchaostoolkit-slack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchaostoolkit-incubator%2Fchaostoolkit-slack/lists"}