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

Freegle / Iznik / 22075 / 22075
71%
master: 71%

Build:
DEFAULT BRANCH: master
Ran 18 Jun 2026 09:38AM UTC
Files 136
Run time 5s
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

18 Jun 2026 09:07AM UTC coverage: 83.005%. Remained the same
22075

push

circleci

web-flow
fix(batch): retry Discourse rate-limits in DiscourseClient so the not-signed-up report isn't inflated (#797)

discourse:not-signed-up resolves each Discourse user's MT external_id via the
admin API (getUser) to decide which Freegle groups are represented by an active
mod. V1 (Utils::curlWithRetry + the GetUser/GetAllUsers/GetUserEmail error
checks) retried on rate-limiting (HTTP 429, or an "errors" body containing "too
many") up to 60× with a 1s delay, and threw on any other error response — so the
run aborted loudly rather than emailing a report built on partially-resolved
users.

The Laravel port did neither: `(array) ...->json()` with no retry and no error
check. A 429 silently became a body with no single_sign_on_record, so
getUser returned no external_id, the mod looked absent from Discourse, and every
group they cover was falsely flagged NOT REPRESENTED (and the mod listed under
"volunteers not on Discourse"). With ~410 users each needing a getUser call
against the rate-limited admin endpoint, partial 429s inflate the report
unpredictably.

Restore V1 behaviour: a single getJson() chokepoint retries on rate-limiting
(429 / "too many"), throws after max_retries, and throws on any other error or
non-JSON response. getAllUsers/getUser/getUserEmail all route through it.
Retry policy is configurable (freegle.discourse.max_retries / retry_delay_s,
defaulting to V1's 60 / 1s; throttle_us now explicit too).

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

27258 of 32839 relevant lines covered (83.0%)

67.51 hits per line

Source Files on job go - 22075
  • Tree
  • List 136
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 22075
  • CircleCI Build #22075
  • d4145b1f on github
  • Prev Job for on master (#22006)
  • Next Job for on master (#22151)
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