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

ukeeper / ukeeper-readability
78%
master: 78%

Build:
Build:
LAST BUILD BRANCH: fix/docker-gha-cache
DEFAULT BRANCH: master
Repo Added 24 Apr 2022 10:34PM UTC
Token PvVP7XZODHNMukB1VLWbVHHC4V09CWSI6 regen
Build 273 Last
Files 9
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

LAST BUILD ON BRANCH fix/image-fetch-streaming
branch: fix/image-fetch-streaming
CHANGE BRANCH
x
Reset
Sync Branches
  • fix/image-fetch-streaming
  • ci-dockerhub-soft-fail
  • ci/workflow-hardening
  • cleaner_frontend_structure
  • dependabot/docker/node-22
  • dependabot/github_actions/github-actions-updates-14cb627f6c
  • dependabot/github_actions/github-actions-updates-1ee787ebfb
  • dependabot/github_actions/github-actions-updates-5714300483
  • dependabot/github_actions/github-actions-updates-640176b5ab
  • dependabot/github_actions/github-actions-updates-7aa8621bec
  • dependabot/github_actions/github-actions-updates-afd9e15987
  • dependabot/go_modules/backend/go-modules-updates-08b33d1c25
  • dependabot/go_modules/backend/go-modules-updates-0bc617739e
  • dependabot/go_modules/backend/go-modules-updates-407dd4786b
  • dependabot/go_modules/backend/go-modules-updates-5e29427af7
  • dependabot/go_modules/backend/go-modules-updates-5e519fa3dd
  • dependabot/go_modules/backend/go-modules-updates-71a6db2b89
  • dependabot/go_modules/backend/go-modules-updates-751992312c
  • dependabot/go_modules/backend/go-modules-updates-a616c34cc0
  • dependabot/go_modules/backend/go-modules-updates-c1eb5b8ad9
  • dependabot/go_modules/backend/go-modules-updates-c2169da76e
  • dependabot/go_modules/backend/go-modules-updates-d01d85479d
  • dependabot/go_modules/backend/go-modules-updates-d6af324dbd
  • dependabot/go_modules/backend/go-modules-updates-ec788c1f9d
  • dependabot/go_modules/backend/go-modules-updates-f885172778
  • dependabot/go_modules/backend/golang.org/x/crypto-0.31.0
  • dependabot/go_modules/backend/golang.org/x/net-0.36.0
  • dependabot/go_modules/go-modules-updates-0b36ab2f83
  • dependabot/npm_and_yarn/frontend/npm-development-modules-updates-89027bf77e
  • dependabot/npm_and_yarn/frontend/npm-development-modules-updates-e6f6ae78c6
  • deps/update-latest-go1.25
  • fix-cf-maxretries-doc
  • fix-top3-review
  • fix/docker-gha-cache
  • fix/ssrf-ip-guard
  • fix/textarea-crlf
  • generic-updates
  • htmx
  • master
  • modularise-retrieval
  • openai-auto-extraction
  • openai_rules_generator
  • openai_rules_improver
  • paskal/bump_modules
  • paskal/clarify_comment
  • paskal/cleanup_readme
  • paskal/fix_build
  • paskal/improve_docker_compose
  • paskal/index_to_htmx
  • paskal/migrate_to_htmx
  • paskal/offline_tests
  • paskal/remove_edit_html
  • paskal/return_rule_id_on_update
  • paskal/safe_password_check
  • refs/tags/v0.1.0
  • refs/tags/v0.1.1
  • refs/tags/v0.1.2
  • refs/tags/v0.2.0
  • remove-jquery
  • remove_chi
  • typos_fixes
  • umputun/add-chatgpt-endpoints
  • update-deps-2026-04-11
  • worktree-ci-hardening

04 Jul 2026 11:56AM UTC coverage: 77.912% (-0.04%) from 77.947%
28705618345

Pull #85

github

paskal
Stream image sizing, share client, honor context, cap concurrency

getImageSize buffered every image fully into memory via io.ReadAll, built
a fresh http.Client per image, ignored the request context, and spawned
one unbounded goroutine per <img> on the page.

It now streams to io.Discard behind a 10MB io.LimitReader (reading the body
rather than trusting Content-Length, so a lying header can't inflate an
image's rank), treats non-2xx responses as size 0 so an error page can't be
ranked as the lead image, shares a single lazily-built client, and
propagates the caller's context. The probe request no longer forces
Connection: close, so the shared client can reuse connections. extractPics
caps concurrency at 8 probes per page and bounds the whole probe phase with
an overall budget (per-image timeout kept below it) so a page full of slow
image URLs can't hold the handler past the write timeout; semaphore
acquisition is context-aware. Lead-image selection breaks size ties by URL
so it's deterministic rather than scheduling-dependent.
Pull Request #85: Stream image sizing, share client, honor context, cap concurrency

39 of 42 new or added lines in 2 files covered. (92.86%)

776 of 996 relevant lines covered (77.91%)

9.49 hits per line

Relevant lines Covered
Build:
Build:
996 RELEVANT LINES 776 COVERED LINES
9.49 HITS PER LINE
Source Files on fix/image-fetch-streaming
  • Tree
  • List 9
  • Changed 2
  • Source Changed 0
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
28705618345 fix/image-fetch-streaming Stream image sizing, share client, honor context, cap concurrency getImageSize buffered every image fully into memory via io.ReadAll, built a fresh http.Client per image, ignored the request context, and spawned one unbounded goroutine per <img> ... Pull #85 04 Jul 2026 12:04PM UTC paskal github
77.91
28681456843 fix/image-fetch-streaming Stream image sizing, share client, honor context, cap concurrency getImageSize buffered every image fully into memory via io.ReadAll, built a fresh http.Client per image, ignored the request context, and spawned one unbounded goroutine per <img> ... Pull #85 03 Jul 2026 08:12PM UTC paskal github
77.93
28681458444 fix/image-fetch-streaming Stream image sizing, share client, honor context, cap concurrency getImageSize buffered every image fully into memory via io.ReadAll, built a fresh http.Client per image, ignored the request context, and spawned one unbounded goroutine per <img> ... Pull #85 03 Jul 2026 08:12PM UTC paskal github
77.93
28681140645 fix/image-fetch-streaming Stream image sizing, share client, honor context, cap concurrency getImageSize buffered every image fully into memory via io.ReadAll, built a fresh http.Client per image, ignored the request context, and spawned one unbounded goroutine per <img> ... Pull #85 03 Jul 2026 08:04PM UTC paskal github
77.84
See All Builds (213)

Badge your Repo: ukeeper-readability

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc