Repository navigation
ci: alert on daily signature update failures, fix Zscaler parsing - #317
Merged
Merged
Conversation
Adds a workflow_run watcher on Daily Signature Update that opens a labelled issue on failure, comments on it while failures continue, and closes it on the next success. Also count a provider that crashes during update as an error. It was previously dropped with zero errors, so it never counted toward ERROR_THRESHOLD and its data went stale silently. The error list is now written to the job summary for the alert's run link. Closes #303
The feed gained a top-level "svpnIPs" list next to the per-cloud dicts. Calling .items() on it raised every day, so Zscaler has had no CIDRs (0 stored). The listed IPs are all inside the published ranges, so they are skipped rather than added.
setup-python's 3.x now resolves to 3.15 on some runners, and blasthttp 0.10.0 has no cp315 wheels, so uv falls back to a source build that fails in openssl-sys. Pin Pipeline Tests and the PyPI publish job, the two places that install the dev group, until blasthttp ships 3.15 wheels.
en0f
approved these changes
Oct 19, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #303.
Alert on daily signature update failures
New workflow
signature-update-alerts.ymltriggers onworkflow_runwhen Daily Signature Update completes:signature-update-failure) with the run link, trigger, commit, and failed jobs and steps. If that issue is already open, it adds a comment instead, so a failure that keeps happening stays in one issue.It only uses the
ghandjqthat come with the runner, and its permissions areactions: readandissues: write.workflow_runonly fires from the default branch, so this goes live once it reachesstable.Count provider crashes as errors
_update_providercaught any exception from a provider and returned no errors, so a crashing provider never counted towardERROR_THRESHOLDand kept its stale data while the run passed. A crash now counts as one error, and the provider's existing data is still kept. The crash log line also printed<property object>instead of the provider name, which is fixed too.The error list is now written to the job summary, so the run link in an alert opens on a readable list.
Fix Zscaler
Zscaler's CENR feed gained a top-level
svpnIPslist next to the per-cloud sections. The parser called.items()on it and crashed on every run, so Zscaler currently has 0 CIDRs stored. The parser now skips any value that isn't a per-cloud section. All 176 of those IPs are already inside the published ranges. Against the live feed it now returns 682 CIDRs.Context: recent failures
stable, 2026-10-18: pyo3 0.27 can't build against Python 3.15. This is already fixed ondevby build(deps): bump pyo3 to 0.29 for Python 3.15 #310.Successful runs currently have 6–9 errors against the threshold of 10. Besides Zscaler, most of them repeat every day: asndb lookups for UKMoD, Baidu, Nhncloud and IBM (probably outdated org IDs) and Salesforce's missing v2fly domains. Those are left for a follow-up.
Pin Python 3.14 where the dev group is installed
setup-python's3.xnow resolves to 3.15 on some runners.blasthttp0.10.0 has no cp315 wheels, so uv builds it from source, and that build fails inopenssl-sys. This is what made Pipeline Tests fail intermittently on this PR and #316. Pipeline Tests and the PyPIpublishjob are pinned to 3.14 untilblasthttpships 3.15 wheels. Thepublishpin matters for #305: without it, the release could randomly fail before reaching PyPI.