Diff

mod_pubsub_forgejo/test.lua @ 6203:131b8bfbefb4

mod_pubsub_forgejo: new module for forgejo webhooks
author nicoco <nicoco@nicoco.fr>
date Mon, 17 Feb 2025 23:28:05 +0100 (6 months ago)
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mod_pubsub_forgejo/test.lua	Mon Feb 17 23:28:05 2025 +0100
@@ -0,0 +1,40 @@
+-- CLI script to ease templates writing
+-- must be launched with `lua test.lua` after setting the following env vars,
+-- (assuming prosody has been clone in ../../prosody-0.12)
+-- LUA_CPATH=../../prosody-0.12/\?.so
+-- LUA_PATH=../../prosody-0.12/\?.lua\;\?.lua
+-- allow loading ".lib.lua" modules
+local function loadlib(modulename)
+	local filename = modulename .. ".lib.lua"
+	local file = io.open(filename, "rb")
+	if file then
+		return load(file:read("a")), modulename
+	else
+		return filename .. " not found"
+	end
+end
+
+table.insert(package.searchers, loadlib)
+
+local json = require "util.json"
+local format = require "format"
+local templates = require "templates"
+
+local function read_json(fname)
+	local f = io.open(fname)
+	assert(f ~= nil, fname)
+	local data = json.decode(f:read("a"))
+	f:close()
+	return data
+end
+
+local function read_payload(dirname)
+	return read_json("./webhook-examples/" .. dirname .. "/content.json")
+end
+
+local function pprint(stanza) print(stanza:indent(1, "  "):pretty_print()) end
+
+pprint(format(read_payload("push"), templates.push))
+pprint(format(read_payload("pull_request"), templates.pull_request))
+-- pprint(format(read_payload("push_tag"), templates.push))  -- this is a push with 0 commits. It's ugly!
+pprint(format(read_payload("release"), templates.release))