概要
licensed を使うとソースコードが使用しているライセンスをチェックすることができます
基本的にはコードがライセンスに準拠していない場合には対応して対応が完了したらライセンスチェックをスルーするさせるようなツールになります
環境
- macOS 11.7.2
- Ruby 3.1.2
- licensed 3.9.1
licensed のインストール
- gem install licensed
設定ファイルの作成 .licensed.yml
設定ファイルを作成します
ライセンスチェック対象のファイルとソースコードの言語を設定します
allowed はチェック時に成功とするライセンスを記載します
自分のソースコードの使い方、ライセンス表記で条件を満たしているライセンスの一覧を記載することになります
ignored はライセンスチェックを無視する gem を記載します
ライセンス表記がない gem などがあるのでその場合は ignored に記載します
- vim .licensed.yml
sources:
bundler: true
apps:
- source_path: ./libs
- source_path: ./controllers
- source_path: ./views
allowed:
- mit
- apache-2.0
- other
- none
ignored:
bundler:
- bundler
- ruby2_keywords
キャッシュファイルの作成
まずはキャッシュファイルを作成する必要があります
作成が成功すると .licenses/
ディレクトリが作成されます
- licensed cache
ライセンスチェック
最後にライセンスチェックをします
- licensed status
............F.................................................FF..........................
Errors:
* views.bundler.e2mmap
version: 0.1.0, filename: /Users/username/data/repo/ruby-test/.licenses/views/bundler/e2mmap.dep.yml, license: bsd-2-clause, allowed: false
- license needs review: bsd-2-clause
* views.bundler.reverse_markdown
version: 2.1.1, filename: /Users/username/data/repo/ruby-test/.licenses/views/bundler/reverse_markdown.dep.yml, license: wtfpl, allowed: false
- license needs review: wtfpl
* views.bundler.rexml
version: 3.2.5, filename: /Users/username/data/repo/ruby-test/.licenses/views/bundler/rexml.dep.yml, license: bsd-2-clause, allowed: false
- license needs review: bsd-2-clause
90 dependencies checked, 3 errors found.
Licensed found errors during source enumeration. Please see https://github.com/github/licensed/tree/master/docs/commands/status.md#status-errors-and-resolutions for possible resolutions.
最後に
あとは allowed に記載していないライセンスに準拠するようにソースコードやライセンス表記を修正したあとで allowed にライセンスを追加していく感じで OK です