Set statuses onto any service from anywhere!
This Version | - |
Next Version | 0.1.0 |
- Getting Started
- Inspiration
- Design Goals
- Configuration File
- Writing your own Status sources
- Writing your own Status receivers
- Roadmap
Install status using go get
:
go get github.com/carlosonunez/status@v1.0.0
Then start status
with a configuration file describing the events to listen to
and how to turn them into statuses:
status -f /path/to/status.yaml
I generally have lots of things going on, but I hate leaving people waiting on me without telling them why. I'm also incredibly lazy and hate setting status messages on 80 billion Slack workspaces, Teams tenants, social media accounts, and such.
I built Slack Status Bot as a rudimentary approach to posting Slack status messages from TripIt (since I travelled all the time when I wrote it). Since this was pinned to a single Slack tenant, this obviously didn't scale.
I wanted something that would let me set statuses onto any platform from any source with as little code as possible. This is that thing!
- Create status messages from events created by any registered source,
- Allow arbitrary, destination-aware transformations to statuses,
- Post status messages onto any destination regardless of the "language" they speak (HTTP, gRPC, WebSockets, SOAP, etc.)
- Be UNIX-y (be good at reading, transforming, and sending statuses; let each source and receiver handle things like authentication, client construction, etc.)
See the reference to learn how to configure Status.
⚠️ This section is still a work in progress.
⚠️ This section is still a work in progress.
- Create an issue describing the problem that you're looking to solve or feature you're looking to implement.
- Fork this repository
- If you're implementing a new feature, add an end-to-end test describing how its supposed to work and not work.
- Make sure that tests are passing with
make test
- Create a pull request and link it to the issue that you created!
- Pluggable abstract pub-sub implementation, configurable from a config file
- Pluggable receivers
- Acting on statuses sent to receives through pub-sub
- Transformer interface
- Transforming event messages into statuses through transformers
- Pluggable sources
- Sending events to pub/sub from sources
- Rendering configs from YAML
- In-Memory PubSub
- TripIt
- Google Calendar
- Slack
- AWS SNS + SQS