diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e6bd14e..8c92ab04 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ -## 9.25.0-wip +## 9.25.0 * Require Dart 3.5 * Require `package:http` `^1.0.0`. +* Fix pagination logic to use `next` link. ## 9.24.0 diff --git a/lib/src/common/util/pagination.dart b/lib/src/common/util/pagination.dart index 40cf621a..93f3a0d7 100644 --- a/lib/src/common/util/pagination.dart +++ b/lib/src/common/util/pagination.dart @@ -28,9 +28,6 @@ class PaginationHelper { params = Map.from(params); } - var page = params['page'] ?? 1; - params['page'] = page; - while (true) { http.Response response; try { @@ -70,7 +67,8 @@ class PaginationHelper { break; } - params['page'] = ++page; + path = next; + params = null; } } diff --git a/pubspec.yaml b/pubspec.yaml index b2f9b7f0..8168d555 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,5 +1,5 @@ name: github -version: 9.25.0-wip +version: 9.25.0 description: A high-level GitHub API Client Library that uses Github's v3 API homepage: https://github.com/SpinlockLabs/github.dart diff --git a/test/common/repos_service_test.dart b/test/common/repos_service_test.dart index feebe05c..2f3f9120 100644 --- a/test/common/repos_service_test.dart +++ b/test/common/repos_service_test.dart @@ -16,7 +16,7 @@ void main() { test('listCommits', () async { final repositories = create((request) async { expect(request.url.path, '/repos/${slug.fullName}/commits'); - expect(request.url.query, 'page=1'); + expect(request.url.query, isEmpty); return Response(listCommits, StatusCodes.OK); }); @@ -29,7 +29,7 @@ void main() { expect(request.url.path, '/repos/${slug.fullName}/commits'); expect( request.url.query, - 'author=octocat&committer=octodog&sha=abc&path=%2Fpath&since=2022-02-22T00%3A00%3A00.000&until=2023-02-22T00%3A00%3A00.000&page=1', + 'author=octocat&committer=octodog&sha=abc&path=%2Fpath&since=2022-02-22T00%3A00%3A00.000&until=2023-02-22T00%3A00%3A00.000', ); return Response(listCommits, StatusCodes.OK); }); diff --git a/test/git_test.dart b/test/git_test.dart index 228b3a0b..e95ef5d6 100644 --- a/test/git_test.dart +++ b/test/git_test.dart @@ -172,7 +172,7 @@ void main() { test('code search', () async { nock(fakeApiUrl) .get( - '/search/code?q=search%20repo%3ASpinlockLabs%2Fgithub.dart%20in%3Afile&per_page=20&page=1') + '/search/code?q=search%20repo%3ASpinlockLabs%2Fgithub.dart%20in%3Afile&per_page=20') .reply(200, nocked.searchResults); final results = (await github.search