GitHub Releases Watcher is a simple Node.js application that monitors specified GitHub repositories for new releases and sends email notifications when a new release is detected. It stores the latest release information in a local JSON file.
- Monitors multiple GitHub repositories for new releases.
- Sends email notifications for new releases.
- Stores the latest release information per repository in a local JSON file.
- Easy to configure via a YAML file.
- Pattern filtering: Configure regex patterns to filter which releases trigger notifications while still tracking all releases.
Before you begin, ensure you have the following installed:
-
Clone the repository:
git clone https://github.com/Double-oxygeN/github-releases-watcher.git cd github-releases-watcher -
Install dependencies:
pnpm install
-
Create your configuration file:
Copy the example configuration file and rename it to
config.yaml:cp config.example.yaml config.yaml
-
Edit
config.yaml:Open
config.yamlin your text editor and fill in the details.
You can configure repositories in two ways:
repos:
"owner/repository": {}repos:
"microsoft/vscode":
pattern: "^[A-Za-z]+ [0-9]+$" # Only releases like "January 2024"
"facebook/react":
pattern: "^[0-9]+\\.[0-9]+\\.[0-9]+" # Semantic versioning like "18.2.0 (June 14, 2022)"
"other/repo": {} # No pattern - all releases trigger notificationsPattern Behavior:
- When a
patternis specified, only releases whose titles match the regex pattern will trigger email notifications - All releases (matching or not) are still saved to the JSON file and logged
- If no
patternis specified, all releases trigger notifications - Use double backslashes (
\\) to escape regex special characters in YAML
Important
config.yaml is ignored by Git (via .gitignore) to prevent sensitive information (like email passwords) from being committed to your repository.
To run the application, use the following command:
pnpm run build && pnpm run startThis will:
- Read your
config.yaml. - Check for new releases for each configured repository.
- Send an email notification if a new release is found and matches the configured pattern (if any).
- Update the
data/releases.jsonfile with the latest release information (regardless of pattern matching). - Log any releases that don't match the pattern but were still tracked.
To build the TypeScript source code into JavaScript:
pnpm run buildTo check code style and potential errors:
pnpm run lintThis project is licensed under the Apache License, Version 2.0 - see the LICENSE file for details.