mnocon / composer-checkout
轻松检出依赖项的工具
v0.2.5
2024-01-10 14:39 UTC
Requires
- php: ^7.1 || ^8.0
- composer-plugin-api: ^2.0
- ext-json: *
Requires (Dev)
- composer/composer: ^2.0
- ezsystems/ezplatform-code-style: ^1.0@dev
- friendsofphp/php-cs-fixer: ^2.16.0
- phpstan/phpstan: ~0.12
- phpunit/phpunit: ^7.5
README
描述
这个Composer插件允许您将GitHub上的Pull Request作为Composer依赖项添加,无需考虑仓库和分支别名。再也不用麻烦地处理vendor目录啦 ;)
简单地运行 composer checkout <pullRequestUrl> [<pullRequestUrl2>...],其余的将自动处理。
还有一个apply-patch命令,用于处理由Pull Request生成的差异。
安装
建议进行全局安装:composer global require mnocon/composer-checkout,这将使新命令在每个项目中可用。
对于本地安装,运行:composer require mnocon/composer-checkout
此包需要至少PHP 7.1和Composer 2。
用法
有两个新的Composer命令
composer checkout
基于GitHub Pull Request添加Composer依赖项。
示例用法
composer checkout https://github.com/symfony/symfony/pull/41105
或交互式
composer checkout
Please enter the number of Pull Requests [1]:
> 1
Link to Pull Request:
> https://github.com/symfony/symfony/pull/41105
在两种情况下,输出将类似于这个
Checking out dependency: symfony/symfony:dev-inflector-edges as 4.4.x-dev
./composer.json has been updated
Running composer update symfony/symfony
Loading composer repositories with package information
Updating dependencies
Lock file operations: 25 installs, 0 updates, 0 removals
- Locking doctrine/annotations (1.12.1)
- Locking doctrine/cache (1.11.0)
- Locking doctrine/collections (1.6.7)
- Locking doctrine/event-manager (1.1.1)
- Locking doctrine/lexer (1.2.1)
- Locking doctrine/persistence (2.1.0)
- Locking friendsofphp/proxy-manager-lts (v1.0.3)
- Locking laminas/laminas-code (4.2.1)
- Locking laminas/laminas-eventmanager (3.3.1)
- Locking laminas/laminas-zendframework-bridge (1.2.0)
- Locking psr/cache (1.0.1)
- Locking psr/container (1.1.1)
- Locking psr/link (1.0.0)
- Locking psr/log (1.1.4)
- Locking symfony/contracts (v1.1.10)
- Locking symfony/polyfill-ctype (v1.22.1)
- Locking symfony/polyfill-intl-icu (v1.22.1)
- Locking symfony/polyfill-intl-idn (v1.22.1)
- Locking symfony/polyfill-intl-normalizer (v1.22.1)
- Locking symfony/polyfill-mbstring (v1.22.1)
- Locking symfony/polyfill-php72 (v1.22.1)
- Locking symfony/polyfill-php73 (v1.22.1)
- Locking symfony/polyfill-php80 (v1.22.1)
- Locking symfony/symfony (dev-inflector-edges 8b2c097)
- Locking twig/twig (v3.3.0)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 25 installs, 0 updates, 0 removals
- Syncing symfony/symfony (dev-inflector-edges 8b2c097) into cache
- Installing doctrine/lexer (1.2.1): Extracting archive
- Installing doctrine/annotations (1.12.1): Extracting archive
- Installing doctrine/cache (1.11.0): Extracting archive
- Installing doctrine/collections (1.6.7): Extracting archive
- Installing laminas/laminas-zendframework-bridge (1.2.0): Extracting archive
- Installing laminas/laminas-eventmanager (3.3.1): Extracting archive
- Installing laminas/laminas-code (4.2.1): Extracting archive
- Installing symfony/polyfill-intl-normalizer (v1.22.1): Extracting archive
- Installing symfony/polyfill-mbstring (v1.22.1): Extracting archive
- Installing symfony/polyfill-ctype (v1.22.1): Extracting archive
- Installing twig/twig (v3.3.0): Extracting archive
- Installing symfony/polyfill-php80 (v1.22.1): Extracting archive
- Installing symfony/polyfill-php73 (v1.22.1): Extracting archive
- Installing symfony/polyfill-php72 (v1.22.1): Extracting archive
- Installing symfony/polyfill-intl-idn (v1.22.1): Extracting archive
- Installing symfony/polyfill-intl-icu (v1.22.1): Extracting archive
- Installing psr/container (1.1.1): Extracting archive
- Installing psr/cache (1.0.1): Extracting archive
- Installing symfony/contracts (v1.1.10): Extracting archive
- Installing psr/log (1.1.4): Extracting archive
- Installing psr/link (1.0.0): Extracting archive
- Installing symfony/symfony (dev-inflector-edges 8b2c097): Cloning 8b2c097950 from cache
- Installing friendsofphp/proxy-manager-lts (v1.0.3): Extracting archive
- Installing doctrine/event-manager (1.1.1): Extracting archive
- Installing doctrine/persistence (2.1.0): Extracting archive
5 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
17 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
composer apply-patch
使用patch命令应用Pull Request的差异。
示例用法
composer apply-patch https://github.com/symfony/symfony/pull/41105
或交互式
composer apply-patch
Please enter the number of Pull Requests [1]:
> 1
Link to Pull Request:
> https://github.com/symfony/symfony/pull/41105
在两种情况下,输出将类似于这个
[OK] Downloaded patch: patch_symfony-symfony-41105
Running command: patch -d vendor/symfony/symfony -i ../../../patch_symfony-symfony-41105 -Np1
patching file src/Symfony/Component/Inflector/Inflector.php
patching file src/Symfony/Component/Inflector/Tests/InflectorTest.php
[OK] Applied patch!
