{"id":42906818,"url":"https://github.com/lacti/github-trending-slack-integration","last_synced_at":"2026-01-30T16:27:59.755Z","repository":{"id":38736485,"uuid":"177067019","full_name":"lacti/github-trending-slack-integration","owner":"lacti","description":"Report your favorite GitHub trending into your Slack","archived":false,"fork":false,"pushed_at":"2024-11-18T22:43:16.000Z","size":1251,"stargazers_count":4,"open_issues_count":2,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-18T23:40:29.485Z","etag":null,"topics":["serverless","slack","trending"],"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/lacti.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-03-22T03:44:31.000Z","updated_at":"2024-11-18T22:43:20.000Z","dependencies_parsed_at":"2024-06-18T03:29:16.860Z","dependency_job_id":"cc0cc7d6-ea94-45f8-b8a5-ea9dfe47ac87","html_url":"https://github.com/lacti/github-trending-slack-integration","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lacti/github-trending-slack-integration","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lacti%2Fgithub-trending-slack-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lacti%2Fgithub-trending-slack-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lacti%2Fgithub-trending-slack-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lacti%2Fgithub-trending-slack-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lacti","download_url":"https://codeload.github.com/lacti/github-trending-slack-integration/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lacti%2Fgithub-trending-slack-integration/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28915519,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T12:13:43.263Z","status":"ssl_error","status_checked_at":"2026-01-30T12:13:22.389Z","response_time":66,"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":["serverless","slack","trending"],"created_at":"2026-01-30T16:27:59.030Z","updated_at":"2026-01-30T16:27:59.748Z","avatar_url":"https://github.com/lacti.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub trending over Slack\n\nSend the GitHub trending of your favorite languages into your Slack channel!\n\n## Quick start\n\n```bash\nSLACK_HOOK_URL=\"https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX\" npx ts-node src/report.ts javascript today\n```\n\nYou should install [Incoming Webhooks](https://api.slack.com/incoming-webhooks) first to get a slack hook url.\n\nIf you can use [`envrc`](https://direnv.net/), please check an example file: `.envrc.example`.\n\n## Schedule\n\nAdd a new `schedule.json` file copied from `schedule.example.json` file to set that to `SCHEDULE` environment variable.\n\n```json\n{\n  \"dayOfWeek\": {\n    \"trendings\": [{ \"language\": \"language\", \"period\": \"period\" }],\n    \"owners\": [\"owner-name\"]\n  }\n}\n```\n\n`dayOfWeek` is a string and it is one of `mon`, `tue`, `wed`, `thu`, `fri`, `sat` and `sun`. For example, you can set like this if you want to receive the `c++ weekly` trend and `Microsoft`'s repositories that have changed over the past day in every Monday.\n\n```json\n{\n  \"mon\": {\n    \"trendings\": [{ \"language\": \"c++\", \"period\": \"weekly\" }],\n    \"owners\": [\"microsoft\"]\n  }\n}\n```\n\nOf course, you can use `all` of `dayOfWeek` to schedule something for all days.\n\n```json\n{\n  \"all\": {\n    \"trendings\": [{ \"language\": \"golang\", \"period\": \"weekly\" }],\n    \"owners\": [\"google\"]\n  }\n}\n```\n\nAnd then run a `scheduler.js` script with `SLACK_HOOK_URL`.\n\n```bash\nSLACK_HOOK_URL=\"https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX\" node scheduler.js\n```\n\n### AWS Lambda\n\nIf you don't think about a machine to run this script as a cron job, you can choose the AWS Lambda. It can run a lambda function periodically with CloudWatch's scheduler tick. I set to launch this function at every 10AM (KST) into `functions.reportToday.events.schedule` at `serverless.yml`.\n\nYou can deploy this into your lambda with your `AWS_PROFILE` environment variable by [`serverless`](https://serverless.com/).\n\n1. Check your AWS credentials, for example, `AWS_PROFILE` env.\n2. Install `serverless` with `npm` command.\n3. Check your `SLACK_HOOK_URL`, `SLACK_TRENDING_CHANNEL`, `SLACK_OWNER_CHANNEL` and `SCHEDULE` environment variables with referencing `.envrc.example` file and `schedule.example.json` file.\n4. Check the cron expression in `serverless.yml` file.\n5. `npm run deploy` to deploy.\n\nIt contains an API Gateway endpoint to call it manually, so you use `curl` to test it.\n\n```bash\ncurl -XPOST \"https://YOUR-APIID.execute-api.AWS-REGION.amazonaws.com/production/trending/LANGUAGE/PERIOD\"\ncurl -XPOST \"https://YOUR-APIID.execute-api.AWS-REGION.amazonaws.com/production/owner/LANGUAGE/PERIOD\"\n```\n\nOr, you can call all things in the schedule using this endpoint.\n\n```bash\ncurl -XPOST \"https://YOUR-APIID.execute-api.AWS-REGION.amazonaws.com/production/\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flacti%2Fgithub-trending-slack-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flacti%2Fgithub-trending-slack-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flacti%2Fgithub-trending-slack-integration/lists"}