This module accepts Github web hooks and publishes them to a local pubsub component for XMPP clients to subscribe to.

Entries are pushed as Atom payloads.

It may also work with Gitlab.


Load the module on a pubsub component:

Component "" "pubsub"
    modules_enabled = { "pubsub_github" }
    github_secret = "NP7bZooYSLKze96TQMpFW5ov"

The URL for Github to post to would be either:

The module also takes the following config options:

Name Default Description
github_node "github" The pubsub node to publish commits on.
github_secret Required Shared secret used to sign HTTP requests.
github_node_prefix "github/"
github_node_mapping not set Field in repository object to use as node instead of github_node
github_actor superuser Which actor to do the publish as (used for access control)

More advanced example

Component "" "pubsub"
    modules_enabled = { "pubsub_github" }
    github_actor = ""
    github_node_mapping = "name" --> github_node_prefix .. "repo"
    -- github_node_mapping = "full_name" --> github_node_prefix .. "owner/repo"
    github_secret = "sekr1t"

If your HTTP host doesn’t match the pubsub component’s address, you will need to inform Prosody. For more info see Prosody’s HTTP server documentation.


0.10 Should work
0.9 Works


With the plugin installer in Prosody 0.12 you can use:

sudo prosodyctl install --server= mod_pubsub_github

For earlier versions see the documentation for installing 3rd party modules