{"id":36614038,"url":"https://github.com/wehkamp/bot-zero","last_synced_at":"2026-01-12T09:04:21.314Z","repository":{"id":40762471,"uuid":"132895799","full_name":"wehkamp/bot-zero","owner":"wehkamp","description":"An \"empty\" Hubot project that can be used to build your own Slack bot. Based on the Slack Bolt API.","archived":false,"fork":false,"pushed_at":"2024-11-21T15:37:10.000Z","size":11165,"stargazers_count":8,"open_issues_count":0,"forks_count":24,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-11-21T16:37:11.105Z","etag":null,"topics":["bolt","hubot","slack","slack-bot","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/wehkamp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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-05-10T12:15:30.000Z","updated_at":"2024-11-04T18:55:31.000Z","dependencies_parsed_at":"2023-09-28T10:02:49.358Z","dependency_job_id":"1d39efbc-5a68-42f1-b7ab-154950999626","html_url":"https://github.com/wehkamp/bot-zero","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wehkamp/bot-zero","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wehkamp%2Fbot-zero","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wehkamp%2Fbot-zero/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wehkamp%2Fbot-zero/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wehkamp%2Fbot-zero/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wehkamp","download_url":"https://codeload.github.com/wehkamp/bot-zero/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wehkamp%2Fbot-zero/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337617,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bolt","hubot","slack","slack-bot","typescript"],"created_at":"2026-01-12T09:04:21.193Z","updated_at":"2026-01-12T09:04:21.279Z","avatar_url":"https://github.com/wehkamp.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bot-zero\n\n\u003ca href=\"https://hubot.github.com/\"\u003eHubot\u003c/a\u003e is a fantastic project that enabled us to build great bots. The **bot-zero** project aims to give you a cleaned up version with some examples that run on TypeScript (instead of Coffee-script). This bot uses the \u003ca href=\"https://slack.dev/bolt-js/\"\u003eSlack Bolt\u003c/a\u003e.\n\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://github.com/wehkamp/bot-zero/blob/master/LICENSE.md)\n\nBlog: https://medium.com/wehkamp-techblog/jump-starting-slack-bot-projects-bot-zero-991b9654585e\n\n## Getting started\n\nIn this secion we will create the Slack app and add the\ndetails to your `.env` file.\n\n1. Goto https://api.slack.com/apps?new_app=1\n2. Click _From an app manifest_\n3. Select your _Workspace_ and click _Next_\n4. Click _YAML_, paste this code in the field and click _Next_\n\n```yml\ndisplay_information:\n  name: Jarvis\n  description: Our DevOps bot.\n  background_color: \"#3d001d\"\nfeatures:\n  app_home:\n    home_tab_enabled: false\n    messages_tab_enabled: true\n    messages_tab_read_only_enabled: false\n  bot_user:\n    display_name: Jarvis-Beta\n    always_online: true\noauth_config:\n  scopes:\n    bot:\n      - app_mentions:read\n      - channels:join\n      - channels:history\n      - chat:write\n      - im:write\n      - im:history\n      - im:read\n      - users:read\n      - groups:history\n      - groups:write\n      - groups:read\n      - mpim:history\n      - mpim:write\n      - mpim:read\nsettings:\n  event_subscriptions:\n    bot_events:\n      - app_mention\n      - message.channels\n      - message.im\n      - message.groups\n      - message.mpim\n  interactivity:\n    is_enabled: true\n  org_deploy_enabled: false\n  socket_mode_enabled: true\n  token_rotation_enabled: false\n```\n\n5. Click _Create_\n6. Click _Install to Workspace_\n7. Click _Allow_\n8. In the _Settings \u003e Basic Information_ screen, scroll down to _App-Level Tokens_ and click _Generate Token and Scopes_\n9. Enter a _Token Name_: bot-zero\n10. Click _Add scope_\n11. Select _connections:write_\n12. Click the _Generate_ button\n13. Copy the `.example.env` in the root of your project to `.env`\n14. Copy the _Token_ and paste it in your `.env` file at `HUBOT_SLACK_APP_TOKEN`\n15. Click the _Done_ button\n16. Goto _Settings \u003e Install App_\n17. Copy `Bot User OAuth Token` and paste it in your `.env` file at `HUBOT_SLACK_BOT_TOKEN`\n\n## Running the project\n\nThis project supports dev containers, so you don't have to install nodejs to your environment.\n\n1. Make sure your `.env` file has the right tokens.\n1. Open a terminal and navigate to your bot directory (dev container opens in the right directory).\n1. Enter `npm install` to install the NodeJs packages.\n1. Start the bot using `npm run dev`.\n1. Enjoy!\n\nNote: if you're using Ranger Desktop, you might encounter a mount error.\nPlease consult: https://github.com/microsoft/vscode-remote-release/issues/8172\nIt advises to downgrade `Dev Containers` to `0.266.1`.\n\n## How to fork this project internally in Wehkamp\n\nGitHub doesn't allow forks on the same organization which means you can't use the fork button for Wehkamp use. You can easily solve this by forking this manually.\n\nReplace bot-zero-fork with your own repo and/or use https for cloning/remotes instead of ssh.\n\n1. Create a new repo under wehkamp.\n2. Clone bot-zero. `git clone git@github.com:wehkamp/bot-zero.git bot-zero-fork`\n3. Cd into fork `cd bot-zero-fork`\n4. Setup remotes.\n   - `git remote remove origin`\n   - `git remote add upstream git@github.com:wehkamp/bot-zero.git`\n   - `git remote add origin git@github.com:wehkamp/bot-zero-fork.git`\n   - `git push origin master`\n\nYou can now pull/push to your forked repo and the original bot-zero repo.\n\n### Pulling/updating\n\nIf you want to pull updates from the original bot-zero repo upstream you may use the command: `git pull upstream master`. This will get all commits from bot-zero master in your current branch.\n\n### Pushing\n\nYou can also push to the original bot-zero project with `git push upstream whateverbranch` and this will push all your commits to a branch on bot-zero. Be aware though, bot-zero is public and you may leak private info.\n\n## Good to know\n\n**Dev**\u003cbr/\u003e\nStart the bot with `npm run dev`. It will start a watcher that will inspect your typescript files. Whenever something is changed, the bot is restarted.\nAdd new scripts to the `src/scripts` directory. Every script have the following:\n\n```ts\nimport { BotZero } from \"../common/BotZero\"\n\nmodule.exports = (robot: BotZero) =\u003e {\n  // your code goes here\n}\n```\n\n**Docker**\u003cbr/\u003e\nIf you want to run in Docker, execute the following:\n\n```sh\ndocker build -t bot-zero .\ndocker run -e HUBOT_SLACK_TOKEN=xoxb-you-token-here -it bot-zero\n```\n\nOr, if you already have a `.env`, run Docker Compose:\n\n```sh\ndocker-compose up --build --remove-orphans\n```\n\n## Tech\n\nWe're using the following stack:\n\n- [x] Node.js\n- [x] TypeScript\n- [x] Hubot\n- [x] Bolt\n- [x] NPM\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwehkamp%2Fbot-zero","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwehkamp%2Fbot-zero","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwehkamp%2Fbot-zero/lists"}