comparison mod_pubsub_github/mod_pubsub_github.lua @ 3514:8811b7dbe6e2

mod_pubsub_github: Add support for specifying an actor with less privileges
author Kim Alvefur <zash@zash.se>
date Sun, 31 Mar 2019 17:59:17 +0200
parents 9556e92b2ec4
children f756e051fa02
comparison
equal deleted inserted replaced
3513:9556e92b2ec4 3514:8811b7dbe6e2
4 local json = require "util.json"; 4 local json = require "util.json";
5 local hmac_sha1 = require "util.hashes".hmac_sha1; 5 local hmac_sha1 = require "util.hashes".hmac_sha1;
6 6
7 local pubsub_service = module:depends("pubsub").service; 7 local pubsub_service = module:depends("pubsub").service;
8 local node = module:get_option("github_node", "github"); 8 local node = module:get_option("github_node", "github");
9 local github_actor = module:get_option_string("github_actor") or true;
9 local secret = module:get_option("github_secret"); 10 local secret = module:get_option("github_secret");
10 11
11 local error_mapping = { 12 local error_mapping = {
12 ["forbidden"] = 403; 13 ["forbidden"] = 403;
13 ["item-not-found"] = 404; 14 ["item-not-found"] = 404;
33 module:log("debug", "Unsupported Github event %q", github_event); 34 module:log("debug", "Unsupported Github event %q", github_event);
34 return 501; 35 return 501;
35 end -- else .. is this even github? 36 end -- else .. is this even github?
36 37
37 for _, commit in ipairs(data.commits) do 38 for _, commit in ipairs(data.commits) do
38 local ok, err = pubsub_service:publish(node, true, data.repository.name, 39 local ok, err = pubsub_service:publish(node, github_actor, data.repository.name,
39 st.stanza("item", { id = data.repository.name, xmlns = "http://jabber.org/protocol/pubsub" }) 40 st.stanza("item", { id = data.repository.name, xmlns = "http://jabber.org/protocol/pubsub" })
40 :tag("entry", { xmlns = "http://www.w3.org/2005/Atom" }) 41 :tag("entry", { xmlns = "http://www.w3.org/2005/Atom" })
41 :tag("id"):text(commit.id):up() 42 :tag("id"):text(commit.id):up()
42 :tag("title"):text(commit.message):up() 43 :tag("title"):text(commit.message):up()
43 :tag("link", { rel = "alternate", href = commit.url }):up() 44 :tag("link", { rel = "alternate", href = commit.url }):up()