const crypto = require("crypto"); const https = require("https"); function createSignature(payload, secret) { return crypto .createHmac("sha256", secret) .update(payload) .digest("hex"); } async function sendRequest(url, payload, signature) { const parsedUrl = new URL(url); const options = { hostname: parsedUrl.hostname, path: parsedUrl.pathname + parsedUrl.search, method: "POST", headers: { "Content-Type": "application/json", "Content-Length": Buffer.byteLength(payload), "X-Signature": signature } }; return new Promise((resolve, reject) => { const req = https.request(options, (res) => { let data = ""; res.on("data", (chunk) => (data += chunk)); res.on("end", () => { console.log("Status:", res.statusCode); console.log("Response:", data); resolve(); }); }); req.on("error", reject); req.write(payload); req.end(); }); } async function run() { try { const url = process.env.INPUT_URL; const secret = process.env.INPUT_SECRET; const payload = process.env.INPUT_PAYLOAD const signature = createSignature(payload, secret); console.log("Sending webhook..."); await sendRequest(url, payload, signature); console.log("Done."); } catch (err) { console.error("Action failed:", err); process.exit(1); } } run();