{"id":18653100,"url":"https://github.com/sauravexodus/github-slack-pr-reminders","last_synced_at":"2026-04-25T21:32:12.971Z","repository":{"id":88147685,"uuid":"164403765","full_name":"sauravexodus/github-slack-pr-reminders","owner":"sauravexodus","description":"Slack PR reminders. Because we developers are lazy 😂","archived":false,"fork":false,"pushed_at":"2019-01-07T18:42:15.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-17T22:35:48.566Z","etag":null,"topics":["engineering-management","engineering-tools","github-api","graphql","jsonpath","productivity-booster","slack-api","slack-bot","typescript"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/sauravexodus.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":"2019-01-07T08:49:54.000Z","updated_at":"2019-01-07T18:42:16.000Z","dependencies_parsed_at":"2023-03-07T05:15:18.970Z","dependency_job_id":null,"html_url":"https://github.com/sauravexodus/github-slack-pr-reminders","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sauravexodus/github-slack-pr-reminders","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sauravexodus%2Fgithub-slack-pr-reminders","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sauravexodus%2Fgithub-slack-pr-reminders/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sauravexodus%2Fgithub-slack-pr-reminders/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sauravexodus%2Fgithub-slack-pr-reminders/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sauravexodus","download_url":"https://codeload.github.com/sauravexodus/github-slack-pr-reminders/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sauravexodus%2Fgithub-slack-pr-reminders/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32278249,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: 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":["engineering-management","engineering-tools","github-api","graphql","jsonpath","productivity-booster","slack-api","slack-bot","typescript"],"created_at":"2024-11-07T07:10:01.059Z","updated_at":"2026-04-25T21:32:12.965Z","avatar_url":"https://github.com/sauravexodus.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⚠️ Pull Request Reminders on Slack\n\n\u003cdiv style=\"display: flex; flex: 1; flex-direction: row;\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Platform-iOS%2012.1-brightgreen.svg?style=for-the-badge\u0026logo=appveyor\"/\u003e\n  \u003cimg style=\"margin-left: 8px;\" src=\"https://img.shields.io/badge/code%20helpers-1-yellow.svg?style=for-the-badge\u0026logo=appveyor\"/\u003e\n  \u003cimg style=\"margin-left: 8px;\" src=\"https://img.shields.io/badge/github%20api-v4-orange.svg?style=for-the-badge\u0026logo=appveyor\"/\u003e\n\u003c/div\u003e\n\n\n## 🗜 Requirements\n\n1. Create a slack bot and obtain the OAuth token. (e.g `xoxb-##################...####`)\n2. Github OAuth token\n3. Organization name\n\n## 🚦 Running the code\n\n1. Create a `channelMappings.json` file inside `channelMaps` folder.\n2. Run the build script: `npm run build:commonjs` \n3. Run the script: `SLACK_TOKEN='' GITHUB_TOKEN='' ORG_NAME='' node lib/index.js`\n\nTip: You can put this code into a `run.sh` file \n\n## 💻 How to use\n1. Put this code in a pubsub and trigger it from a cron service.\n2. Use this as a heroku worker with the heroku scheduler [plugin](https://elements.heroku.com/addons/scheduler). (Free but needs you add a credit card 🤷‍♂️)\n\n## Creating the mappings file\nMappings file is source of mapping between the github developer username and slack channel id.\n\nUse slack api to find out channel ids for your slack users.\n\n1. List down user ids: https://slack.com/api/users.list\n2. Get channel for each user: https://slack.com/api/conversations.open\n\n### More details\nhttps://api.slack.com/methods\n\n### Sample\n\n`channelMappings.json` should look something like:\n\n```\n{\n  \"johnnyblaze\": {\n    \"channelId\": \"DX12989821\"\n  }\n}\n```\n\n## Future implementation\n\n1. Convert this into a one click installable slack app.\n2. Figure out a way to exempt developers from reminders who have already shared a review.\n\n## 🍺 Contributing\n1. Fork the project.\n2. Clone it locally.\n3. Open a PR 🎉 targeting the source branch","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsauravexodus%2Fgithub-slack-pr-reminders","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsauravexodus%2Fgithub-slack-pr-reminders","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsauravexodus%2Fgithub-slack-pr-reminders/lists"}