やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

LicenseマスターDBにレコードを挿入する2

前回のつづき。念の為ページネーションされないか調べてみたが、無かった。

成果物

GitHubGitHub.Licenses.Database.Insert.Pagenation.201703142055

開発環境

前回まで

http://ytyaru.hatenablog.com/entry/2017/08/15/000000
http://ytyaru.hatenablog.com/entry/2017/08/16/000000
http://ytyaru.hatenablog.com/entry/2017/08/21/000000
http://ytyaru.hatenablog.com/entry/2017/08/21/000000
http://ytyaru.hatenablog.com/entry/2017/08/22/000000
http://ytyaru.hatenablog.com/entry/2017/08/23/000000
http://ytyaru.hatenablog.com/entry/2017/08/24/000000
http://ytyaru.hatenablog.com/entry/2017/08/25/000000

今回

list-all-licensesAPIで一覧を取得するも、CC0など取得できないライセンスがあった。。

そこで、APIにページネーションがないか確かめてみた。結果、存在しなかった。このAPIで取得できるものは前回ので全て。CC0など含まれないライセンスもたくさんある。

マスターDBの穴埋め

一覧で全ライセンスが取得できない以上、以下のような面倒な手続きを踏まねばならない。

  1. リポジトリ毎にライセンス情報を取得する
  2. そのライセンス情報がLicenseマスターDBに存在するか確認する
  3. 存在しないなら、get-an-individual-licenseAPIで問い合わせる
  4. 存在すれば、その情報をLicenseマスターDBに挿入する

以下のような未知情報がある。

  • この世に存在するすべてのライセンスはGitHubで認識できるか
  • GitHubで認識できるライセンスはLicenseAPIで認識できるか(プレビュー版と銘打っているため心配)

また、以下の場合を確認している。

  • リポジトリにライセンスが適用されていない場合?
    • "license": nullになる
  • GitHubが管理している以外のライセンスの場合?
    • "license":{"key":"other","name":"Other","spdx_id":null,"url":null,"featured":false}になる

マルチライセンスの場合はどうなるのか。otherなのか。

所感

わからないことだらけ。