ライセンスのキー名をCUIで入力しマスターDBに挿入する。
成果物
GitHub.Licenses.Database.Insert.CUI.201703161608
開発環境
- Linux Mint 17.3 MATE 32bit
- SQLite 3.8.2
前回まで
http://ytyaru.hatenablog.com/entry/2017/08/26/000000
今回
list-all-licensesAPIではすべてのライセンスを取得できなかった。例えば以下。
- CC0-1.0
- isc
そこで、これらの名前をCUIで入力し、get-an-individual-licenseAPIで問い合わせてマスターDBへ挿入できるようにした。
キー名が存在しなければAPIエラーになる。
なお、ライセンスのキー名はGitHubリポジトリのサイトで表示されるライセンス名と思われる。
マスターDBの穴埋め
list-all-licensesで全件取得できない以上、 今回のツールと、以下ので穴埋めしていくしかない。
http://ytyaru.hatenablog.com/entry/2017/08/28/000000
- 今回のツールでライセンスのキー名から取得する
- 以前の他者ライブラリ管理DBツールで不足ライセンスを追加する
課題
- 自分のリポジトリをアップしたときにライセンス情報を取得し、なければマスターDBに追加する。
これで自分が使うライセンスはすべてカバーできるはず。
問題
- マスターDBを作るたびにId値が変わってしまう
データ喪失したときに復元するのが難しくなる。マスターDBに紐づくリポジトリのライセンステーブルまで道連れになる。
- https://github.com/github/choosealicense.com/tree/gh-pages/_licenses
- https://www.gnu.org/licenses/license-list.ja.html
上記のサイトをヒントにする。あとは勝手にKey名を推測してひたすら問い合わせまくるしかない。
LicenseもGitHub側でID管理してくれていたらよかったのに。さもないとID変動の解決は難しい。
- マスターDBをバックアップするなどして消失対策する
- 各レコードに直接Keyを保存する
データ重複するから後者は避けたいのだが。きれいな解決策が見当たらない。
所感
全キー名が手に入らないせいで面倒になっている。