Skip to content

Commit db53675

Browse files
committed
Avoid retrying by default
No retry middleware is included in Faraday 2.x and retrying requires Faraday Retry gem. The default middlware stack used to include a retry middleware only when available, which means the behavior of Octokit implicitly changes depending on to the Faraday version or the presence of Faraday Retry gem. Remove the retry middleware from the default middleware stack to avoid such an implicit behavioral change.
1 parent 9ae04b8 commit db53675

File tree

2 files changed

+17
-10
lines changed

2 files changed

+17
-10
lines changed

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,22 @@ x-ratelimit-reset: "1377205443"
631631

632632
See the [Faraday README][faraday] for more middleware magic.
633633

634+
### Retrying
635+
636+
If you want to retry requests, use `Octokit::Middleware::Retry`.
637+
638+
It uses [Faraday Retry gem] for Faraday 2.x. Add the gem to your Gemfile
639+
640+
```ruby
641+
gem 'faraday-retry'
642+
```
643+
644+
Next, insert `Octokit::Middleware::Retry` before `Octokit::Response::RaiseError`:
645+
646+
```ruby
647+
Octokit.middleware.insert Octokit::Response::RaiseError, Octokit::Middleware::Retry
648+
```
649+
634650
### Caching
635651

636652
If you want to boost performance, stretch your API rate limit, or avoid paying
@@ -655,6 +671,7 @@ Once configured, the middleware will store responses in cache based on ETag
655671
fingerprint and serve those back up for future `304` responses for the same
656672
resource. See the [project README][cache] for advanced usage.
657673

674+
[retry]: https://github.com/lostisland/faraday-retry
658675
[cache]: https://github.com/sourcelevel/faraday-http-cache
659676
[faraday]: https://github.com/lostisland/faraday
660677

lib/octokit/default.rb

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,6 @@ module Default
3131

3232
# Default Faraday middleware stack
3333
MIDDLEWARE = Faraday::RackBuilder.new do |builder|
34-
# In Faraday 2.x, Faraday::Request::Retry was moved to a separate gem
35-
# so we use it only when it's available.
36-
if defined?(Faraday::Request::Retry)
37-
retry_exceptions = Faraday::Request::Retry::DEFAULT_EXCEPTIONS + [Octokit::ServerError]
38-
builder.use Faraday::Request::Retry, exceptions: retry_exceptions
39-
elsif defined?(Faraday::Retry::Middleware)
40-
retry_exceptions = Faraday::Retry::Middleware::DEFAULT_EXCEPTIONS + [Octokit::ServerError]
41-
builder.use Faraday::Retry::Middleware, exceptions: retry_exceptions
42-
end
43-
4434
builder.use Octokit::Middleware::FollowRedirects
4535
builder.use Octokit::Response::RaiseError
4636
builder.use Octokit::Response::FeedParser

0 commit comments

Comments
 (0)