{"id":15649253,"url":"https://github.com/accessd/slack-deploy-bot","last_synced_at":"2025-04-30T16:15:06.352Z","repository":{"id":147576109,"uuid":"82927751","full_name":"accessd/slack-deploy-bot","owner":"accessd","description":"A Slack bot that helps you to deploy your apps","archived":false,"fork":false,"pushed_at":"2017-10-24T06:03:54.000Z","size":481,"stargazers_count":38,"open_issues_count":1,"forks_count":10,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-30T16:13:46.132Z","etag":null,"topics":["bot","capistrano","chatops","deploy","devops-tools","ruby","slack","slack-bot"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/accessd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-02-23T13:03:01.000Z","updated_at":"2024-07-07T19:45:30.000Z","dependencies_parsed_at":"2023-05-31T16:31:06.139Z","dependency_job_id":null,"html_url":"https://github.com/accessd/slack-deploy-bot","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/accessd%2Fslack-deploy-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accessd%2Fslack-deploy-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accessd%2Fslack-deploy-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/accessd%2Fslack-deploy-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/accessd","download_url":"https://codeload.github.com/accessd/slack-deploy-bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251739652,"owners_count":21635892,"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":["bot","capistrano","chatops","deploy","devops-tools","ruby","slack","slack-bot"],"created_at":"2024-10-03T12:29:01.700Z","updated_at":"2025-04-30T16:15:06.307Z","avatar_url":"https://github.com/accessd.png","language":"Ruby","readme":"# Slack Deploy Bot\n\n[![Build Status](https://travis-ci.org/accessd/slack-deploy-bot.svg?branch=master)](https://travis-ci.org/accessd/slack-deploy-bot)\n\nA Slack bot that helps you to deploy your apps.\n\n## What it can do?\n\nFor help just type **help**:\n\n![ScreenShot](https://raw.github.com/accessd/slack-deploy-bot/master/images/help-command.png)\n\n\nShow **changelog** for your branch against *master* branch:\n\n    changelog my-awesome-app#feature\n\n![ScreenShot](https://raw.github.com/accessd/slack-deploy-bot/master/images/changelog-command.png)\n\n\n**Deploy** your apps branches to different environments:\n\n    deploy my-awesome-app # deploy my-awesome-app default branch to default environment\n\n    deploy my-awesome-app to prod # deploy my-awesome-app default branch to prod environment\n\n    deploy my-awesome-app#my-feature to staging # deploy my-awesome-app my-feature branch to prod environment\n\n![ScreenShot](https://raw.github.com/accessd/slack-deploy-bot/master/images/deploy-command.png)\n\n\nin case of deploy fail you'll see the error message:\n\n![ScreenShot](https://raw.github.com/accessd/slack-deploy-bot/master/images/deploy-failed.png)\n\n## Production\n\n### How to setup\n\n1. Clone the repo\n2. `cp ./config/config.sample.rb ./config/config.rb`\n3. Edit `./config/config.rb` to add configuration for your app\n4. `bundle install --without development test`\n5. You can try to launch bot with `SLACK_API_TOKEN=xxx bundle exec ruby run.rb` and test it\n6. Launch bot as a daemon (you can use *eye, upstart, systemd*, etc.)\n\nI'd recommend to use **eye** gem for launching bot. But it's up to you.\n\n### Launching with eye\n\nPlease follow instruction on [https://github.com/kostya/eye](https://github.com/kostya/eye) for installing **eye**\n\nPut in the root *.slack-api-token* file which contains api token\n\nCreate **config/slack-deploy-bot.eye** config using **config/slack-deploy-bot.eye.sample** as sample\n\nFor first time or if slack-deploy-bot.eye config was changed than run:\n\n    eye load config/slack-deploy-bot.eye\n\nStart bot:\n\n    eye start deploybot\n\nRestart bot with command:\n\n    eye r deploybot\n\nInfo about bot process:\n\n    eye i deploybot\n\n## Configuration\n\nCopy *config/config.sample.rb* to *config/config.rb*\n\nExample of `config.rb`:\n\n```ruby\nDeployBot.setup do |config|\n  config.apps = {\n    :'my-awesome-app' =\u003e {\n      envs: [:staging, :prod],\n      path: '~/projects/my-awesome-app',\n      default_branch: :master, # default branch to deploy, is not required\n      default_env: :prod, # default env to deploy, is not required\n      deploy_cmd: -\u003e(env, branch) { \"./deploy.sh #{env} #{branch}\" } # deploy with Ansible for example\n    },\n    :'my-second-awesome-app': {\n      envs: [:dev, :prod],\n      path: '~/projects/my-second-awesome-app',\n      deploy_cmd: -\u003e(env, branch) { \"BRANCH_NAME=#{branch} bundle exec cap #{env} deploy\" } # deploy with Capistrano\n    }\n  }\nend\n```\n\nRequired options for each app: *envs*, *path*, *deploy_cmd*\n\n## Development \u0026 Testing\n\nStart bot with command:\n\n    SLACK_API_TOKEN=xxx foreman start\n\nStart console with:\n\n    bundle exec ./console\n\nRun specs with:\n\n    bundle exec rake\n\nBefore starting specs please run:\n\n    git submodule update --init\n\nfor fetching *spec/support/dummy_app*\n\n## TODO\n\n1. ~~Configuration (apps, envs, default branch, deploy command)~~\n2. ~~Notifications to channel about starting/ending/failing deploy events~~\n3. ~~Specs~~\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccessd%2Fslack-deploy-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faccessd%2Fslack-deploy-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faccessd%2Fslack-deploy-bot/lists"}