From 1832a681026ac3db6e62aa90cb5ed75886ea69ac Mon Sep 17 00:00:00 2001
From: Patrick Kollitsch <davidsneighbourdev+gh@gmail.com>
Date: Sun, 27 Sep 2026 00:00:49 +0000
Subject: [PATCH] build(deps): onboard dnbhq configurations and linting fixes

---
 .github/scripts/posterboy.mjs |   63 +++++++++++++++++--------------
 1 files changed, 35 insertions(+), 28 deletions(-)

diff --git a/.github/scripts/posterboy.mjs b/.github/scripts/posterboy.mjs
index b55febd..a5f5808 100644
--- a/.github/scripts/posterboy.mjs
+++ b/.github/scripts/posterboy.mjs
@@ -1,14 +1,14 @@
-import { readFile, writeFile, access, mkdir } from 'node:fs/promises';
-import path from 'node:path';
-import fs from 'node:fs';
-import dotenv from 'dotenv';
-import { homedir } from 'node:os';
+import fs from "node:fs";
+import { access, mkdir, readFile, writeFile } from "node:fs/promises";
+import { homedir } from "node:os";
+import path from "node:path";
+import dotenv from "dotenv";
 
 const userHomeDir = homedir();
 
 // Load .env files
-const GLOBAL_ENV_PATH = path.join(userHomeDir, '.env');
-const LOCAL_ENV_PATH = path.resolve('.env');
+const GLOBAL_ENV_PATH = path.join(userHomeDir, ".env");
+const LOCAL_ENV_PATH = path.resolve(".env");
 
 /**
  * Load environment variables from a file if it exists.
@@ -28,13 +28,14 @@
 process.env = { ...globalEnv, ...process.env, ...localEnv };
 
 // Configurable values
-const DISCORD_WEBHOOK = process.env.DISCORD_WEBHOOK || '';
-const GITHUB_DEV_TOKEN = process.env.GITHUB_DEV_TOKEN || '';
-const GITHUB_REPO = process.env.GITHUB_REPO || 'gohugo-ananke/ananke';
-const DEFAULT_MESSAGE_TEMPLATE = 'New release: {{tag_name}} - {{html_url}}';
-const MESSAGE_TEMPLATE = process.env.MESSAGE_TEMPLATE || DEFAULT_MESSAGE_TEMPLATE;
-const CACHE_DIR = './cache';
-const CACHE_FILE = 'github-releases.json';
+const DISCORD_WEBHOOK = process.env.DISCORD_WEBHOOK || "";
+const GITHUB_DEV_TOKEN = process.env.GITHUB_DEV_TOKEN || "";
+const GITHUB_REPO = process.env.GITHUB_REPO || "gohugo-ananke/ananke";
+const DEFAULT_MESSAGE_TEMPLATE = "New release: {{tag_name}} - {{html_url}}";
+const MESSAGE_TEMPLATE =
+  process.env.MESSAGE_TEMPLATE || DEFAULT_MESSAGE_TEMPLATE;
+const CACHE_DIR = "./cache";
+const CACHE_FILE = "github-releases.json";
 const CACHE_FILE_PATH = path.join(CACHE_DIR, CACHE_FILE);
 
 /**
@@ -60,7 +61,7 @@
  */
 async function readCache() {
   try {
-    const data = await readFile(CACHE_FILE_PATH, 'utf8');
+    const data = await readFile(CACHE_FILE_PATH, "utf8");
     return JSON.parse(data) || [];
   } catch {
     return [];
@@ -81,11 +82,14 @@
  */
 async function fetchLatestRelease() {
   try {
-    const response = await fetch('https://api.github.com/repos/' + GITHUB_REPO + '/releases', {
-      headers: {
-        Authorization: `token ${GITHUB_DEV_TOKEN}`,
+    const response = await fetch(
+      "https://api.github.com/repos/" + GITHUB_REPO + "/releases",
+      {
+        headers: {
+          Authorization: `token ${GITHUB_DEV_TOKEN}`,
+        },
       },
-    });
+    );
 
     if (!response.ok) {
       throw new Error(`GitHub API request failed: ${response.statusText}`);
@@ -93,13 +97,13 @@
 
     const releases = await response.json();
     if (!Array.isArray(releases) || releases.length === 0) {
-      console.log('No releases found.');
+      console.log("No releases found.");
       return null;
     }
 
     return releases[0];
   } catch (err) {
-    console.error('Failed to fetch releases:', err.message);
+    console.error("Failed to fetch releases:", err.message);
     return null;
   }
 }
@@ -111,8 +115,8 @@
 async function postToDiscord(message) {
   try {
     const response = await fetch(DISCORD_WEBHOOK, {
-      method: 'POST',
-      headers: { 'Content-Type': 'application/json' },
+      method: "POST",
+      headers: { "Content-Type": "application/json" },
       body: JSON.stringify({ content: message }),
     });
 
@@ -120,9 +124,9 @@
       throw new Error(`Failed to post to Discord: ${response.statusText}`);
     }
 
-    console.log('Posted to Discord successfully.');
+    console.log("Posted to Discord successfully.");
   } catch (err) {
-    console.error('Failed to post to Discord:', err.message);
+    console.error("Failed to post to Discord:", err.message);
   }
 }
 
@@ -132,7 +136,10 @@
  * @returns {string}
  */
 function formatMessage(releaseData) {
-  return MESSAGE_TEMPLATE.replace(/{{\s*(\w+)\s*}}/g, (_, key) => releaseData[key] || '');
+  return MESSAGE_TEMPLATE.replace(
+    /{{\s*(\w+)\s*}}/g,
+    (_, key) => releaseData[key] || "",
+  );
 }
 
 /**
@@ -152,10 +159,10 @@
       cachedIds.push(latestRelease.tag_name);
       await writeCache(cachedIds);
     } else {
-      console.log('No new releases to post.');
+      console.log("No new releases to post.");
     }
   } catch (err) {
-    console.error('Error:', err.message);
+    console.error("Error:", err.message);
   }
 }
 

--
Gitblit v1.10.0