{"id":22829792,"url":"https://github.com/seatgeek/mailroom","last_synced_at":"2026-02-25T17:28:52.811Z","repository":{"id":264682644,"uuid":"893973761","full_name":"seatgeek/mailroom","owner":"seatgeek","description":"Framework for creating, routing, and delivering user notifications based on events from external systems","archived":false,"fork":false,"pushed_at":"2025-05-09T12:56:41.000Z","size":1474,"stargazers_count":544,"open_issues_count":3,"forks_count":18,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-05-11T21:11:22.802Z","etag":null,"topics":["golang","notifications","webhooks"],"latest_commit_sha":null,"homepage":"https://chairnerd.seatgeek.com/mailroom-notification-framework/","language":"Go","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/seatgeek.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-25T14:30:21.000Z","updated_at":"2025-05-09T16:37:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"ff58ffdd-7feb-4f49-8183-027f33d2dd2a","html_url":"https://github.com/seatgeek/mailroom","commit_stats":null,"previous_names":["seatgeek/mailroom"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seatgeek%2Fmailroom","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seatgeek%2Fmailroom/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seatgeek%2Fmailroom/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seatgeek%2Fmailroom/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seatgeek","download_url":"https://codeload.github.com/seatgeek/mailroom/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254436944,"owners_count":22070946,"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":["golang","notifications","webhooks"],"created_at":"2024-12-12T20:00:41.553Z","updated_at":"2026-02-25T17:28:52.805Z","avatar_url":"https://github.com/seatgeek.png","language":"Go","funding_links":[],"categories":["Go","golang"],"sub_categories":[],"readme":"# ![mailroom](./docs/mailroom.png)\n\n[![GitHub Release](https://img.shields.io/github/v/release/seatgeek/mailroom?style=flat-square)](https://github.com/seatgeek/mailroom/releases)\n[![Go Reference](https://pkg.go.dev/badge/github.com/seatgeek/mailroom.svg?style=flat-square)](https://pkg.go.dev/github.com/seatgeek/mailroom)\n[![go.mod](https://img.shields.io/github/go-mod/go-version/seatgeek/mailroom?style=flat-square)](go.mod)\n[![LICENSE](https://img.shields.io/github/license/seatgeek/mailroom?style=flat-square)](LICENSE)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/seatgeek/mailroom/tests.yml?branch=main\u0026style=flat-square)](https://github.com/seatgeek/mailroom/actions?query=workflow%3Atests+branch%3Amain)\n[![Go Report Card](https://goreportcard.com/badge/github.com/seatgeek/mailroom?style=flat-square)](https://goreportcard.com/report/github.com/seatgeek/mailroom)\n[![Codecov](https://img.shields.io/codecov/c/github/seatgeek/mailroom?style=flat-square)](https://codecov.io/gh/seatgeek/mailroom)\n\nMailroom is a framework that simplifies the creation, routing, and delivery of user notifications based on events from external systems.\n\n![Flow diagram](./docs/flow.png)\n\nMailroom is designed to be flexible and extensible, allowing you to easily add new event types and transports as your needs grow and evolve. Simply write code to transform incoming events into notifications, and Mailroom will take care of the rest, including:\n\n- Acting as the primary notification relay for incoming webhooks from external systems\n- Sending notifications to the appropriate users based on their preferences (e.g. PR reviews go to email, but build failures go to Slack)\n- Formatting notifications for different transports (e.g. email, Slack, etc.)\n- Matching usernames, emails, IDs, etc. across different systems\n- Logging, error handling, retries, and more\n\nSee [`internal/example.go`](./internal/example.go) for an example of how to use mailroom.\n\n## Documentation\n\n- [Getting Started](./docs/getting-started.md)\n- [Core Concepts](./docs/core-concepts.md)\n- [Integrations](./docs/integrations.md)\n\nAlso see the [GoDoc](https://pkg.go.dev/github.com/seatgeek/mailroom) for documentation.\n\n## Stability\n\nMailroom is currently in alpha. It works well in production, but the API may change at any time. We will do our best to note breaking changes in the release notes.\n\n## Contributing\n\nSee [CONTRIBUTING.md](./.github/CONTRIBUTING.md) for contribution guidelines.\n\nUse `make` to run all linters and tests locally.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseatgeek%2Fmailroom","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseatgeek%2Fmailroom","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseatgeek%2Fmailroom/lists"}