Repository navigation
Releases: misiektoja/github_monitor
Release list
v2.8
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_ORDERpicks which end of the push keeps them,newestby 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 settingPUSH_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-notifyand--no-webhook-error-notifyswitch 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
Nonein 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 degradedreminder closed its report before the error alert was sent, soSending 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 ofyour_receiver_emailand a webhook provider ofDiscord. Those rows now readNot configuredand the channel rollup above them readsOff (not configured)rather than naming alert types nothing could deliver
v2.7
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 -
--setupwizard 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 -
--doctorchecks 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-passwordtakes 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.
--verboseadds operational updates and--debugadds technical traces. Secrets are redacted and logs retain the full summary. Customize colours withCOLOR_THEMEor disable them with--no-color. Copy the updatedgrc/conf.monitor_logsto~/.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.0andpython-dotenv >= 1.2.2. Update older dependency pins before upgrading - IMPROVE: Notification output - Subjects omit program-name prefixes. Set
DELIVERY_CONFIRMATIONS = Falseto 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 = Falseto 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 FILEconfirms 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 afterSIGHUP. 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_SSLnow 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
Bug fixes:
- BUGFIX: Fixed indentation of ASCII log separators in summary screen
v2.6.2
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
@usernamementions 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
tzlocaldependency, shows how to install it and explains thatLOCAL_TIMEZONEcan be set manually - IMPROVE: Portable log separators - The new
ASCII_LOG_SEPARATORSsetting 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
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
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.shURLs, 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-tokenflow 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
SIGHUPrecreate the active GitHub API client after token rotation and redetect Discord or ntfy when the private webhook destination changes
v2.5.1
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
Features and Improvements:
- NEW: Added clickable commit hashes to HTML emails
- IMPROVE: Enhanced
--generate-configto 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
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
Features and Improvements:
- NEW: Implemented support for selected repository monitoring (see
--reposflag andREPOS_TO_MONITORconfig 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
