{"id":15798169,"url":"https://github.com/grokify/faraday_middleware-request-retry","last_synced_at":"2025-04-21T07:33:00.787Z","repository":{"id":101915256,"uuid":"73349056","full_name":"grokify/faraday_middleware-request-retry","owner":"grokify","description":"Auto-retry requests based on 429, 503 and other responses.","archived":false,"fork":false,"pushed_at":"2023-03-31T10:08:54.000Z","size":28,"stargazers_count":1,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-24T00:44:39.307Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grokify.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-11-10T05:09:31.000Z","updated_at":"2023-02-15T09:36:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"bdd148be-7f46-4748-9589-36c96f0471a6","html_url":"https://github.com/grokify/faraday_middleware-request-retry","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grokify%2Ffaraday_middleware-request-retry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grokify%2Ffaraday_middleware-request-retry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grokify%2Ffaraday_middleware-request-retry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grokify%2Ffaraday_middleware-request-retry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grokify","download_url":"https://codeload.github.com/grokify/faraday_middleware-request-retry/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223856777,"owners_count":17214938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-05T00:23:54.554Z","updated_at":"2024-11-09T17:04:15.218Z","avatar_url":"https://github.com/grokify.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"FaradayMiddleware::Request::Retry\n=================================\n\n[![Gem Version][gem-version-svg]][gem-version-url]\n[![Build Status][build-status-svg]][build-status-url]\n[![Coverage Status][coverage-status-svg]][coverage-status-url]\n[![Code Climate][codeclimate-status-svg]][codeclimate-status-url]\n[![Scrutinizer Code Quality][scrutinizer-status-svg]][scrutinizer-status-url]\n[![Docs][docs-rubydoc-svg]][docs-rubydoc-url]\n[![License][license-svg]][license-url]\n\nFaraday middleware to manage request retries.\n\n## Description\n\nThis gem is Faraday middleware that adds retry handling for 429 and 503 errors.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'faraday_middleware-request-retry'\n```\n\nAnd then execute:\n\n```sh\n$ bundle\n```\n\nOr install it yourself as:\n\n```sh\n$ gem install faraday_middleware-request-retry\n```\n\n## Usage\n\n```ruby\nrequire 'faraday'\nrequire 'faraday_middleware-request-retry'\nrequire 'logger'\n\nconn = Faraday.new(url: \"http://example.com\") do |builder|\n  builder.use FaradayMiddleware::Request::Retry, logger: Logger.new(STDOUT), retry_after: 15\n  builder.adapter Faraday.default_adapter\nend\n\nconn.get \"/foo\" # sends token\n```\n\nOptions include:\n\n| Option | Values | Optional | Default |\n|--------|--------|----------|---------|\n| `:logger` | `Logger` object | optional |\n| `:retry_after` | Default retry seconds | optional | `10` seconds |\n| `:error_codes` | Array of error codes, e.g. `[429, 503, 504]` | optional | `[429, 503]` |\n\n### External Use\n\nThe core retry functionality can be used separately from Faraday when necessary. For example, when requests cannot be replayed, e.g. when `Faraday::UploadIO` is used.\n\n```ruby\nres = faraday_client.get '/my_url'\n\nretry_util = FaradayMiddleware::Request::RetryUtil.new\n\n# The following will return `true` for retry, `false` for don't,\n# while sleeping when necessary\nwant_retry = retry_util.retry_status res.status, res.headers['Retry-After']\n```\n\n## Change Log\n\nSee [CHANGELOG.md](CHANGELOG.md)\n\n## Links\n\nProject Repo\n\n* https://github.com/grokify/faraday_middleware-request-retry\n\n## Problems, Comments, Suggestions, Contributions?\n\nAny reports of problems, comments or suggestions are most welcome.\n\nPlease report these on [Github](https://github.com/grokify/faraday_middleware-request-retry)\n\n## Credits\n\nThis library is originally based on code extracted from the Zendesk Ruby SDK's `ZendeskAPI::Middleware::Request::Retry` class, in [v1.14.0](https://github.com/zendesk/zendesk_api_client_rb/releases/tag/v1.14.0) (commit [2c2b52e](https://github.com/zendesk/zendesk_api_client_rb/blob/2c2b52ea390b3641d4af383759217fda75bc74ec/LICENSE)) available under the Apache 2.0 license. \n\n## Copyright and license\n\nCopyright \u0026copy; 2015 Zendesk, 2016-2023 John Wang\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License.\n\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n\n [gem-version-svg]: https://badge.fury.io/rb/faraday_middleware-request-retry.svg\n [gem-version-url]: http://badge.fury.io/rb/faraday_middleware-request-retry\n [downloads-svg]: http://ruby-gem-downloads-badge.herokuapp.com/faraday_middleware-request-retry\n [downloads-url]: https://rubygems.org/gems/faraday_middleware-request-retry\n [build-status-svg]: https://github.com/grokify/faraday_middleware-request-retry/workflows/ruby%20build/badge.svg\n [build-status-url]: https://github.com/grokify/faraday_middleware-request-retry/actions\n [coverage-status-svg]: https://coveralls.io/repos/grokify/faraday_middleware-request-retry/badge.svg?branch=master\n [coverage-status-url]: https://coveralls.io/r/grokify/faraday_middleware-request-retry?branch=master\n [dependency-status-svg]: https://gemnasium.com/grokify/faraday_middleware-request-retry.svg\n [dependency-status-url]: https://gemnasium.com/grokify/faraday_middleware-request-retry\n [codacy-svg]: https://api.codacy.com/project/badge/Grade/d2c515165a60402eb10410cf4bd51f50\n [codacy-url]: https://www.codacy.com/app/grokify/faraday_middleware-request-retry\n [codeclimate-status-svg]: https://codeclimate.com/github/grokify/faraday_middleware-request-retry/badges/gpa.svg\n [codeclimate-status-url]: https://codeclimate.com/github/grokify/faraday_middleware-request-retry\n [scrutinizer-status-svg]: https://scrutinizer-ci.com/g/grokify/faraday_middleware-request-retry/badges/quality-score.png?b=master\n [scrutinizer-status-url]: https://scrutinizer-ci.com/g/grokify/faraday_middleware-request-retry/?branch=master\n [docs-rubydoc-svg]: https://img.shields.io/badge/docs-rubydoc-blue.svg\n [docs-rubydoc-url]: http://www.rubydoc.info/gems/faraday_middleware-request-retry/\n [license-svg]: https://img.shields.io/badge/license-MIT-blue.svg\n [license-url]: https://github.com/grokify/faraday_middleware-request-retry/blob/master/LICENSE.txt\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrokify%2Ffaraday_middleware-request-retry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrokify%2Ffaraday_middleware-request-retry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrokify%2Ffaraday_middleware-request-retry/lists"}