[GH-ISSUE #202] Add Zulip integration #143

Closed
opened 2026-02-25 23:41:20 +03:00 by kerem · 6 comments
Owner

Originally created by @gingerjoos on GitHub (Nov 15, 2018).
Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/202

Integration with Zulip chat would be useful.

Originally created by @gingerjoos on GitHub (Nov 15, 2018). Original GitHub issue: https://github.com/healthchecks/healthchecks/issues/202 Integration with [Zulip](https://zulip.com/integrations/) chat would be useful.
kerem closed this issue 2026-02-25 23:41:20 +03:00
Author
Owner

@robx commented on GitHub (Mar 10, 2020):

I needed this too, right now. Managed to set it up manually with a webhook to the zulip message API:

request:
POST https://myserver.zulipchat.com/api/v1/messages

body:
type=stream&to=alerts&subject=$NAME%20status&content=status%20is%20$STATUS%20($NOW)

headers:
Authorization: Basic <basic auth for healthcheck-bot@zulipchat.com:bot-api-token>
Content-Type: application/x-www-form-urlencoded

That was a bit of a pain though, and the variable subsitution is unlikely to be robust.

(I couldn't tell whether the linked Apprise PR helps here.)

<!-- gh-comment-id:597057040 --> @robx commented on GitHub (Mar 10, 2020): I needed this too, right now. Managed to set it up manually with a webhook to the zulip message API: ``` request: POST https://myserver.zulipchat.com/api/v1/messages body: type=stream&to=alerts&subject=$NAME%20status&content=status%20is%20$STATUS%20($NOW) headers: Authorization: Basic <basic auth for healthcheck-bot@zulipchat.com:bot-api-token> Content-Type: application/x-www-form-urlencoded ``` That was a bit of a pain though, and the variable subsitution is unlikely to be robust. (I couldn't tell whether the linked Apprise PR helps here.)
Author
Owner

@cuu508 commented on GitHub (Mar 10, 2020):

The Apprise integration can be optionally enabled on self-hosted Healthchecks instances. It is not enabled on the hosted service (https://healthchecks.io).

I'm open to the idea of adding a Zulip integration. @robx thanks for posting the webhook sample – that's a good starting point for a dedicated integration. I'll experiment with it and see how it goes.

<!-- gh-comment-id:597070430 --> @cuu508 commented on GitHub (Mar 10, 2020): The Apprise integration can be optionally enabled on self-hosted Healthchecks instances. It is not enabled on the hosted service (https://healthchecks.io). I'm open to the idea of adding a Zulip integration. @robx thanks for posting the webhook sample – that's a good starting point for a dedicated integration. I'll experiment with it and see how it goes.
Author
Owner

@cuu508 commented on GitHub (Mar 11, 2020):

I've now implemented an experimental Zulip integration, and it is already deployed on https://healthchecks.io

@gingerjoos, @robx feel free to try it out when you get a chance. All feedback welcome!

<!-- gh-comment-id:597688541 --> @cuu508 commented on GitHub (Mar 11, 2020): I've now implemented an experimental Zulip integration, and it is already deployed on https://healthchecks.io @gingerjoos, @robx feel free to try it out when you get a chance. All feedback welcome!
Author
Owner

@JunaidLoonat commented on GitHub (Jan 16, 2021):

Thanks so much @cuu508 but, due to a subdomain mismatch, the current integration does not work correctly with ZulipChat-hosted instances.

As @robx detailed previously, the bot's email address domain is "@zulipchat.com" but the destination Zulip API would be at "myserver.zulipchat.com"

However, HC's current Zulip transport uses the email address to determine the destination Zulip API.

I guess the easiest solution would be to simply ask the user for their Zulip instance's FQDN.

<!-- gh-comment-id:761425599 --> @JunaidLoonat commented on GitHub (Jan 16, 2021): Thanks so much @cuu508 but, due to a subdomain mismatch, the current integration does not work correctly with ZulipChat-hosted instances. As @robx detailed previously, the bot's email address domain is "@zulipchat.com" but the destination Zulip API would be at "myserver.zulipchat.com" However, HC's current Zulip transport uses the email address to determine the destination Zulip API. I guess the easiest solution would be to simply ask the user for their Zulip instance's FQDN.
Author
Owner

@cuu508 commented on GitHub (Jan 19, 2021):

Thanks for letting me know, @JunaidLoonat !

I changed the "Add Zulip" form to ask for the zuliprc file. The zuliprc file contains all three of: bot's email address, API key, and the API endpoint URL.

Here's how the form looks now:

image

<!-- gh-comment-id:762714057 --> @cuu508 commented on GitHub (Jan 19, 2021): Thanks for letting me know, @JunaidLoonat ! I changed the "Add Zulip" form to ask for the `zuliprc` file. The zuliprc file contains all three of: bot's email address, API key, and the API endpoint URL. Here's how the form looks now: ![image](https://user-images.githubusercontent.com/661859/105013748-3fd4fc00-5a48-11eb-854e-54c45fcce3bc.png)
Author
Owner

@JunaidLoonat commented on GitHub (Jan 24, 2021):

Thanks again @cuu508! This time for the quick update!
I've removed my webhook (for Zulip) because I've confirmed that this new Zulip integration works 👍
Plus, I have no doubt that just using the zuliprc simplifies the process for all users.

<!-- gh-comment-id:766354675 --> @JunaidLoonat commented on GitHub (Jan 24, 2021): Thanks again @cuu508! This time for the quick update! I've removed my webhook (for Zulip) because I've confirmed that this new Zulip integration works :+1: Plus, I have no doubt that just using the `zuliprc` simplifies the process for all users.
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#143
No description provided.