需配置Dependabot自动更新或自定义GitHub Actions工作流:一、启用Dependabot并配置dependabot.yml实现周更;二、编写update-composer-dependencies.yml定时执行composer update及提交;三、集成composer-require-checker检测未声明依赖;四、在workflow中添加git配置、变更检查、提交与推送步骤。

如果您希望在 Composer 项目中通过 GitHub Actions 实现依赖的自动更新,需配置工作流以触发依赖检查、版本升级及提交变更。以下是实现此目标的具体步骤:
一、启用 Dependabot 自动更新
Dependabot 是 GitHub 内置的依赖监控服务,可自动检测 composer.json 中过时的包并创建 PR。它不依赖自定义 workflow 文件,但需在仓库中启用并配置 dependabot.yml。
1、在项目根目录下创建 .github/dependabot.yml 文件。
2、写入以下内容:version: 2\nupdates:\n - package-ecosystem: "composer"\n directory: "/" \n schedule:\n interval: "weekly"\n open-pull-requests-limit: 10
3、提交并推送该文件至 main 分支。
二、配置自定义 GitHub Actions 工作流执行 composer update
该方式允许完全控制更新逻辑,例如仅更新 dev-master、跳过特定包、运行测试后再提交,适用于需要精细策略的场景。
1、在 .github/workflows/ 目录下新建 update-composer-dependencies.yml。
2、填入基础 workflow 定义:name: Update Composer Dependencies\non:\n schedule:\n - cron: '0 0 * * 0'\n workflow_dispatch:
3、在 jobs 下添加运行步骤,包含 checkout、setup-php、composer install、composer update --dry-run 验证、实际更新、git 提交等操作。
三、使用 composer-require-checker 配合 Actions 检测未声明依赖
该工具可识别代码中使用但未在 composer.json 中声明的包,避免隐式依赖导致 CI 失败或环境不一致,是自动化更新前的重要校验环节。
1、在项目中执行 composer require --dev maglnet/composer-require-checker 安装检查器。
2、生成默认配置文件:vendor/bin/composer-require-checker init,保存为 composer-require-checker.json。
3、在 GitHub Actions 工作流中添加运行命令:vendor/bin/composer-require-checker check --config-file=composer-require-checker.json。
四、集成 commit-and-push 步骤实现自动提交更新
在完成 composer update 后,需将 composer.lock 和可能变更的 composer.json 推送至仓库,以便其他流程(如构建、部署)基于最新依赖运行。
1、在 workflow 的 job 步骤中,于 composer update 执行完毕后添加 git 配置命令:git config --local user.email "action@github.com" && git config --local user.name "GitHub Action"。
2、执行差异检查:git status --porcelain 判断是否有修改。
3、如有变更,执行 git add composer.json composer.lock && git commit -m "chore(deps): update dependencies via GitHub Actions"。
4、使用 git push 推送提交,注意需配置 GITHUB_TOKEN 权限或使用专用 PAT。










