人生で初めてオープンソースのリポジトリに pull request が merge された話
pull request が merge されました。
自分の名前がコントリビューターに乗るのってうれしいですね。
どんな OSS に pull request を送ったの?
gatsby-source-microcms とい OSS です。
gatsby.js で microcms に登録した API からコンテンツを取得して graphQL に登録します。
小さい OSS です。まだ 2020/06/09 現在、version0.2.0 です。
pull request について
動機 - pull request を送ろうと思った利用
microCMS の1つの API からデータを全件取得する readAll フラグを追加しました。
microCMS は登録するコンテンツを object 形式か list 形式か選べます。
list の場合は複数の object が array で帰ってくるのですが、制限があるため1回のアクセスで 100M とかダウンロードできません。
そこで用意されていたのが limit, offset パラメータとなります。
例えば limit = 100, offset = 0 の設定にしておけば最初の100件はダウンロードできます。
でもこの設定方法だと gatsby-config.js の中が gatsby-source-microcms だらけになってしまいますよね。
関数を作るなどしてうまくやれば gatsby-config.js はぐちゃぐちゃにならずに済みますが gatsby-source-microcms 側でどうにかしてほしいので pull request を送りました。
code の修正点
microCMS の api からデータを取得する関数(sourceNodes)で readAll フラグを設定していたら、limit で指定された件数毎にデータをリストで取得し offset を設定しなおします。
また、sourceNodes をテストも用意されてたので数件テストを追加しました。
難しかった点
既存のテストを通すのはすぐできたけど、テストケースを考えてカバレッジを100%を維持するのが大変でした。
でもテストが最初からそろっていたのでコーディングとテストの反復がしやすかったです。
レビューはどうだったか
1点だけコメントを頂きました。
テストが不自然だからちょっと修正してほしいと言われたので言われた通り直しました。
その後 pull request が merge されてすぐに npm に公開されてます。
Photo by Jen Theodore on Unsplash