Airbrake

Monitoring

Airbyte

Monitoring

Prometheus Alertmanager

Monitoring

Ansible Tower

Deployment

AppFollow

Customer support

AppVeyor

Continuous integration

Asana

Project management

Assembla

Version control

AzureDevOps

Version control

Basecamp

Project management

Beanstalk

Version control

Beeminder

Miscellaneous

BigBlueButton

Communication

Bitbucket

(Enterprise)

Version control

Bitbucket

Version control

Bitbucket Server

Version control

Bonusly

Human resources

Buildbot

Continuous integration

Thinkst Canarytokens

Monitoring

Capistrano

Deployment

Chartbeat

Marketing

CircleCI

Continuous integration

Clubhouse

Project management

Codebase

Version control

Codeship

Continuous integration

Crashlytics

Monitoring

Dark Sky

Miscellaneous

Delighted

Customer support

Desk.com

Customer support

Dialogflow

Customer support

Discourse

Communication

Dropbox

Productivity

Email

Communication

Errbit

Monitoring

Errbot

Integration frameworks

Flock

Customer support

Freshdesk

Customer support

Freshping

Monitoring

Freshstatus

Monitoring

Front

Customer support

GIPHY

Miscellaneous

Git

Version control

Gitea

Version control

GitHub

Version control

GitHub Actions

Continuous integration

GitHub Detail Bot

Version control

GitHub Sponsors

Financial

GitLab

Version control

GoCD

Continuous integration

Gogs

Version control

Google Calendar

Productivity

Google Translate

Miscellaneous

GoSquared

Marketing

Grafana

Monitoring

Greenhouse

Human resources

Groove

Customer support

Harbor

Deployment

HelloSign

Productivity

Hello World

Miscellaneous

Heroku

Deployment

Home Assistant

Miscellaneous

Hubot

Integration frameworks

IFTTT

Integration frameworks

Insping

Monitoring

Instagram

Miscellaneous

Intercom

Customer support

IRC

Communication

Jenkins

Continuous integration

Jira

Project management

Jira

(locally installed)

Project management

Jitsi Meet

Communication

Jotform

Miscellaneous

JSON formatter

Miscellaneous

Librato

Monitoring

Lidarr

Entertainment

Linear

Project management

Mailchimp

Communication

Mastodon

Communication

Matrix

Communication

Mention

Marketing

Mercurial (hg)

Version control

Nagios

Monitoring

Netlify

Continuous integration

New Relic

Monitoring

Notion

Productivity

Open Collective

Financial

OpenShift

Deployment

Opsgenie

Integration frameworks

PagerDuty

Monitoring

Papertrail

Monitoring

Patreon

Financial

Perforce

Version control

Phabricator

Version control

Pingdom

Monitoring

Pivotal Tracker

Project management

Puppet

Deployment

Radarr

Entertainment

Raygun

Monitoring

Redmine

Project management

Review Board

Version control

RhodeCode

Version control

RSS

Communication

Rundeck

Deployment

Semaphore

Continuous integration

Sentry

Monitoring

Slack

Communication

Slack-compatible webhook

Communication

SonarQube

Continuous integration

Sonarr

Entertainment

Splunk

Monitoring

Statuspage

Customer support

Stripe

Financial

Subversion

Version control

Taiga

Project management

Teamcity

Continuous integration

Thinkst

Monitoring

Trac

Project management

Transifex

Miscellaneous

Travis CI

Continuous integration

Trello

Project management

Twitter

Customer support

Updown

Monitoring

UptimeRobot

Monitoring

Wekan

Productivity

WordPress

Marketing

xkcd Bot

Interactive bots

YouTube

Miscellaneous

Zabbix

Monitoring

Zapier

Integration frameworks

Zendesk

Customer support

Zoom

Communication


Don't see an integration you need? We'd love to help.

Create your own or Request an integration
Back to list

Mercurial (hg)

Version control

Get Zulip notifications when you hg push!

  1. Create the channel you'd like to use for Mercurial (hg) notifications.

  2. Create a bot for Mercurial (hg). Make sure that you select Incoming webhook as the Bot type.

  3. Download and install our Python bindings and example scripts on the server where the Mercurial (hg) bot will live.

  4. Edit the hg/.hgrc configuration file for this default Mercurial repository and add the following sections, using the credentials for your Mercurial bot and setting the appropriate path to the integration hook if it installs in a different location on this system:

    [hooks]
    changegroup = python:zulip_changegroup.hook
    
    [zulip]
    email = "hg-bot@example.com"
    api_key = "0123456789abcdefg"
    stream = "commits"
    site = https://yourZulipDomain.zulipchat.com/api
    
  5. Add the directory where the zulip_changegroup.py script was installed to the environment variable PYTHONPATH. For example, if you installed the Zulip Python bindings at the system level, it'd be:

    export PYTHONPATH=/usr/local/share/zulip/integrations/hg:$PYTHONPATH
    

That’s all it takes for the basic setup! On the next hg push, you’ll get a Zulip update for the changeset.

More configuration options

The Mercurial integration also supports:

  • linking to changelog and revision URLs for your repository’s web UI
  • branch whitelists and blacklists

If you’ve set up your repository to be browsable via the web, add a web_url configuration option to the zulip section of your default .hg/hgrc to get changelog and revision links in your Zulip notifications:

[zulip]
email = "hg-bot@example.com"
api_key = "0123456789abcdefg"
stream = "commits"
web_url = "http://hg.example.com:8000/"
site = https://yourZulipDomain.zulipchat.com/api

Branch whitelists and blacklists

By default, this integration will send Zulip notifications for changegroup events for all branches. If you’d prefer to only receive Zulip notifications for specified branches, add a branches configuration option to the zulip section of your default .hg/hgrc, containing a comma-separated list of the branches that should produce notifications:

[zulip]
email = "hg-bot@example.com"
api_key = "0123456789abcdefg"
stream = "commits"
branches = "prod,default"

You can also exclude branches that you don’t want to cause notifications. To do so, add an ignore_branches configuration option to the zulip section of your default .hg/hgrc, containing a comma-separated list of the branches that should be ignored:

[zulip]
email = "hg-bot@example.com"
api_key = "0123456789abcdefg"
stream = "commits"
ignore_branches = "noisy,even-more-noisy"

When team members push new changesets with hg push, you’ll get a Zulip notification.

You're done! Your Mercurial (hg) notifications may look like this:

Mercurial bot message

Logos are trademarks of their respective owners. None of the integrations on this page are created by, affiliated with, or supported by the companies represented by the logos.