Releases · misiektoja/github_monitor · GitHub
Skip to content

Releases: misiektoja/github_monitor

v2.8

Choose a tag to compare

@misiektoja misiektoja released this 22 Sep 01:31
d4c6f25

Version 2.8 caps how much of a large push a single notification reports and gives every monitoring failure unified subject and body across email and webhook, followed by a recovery alert when monitoring resumes. Network failures now link to a new Connection Problems page section. Alert delivery messages stay within the correct check report and alert channels that still use placeholder configuration values are shown as not configured.

Features and improvements:

  • NEW: Push event commit limits - A push with hundreds of commits no longer spends one API request per commit and no longer fills the notification. PUSH_COMMITS_LIMIT (default 10, also --push-commits-limit) sets how many commits of one push are reported with their date, author URL, statistics and changed files. PUSH_COMMITS_ORDER picks which end of the push keeps them, newest by default. The remaining commits are replaced by one line naming how many were left out, or listed one line each with their SHA, author and first message line by setting PUSH_COMMITS_OVERFLOW = 'summary'. PUSH_FILES_LIMIT (default 20, also --push-files-limit) caps the changed files listed per commit. Set either limit to 0 to report everything in full.
  • IMPROVE: Every profile change is sent as HTML - The alerts about a changed blog URL, an updated account, a profile visibility switch and a block now carry an HTML part like the other alerts
  • IMPROVE: Failure alerts share one shape - Every monitoring failure email and webhook uses the subject GitHub Monitor error: <what went wrong> (user: <username>) and lists the fix, the guide link, how many checks failed in a row, since when and when the next retry happens. A recovery alert follows on the channels that received the failure alert once monitoring resumes. -e / --no-error-notify and --no-webhook-error-notify switch both off

Bug fixes:

  • BUGFIX: An unset profile value reads the same in both email parts - A bio, location, name, company, email or blog URL that was not set printed None in the plain text part while the HTML part left the line empty. Both parts now say the same thing
  • BUGFIX: Network failures point at the right page - A timed-out or unreachable GitHub request ended with a Guide: now link to the new Connection Problems section, which explains the automatic retries and what to check if the failure continues.
  • BUGFIX: A failed visibility check no longer ends the run - The profile visibility lookup only handled GitHub API errors, so a timed-out or blocked connection ended the monitoring run with a traceback. The lookup now survives any failure and reports that it could not answer
  • BUGFIX: Reported changes name the window they were observed in - The Check interval: line under a change always showed the configured polling interval and a date range built from it, so a change found after a failed check was reported over a window the tool had not been watching. It now measures from the previous successful check, which is the configured interval while checks run on schedule
  • BUGFIX: Alert deliveries stay inside their report - The hourly Monitoring degraded reminder closed its report before the error alert was sent, so Sending email notification to ... and its webhook equivalent landed under the separator and started a second, headless block. The reminder now closes below its delivery lines, keeping one check's report in one block
  • BUGFIX: Unset alert channels are reported as unset - The verbose startup summary read the values the sample configuration ships as a real destination, so a run that had never been given a mail server printed Email transport: your_smtp_server_ssl:587, a recipient of your_receiver_email and a webhook provider of Discord. Those rows now read Not configured and the channel rollup above them reads Off (not configured) rather than naming alert types nothing could deliver

v2.7

Choose a tag to compare

@misiektoja misiektoja released this 18 Sep 02:12
8a21b9b

Version 2.7 adds guided setup, a read-only Doctor preflight check and private SMTP password entry. Coloured output, startup summaries and verbose/debug modes make monitoring easier to follow. It improves contribution and repository-closure alerts, preserves history during failed checks and protects configuration and credentials. Documentation is searchable and release downloads can be verified.

