本文目录导读:

在 PHP 中,如果你想使用 Renovate(一个自动化依赖更新工具),你需要按照以下步骤进行配置:
安装 Renovate
使用自托管方式(Self-hosted)
# 使用 npm 全局安装 npm install -g renovate # 或者使用 Docker docker run --rm renovate/renovate
使用 GitHub App(最简单)
在 GitHub Marketplace 中搜索 "Renovate",点击安装并授权到你的仓库。
创建 Renovate 配置文件
在项目根目录创建 renovate.json 或 renovate.json5:
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
],
"packageRules": [
{
"matchDatasources": ["packagist"],
"matchPackagePatterns": ["^php"],
"groupName": "PHP Packages"
}
],
"php": {
"enabled": true,
"rangeStrategy": "bump"
}
}
配置 PHP 相关更新
更新 composer.json 依赖
{
"extends": ["config:recommended"],
"composer": {
"enabled": true,
"rangeStrategy": "in-range",
"composerIgnorePlatformReqs": true
}
}
更新 PHP 版本
{
"constraints": {
"php": "^8.0"
}
}
配置 PR 合并策略
{
"packageRules": [
{
"matchUpdateTypes": ["major"],
"automerge": false
},
{
"matchUpdateTypes": ["minor", "patch"],
"automerge": true,
"automergeType": "branch"
}
]
}
针对 PHP 项目的常用配置
忽略特定包
{
"ignored": [
"phpunit/phpunit",
"friendsofphp/php-cs-fixer"
]
}
配置更新频率
{
"schedule": [
"every weekend",
"before 5:00am"
],
"timezone": "Asia/Shanghai"
}
分组更新策略
{
"groupName": "Laravel Packages",
"matchPackagePatterns": ["^laravel/"]
}
初始化 Renovate
在你的 GitHub 仓库中添加 Renovate 后,它会自动:
- 创建 "Configure Renovate" 的 PR
- 合并该 PR 后会生成
renovate.json配置 - 自动检测
composer.json中的依赖
验证配置
你可以使用 Renovate 的配置验证工具:
renovate-config-validator renovate.json
常见问题处理
处理平台版本约束
{
"constraints": {
"php": ">=8.0 <8.2"
}
}
处理多 PHP 版本
{
"supportPolicy": "active-lts",
"phpVersions": ["8.0", "8.1", "8.2"]
}
GitHub Actions 集成(可选)
创建 .github/workflows/renovate.yml:
name: Renovate
on:
schedule:
- cron: '0 3 * * *'
jobs:
renovate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Renovate
uses: renovatebot/github-action@v40
with:
token: ${{ secrets.RENOVATE_TOKEN }}
注意事项
- 安全更新:Renovate 会自动创建安全更新的 PR
- 兼容性:确保配置的 PHP 版本与你的项目兼容
- 测试:配置
automerge前确保有足够的测试覆盖 - 权限:Renovate 需要仓库的写权限
通过这些配置,Renovate 会自动监控并更新你的 PHP 依赖,保持项目的最新状态。