danielbachhuber / composer-lock-updater
在您的 CI 系统中运行 composer-lock-updater 以实现 bot 动力的 composer.lock pull 请求。
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-10 18:19:28 UTC
README
在您的 CI 系统中运行 composer-lock-updater 以实现 bot 动力的 composer.lock
pull 请求。
当您运行 clu
时,它
- 将给定的 git 仓库克隆到工作
/tmp/
目录。 - 在工作目录内运行
composer update
。 - 如果检测到跟踪的
composer.lock
文件中的更改,则提交一个 pull 请求。
太好了!现在您的依赖项不再是六个月前的版本了。
composer-lock-updater 与 dependabot 不同,因为它将所有更新捆绑成一个 pull 请求,而不是为每个依赖项创建单独的 pull 请求。
安装 | 使用 | 与 Travis CI 集成
安装
composer-lock-updater 是一个可以通过 Composer 安装的 PHP 库。
composer global require danielbachhuber/composer-lock-updater
composer-lock-updater 依赖于系统上已安装的 composer
和 git
。对于 GitHub 使用,还需要安装官方的 hub
CLI 工具。对于 GitLab 使用,可以使用非官方的 lab
CLI 工具,该工具模拟 hub
。
无论是 hub
还是 lab
,都需要通过它们各自的服务进行认证,以便创建 pull/merge 请求。
其他提供商的支持
将 clu-config.dist.json 复制到 $COMPOSER_HOME/clu-config.json
以添加对您的 git 仓库提供商的支持,或者调整 pull 请求命令。例如,要使用 Terminus Bitbucket Plugin 添加对 Bitbucket-Pantheon 项目的支持,创建以下 clu-config.json
{
"providers": {
"terminus": {
"provider": "terminus",
"exec": ["terminus"],
"pr_create": "terminus pr-create --title=\"Update Composer dependencies\" --description %s",
"pr_list": "terminus pr-list",
"pr_close": "terminus pr-close %d -y",
"title_pattern": "%(\\d+)\\s+Update Composer dependencies\\s+clu\\-([0-9-]*)%"
}
}
}
使用
在现有的 GitHub 仓库中使用 composer-lock-updater
clu
composer-lock-updater 默认使用 git config --get remote.origin.url
。如果您想指定不同的值,可以将仓库 URL 作为第一个位置参数传递,或者定义一个 CLU_GIT_URL
环境变量。
要使用 composer-lock-updater 与 GitLab 仓库一起使用,请
clu --provider=gitlab
composer-lock-updater 还支持以下环境变量来修改其行为
CLU_COMPOSER_INSTALL_ARGS
:传递给composer install
的参数;默认为--no-dev --no-interaction
。CLU_COMPOSER_UPDATE_ARGS
:传递给composer update
的参数;默认为--no-progress --no-dev --no-interaction
。CLU_GIT_NAME
:用于 Git 提交的名称;默认为 'composer-lock-update'。CLU_GIT_EMAIL
:用于 Git 提交的电子邮件;默认为 'composer-lock-update@localhost'。
与 Travis CI 集成
如果没有自动运行,那就没什么用了。
要将 composer-lock-updater 配置为在 Travis master 分支构建时运行,请将以下内容添加到您的 .travis.yml
文件中
after_script: - | ### # Only run on one job of a master branch build ### if [ -z "$CLU_RUN" ] || [ "$TRAVIS_BRANCH" != master ] ; then echo "composer.lock update disabled for this build" return fi ### # Install composer-lock-updater ### export PATH="$HOME/.composer/vendor/bin:$PATH" composer global require danielbachhuber/composer-lock-updater ### # Install hub for creating GitHub pull requests # # You could also replace this with lab to create GitLab merge requests. ### wget -O hub.tgz https://github.com/github/hub/releases/download/v2.2.9/hub-linux-amd64-2.2.9.tgz tar -zxvf hub.tgz export PATH=$PATH:$PWD/hub-linux-amd64-2.2.9/bin/ ### # Optional: install Sensio Labs security checker to include security advisories in PR comments ### mkdir -p $HOME/bin wget -O $HOME/bin/security-checker.phar http://get.sensiolabs.org/security-checker.phar chmod +x $HOME/bin/security-checker.phar ### # Run composer-lock-updater ### clu $CLU_REPO_URL
要授予 Travis 构建提交和 pull 请求访问权限,请在 Travis 控制面板中定义以下私有环境变量
GITHUB_TOKEN=<personal-oauth-token>
CLU_REPO_URL=https://<personal-oauth-token>:x-oauth-basic@github.com/<org>/<repo>.git
请确保将 <personal-oauth-token>
、<org>
和 <repo>
替换为相应的值。
最后,由于存在CLU_RUN
环境变量,默认情况下禁用了composer-lock-updater。通过修改您的环境矩阵,可以为每个构建启用一次。
matrix:
include:
- php: 7.1
env: WP_VERSION=latest PHP_APCU=enabled CLU_RUN=1
- php: 7.0
env: WP_VERSION=latest PHP_APCU=enabled
- php: 5.6
env: WP_VERSION=latest PHP_APCU=enabled
由于composer-lock-updater是在after_script
步骤中运行的,请确保它运行正确,因为如果配置错误,它不会使您的构建失败。