[GH-ISSUE #674] Twist #484

Open
opened 2026-02-25 23:42:38 +03:00 by kerem · 1 comment
Owner

Originally created by @frank-embleton on GitHub (Jul 11, 2022).
Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/674

We use Twist for in-company communication, it would be great if there was an integration.

As a workaround we can email to a thread, but it tends to attach the message instead of displaying it inline.

If there are some examples/guides on building an integration I can probably take a look at it too.

Originally created by @frank-embleton on GitHub (Jul 11, 2022). Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/674 We use [Twist ](https://twist.com/) for in-company communication, it would be great if there was an integration. As a workaround we can email to a thread, but it tends to attach the message instead of displaying it inline. If there are some examples/guides on building an integration I can probably take a look at it too.
Author
Owner

@cuu508 commented on GitHub (Aug 23, 2022):

Hi Frank,

You can pick an existing integration as a starting point for the new integration.

Looking at Twist documentation, looks like it supports OAuth2 flow to get access tokens, and has an Add Thread API call for creating threads.

A similar existing integration is Pushbullet, you could pick it and replicate everything what it's doing. From the top of my head, the pieces that each integration needs, are:

  • a new class in /hc/api/transports.py
  • a new notification template in /templates/integrations/
  • testcases for the new transport class in /hc/api/tests/test_notify_<kind>.py
  • update CHANNEL_KINDS in /hc/api/models.py
  • update Channel.transport() in /hc/api/models.py
  • create a view for provisioning the new integration in /hc/front/views.py
  • a HTML template for the new view in /templates/front/add_<kind>.py, and any supporting illustrations in /static/img/integrations/
  • add a route for the new view in /hc/front/urls.py
  • testcases for the new view in /hc/font/tests/test_add_<kind>.py
  • update /templates/front/channels.html (add a new section in the list of available integrations, make sure an existing integration is displayed nicely)
  • update /templates/front/event_summary to make sure notifications sent to the new integration are displayed nicely
  • add a logo in /static/img/integrations/
  • update the icon font (it's a little tricky to do, I can take care of that)
  • update CHANGELOG.md
<!-- gh-comment-id:1223894308 --> @cuu508 commented on GitHub (Aug 23, 2022): Hi Frank, You can pick an existing integration as a starting point for the new integration. Looking at Twist documentation, looks like it supports [OAuth2 flow](https://developer.twist.com/v3/#oauth-2) to get access tokens, and has an [Add Thread](https://developer.twist.com/v3/#add-thread) API call for creating threads. A similar existing integration is Pushbullet, you could pick it and replicate everything what it's doing. From the top of my head, the pieces that each integration needs, are: * a new class in `/hc/api/transports.py` * a new notification template in `/templates/integrations/` * testcases for the new transport class in `/hc/api/tests/test_notify_<kind>.py` * update `CHANNEL_KINDS` in `/hc/api/models.py` * update `Channel.transport()` in `/hc/api/models.py` * create a view for provisioning the new integration in `/hc/front/views.py` * a HTML template for the new view in `/templates/front/add_<kind>.py`, and any supporting illustrations in `/static/img/integrations/` * add a route for the new view in `/hc/front/urls.py` * testcases for the new view in `/hc/font/tests/test_add_<kind>.py` * update `/templates/front/channels.html` (add a new section in the list of available integrations, make sure an existing integration is displayed nicely) * update `/templates/front/event_summary` to make sure notifications sent to the new integration are displayed nicely * add a logo in `/static/img/integrations/` * update the icon font (it's a little tricky to do, I can take care of that) * update `CHANGELOG.md`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/healthchecks#484
No description provided.