やってみる

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

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

ライセンスのキー名をCUIで入力しマスターDBに挿入する。

成果物

GitHubGitHub.Licenses.Database.Insert.CUI.201703161608

開発環境

前回まで

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に紐づくリポジトリのライセンステーブルまで道連れになる。

上記のサイトをヒントにする。あとは勝手にKey名を推測してひたすら問い合わせまくるしかない。

LicenseもGitHub側でID管理してくれていたらよかったのに。さもないとID変動の解決は難しい。

  • マスターDBをバックアップするなどして消失対策する
  • 各レコードに直接Keyを保存する

データ重複するから後者は避けたいのだが。きれいな解決策が見当たらない。

所感

全キー名が手に入らないせいで面倒になっている。