Annotate

mod_pubsub_forgejo/test.lua @ 6310:30adcea825c3

mod_conversejs: Fix hostname set as default username (thanks roughnecks) In login mode, it seems jid is used as default value in the login field but it was only needed in anonymous mode.
author Kim Alvefur <zash@zash.se>
date Wed, 18 Jun 2025 14:28:38 +0200
parent 6203:131b8bfbefb4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6203
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
1 -- CLI script to ease templates writing
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
2 -- must be launched with `lua test.lua` after setting the following env vars,
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
3 -- (assuming prosody has been clone in ../../prosody-0.12)
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
4 -- LUA_CPATH=../../prosody-0.12/\?.so
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
5 -- LUA_PATH=../../prosody-0.12/\?.lua\;\?.lua
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
6 -- allow loading ".lib.lua" modules
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
7 local function loadlib(modulename)
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
8 local filename = modulename .. ".lib.lua"
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
9 local file = io.open(filename, "rb")
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
10 if file then
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
11 return load(file:read("a")), modulename
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
12 else
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
13 return filename .. " not found"
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
14 end
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
15 end
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
16
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
17 table.insert(package.searchers, loadlib)
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
18
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
19 local json = require "util.json"
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
20 local format = require "format"
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
21 local templates = require "templates"
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
22
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
23 local function read_json(fname)
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
24 local f = io.open(fname)
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
25 assert(f ~= nil, fname)
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
26 local data = json.decode(f:read("a"))
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
27 f:close()
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
28 return data
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
29 end
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
30
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
31 local function read_payload(dirname)
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
32 return read_json("./webhook-examples/" .. dirname .. "/content.json")
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
33 end
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
34
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
35 local function pprint(stanza) print(stanza:indent(1, " "):pretty_print()) end
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
36
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
37 pprint(format(read_payload("push"), templates.push))
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
38 pprint(format(read_payload("pull_request"), templates.pull_request))
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
39 -- pprint(format(read_payload("push_tag"), templates.push)) -- this is a push with 0 commits. It's ugly!
131b8bfbefb4 mod_pubsub_forgejo: new module for forgejo webhooks
nicoco <nicoco@nicoco.fr>
parents:
diff changeset
40 pprint(format(read_payload("release"), templates.release))