Features and improvements:

  • NEW: Guided setup - --setup wizard collects the target, intervals, credentials, notifications and output files. Review or edit answers before saving and confirm replacements. Reruns preserve saved settings and move retained credentials to the private dotenv file. Save the target to start without arguments
  • NEW: Doctor preflight check - --doctor checks configuration, GitHub access, monitoring feeds, notifications and output destinations with suggested fixes. It writes no files and sends test notifications only after confirmation
  • NEW: Private SMTP password setup - --set-smtp-password takes a hidden password and checks it with the mail server before saving. Guided setup also checks email credentials without sending a message
  • NEW: Clearer output and diagnostics - Coloured output and a short startup summary show the active settings. --verbose adds operational updates and --debug adds technical traces. Secrets are redacted and logs retain the full summary. Customize colours with COLOR_THEME or disable them with --no-color. Copy the updated grc/conf.monitor_logs to ~/.grc/ to use the live terminal colours in saved logs
  • IMPROVE: Discord alerts match the email - Discord now receives the same emphasis as the HTML email, with bold values and clickable links instead of plain text. ntfy keeps the plain body, since it would show the markers literally
  • IMPROVE: Clearer errors and recovery - Failures include repair guidance, periodic outage reminders and recovery notices. Liveness messages follow elapsed time and now default to 24 hours
  • IMPROVE: Removal context - Removal alerts distinguish unavailable accounts and repositories. Repositories that stop resolving are described as inaccessible because they may be private or no longer accessible to the token
  • IMPROVE: Updated dependencies - Requires requests >= 2.33.0, urllib3 >= 2.7.0 and python-dotenv >= 1.2.2. Update older dependency pins before upgrading
  • IMPROVE: Notification output - Subjects omit program-name prefixes. Set DELIVERY_CONFIRMATIONS = False to hide delivery confirmations while keeping verbose diagnostics
  • IMPROVE: Documentation and verifiable downloads - A searchable guide covers setup, usage and troubleshooting. Releases include checksums and signed build attestations

Bug fixes:

  • BUGFIX: Verified repository closures - Missing issues, pull requests and discussions require confirmation before closure alerts, using at most five extra requests per check across all repositories. Unverified items remain saved for later checks. Set VERIFY_REPOSITORY_CLOSURES = False to restore disappearance-based alerts
  • BUGFIX: Reliable contributions and feed recovery - Corrected daily boundaries prevent false contribution changes. Unavailable feeds and repository details retain their snapshots and retry without stopping monitoring
  • BUGFIX: Safer configuration loading - Configuration files are read as settings instead of executed as Python. Plain values and references to other settings still work. Replace imports, function calls and calculations with plain settings
  • BUGFIX: Safer configuration and secret updates - --generate-config FILE confirms replacement and creates a backup. Non-interactive replacement requires --force. Shell redirection with > bypasses these protections. Exported secrets work without a dotenv file. Command-line credentials and nonempty startup exports retain priority after SIGHUP. Change those values and restart to replace them. Reloads apply changed or removed file-owned secrets
  • BUGFIX: Safer alerts and connections - Webhook retries keep their original destination and credentials. Discord templates cannot enable mentions and invalid templates are rejected before delivery. Error messages redact credentials, including SMTP rejection replies. Webhooks refuse redirects. VERIFY_SSL now covers email and other outbound connections. Emails accepted by the mail server no longer become false failures if closing the connection fails, avoiding duplicate retries
  • BUGFIX: Reliable startup and captured output - Invalid settings name what to fix, configured connectivity and screen settings apply and redirected output avoids terminal-clearing errors

Smaller fixes and development changes are listed in the full change history.

v2.6.3

Choose a tag to compare

@misiektoja misiektoja released this 04 Aug 01:42
8401793

Bug fixes:

  • BUGFIX: Fixed indentation of ASCII log separators in summary screen

v2.6.2

Choose a tag to compare

@misiektoja misiektoja released this 04 Aug 00:31
93ff2ea

Version 2.6.2 makes HTML notifications easier to navigate, improves timezone recovery and adds portable log separators.

Features and improvements:

  • IMPROVE: Clickable GitHub mentions - Plain @username mentions in HTML notifications now link to the user's GitHub profile
  • IMPROVE: Clear timezone recovery - When automatic detection fails, the startup error now identifies the optional tzlocal dependency, shows how to install it and explains that LOCAL_TIMEZONE can be set manually
  • IMPROVE: Portable log separators - The new ASCII_LOG_SEPARATORS setting controls whether separator-only lines saved to log files use ASCII hyphens. "Auto" enables them on Windows by default, "On" enables them on every operating system and "Off" preserves Unicode separators. Terminal separators stay Unicode. Log files and all other logged text remain UTF-8.

