view mod_pubsub_github/README.markdown @ 4282:281a864e7472

mod_pubsub_feeds: Don't skip publishing items after an existing one I encountered a feed which was backwards, such that older entries were considered first and then it would skip newer entries. This may however run into trouble if the feed contains more items than what's persisted in pubsub.
author Kim Alvefur <zash@zash.se>
date Mon, 30 Nov 2020 15:17:29 +0100
parents 1fcf3cb7bb50
children
line wrap: on
line source

---
labels:
- 'Stage-Beta'
summary: Publish Github commits over pubsub
---

## Introduction

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.

## Configuration

Load the module on a pubsub component:

``` {.lua}
Component "pubsub.example.com" "pubsub"
    modules_enabled = { "pubsub_github" }
    github_secret = "NP7bZooYSLKze96TQMpFW5ov"
```

The URL for Github to post to would be either:

-   `http://pubsub.example.com:5280/pubsub_github`
-   `https://pubsub.example.com:5281/pubsub_github`

The module also takes the following config options:

  Name                    Default             Description
  ----------------------- ------------------- ------------------------------------------------------------
  `github_node`           `"github"`{.lua}    The pubsub node to publish commits on.
  `github_secret`         **Required**        Shared secret used to sign HTTP requests.
  `github_node_prefix`    `"github/"`{.lua}
  `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

``` {.lua}
Component "pubsub.example.com" "pubsub"
    modules_enabled = { "pubsub_github" }
    github_actor = "github.com"
    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](https://prosody.im/doc/http#virtual_hosts).

## Compatibility

  ------ -------------
  0.10   Should work
  0.9    Works
  ------ -------------