{"id":17062205,"url":"https://github.com/chromakode/dogpack","last_synced_at":"2026-01-19T11:32:44.083Z","repository":{"id":22408683,"uuid":"96165495","full_name":"chromakode/dogpack","owner":"chromakode","description":"A Twitter bot for managing DogpatchJS","archived":false,"fork":false,"pushed_at":"2023-01-23T18:27:25.000Z","size":229,"stargazers_count":0,"open_issues_count":5,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-11T00:22:49.972Z","etag":null,"topics":["bot","google-cloud-functions","meetup","over-engineering","twitter","webhook"],"latest_commit_sha":null,"homepage":"http://dogpatchjs.com/","language":"JavaScript","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/chromakode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-04T02:03:59.000Z","updated_at":"2020-06-08T00:17:37.000Z","dependencies_parsed_at":"2023-02-13T02:01:52.483Z","dependency_job_id":null,"html_url":"https://github.com/chromakode/dogpack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/chromakode/dogpack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromakode%2Fdogpack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromakode%2Fdogpack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromakode%2Fdogpack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromakode%2Fdogpack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chromakode","download_url":"https://codeload.github.com/chromakode/dogpack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromakode%2Fdogpack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28566440,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-19T08:53:44.001Z","status":"ssl_error","status_checked_at":"2026-01-19T08:52:40.245Z","response_time":67,"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":["bot","google-cloud-functions","meetup","over-engineering","twitter","webhook"],"created_at":"2024-10-14T10:49:27.864Z","updated_at":"2026-01-19T11:32:44.068Z","avatar_url":"https://github.com/chromakode.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![a Google-owned dog pack](https://media.giphy.com/media/LIeTjBAxz1npe/giphy-tumblr.gif)\n\n# Dogpack\n\nDogpack is a Twitter bot which automates announcing and confirming meetups of [DogpatchJS](http://dogpatchjs.com/). It will:\n\n * Tweet announcing DogpatchJS the morning of the meetup\n * Tweet a reminder the day before the meetup\n * Accept RSVPs in the form of DMs containing emoji\n * Tweet a confirmation or cancellation of the event depending on how many RSVPs are received\n \n## Setup\n\nDogpack is hosted on [AWS Lambda](https://aws.amazon.com/lambda/). To set up your own Dogpack:\n\n1. Install dependencies: `NPM_CONFIG_CHROMIUM_CHANNEL=dev PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 npm i`\n1. Create a [new account on AWS](https://aws.amazon.com/)\n   1. [Create a new user with \"AdministratorAccess\" privileges](https://serverless.com/framework/docs/providers/aws/guide/plugins#creating-aws-access-keys).\n   1. Save Amazon credentials `npx serverless config credentials --provider aws --key KEY --secret SECRET --profile dogpackProd`.\n1. Create a [new Twitter app key](https://apps.twitter.com/app/new), setting callback URL to http://localhost:3000/callback.\n1. Copy `messages.json.sample` to `messages.json`, and customize with your meetup details.\n    \n1. Authenticate with Twitter:\n   1. Run `node ./scripts/setupTwitter.js CONSUMER_KEY CONSUMER_SECRET \u003e ../dogpack-keys.prod.json` and open http://localhost:3000 in a web browser.\n   1. Click the link and authorize your Twitter app.\n\n1. Deploy: `npx serverless --stage prod deploy`\n   1. Note the HTTPs endpoint URL for your webhook in the output. It might be of the form: `https://xxx.execute-api.us-east-1.amazonaws.com/dev/hook-xxx`. Use this in the following step.\n\n1. Set up Twitter's DM Webhook: run `./scripts/setupWebhook.js ../dogpack-keys.prod.json https://your-webhook-https-url`\n\n   You should now have a functioning bot! Test it out by triggering the \"postEvent\" and \"postRSVPs\" functions via `npx serverless --stage prod invoke -f your-function-name -l`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchromakode%2Fdogpack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchromakode%2Fdogpack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchromakode%2Fdogpack/lists"}