{"id":15658246,"url":"https://github.com/hairyhenderson/github-responder","last_synced_at":"2025-04-15T11:53:46.661Z","repository":{"id":33897252,"uuid":"160952657","full_name":"hairyhenderson/github-responder","owner":"hairyhenderson","description":"A library \u0026 CLI tool that automatically sets up GitHub WebHooks and listens for events, with automatic TLS","archived":false,"fork":false,"pushed_at":"2025-03-25T11:47:41.000Z","size":4413,"stargazers_count":21,"open_issues_count":8,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T19:45:11.363Z","etag":null,"topics":["cli","devops","github","github-webhooks","gitops","go","golang-library","hacktoberfest","letsencrypt","tls"],"latest_commit_sha":null,"homepage":"","language":"Go","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/hairyhenderson.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":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-12-08T15:34:04.000Z","updated_at":"2025-02-01T18:55:59.000Z","dependencies_parsed_at":"2023-02-17T22:10:35.433Z","dependency_job_id":"d466b063-dfbb-4ab5-8a22-6804aa422ade","html_url":"https://github.com/hairyhenderson/github-responder","commit_stats":{"total_commits":285,"total_committers":6,"mean_commits":47.5,"dds":"0.45614035087719296","last_synced_commit":"a9da4526c1d3a9455d6b09224a8785f822ef32f5"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hairyhenderson%2Fgithub-responder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hairyhenderson%2Fgithub-responder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hairyhenderson%2Fgithub-responder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hairyhenderson%2Fgithub-responder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hairyhenderson","download_url":"https://codeload.github.com/hairyhenderson/github-responder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249067759,"owners_count":21207395,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["cli","devops","github","github-webhooks","gitops","go","golang-library","hacktoberfest","letsencrypt","tls"],"created_at":"2024-10-03T13:11:34.998Z","updated_at":"2025-04-15T11:53:46.638Z","avatar_url":"https://github.com/hairyhenderson.png","language":"Go","readme":"# github-responder\n\n![Build](https://github.com/hairyhenderson/github-responder/workflows/Build/badge.svg)\n[![hairyhenderson/github-responder on DockerHub][dockerhub-image]][dockerhub-url]\n\nA library \u0026 CLI tool that automatically sets up GitHub WebHooks and listens for events, with automatic TLS provided by [certmagic][].\n\nFor example, if you want to run a command every time someone stars your repo (the `watch` event):\n\n```console\n$ github-responder --repo my/repo --domain myhost.example.com -e watch ./ring-the-bell.sh\n...\n```\n\nThis will do a bunch of things:\n1. Register a new Webhook at the named repo (`--repo`)\n2. Start a web server to serve webhook events\n3. Run the command `ring-the-bell.sh` every time a `watch` event is received\n\nA few more details:\n- github-responder is reasonably secure:\n  - the webhook server is automatically protected by TLS, configured with a free automatically-renewing certificate from [Let's Encrypt][]\n  - the webhook listens at a randomly-generated URL - all other traffic is rejected\n  - incoming events must be signed by a randomly-generated secret key - every event is verified\n- the command is provided with all event details:\n  - the event type is provided as the first flag on the command line\n  - the unique delivery ID is provided as the second flag on the command line (this can be used to de-duplicate events, which may be re-delivered in some cases)\n  - the event payload is sent to the command as standard input (in JSON format)\n- logs are output as structured JSON, or in a slightly easier-to-read format when run in an interactive terminal\n- github-responder can be used as a library in other Go programs\n\n\n## License\n\n[The MIT License](http://opensource.org/licenses/MIT)\n\nCopyright (c) 2018 Dave Henderson\n\n[dockerhub-image]: https://img.shields.io/badge/docker-ready-blue.svg\n[dockerhub-url]: https://hub.docker.com/r/hairyhenderson/github-responder\n\n[Let's Encrypt]: https://letsencrypt.org\n[certmagic]: https://github.com/caddyserver/certmagic\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhairyhenderson%2Fgithub-responder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhairyhenderson%2Fgithub-responder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhairyhenderson%2Fgithub-responder/lists"}