v2.6.1

Choose a tag to compare

@misiektoja misiektoja released this 30 Jul 00:49
55ff867

Version 2.6.1 makes daily contribution monitoring reliable by avoiding incomplete GitHub GraphQL counts from narrow calendar windows.

Bug fixes:

  • BUGFIX: Prevented false daily contribution increase and decrease alerts by fetching a wider contribution calendar window and rejecting responses that omit the requested date

v2.6

Choose a tag to compare

@misiektoja misiektoja released this 29 Jul 23:12
9f6f0a6

Version 2.6 expands GitHub Monitor with repository discussion tracking and independent Discord, ntfy and custom webhook notifications. It also makes secret setup safer, aligns activity filtering with supported GitHub API events and strengthens release confidence through offline multi-version testing.

Features and improvements:

  • NEW: Added tracking and notifications for opened and closed discussions in monitored repositories
  • NEW: Added Discord, ntfy and custom webhook notifications with per-event controls, automatic runtime detection for Discord and ntfy.sh URLs, secure secret loading, test delivery and advanced payload customization
  • IMPROVE: Added compact email and webhook category rollups to the startup summary with short labels and unstarred continuation lines when needed
  • IMPROVE: Added a hidden and validated --set-github-token flow as the preferred credential setup method
  • IMPROVE: Aligned the configured event list with event types supported by the GitHub Events API
  • IMPROVE: Added an offline pytest suite and multi-version GitHub Actions test workflow

Bug fixes:

  • BUGFIX: Added detection and notifications when a user removes the name, company, email, location, bio or blog URL from their GitHub profile
  • BUGFIX: Removed trailing whitespace from clickable issue, pull request and discussion links in HTML notifications
  • BUGFIX: Made SIGHUP recreate the active GitHub API client after token rotation and redetect Discord or ntfy when the private webhook destination changes

v2.5.1

Choose a tag to compare

@misiektoja misiektoja released this 21 Jul 22:46
dd0b3f8

Features and Improvements:

  • IMPROVE: Adapted repository monitoring to GitHub's 30 Jun 2026 stargazer and watcher API restrictions
  • IMPROVE: Continued tracking stargazer and watcher counts for other users while limiting identity-level tracking to the token owner's repositories

Bug fixes:

  • BUGFIX: Prevented restricted stargazer and watcher list endpoints from causing otherwise accessible repositories to be skipped

v2.5

Choose a tag to compare

@misiektoja misiektoja released this 26 May 00:52
8bcaa0a

Features and Improvements:

  • NEW: Added clickable commit hashes to HTML emails
  • IMPROVE: Enhanced --generate-config to support writing directly to a file to avoid UTF-16 encoding issues on Windows PowerShell
  • IMPROVE: Expanded tabs to spaces in output log files to ensure consistent alignment across different viewers

v2.4

Choose a tag to compare

@misiektoja misiektoja released this 13 Dec 22:39
0c4daa3

Features and Improvements:

  • NEW: Implemented HTML formatting (with markdown to HTML conversion) for email notifications, enhancing readability and visual presentation
  • NEW: Added progress bar functionality for repository processing
  • IMPROVE: Enhanced contribution data retrieval by handling long date ranges more effectively

Bug fixes:

  • BUGFIX: Corrected date calculation for yearly contribution chunks to handle leap years accurately
  • BUGFIX: Prevented displaying "after" timestamp for older events in GitHub print output
  • BUGFIX: Added handling for network errors when fetching user data
  • BUGFIX: Prevented false positives for repository list changes in notifications

v2.3

Choose a tag to compare

@misiektoja misiektoja released this 11 Nov 04:27
59df03d

Features and Improvements:

  • NEW: Implemented support for selected repository monitoring (see --repos flag and REPOS_TO_MONITOR config option)
  • NEW: Added signal handler for daily contributions notifications (SIGURG)

Bug fixes:

  • BUGFIX: Corrected daily contributions count by widening GraphQL query window to avoid timezone boundary errors