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

Tatsh / livecheck / 24704554802
100%

Build:
DEFAULT BRANCH: master
Ran 21 Apr 2026 04:47AM UTC
Jobs 5
Files 41
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

21 Apr 2026 04:46AM UTC coverage: 100.0%. Remained the same
24704554802

push

github

Tatsh
project: migrate HTTP stack from requests to niquests (async)

Replace the synchronous requests-based HTTP path with async niquests
sessions backed by niquests-cache. All heuristic-check handlers in
livecheck/special/* and their tests are ported to async/await.

Highlights:

- Add livecheck/utils/session.py with build_session and
  build_github_session helpers that wrap AsyncCachedSession with a
  shared asyncio.Semaphore for concurrency limiting, SQLite-backed
  caching, and cache-control revalidation.
- The GitHub session honours REST API rate-limit conventions:
  retry-after, x-ratelimit-remaining/reset, and 403 rate-limit bodies
  trigger bounded backoff; depleted windows park until reset.
- Rework livecheck/utils/requests.py: session_init returns an
  AsyncSession; get_content, hash_url, and get_last_modified become
  coroutines; add init_sessions and close_sessions to manage the
  module-level semaphore and session cache lifecycle.
- Update all consumers under livecheck/special/* to await HTTP calls
  and propagate async up to main.py's entry point.
- Switch the requests dependency for niquests, niquests-cache, and
  add anyio in pyproject.toml and .wiswa.jsonnet. Drop types-requests;
  add niquests-mock and pytest-asyncio to test deps. Set
  asyncio_mode = "auto" and ignore RUF029 for tests.
- Fix the yapfignore patterns: fnmatch does not treat ** as a
  recursive glob and matches paths, not directory entries, so
  `.venv/**` never pruned the walk. Use bare directory names instead.
- Rewrite tests across tests/ to use pytest-asyncio and niquests-mock,
  mocking session_init/get_content rather than the requests library.
- Refresh uv.lock for the new dependency closure.

Signed-off-by: Andrew Udvare <audvare@gmail.com>

497 of 497 branches covered (100.0%)

Branch coverage included in aggregate %.

652 of 652 new or added lines in 31 files covered. (100.0%)

2610 of 2610 relevant lines covered (100.0%)

5.0 hits per line

Jobs
ID Job ID Ran Files Coverage
1 24704554802.1 21 Apr 2026 04:47AM UTC 41
100.0
GitHub Action Run
2 24704554802.2 21 Apr 2026 04:47AM UTC 41
100.0
GitHub Action Run
3 24704554802.3 21 Apr 2026 04:47AM UTC 41
100.0
GitHub Action Run
4 24704554802.4 21 Apr 2026 04:47AM UTC 41
100.0
GitHub Action Run
5 24704554802.5 21 Apr 2026 04:47AM UTC 41
100.0
GitHub Action Run
Source Files on build 24704554802
  • Tree
  • List 41
  • Changed 30
  • Source Changed 30
  • Coverage Changed 21
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #24704554802
  • ea7a9dbc on github
  • Prev Build on master (#24645517328)
  • Next Build on master (#24707487573)
  • Delete
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