{"id":22822472,"url":"https://github.com/switcherapi/switcher-slack-app","last_synced_at":"2025-08-28T19:15:13.847Z","repository":{"id":38461345,"uuid":"349629818","full_name":"switcherapi/switcher-slack-app","owner":"switcherapi","description":"Switcher API App for Slack","archived":false,"fork":false,"pushed_at":"2025-06-18T01:47:28.000Z","size":276,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-18T02:35:17.679Z","etag":null,"topics":["slack","slack-app","switcher-api"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/switcherapi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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,"zenodo":null},"funding":{"patreon":"switcherapi","ko_fi":"petruki","github":["petruki"]}},"created_at":"2021-03-20T04:49:31.000Z","updated_at":"2025-06-18T01:47:25.000Z","dependencies_parsed_at":"2023-02-09T23:31:09.298Z","dependency_job_id":"5d7b7455-3096-44c0-bc49-bb3ef99cc7a3","html_url":"https://github.com/switcherapi/switcher-slack-app","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/switcherapi/switcher-slack-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/switcherapi%2Fswitcher-slack-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/switcherapi%2Fswitcher-slack-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/switcherapi%2Fswitcher-slack-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/switcherapi%2Fswitcher-slack-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/switcherapi","download_url":"https://codeload.github.com/switcherapi/switcher-slack-app/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/switcherapi%2Fswitcher-slack-app/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263594623,"owners_count":23485877,"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":["slack","slack-app","switcher-api"],"created_at":"2024-12-12T16:12:04.686Z","updated_at":"2025-07-04T18:11:08.750Z","avatar_url":"https://github.com/switcherapi.png","language":"Python","funding_links":["https://patreon.com/switcherapi","https://ko-fi.com/petruki","https://github.com/sponsors/petruki"],"categories":[],"sub_categories":[],"readme":"***\n\n\u003cdiv align=\"center\"\u003e\n\u003cb\u003eSwitcher Slack App\u003c/b\u003e\u003cbr\u003e\nControl \u0026 Communicate Switcher changes\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Master CI](https://github.com/switcherapi/switcher-slack-app/actions/workflows/master.yml/badge.svg?branch=master)](https://github.com/switcherapi/switcher-slack-app/actions/workflows/master.yml)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=switcherapi_switcher-slack-app\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=switcherapi_switcher-slack-app)\n[![Known Vulnerabilities](https://snyk.io/test/github/switcherapi/switcher-slack-app/badge.svg)](https://snyk.io/test/github/switcherapi/switcher-slack-app)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Docker Hub](https://img.shields.io/docker/pulls/trackerforce/switcher-slack-app.svg)](https://hub.docker.com/r/trackerforce/switcher-slack-app)\n[![Slack: Switcher-HQ](https://img.shields.io/badge/slack-@switcher/hq-blue.svg?logo=slack)](https://switcher-hq.slack.com/)\n\n\u003c/div\u003e\n\n***\n\n![Switcher Slack App](https://raw.githubusercontent.com/switcherapi/switcherapi-assets/master/samples/slack/logo.png)\n\n# About\n**Switcher Slack App** is a Slack App that can be used to control Switchers from your Slack workspace.\u003c/br\u003e\nFeatures included in this app are described below with examples:\n\n\u003e **Change Request**\n\nOpen change requests selecting the Switcher or Group of Switchers to be changed.\n\n![Slack App - Change Request](https://raw.githubusercontent.com/switcherapi/switcherapi-assets/master/samples/slack/change_request_modal.png)\n\nReview your request and add some remarks to justify the change.\n\n![Slack App - Change Request](https://raw.githubusercontent.com/switcherapi/switcherapi-assets/master/samples/slack/change_request_review.png)\n\nA summary message containing all details about the change will be sent to a specific group that was choosen during the installation of the app.\n\n![Slack App - Change Request](https://raw.githubusercontent.com/switcherapi/switcherapi-assets/master/samples/slack/change_request_approval.png)\n\n* * *\n\n# Running locally\n\n## Requirements  \n- Python 3.13\n- VirtualEnv - `pip install virtualenv`\n- Pipenv - `pip install pipenv`\n- Ngrok (Slack Apps requires HTTPS endpoint)\n\n## Create Slack App\n\nThe steps below will guide you through the process of creating a Slack App.\u003cbr\u003e\nAssuming that you have signed up for a Slack account and are logged in to a Workspace.\n\n### Slack: Creating the App\n\n1. Open https://api.slack.com/\n2. Click on 'Your Apps'\n3. Hit 'Create an App' and then select 'From an app manifest'\n4. Select the Workspace to install the app\n5. Open 'switcher-slack-app.yaml' and replace the EDNPOINTS with the app URL e.g. https://switcher-slack-app.ngrok.io\n6. Copy all the content and paste to the manifest YAML space, then hit next\n7. Review the summary provided, then click on 'Create'\n\n(*) Do not install the app via 'Install to Workspace' button\n\nIn order to install the app, you will need to run `https://[SWITCHER_SLACK_APP_ENDPOINT]/slack/install` in your browser.\u003cbr\u003e\nThis will trigger the callback to Switcher Management [SWITCHER_URL] to proceed with the Domain authorization.\n\n### App: Configure \u0026 Deploy\n1. Create a new Virtual Env\n2. Install dependencies: `make install`\n3. Copy the values Client ID, Secret and Signing Secret.\n4. Create a .env file based on .env.template and paste the copied values.\n5. Make sure that the SWITCHER_JWT_SECRET matches the Switcher API env value for SWITCHER_SLACK_JWT_SECRET\n6. Make sure that Switcher Management has SWITCHERSLACKAPP_URL set to the app URL\n7. Start the API by running: `make run`\n\n## Contributing\n\nYou are more than welcome to contribute to the project. \nHere are some important guidelines:\n\n1. Suggestions: Open a discussion topic or issue and describe clearly what you have in mind.\n2. Fix: Open an issue if you found a bug.\n3. Solution: Open a PR in case we agreed upon your change suggestion discussed before.\n\nBelow some basics steps that you probably are familiar with when contributing to open source projects.\n\n[Before] Check if all tests are passing:\n\n```\nmake install-test\nmake test\n```\n\n[Chaging] Check if all tests are passing and covers the change being made:\n\n```\nmake test\nmake cover\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswitcherapi%2Fswitcher-slack-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fswitcherapi%2Fswitcher-slack-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fswitcherapi%2Fswitcher-slack-app/lists"}