やってみる

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

リポジトリのライセンス情報を挿入する

自分リポジトリのライセンスを一括取得。

成果物

GitHubGitHub.Repositories.Import.201703231120

開発環境

前回まで

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
http://ytyaru.hatenablog.com/entry/2017/08/26/000000

今回

自分のリポジトリのライセンス情報を一括取得する。

LicenseIdにNULLをセットする理由

何のLicenseも適用されないリポジトリは、LicenseIdにNULLをセットする。ライセンスなしのリポジトリを以下のように検索できるようにするため。

問題

やりたいことはできたのだが、昔作ったリポジトリにCC0ライセンスが適用されていないリポジトリがあった。原因不明。

症状

  • APIからそのリポジトリのライセンスを取得できない
  • GitHubページにライセンスが表記されない

異常リポジトリ

sqlite> select * from Licenses where LicenseId is NULL;
Id|RepositoryId|LicenseId
31|31|
32|32|
33|33|
34|34|
35|35|
31|ProjectSplit201607270810|プロジェクトを.lib化せず分割する方法
32|ProjectSplit201607271053|プロジェクトを.lib化せず分割する方法
33|Uuid201607281745|Uuidのマルチバイト文字セット対応。
34|ProjectSplit201607300826|ライブラリファイルを名前空間で整理した。
35|Google C++スタイルガイドをみてWndProcのclass化を修正した

正常リポジトリ

たとえば以下のリポジトリは正常。

30|MultiWindowCreatorClass201607261835|複数のWindowとその機能ごとにWndProc実装を分割できるフレームワークを作った。|

原因の予想

  • LICENSE.txtに何らかの問題がある
  • コードに何らかの問題がある(CC0を適用できない何か)
  • エラーになっているものは連続している。もしかすると、この時期にサーバ側に何らかの不具合があったのかもしれない。

LICENSE.txtに差がないことを確認

  1. git clone https://github.com/ytyaru/ProjectSplit201607270810する
  2. git clone https://github.com/ytyaru/MultiWindowCreatorClass201607261835する
  3. 正常なMultiWindowCreatorClass201607261835のLICENSE.txtを、異常なProjectSplit201607270810にコピペする
  4. ProjectSplit201607270810内でgit diffする
  5. 差分なし。

LICENSE.txtのせいでCC0が適用されなかったわけではなさそう。

後からライセンスを足す

http://blog.fakiyer.com/entry/2016/01/18/215156

すでにLICENSE.txtがあるため、この方法は使えない。

所感

とりあえず放置。