{"id":21820579,"url":"https://github.com/sue445/emoy_webhook","last_synced_at":"2026-04-08T05:03:02.928Z","repository":{"id":36074054,"uuid":"198000345","full_name":"sue445/emoy_webhook","owner":"sue445","description":"emoy webhook (Emoji notify webhook) notify when new emoji is add","archived":false,"fork":false,"pushed_at":"2026-04-03T04:32:21.000Z","size":1326,"stargazers_count":10,"open_issues_count":0,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-03T12:58:32.366Z","etag":null,"topics":["emoji","slack-webhook"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sue445.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-07-21T01:51:38.000Z","updated_at":"2026-04-03T04:32:26.000Z","dependencies_parsed_at":"2023-11-07T10:27:33.896Z","dependency_job_id":"13473a58-4562-4a57-847d-6fc181e95d00","html_url":"https://github.com/sue445/emoy_webhook","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/sue445/emoy_webhook","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sue445%2Femoy_webhook","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sue445%2Femoy_webhook/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sue445%2Femoy_webhook/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sue445%2Femoy_webhook/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sue445","download_url":"https://codeload.github.com/sue445/emoy_webhook/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sue445%2Femoy_webhook/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31540831,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["emoji","slack-webhook"],"created_at":"2024-11-27T16:37:47.185Z","updated_at":"2026-04-08T05:03:02.912Z","avatar_url":"https://github.com/sue445.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# emoy_webhook\nemoy webhook (**Emo**ji notif**y** webhook) notify when new emoji is add\n\n[![test](https://github.com/sue445/emoy_webhook/actions/workflows/test.yml/badge.svg)](https://github.com/sue445/emoy_webhook/actions/workflows/test.yml)\n[![docker-ghcr](https://github.com/sue445/emoy_webhook/actions/workflows/docker-ghcr.yml/badge.svg)](https://github.com/sue445/emoy_webhook/actions/workflows/docker-ghcr.yml)\n[![docker-gcp](https://github.com/sue445/emoy_webhook/actions/workflows/docker-gcp.yml/badge.svg)](https://github.com/sue445/emoy_webhook/actions/workflows/docker-gcp.yml)\n[![Maintainability](https://qlty.sh/gh/sue445/projects/emoy_webhook/maintainability.svg)](https://qlty.sh/gh/sue445/projects/emoy_webhook)\n[![Coverage Status](https://coveralls.io/repos/github/sue445/emoy_webhook/badge.svg?branch=main)](https://coveralls.io/github/sue445/emoy_webhook?branch=main)\n\n## Example\n![example](img/example.png)\n\n## Requirements\n* Slack app\n  * see [CREATE_SLACK_APP.md](CREATE_SLACK_APP.md)\n* Incoming webhook\n  * https://slack.com/apps/A0F7XDUAZ\n* redis (optional)\n\n## Getting started\n### Docker\nThis application is provided as a Docker image, so you can run it wherever you like.\n\n#### Images\n* [GitHub Container Registry](https://github.com/sue445/emoy_webhook/pkgs/container/emoy_webhook) **(Recommended)**\n  * `ghcr.io/sue445/emoy_webhook:latest`: Use latest version\n  * `ghcr.io/sue445/emoy_webhook:X.Y.Z`: Use specified version\n* [Google Artifact Registry](https://console.cloud.google.com/artifacts/docker/emoy-webhook/asia/emoy-webhook/app): If you want to run this app on [Cloud Run](https://cloud.google.com/run), use this image\n  * `asia-docker.pkg.dev/emoy-webhook/emoy-webhook/app:latest`: Use latest version\n  * `asia-docker.pkg.dev/emoy-webhook/emoy-webhook/app:X.Y.Z`: Use specified version\n  * `asia-docker.pkg.dev/emoy-webhook/emoy-webhook/app:edge`: The contents of the main branch are pushed to this tag\n\n#### Available environment variables\n* `SLACK_WEBHOOK_URL` **(Required)** : Incoming Webhook URL\n* `PUMA_THREADS_MIN` : Puma minimum threads count. default is `0`\n* `PUMA_THREADS_MAX` : Puma minimum threads count. default is `1` (to prevent duplicate posts to Slack)\n* `PUMA_WORKERS` : Puma workers count. default is `0` (to prevent duplicate posts to Slack)\n* `PUMA_PORT` : Puma port. default is `8080`\n* `DEBUG_LOGGING` : If `true` is set, debug logs are output\n* `SENTRY_DSN` : [Sentry](https://sentry.io) DSN. This variable is optional. If you want to use Sentry, please set DSN\n* `REDIS_URL` : Redis URLfor notification caching (e.g. `redis://path-to-redis:6379`). See following section for details\n* `FIRESTORE_COLLECTION` : Firestore collection name for notification caching (e.g. `emoy_webhook_cache`). See following section for details\n\n### Notification caching\nemoy_webhook has the following notification caching mechanism. These are optional, but it is recommended to set one of them\n\n#### Redis\nSet cache to Redis. If you use this, set `REDIS_URL` environment variable.\n\n#### Firestore\nSet cache to Firestore. If you use this, set `FIRESTORE_COLLECTION` environment variable.\n\nTo automatically delete the saved cache, please do the following.\n\n##### gcloud\n```bash\ngcloud firestore fields ttls update expires_at --collection-group=${FIRESTORE_COLLECTION} --enable-ttl --async\n```\n\nc.f. https://cloud.google.com/firestore/docs/ttl#gcloud\n\n##### Terraform\nSee. [examples/gcp_cloud_run_terraform/firestore.tf](examples/gcp_cloud_run_terraform/firestore.tf)\n\n### Heroku\nThis application was offered as a Heroku application, but [since Heroku is ending its free plan](https://blog.heroku.com/next-chapter), I have made it possible to run it outside of Heroku.\n\nSo this app can run outside of Heroku.\n\nIf you want to run this app on Heroku, browse [heroku branch](https://github.com/sue445/emoy_webhook/tree/heroku) and click \"Deploy to Heroku\" button.\n\n## Development\nRun at local\n\n```bash\ndocker compose up --build\n```\n\nSee http://localhost:8080\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsue445%2Femoy_webhook","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsue445%2Femoy_webhook","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsue445%2Femoy_webhook/lists"}