前回のつづき。念の為ページネーションされないか調べてみたが、無かった。
成果物
GitHub.Licenses.Database.Insert.Pagenation.201703142055
開発環境
- Linux Mint 17.3 MATE 32bit
- SQLite 3.8.2
前回まで
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の穴埋め
一覧で全ライセンスが取得できない以上、以下のような面倒な手続きを踏まねばならない。
- リポジトリ毎にライセンス情報を取得する
- そのライセンス情報がLicenseマスターDBに存在するか確認する
- 存在しないなら、get-an-individual-licenseAPIで問い合わせる
- 存在すれば、その情報をLicenseマスターDBに挿入する
以下のような未知情報がある。
また、以下の場合を確認している。
- リポジトリにライセンスが適用されていない場合?
"license": null
になる
- GitHubが管理している以外のライセンスの場合?
"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"featured":false}
になる
マルチライセンスの場合はどうなるのか。other
なのか。
所感
わからないことだらけ。