Fully upgraded to BitBucket API 2.0.

Previously the update checker used a mix of 2.0 and 1.0. Version 1.0 was deprecated a while ago and has now stopped working for at least some users.

This should fix the errors reported in #289.
This commit is contained in:
Yahnis Elsts 2019-06-13 16:11:05 +03:00
parent 3ad92e3135
commit 3f5a340ded
1 changed files with 14 additions and 5 deletions

View File

@ -157,11 +157,11 @@ if ( !class_exists('Puc_v4p6_Vcs_BitBucketApi', false) ):
* @return null|string Either the contents of the file, or null if the file doesn't exist or there's an error.
*/
public function getRemoteFile($path, $ref = 'master') {
$response = $this->api('src/' . $ref . '/' . ltrim($path), '1.0');
if ( is_wp_error($response) || !isset($response, $response->data) ) {
$response = $this->api('src/' . $ref . '/' . ltrim($path));
if ( is_wp_error($response) || !is_string($response) ) {
return null;
}
return $response->data;
return $response;
}
/**
@ -186,13 +186,16 @@ if ( !class_exists('Puc_v4p6_Vcs_BitBucketApi', false) ):
* @return mixed|WP_Error
*/
public function api($url, $version = '2.0') {
$url = ltrim($url, '/');
$isSrcResource = Puc_v4p6_Utils::startsWith($url, 'src/');
$url = implode('/', array(
'https://api.bitbucket.org',
$version,
'repositories',
$this->username,
$this->repository,
ltrim($url, '/')
$url
));
$baseUrl = $url;
@ -213,7 +216,13 @@ if ( !class_exists('Puc_v4p6_Vcs_BitBucketApi', false) ):
$code = wp_remote_retrieve_response_code($response);
$body = wp_remote_retrieve_body($response);
if ( $code === 200 ) {
if ( $isSrcResource ) {
//Most responses are JSON-encoded, but src resources just
//return raw file contents.
$document = $body;
} else {
$document = json_decode($body);
}
return $document;
}