配置私有Composer仓库Webhook可实现代码提交后自动更新包索引。1. Webhook由GitHub等平台在推送时触发,向公网可访问的URL发送POST请求。2. 使用Satis时需编写接收脚本(如webhook.php),验证签名后执行satis build命令生成静态仓库。3. 脚本部署在Web目录并限制访问,Git平台配置对应URL、密钥及触发事件。4. Private Packagist可直接使用其提供的Webhook地址,实现近乎实时的自动同步。5. 建议启用签名验证、记录日志、避免硬编码敏感信息以提升安全性与稳定性。完成后开发者只需composer update即可拉取最新包。

为私有Composer仓库配置Webhook,可以实现在代码提交或包版本更新时自动触发Satis或Private Packagist的索引更新。这样能确保你的私有PHP包始终在镜像仓库中保持最新状态,无需手动运行构建命令。
当你的Git仓库(如GitHub、GitLab或Bitbucket)发生推送事件(如push新tag或commit),会向预设的URL发送一个HTTP POST请求。这个URL指向你部署的接收脚本,脚本接收到通知后执行Satis生成或触发Private Packagist同步。
关键点:
如果你使用Satis自建静态包仓库,可通过以下步骤实现自动构建:
步骤一:编写Webhook接收脚本
示例:webhook.php
<?php
$payload = json_decode(file_get_contents('php://input'), true);
// 可选:验证签名或IP来源
$secret = 'your-webhook-secret';
$signature = $_SERVER['HTTP_X_HUB_SIGNATURE_256'] ?? '';
if (!hash_equals('sha256=' . hash_hmac('sha256', file_get_contents('php://input'), $secret), $signature)) {
http_response_code(403);
exit('Invalid signature');
}
// 执行satis build
exec('/usr/bin/php /path/to/satis/bin/satis build /path/to/satis.json /path/to/output', $output, $returnCode);
if ($returnCode !== 0) {
error_log('Satis build failed: ' . implode("\n", $output));
}
?>
步骤二:部署并保护脚本路径
/var/www/html/webhook.php)步骤三:在Git平台添加Webhook
https://yourdomain.com/webhook.php
application/json
Push events或Tag push events
Private Packagist支持直接连接Git服务,但也可通过Webhook加速响应:
登录Private Packagist后台,在对应仓库设置中启用“Webhook”功能。系统会提供一个唯一URL。
操作流程:
相比轮询检查,这种方式几乎实时同步新版本。
自动化流程需兼顾安全与可靠:
基本上就这些。配置完成后,每次推送新版本,你的私有包仓库就能自动更新,开发者只需执行composer update即可获取最新代码。不复杂但容易忽略细节。
以上就是如何为私有Composer仓库配置Webhook以实现自动更新_Satis或Private Packagist的自动化包索引的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号