我有一个多个人一起工作的 PHP 包的 SVN 存储库。我们希望公开该软件包,因此我们已将其添加到带有 url svn://svn.xxxx.com/my-package 的 packagist
如何向存储库添加挂钩,以便每当开发人员提交时,packagist 会自动更新,类似于 Github 中可用的服务挂钩?
更新
我设法在下面的相关部分中找到了我在这个packagegist 页面上寻找的内容:
我已经用 PHP 编写了一个脚本来为我执行此操作(仅仅是因为我对 PHP 比对 python 更舒服),为此您需要安装 PHP5-cli 和 php curl 包,这可以在 ubuntu 上使用以下命令完成命令:
sudo apt-get install php5-cli php5-curl -y
提交后文件
#!/usr/bin/php
<?php
# Code for sending post request taken from:
# https://stackoverflow.com/questions/16920291/post-request-with-json-body
define('API_TOKEN', 'xxx');
define('USER', 'xxx');
define('REPO_URL', 'https://packagist.org/packages/xxx/xxx');
#define('REPO_URL', 'svn://svn.xxx.com/xxx');
$data = array(
'repository' => array('url' => REPO_URL)
);
// Setup cURL
$url = 'https://packagist.org/api/update-package?username=' . USER . '&apiToken=' . API_TOKEN;
$ch = curl_init($url);
curl_setopt_array($ch, array(
CURLOPT_POST => TRUE,
CURLOPT_RETURNTRANSFER => TRUE,
CURLOPT_HTTPHEADER => array('Content-Type: application/json'),
CURLOPT_POSTFIELDS => json_encode($data)
));
// Send the request
$response = curl_exec($ch);
// Check for errors
if ($response === FALSE)
{
die(curl_error($ch));
}
// Decode the response
$responseData = json_decode($response, TRUE);
// Print the date from the response
var_dump($responseData);
chmod +x
创建文件后确保文件。
目前的问题
不幸的是,我遇到了以下响应错误消息:
array(2) {
["status"]=>
string(5) "error"
["message"]=>
string(38) "Could not parse payload repository URL"
}
当我 var_dump 我发送的数据时,如下所示:
string(43) "{"repository":{"url":"xxx/table-creator"}}"