Class: GemChangelogDiff::GithubClient
- Inherits:
-
Object
- Object
- GemChangelogDiff::GithubClient
- Defined in:
- lib/gem_changelog_diff/github_client.rb
Overview
Fetches release notes from the GitHub Releases API with pagination.
Constant Summary collapse
- RELEASES_URL =
"https://api.github.com/repos/%<repo>s/releases"- RATE_LIMIT_WARNING_THRESHOLD =
10- MAX_PAGES =
10
Instance Method Summary collapse
-
#initialize(cache: nil) ⇒ GithubClient
constructor
A new instance of GithubClient.
-
#releases_between(repo, current_version, newest_version) ⇒ Array<Hash>
Returns releases between two versions, sorted newest first.
Constructor Details
#initialize(cache: nil) ⇒ GithubClient
Returns a new instance of GithubClient.
13 14 15 |
# File 'lib/gem_changelog_diff/github_client.rb', line 13 def initialize(cache: nil) @cache = cache end |
Instance Method Details
#releases_between(repo, current_version, newest_version) ⇒ Array<Hash>
Returns releases between two versions, sorted newest first.
22 23 24 25 26 27 |
# File 'lib/gem_changelog_diff/github_client.rb', line 22 def releases_between(repo, current_version, newest_version) gem_name = repo.split("/").last @active_matcher = TagMatcher.new(gem_name: gem_name) releases = fetch_releases(repo, current_version) filter_releases(releases, current_version, newest_version) end |