lendable/composer-license-checker

Composer许可证检查器

1.2.1 2024-07-02 22:49 UTC

README

Latest Stable Version License Continuous Integration

此库提供了一套工具,用于检查依赖项的许可信息,以确保符合开源许可并最大限度地减少法律风险。它可以帮助您跟踪正在使用的依赖项的许可证,并在其使用方面做出明智的决定。

安装

composer require --dev lendable/composer-license-checker

使用方法

在项目根目录中创建一个配置文件,.allowed-licenses.php(或者您可以使用-a / --allow-file选项来指定配置文件的路径)。

<?php

declare(strict_types=1);

use Lendable\ComposerLicenseChecker\LicenseConfigurationBuilder;

return (new LicenseConfigurationBuilder())
    ->addLicenses(
        'MIT',
        'BSD-2-Clause',
        'BSD-3-Clause',
        'Apache-2.0',
        // And other licenses you wish to allow.
    )
    ->addAllowedVendor('vendor_name') // Allow any license from a specific vendor, i.e. your own company.
    ->addAllowedPackage('vendor_name/foo_bar') // Allow a specific package regardless of licensing.
    ->build();
./vendor/bin/composer-license-checker [--allow-file path/to/configuration_file.php]

建议您将其集成到CI管道中来自动化检查。

许可信息提供者

此工具可以使用两个不同的来源来检索许可信息:使用composer licenses命令和解析由Composer创建的installed.json文件。

使用installed.json提供者(默认

指定--provider-id=json

工具将解析由Composer创建的包含所有相关信息的installed.json文件。这不需要在工具执行的环境中安装Composer。然而,由于此文件是Composer的内部文件,因此未来可能会更改其模式。如果您遇到问题,请尝试使用composer licenses提供者并报告问题。

使用composer licenses提供者

指定--provider-id=licenses

composer licenses命令提供了一个(可能)更稳定的API来检索许可信息。然而,这要求工具执行composer命令,因此它必须在工具运行的环境中安装。