ふくしま

ソフトウェアエンジニア

octokit.js でページネーションした話

概要

Github API を簡単に使える JavaScript のライブラリ、Octokit.js を使用していたところ、ページネーションをする必要が出てきた。 Octokit.js でのページネーションについて、公式ドキュメントを読んでもわかりにくかったので、その備忘録として軽く記す。

ページネーション

そもそもページネーションとはなんぞやというのは、Github の公式ドキュメントがわかりやすい。 https://docs.github.com/ja/rest/guides/traversing-with-pagination

ドキュメント曰く、ページネーションに関する情報は、レスポンスの Link ヘッダーで提供されているらしいが、Octokit.js ではどうやるのだろうか。

octokit.js でページネーション

まず、octokit.js 公式ドキュメントを読んでみよう。 https://octokit.github.io/rest.js/v19#pagination

どうやら、octokit.request() とやって API を実行している部分をoctokit.paginate() とするだけで良いらしい。 ということで、無邪気に変えてみてもpaginate()関数なぞありませんと言われる。 実は、pagenate()を使うには、プラグインを入れなければならないからである。

そのプラグインがこちらである。 https://github.com/octokit/plugin-paginate-rest.js/

あとは、README にあるように、npm install してインポートして、↓のようにプラグインを入れて、octokit.request()octokit.paginate()に変えれば良い。

const MyOctokit = Octokit.plugin(paginateRest);
const octokit = new MyOctokit({ auth: "secret123" });