nullchat
nullchat copied to clipboard
ServiceAccounts
ServiceAccounts
Description
ServiceAccounts are accounts that the system runs on behalf on channel operators to enable bi-directional integration with external services.
An example with github:
I would like to notify the #project channel about new pushes to my github.com/user/project repo .
Given
- I request a Github Webhook callback URI for #project in nullchat
- I supply the URI to my github project's webhook
When
- I push to the project repository on github
Then
- A new message is posted to #project by the Github ServiceAccount containing a rich summary of the push

I would like everyone in the #bugs room to be able to easily log an issue ...@github new issue blah blah blah
Components
- ServiceAccounts
- Incoming Callback Routing
- Outbound Webhooks
- Tokenized URI Generation/Revocation
Candidates for First-Party Integrations
- Github
- Trello
- Mailgun
- (insert standarized IFTTT/Zapier payload format IFF it exists)
- Habitrpg
- Skype
I think pushes to master could be a good idea, pushes to private branches might get noisy. Notifying on pull requests created/issues created invites people to take action. I'm always in favor of actionable notifications. Is your vision just for decaprime/nullchat or to have the capability to create new rooms for other repos that users are interested in?
Having the ability to add Github integrations to a room, generate a URL to post to, and then consume any payloads from Github to those URLs (could be commit/push, PR, issue, etc. - set in the Github settings) would be really powerful.