CI jenkins mattermost nodejs

Nodeアプリが依存するnpmモジュールライセンスをlicense-checker & Jenkinsで自動チェック(1)

投稿日:2019年5月2日

目的

ionicやNode.jsアプリが依存するライブラリにライセンス違反が無いか自動的にチェック、GPLやAGPLが入ってしまっていないか直ぐ分かるようにします。

使用するnpmモジュール

bower時代は「bower-license」が同目的で使えるモジュールでしたがnpm一本化の流れになってからは「license-checker」を使っています。

npm install -g license-cheker

ライセンスを表示してみる

サマリで出す

package.jsonがあるプロジェクトルートに入り、以下コマンドで開発時依存を抜いた本番環境に乗るライブラリのサマリを取れます。

$ license-checker --production --summary
├─ MIT: 129
├─ Apache-2.0: 20
├─ ISC: 11
├─ MIT*: 4
├─ BSD: 4
├─ Unlicense: 2
├─ BSD-3-Clause: 2
├─ Apache*: 2
├─ UNKNOWN: 1
├─ LGPL: 1
├─ BSD-3-Clause OR MIT: 1
├─ BSD*: 1
└─ Apache: 1

CSVファイルで出す

1プロダクト毎にライセンス表示が必要な場合に重宝します。

$ license-checker --production --csv --out ./license.csv

$ head ./license.csv
"module name","license","repository"
"@angular/animations@4.4.4","MIT","https://github.com/angular/angular"
"@angular/common@4.4.4","MIT","https://github.com/angular/angular"
"@angular/compiler-cli@4.4.4","MIT","https://github.com/angular/angular"
"@angular/compiler@4.4.4","MIT","https://github.com/angular/angular"
"@angular/core@4.4.4","MIT","https://github.com/angular/angular"
"@angular/forms@4.4.4","MIT","https://github.com/angular/angular"
"@angular/http@4.4.4","MIT","https://github.com/angular/angular"
"@angular/platform-browser-dynamic@4.4.4","MIT","https://github.com/angular/angular"
"@angular/platform-browser@4.4.4","MIT","https://github.com/angular/angular"

まとめ

ライセンス条項を入れておきさえすれば使って怒られそうなものは見当たりませんでした。次回はJenkinsで自動化し、意にそぐわないライセンスがあれば通知させるようにします。

-CI, jenkins, mattermost, nodejs

執筆者:

関連記事

社内プライベートMattermostを立ち上げてChatOpsする

社内開発チーム内のコミュニケーション、上手く行っていますか?メンバーが世界各地に散らばってないなくても、近くの席に座っていても、心は意外と離れているかも知れません。 以下でプライベートなGitLab1 …

mkcertとhttp-serverでHTTPS環境を作りAndroid(chrome)、iPhone(safari)から接続

簡単にパーフェクトなオレオレ証明書が作れるとgithub上で人気上昇中の「mkcert」。 GitHub  135 UsersFiloSottile/mkcerthttps://github …

GitLabのIPを変更したらMattermostにログイン出来なくなった話「the redirect uri included is not valid. 」

目次1 発端2 環境3 GitLabのIP変更設定を開始4 そしてハマる5 解決6 結局どこに設定が保存されていたか7 まとめ 発端 先日オフィスの引っ越しが有りネットワークセグメントが変わる為、Gi …

ionicアプリを多言語化する

目次1 目的2 環境3 手順1.インストール4 手順2.src/assets/i18nに翻訳ファイルを作成する5 手順3.app.module.tsにngx-translate関連のモジュールを登録す …

Omnibus版のGitLab、Mattermostデータベースに外部ホストからJDBCで接続

Omnibusで入れたPostgreSQLは、 Unix Domainソケットで接続待機Peer認証で認証 していて外部からの接続は出来ないことが前回分かりました。One IT Thing  …

 

shingo.nakanishi
 

東京在勤、1977年生まれ、IT職歴2n年、生涯技術者として楽しく生きることを目指しています。デスマに負けず健康第一。