{"id":17355135,"url":"https://github.com/zephinzer/standupbot","last_synced_at":"2025-03-27T14:17:01.365Z","repository":{"id":257730114,"uuid":"849646560","full_name":"zephinzer/standupbot","owner":"zephinzer","description":null,"archived":false,"fork":false,"pushed_at":"2024-08-30T01:27:55.000Z","size":5,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-01T18:26:46.799Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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/zephinzer.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":"2024-08-30T01:25:03.000Z","updated_at":"2024-08-30T01:27:58.000Z","dependencies_parsed_at":"2024-09-18T10:09:04.659Z","dependency_job_id":"e9e98658-47d4-44ce-be62-8a1a931f2afd","html_url":"https://github.com/zephinzer/standupbot","commit_stats":null,"previous_names":["zephinzer/standupbot"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephinzer%2Fstandupbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephinzer%2Fstandupbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephinzer%2Fstandupbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zephinzer%2Fstandupbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zephinzer","download_url":"https://codeload.github.com/zephinzer/standupbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245858880,"owners_count":20684062,"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":[],"created_at":"2024-10-15T17:42:27.045Z","updated_at":"2025-03-27T14:17:01.340Z","avatar_url":"https://github.com/zephinzer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Standup Bot\n\nA simple bot to request for:\n\n1. What was done yesterday\n2. What is intended to be done today\n3. Any blockers to getting things done\n\n# Getting started\n\n## Setting up a Slack App\n\n1. Go to https://api.slack.com/apps\n   1. Click on **Create New App**\n   2. Select **From scratch**\n   3. Give your app a name\n   4. Select the workspace for the app to reside in\n   5. Note the app details:\n      1. App ID =\u003e `SLACK_APP_ID`\n      2. Client ID =\u003e `SLACK_CLIENT_ID`\n      3. Client Secret =\u003e `SLACK_CLIENT_SECRET`\n      4. Signing Secret =\u003e `SLACK_SIGNING_SECRET`\n2. Navigate to **App Home** from the left navigation menu\n   1. Scroll down to **Show Tabs**\n   2. Check the checkbox beside **Allow users to send Slash commands and messages from the messages tab**\n3. Navigate to **Event Subscriptions** from the left navigation menu\n   1. Toggle **Enable Events** so that it is enabled\n   2. Subscribe to the following events under **Subscribe to events on behalf of users**:\n      1. `message.im`\n4. Navigate to **OAuth \u0026 Permissions** from the left navigation menu\n   1. Scroll down to **Scopes**\n   2. Add the following **Bot Token Scopes**:\n      1. `chat:write`\n   3. Scroll up to **OAuth Tokens \u003e Workspace Installation**\n   4. Click on **Install to ${WORKSPACE}**\n5. You should be redirected to a page asking for permissions, hit **Allow**\n6. Save the **Bot User OAuth Token** =\u003e `SLACK_BOT_USER_OAUTH_TOKEN`\n7. Navigate to **Socket Mode** from the left navigation menu\n   1. Toggle Socket Mode so that it is enabled\n   2. In the popup modal, give the token a name, `dev` if you're using this for development\n   3. Save the generated token =\u003e `SLACK_BOT_SOCKET_TOKEN`\n\n## Running locally\n\n1. Ensure that the following environment variables are populated in your `.envrc`\n   1. `SLACK_APP_ID`\n   2. `SLACK_CLIENT_ID`\n   3. `SLACK_CLIENT_SECRET`\n   4. `SLACK_SIGNING_SECRET`\n   5. `SLACK_BOT_USER_OAUTH_TOKEN`\n   5. `SLACK_BOT_SOCKET_TOKEN`\n2. Run `go mod vendor` to bring in dependencies\n3. Run `direnv allow .` to allowlist the `.envrc` file\n4. Run `go run .` to start the bot\n\n# Feature Roadmap\n\n## V1\n\n### Functional requirements\n\n- [ ] Ask a user the 3 questions at a daily timing\n- [ ] Schedule for asking user the 3 questions is configurable by each user\n- [ ] Automatically post a user's response into a channel at a scheduled daily timing\n- [ ] Schedule for posting a user's response is configurable by each user\n- [ ] Channel to post a user's update to is configurable by each user\n- [ ] User can ask bot about mentions of a technology and be pointed to other users' standup notes\n\n### Non-functional requirements\n\n- [ ] Bot should be deployable on an EC2 instance with Docker Compose\n- [ ] Bot should be deployable in a Kubernetes cluster with a Helm chart\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzephinzer%2Fstandupbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzephinzer%2Fstandupbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzephinzer%2Fstandupbot/lists"}