• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

microlinkhq / unavatar / 31033451181
97%

Build:
DEFAULT BRANCH: master
Ran 05 Aug 2026 06:11PM UTC
Jobs 1
Files 95
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

05 Aug 2026 06:10PM UTC coverage: 97.212% (+0.01%) from 97.2%
31033451181

push

github

web-flow
fix: treat aborted redirect probes as unreachable (#639)

* fix: treat aborted redirect probes as unreachable

After #638, a reserved-address refusal in beforeRedirect leaves a 3xx
hop that ping-url memoizes as {url,statusCode} only. A later cache hit
drops context.reservedAddress, isReachable(3xx) returns true, and the
attacker URL is served (JSON) as a successful avatar.

Normalize leftover 3xx statuses to 404 in reachable-url, and require a
final 2xx in getAvatarContent so a bare cached redirect cannot pass.

* refactor: flatten the redirect-status rewrite

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MTbj6CYXGsk6rhXx7J8SUP

* refactor: use the shared isReachable predicate (#641)

* refactor: use the shared isReachable predicate

@microlink/ping-url 1.5.0 re-exports reachable-url v2's isReachable, which
rejects a bare 3xx while redirects are followed. That is the rule auto.js
was spelling out inline, so the call site goes back to the predicate and
duckduckgo.js stops disagreeing with it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MTbj6CYXGsk6rhXx7J8SUP

* build: allow @microlink/ping-url 1.5.0 through the release-age gate

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MTbj6CYXGsk6rhXx7J8SUP

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Kiko Beats <josefrancisco.verdu@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

837 of 894 branches covered (93.62%)

Branch coverage included in aggregate %.

3034 of 3088 relevant lines covered (98.25%)

6.28 hits per line

Jobs
ID Job ID Ran Files Coverage
1 31033451181.1 05 Aug 2026 06:11PM UTC 95
97.21
GitHub Action Run
Source Files on build 31033451181
  • Tree
  • List 95
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #31033451181
  • 60cad2fb on github
  • Prev Build on master (#30846899254)
  • Next Build on master (#31083826905)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc