BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース OSSライセンスの遵守を簡単にするGitHub Licensed

OSSライセンスの遵守を簡単にするGitHub Licensed

原文(投稿日:2018/03/19)へのリンク

あなたのリクエストに応じて、ノイズを減らす機能を開発しました。大切な情報を見逃さないよう、お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう。

GitHub Licensedは、オープンソースのツールであり、GitHub上のプロジェクトの依存物のライセンスの正しさの保証とドキュメント化に関する雑務を単純にしてくれる。

Licensedはリポジトリ内の複数のプロジェクトのさまざまな言語とパッケージマネージャから依存物を検知する。Bower、 Bundler、Cabal、Go、Manifest lists、NPMがサポートされているパッケージマネージャだ。Licensedは、見つかったそれぞれの依存を元に、基本となるメタデータとライセンスのタイプ、関連する法文書(普通はLICENSEファイルに書かれている)などのライセンス情報を探る。ライセンスのタイプと文書を見つけると、LicensedはLicenseeを使う。発見されたメタデータは指定された場所に保存され、ライセンスのコピーを生成するのに使われる。例えば、再配布に必要なコピーだ。

GitHubによれば、より重要なのは、メタデータとライセンスの文書がリビジョン管理されることだ。新しい依存の追加はPRレベルで反映され、ライセンスの専門家は、そのPRをレビューし、新しいライセンスがなんらかの対処すべき問題を生み出さないかどうかを確認できる。GitHubは自分たちの経験を元に、このやり方は開発者の負担を軽減し、どんなプロジェクトでも組織の方針に準じた依存だけが追加されるようになる、と主張している。

Licensedの挙動は構成ファイルで制御される。source_pathに指定した場所の依存をスキャンし、cache_pathにメタデータとライセンスのリストが保存される。

# Path is relative to git repository root
# If not set, defaults to '.licenses'
cache_path: 'relative/path/to/cache'

# Path is relative to git repository root and specifies the working directory when enumerating dependencies
source_path: 'relative/path/to/source'

# Dependencies with these licenses are allowed by default.
allowed:
  - mit
  - apache-2.0
  - bsd-2-clause
  - bsd-3-clause
  - cc0-1.0

Licensedはruby gemであり、次のGemfileでインストールできる。

gem 'licensed', :group => 'development'

そして、次を実行する。

$ bundle

次のコマンドを使えば、すべての依存のライセンスを一覧できる。

licensed list

同じように、cacheコマンドはライセンスとメタデータをキャッシュする。statusコマンドは依存のステータスをチェックしライセンスデータが見つからない場合やライセンスタイプにレビューが必要な場合に警告をする。

GitHubは、Licensedはライセンス問題を検知するためのツールであり、専門の法的アドバイスを代替するものではない、と強調している。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT