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

thumbor / libthumbor / 40146376521
100%

Build:
DEFAULT BRANCH: master
Ran 25 Oct 2026 12:21AM UTC
Jobs 9
Files 7
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

25 Oct 2026 12:21AM UTC coverage: 100.0%. Remained the same
40146376521

push

github

marcelometal
Validate CryptoURL options instead of signing broken paths

The composer signed whatever it received. String forms produced garbage
(filters="blur(2)" became filters:b:l:u:r:(:2:), trim="top-left" became
trim:t:o), trim=(None, 15) produced trim::15, which thumbor's regex does not
read, flags were plain truthiness so unsafe="false" or smart="false" turned
the option on, and invalid values (width="abc", width=300.0, a negative crop,
an empty image_url, two fit-in variants) were signed into paths thumbor
cannot parse. filters and trim now accept their string forms, trim also its
tolerance alone, flags accept the strings the Django view accepts (the view
now reuses read_flag), digit strings and any numbers.Integral are normalized
to int as dimensions and crop values, so width="0" no longer emits 0x0 and
fit-in with width="0" is rejected, and anything else raises ValueError naming
the option. Falsy trim ("", 0, None) stays ignored, as it was.

Only broken output changes. Over the earlier grid of 2548 option
combinations the sole differences are float dimensions, which produced
segments like 300x300.0 and now raise, and a sweep of each option lists every
other change above. The one existing test that changed pinned trim::15. The
new or changed tests fail on master, and thumbor's 485 handler, composer,
app, config and filter tests pass against this branch.

98 of 98 new or added lines in 3 files covered. (100.0%)

377 of 377 relevant lines covered (100.0%)

9.0 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-3.13-django6 - 40146376521.1 25 Oct 2026 12:21AM UTC 7
100.0
GitHub Action Run
2 run-3.15-django6 - 40146376521.2 25 Oct 2026 12:21AM UTC 7
100.0
GitHub Action Run
3 run-3.14-django6 - 40146376521.3 25 Oct 2026 12:21AM UTC 7
100.0
GitHub Action Run
4 run-3.13-django5 - 40146376521.4 25 Oct 2026 12:21AM UTC 7
100.0
GitHub Action Run
5 run-3.12-django5 - 40146376521.5 25 Oct 2026 12:21AM UTC 7
100.0
GitHub Action Run
6 run-3.14-django5 - 40146376521.6 25 Oct 2026 12:21AM UTC 7
100.0
GitHub Action Run
7 run-3.12-django6 - 40146376521.7 25 Oct 2026 12:21AM UTC 7
100.0
GitHub Action Run
8 run-3.11-django5 - 40146376521.8 25 Oct 2026 12:21AM UTC 7
100.0
GitHub Action Run
9 run-3.15-django5 - 40146376521.9 25 Oct 2026 12:21AM UTC 7
100.0
GitHub Action Run
Source Files on build 40146376521
  • Tree
  • List 7
  • Changed 3
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #40146376521
  • f8ac1a80 on github
  • Prev Build on master (#40144329099)
  • Next Build on master (#40150411327)
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