{"id":15506904,"url":"https://github.com/gaishimo/github-participating-notifications","last_synced_at":"2026-04-16T10:01:52.623Z","repository":{"id":69738635,"uuid":"83118278","full_name":"gaishimo/github-participating-notifications","owner":"gaishimo","description":null,"archived":false,"fork":false,"pushed_at":"2018-08-07T00:28:50.000Z","size":82,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-17T22:43:25.035Z","etag":null,"topics":["babel","claudiajs","dynamodb","flowtype","github","lambda","nodejs"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/gaishimo.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-25T08:32:35.000Z","updated_at":"2017-06-29T14:09:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"ffc86781-e073-436d-ae86-f333c7a07068","html_url":"https://github.com/gaishimo/github-participating-notifications","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gaishimo/github-participating-notifications","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaishimo%2Fgithub-participating-notifications","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaishimo%2Fgithub-participating-notifications/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaishimo%2Fgithub-participating-notifications/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaishimo%2Fgithub-participating-notifications/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gaishimo","download_url":"https://codeload.github.com/gaishimo/github-participating-notifications/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gaishimo%2Fgithub-participating-notifications/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31880882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T09:23:21.276Z","status":"ssl_error","status_checked_at":"2026-04-16T09:23:15.028Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["babel","claudiajs","dynamodb","flowtype","github","lambda","nodejs"],"created_at":"2024-10-02T09:29:17.852Z","updated_at":"2026-04-16T10:01:52.608Z","avatar_url":"https://github.com/gaishimo.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"github-participating-notifications\n====\n\nThis is a lambda tool :hammer: that sends github participating notifications to your slack channel 🔉.\n\n## Description\n\nHave you ever wanted to receive only github notifications that relate to you? This tool sends only your participating notifications to your slack channel. By using this, you can gather your related notifications from various projects into one channel and react to them immediately.\n\nThis code is assumed to run on AWS Lambda and you can easily deploy by Claudia.js.\n\n\n## Slack message format\n\nexample:\n\u003cimg src=\"./images/slack_message_format.png\"\u003e\n\n## Setup\n\n### Install and configure Claudia.js\n\nYou need an AWS Account (IAM Profile) and Claudia.js.\nPlease see [Installing and configuring Claudia.js](https://claudiajs.com/tutorials/installing.html).\n\n\n### Prepare env.json\n\nYou need to set the Slack WebHook URL and github personal access token in env.json.\nThe access token should have scopes of 'repo' and 'notifications'.\n\n```\ncat \u003c\u003c-EOS \u003e .env.json\n{\n  \"GITHUB_TOKEN\": \"\u003cyour Github personal access token\u003e\",\n  \"SLACK_WEBHOOK_URL\": \"\u003cyour Slack WebHook url\u003e\"\n}\nEOS\n```\n\n### Create a DynamoDB table\n\nThis tool uses a DynamoDB table to save notifications to remember which notifications are already sent.\n\nYou can create it by [AWS CLI](https://github.com/aws/aws-cli) command.\n```\naws dynamodb create-table \\\n  --table-name github_notifications \\\n  --attribute-definitions AttributeName=id,AttributeType=N AttributeName=at,AttributeType=S \\\n  --key-schema AttributeName=id,KeyType=HASH AttributeName=at,KeyType=RANGE \\\n  --provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 \\\n  --query TableDescription.TableArn --output text\n```\n\nThe table name is `github_notifications`.\n\n### Deploy\n\nDeploy lambda function.\n\nThe default region is ap-northeast-1. If you want to change, please change the `--region` option in `create` script in package.json.\n\n```package.json\n{\n  ...\n  \"scripts\": {\n    \"create\": \"npm test \u0026\u0026 npm run transpile \u0026\u0026 claudia create --name github-participating-notifications --handler bin/lambda.handler --region us-east-1 --set-env-from-json env.json --policies policies --timeout 10\",\n  },\n  ...\n```\n\nDeploy (create)\n\n```\nnpm install\nnpm run create\n```\n\n### Test\n\n```bash\nclaudia test-lambda --event event.json\n```\n\n\n\n### Scheduling\n\nYou can run this lambda function regularly by following command.\nPlease change the interval by modifying `--schedule option`.\n\n```\nclaudia add-scheduled-event \\\n  --name simple-lambda-scheduled-event \\\n  --event event.json \\\n  --schedule 'rate(5 minutes)'\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaishimo%2Fgithub-participating-notifications","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgaishimo%2Fgithub-participating-notifications","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaishimo%2Fgithub-participating-notifications/lists"}