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

yylego / restyoops
93%

Build:
DEFAULT BRANCH: main
Repo Added 10 Mar 2026 05:06PM UTC
Token HxQBFrEROH1v8mWy6c1ms9mieGg3p3ed7 regen
Build 3 Last
Files 8
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 main
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • main
  • refs/tags/v0.0.0

18 Aug 2026 07:40PM UTC coverage: 92.553% (+27.2%) from 65.363%
32177953049

push

github

yyle88
redesign restyoops around resty's own retry engine

The package answered "is this retryable" and then stopped, leaving the caller to
write the loop, the sleeping and the counting by hand. resty already owns all
three. What resty leaves to its users is the judgement, and its out-of-box
judgement is wrong in ways that are easy to miss, each of which is now a test:

- a 500 is never repeated, so SetRetryCount looks set up yet does nothing
- resty's own AddRetryAfterErrorCondition silences retries on transport faults,
  because every condition overwrites resty's "repeat transport faults" default
- the same helper repeats a 404 four times
- Retry-After is never read, so a peer asking for 120s gets hit after 102ms
- an untrusted certificate is repeated, though trust never arrives that way
- a POST is repeated after a 500, though the order may already have been placed

Setup(client) now installs the judgement in one call and reuses resty's loop,
backoff and attempt counting rather than rebuilding them.

Fixed along the way:

- Oops implements error and unwraps to Cause, so it travels ordinary error paths
- Cause carries the real cause instead of the placeholder errors.New("HTTP")
- transport branches reordered: url.Error no longer shadows every precise
  judgement, and x509 / bad scheme / NXDOMAIN / canceled context all stop
- context.Canceled is no longer classified as a retryable network fault
- a stated zero wait stays a stated zero instead of becoming a default
- Kind is open: a custom kind no longer panics on the caller
- checks see the whole response, headers and request included, not just the body
- RetryMaxWaitTime is raised so a stated wait is not cut down to resty's 2s

Removed: the OopsIssue alias, six unused Kind predicates, internal/utils, and
the must dependency, which took zaplog / mutexmap / zap / multierr with it.
Dependencies went from ten to two.

Coverage 66.3% -> 92.3%, with the previously untested surface now covered:
content checks, ki... (continued)

337 of 363 new or added lines in 8 files covered. (92.84%)

2 existing lines in 1 file now uncovered.

348 of 376 relevant lines covered (92.55%)

61.22 hits per line

Relevant lines Covered
Build:
Build:
376 RELEVANT LINES 348 COVERED LINES
61.22 HITS PER LINE
Source Files on main
  • Tree
  • List 8
  • Changed 4
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
32177953049 main redesign restyoops around resty's own retry engine The package answered "is this retryable" and then stopped, leaving the caller to write the loop, the sleeping and the counting by hand. resty already owns all three. What resty leaves to its user... push 18 Aug 2026 07:41PM UTC yyle88 github
92.55
22914584240 refs/tags/v0.0.0 add restyoops package Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> push 10 Mar 2026 05:06PM UTC yyle88 github
65.36
22914583874 main add restyoops package Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> push 10 Mar 2026 05:06PM UTC yyle88 github
65.36
See All Builds (3)

Badge your Repo: restyoops

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 TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc