Adding initial github packages support
This commit is contained in:
parent
20ad03f44e
commit
7d140f2e6e
58
chirp.php
58
chirp.php
|
@ -143,6 +143,32 @@ function gitea_get_commit($auth_token, $gitea_url, $repo, $sha)
|
|||
return $res;
|
||||
}
|
||||
|
||||
function github_get_tags($github_repo)
|
||||
{
|
||||
$api_url = "https://api.github.com/repos/$github_repo/tags";
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL, $api_url);
|
||||
curl_setopt($ch, CURLOPT_HEADER, true);
|
||||
curl_setopt($ch, CURLOPT_USERAGENT, "test");
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
|
||||
$response = curl_exec($ch);
|
||||
|
||||
$header_size = curl_getinfo($ch, CURLINFO_HEADER_SIZE);
|
||||
$header = substr($response, 0, $header_size);
|
||||
$json = substr($response, $header_size);
|
||||
|
||||
$info = curl_getinfo($ch);
|
||||
|
||||
curl_close($ch);
|
||||
|
||||
if($info['http_code'] != 200)
|
||||
return $info['http_code'];
|
||||
|
||||
return json_decode($json, true);
|
||||
}
|
||||
|
||||
function _is_composer_git_repo(array $repos, $repo)
|
||||
{
|
||||
foreach($repos as $item)
|
||||
|
@ -153,6 +179,22 @@ function _is_composer_git_repo(array $repos, $repo)
|
|||
return false;
|
||||
}
|
||||
|
||||
function _is_composer_github_package(array $repos, $repo, &$github_repo)
|
||||
{
|
||||
foreach($repos as $item)
|
||||
{
|
||||
if($item['type'] == 'package' &&
|
||||
$item['package']['name'] == $repo &&
|
||||
preg_match('~https?://github.com/([^/]+)/([^/]+)~', $item['package']['dist']['url'], $matches))
|
||||
{
|
||||
$github_repo = $matches[1].'/'.$matches[2];
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
function gitea_check_repo(
|
||||
$auth_token,
|
||||
$gitea_url,
|
||||
|
@ -201,9 +243,8 @@ function gitea_check_repo(
|
|||
if(strpos($repo, "bit/") !== 0)
|
||||
continue;
|
||||
|
||||
if(!_is_composer_git_repo($composer_arr['repositories'], "$gitea_url/$repo"))
|
||||
continue;
|
||||
|
||||
if(_is_composer_git_repo($composer_arr['repositories'], "$gitea_url/$repo"))
|
||||
{
|
||||
$tags = gitea_get_tags($auth_token, $gitea_url, $repo);
|
||||
if(isset($tags[0]))
|
||||
{
|
||||
|
@ -214,6 +255,17 @@ function gitea_check_repo(
|
|||
else
|
||||
echo "Could not fetch tags for $repo\n";
|
||||
}
|
||||
else if(_is_composer_github_package($composer_arr['repositories'], $repo, $github_repo))
|
||||
{
|
||||
$tags = github_get_tags($github_repo);
|
||||
if(isset($tags[0]))
|
||||
{
|
||||
$last_tag_info = $tags[0];
|
||||
if(ltrim($last_tag_info["name"], 'v') != ltrim($version, 'v'))
|
||||
echo "Package '$repo': current $version, latest {$last_tag_info["name"]}\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if($opts['check_upm'])
|
||||
|
|
Loading…
Reference in New Issue