fix(xtask): make validate-urls a blocking check and harden probing#1313
Merged
Conversation
Greptile SummaryThis PR makes URL validation a blocking check and updates the related docs and benchmark data.
Confidence Score: 5/5This looks safe to merge.
Important Files Changed
Reviews (3): Last reviewed commit: "fix(xtask): make validate-urls a blockin..." | Re-trigger Greptile |
mstykow
force-pushed
the
fix/validate-urls-breaking-check
branch
from
July 19, 2026 21:04
5a46ab1 to
3d52644
Compare
Turn the CI URL validation into a breaking check and eliminate the false-positive and transient failures that made it unfit to gate on. Validator (xtask/src/bin/validate_urls.rs): - probe with HTTP HEAD first, falling back to a single-byte ranged GET, so multi-MB artifacts (release tarballs, package files) are not downloaded in full and no longer time out; GET is authoritative on any non-2xx/3xx HEAD (some hosts 404 HEAD but serve GET) - retry transient failures (--retry 2 --retry-connrefused) so a network blip on one of many URLs does not fail the whole check; genuine 4xx still fails fast - skip loopback/example hosts (127.0.0.1, localhost, ::1) and the U+2026 ellipsis placeholder alongside the existing "..." rule Docs/source: - font.rs: append U+2026 to the deliberately-corrupted run-on example in a doc comment so it is skipped rather than probed as a live URL - BENCHMARKS.md: re-point the FreeBSD bash row to its committed testdata fixture (upstream .pkg URL is non-durable per its SOURCE.md), and remove the non-reproducible restic row (SHA does not exist upstream, no committed input); regenerate the benchmark chart/headline - check.yml: drop continue-on-error on the Validate URLs step - update xtask/README.md and the generated-docs-maintenance skill mirrors to describe the check as blocking Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Signed-off-by: Maxim Stykow <maxim.stykow@gmail.com>
mstykow
force-pushed
the
fix/validate-urls-breaking-check
branch
from
July 19, 2026 21:16
3d52644 to
50c237c
Compare
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.
Summary
continue-on-errorincheck.yml) and remove the false-positive/transient failures that made it unfit to gate on.xtask/src/bin/validate_urls.rs):--retry 2 --retry-connrefused) so a network blip on one of ~460 URLs doesn't fail the whole check; genuine 4xx still fails fast.127.0.0.1,localhost,::1) and the…(U+2026) placeholder alongside the existing...rule.docs/BENCHMARKS.md:testdata/fixture (the upstream.pkgURL is non-durable per itsSOURCE.md).src/utils/font.rs: appended…to the deliberately-corrupted run-on example in a doc comment so it is skipped rather than probed as a live URL.xtask/README.mdand bothgenerated-docs-maintenanceskill mirrors to describe the check as blocking.Scope and exclusions
How to verify
cargo run --quiet --manifest-path xtask/Cargo.toml --bin validate-urls -- --root .→Failed: 0(447 passed, 15 skipped).Expected-output fixture changes
docs/scan-duration-vs-files.svgand thedocs/BENCHMARKS.mdheadline stats regenerated viagenerate-benchmark-chartafter removing the non-reproducible restic row (254 runs, 19.7× median).🤖 Generated with Claude Code