2022年12月28日水曜日

Ruby でライセンスチェックをする方法

Ruby でライセンスチェックをする方法

概要

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 です

参考サイト

0 件のコメント:

コメントを投稿