Monitors bot documentation files on GitHub Pages and automatically sends changelog notifications to configured Discord channels when updates are detected.
A bot's HTML documentation page is modified and pushed to the GitHub Pages repository.
The bot polls for a trigger.json file every 3 seconds. When found, it reads the commit message and deletes the trigger.
MD5 hashes of all documentation files are computed and compared against stored hashes to detect which files changed.
Formatted embed messages with "About" buttons are sent to all configured changelog channels across servers.
Uses MD5 hashing to detect when documentation files change. Compares current file hashes against stored snapshots to identify updates.
Sends changelog notifications to multiple Discord servers simultaneously. Each server can configure its own changelog channel.
Includes the git commit message in notifications so users know what changed. Supports both single and multi-bot update embeds.
Each notification includes interactive "About" buttons that show bot details including description, tech stack, and documentation link.
Run with --seed flag to snapshot all current file hashes without sending notifications. Useful for initial setup.
When multiple documentation files change at once, they're batched into a single embed with inline fields and button rows.
The Changelog Bot is fully automated and does not use slash commands. Instead, it operates through CLI commands, file-based triggers, and interactive button components.
Starts the bot and begins polling for trigger files every 3 seconds.
trigger.json in the bot's root directory. When a trigger is found, it checks all 16 documentation files for changes and sends notifications.
Snapshots all current documentation file hashes without sending any Discord messages.
bots.json. It computes MD5 hashes for all documentation files and saves them to changelog_settings.json, then exits immediately.
Create this file in the bot's root directory to trigger a changelog check.
{"message": "Your commit message here"}message field (used as the changelog description), deletes the file, then checks all documentation files for changes. Typically created automatically by a Git post-push hook.
Displays detailed information about the updated bot.
Sent when one bot's documentation changes.
Sent when multiple bots' documentation changes in a single push.
| Key | Type | Description |
|---|---|---|
token |
String | Discord bot token |
clientId |
String | Discord application client ID |
| Key | Type | Description |
|---|---|---|
changelog_channels |
Object | Map of guild IDs to channel IDs where changelogs are posted |
file_hashes |
Object | Stored MD5 hashes for each bot's documentation file |
posted_hashes |
Object | Hashes of messages already posted (deduplication) |
alert_roles |
Object | Roles to ping when changelogs are posted (per guild) |
| Key | Type | Description |
|---|---|---|
name |
String | Display name of the bot |
filename |
String | HTML documentation filename (e.g. sports-bot.html) |
color |
String | Hex color for embed (e.g. 0x2ECC71) |
emoji |
String | Emoji used in embed titles and buttons |
description |
String | Short description shown in "About" embeds |
tech |
String | Tech stack shown in embed footer |
Run npm install in the changelog-bot directory to install discord.js v14.
Add your bot token and client ID to config.json. Add changelog channel IDs to changelog_settings.json.
Run npm run seed to snapshot current documentation hashes without sending notifications.
Run npm start to begin polling. Create a trigger.json file to trigger change detection.