1
0
Fork 0

Remove static/public method

pull/5717/head
Jordi Boggiano 2016-10-10 14:03:30 +02:00 committed by GitHub
parent 489a8f3d5a
commit c0e28a9043
1 changed files with 24 additions and 24 deletions

View File

@ -175,27 +175,6 @@ class RemoteFilesystem
return $value;
}
/**
* @link https://github.com/composer/composer/issues/5584
*
* @param string $urlToBitBucketFile URL to a file at bitbucket.org.
*
* @return bool Whether the given URL is a public BitBucket download which requires no authentication.
*/
public static function urlIsPublicBitBucketDownload($urlToBitBucketFile)
{
$path = parse_url($urlToBitBucketFile, PHP_URL_PATH);
// Path for a public download follows this pattern /{user}/{repo}/downloads/{whatever}
// {@link https://blog.bitbucket.org/2009/04/12/new-feature-downloads/}
$pathParts = explode('/', $path);
if (count($pathParts) >= 4 && $pathParts[2] != 'downloads') {
return true;
}
return false;
}
/**
* Get file content or copy action.
*
@ -267,8 +246,8 @@ class RemoteFilesystem
}
if (isset($options['bitbucket-token'])) {
// First time be optimistic and do not use the token for a BitBucket download.
if (!static::urlIsPublicBitBucketDownload($origFileUrl)) {
// skip using the token for BitBucket downloads as these are not working with auth
if (!$this->isPublicBitBucketDownload($origFileUrl)) {
$fileUrl .= (false === strpos($fileUrl,'?') ? '?' : '&') . 'access_token=' . $options['bitbucket-token'];
}
unset($options['bitbucket-token']);
@ -366,7 +345,7 @@ class RemoteFilesystem
// check for bitbucket login page asking to authenticate
if ($originUrl === 'bitbucket.org'
&& !static::urlIsPublicBitBucketDownload($fileUrl)
&& !$this->isPublicBitBucketDownload($fileUrl)
&& substr($fileUrl, -4) === '.zip'
&& preg_match('{^text/html\b}i', $contentType)
) {
@ -1007,4 +986,25 @@ class RemoteFilesystem
return parse_url($url, PHP_URL_HOST).':'.$port;
}
/**
* @link https://github.com/composer/composer/issues/5584
*
* @param string $urlToBitBucketFile URL to a file at bitbucket.org.
*
* @return bool Whether the given URL is a public BitBucket download which requires no authentication.
*/
private function isPublicBitBucketDownload($urlToBitBucketFile)
{
$path = parse_url($urlToBitBucketFile, PHP_URL_PATH);
// Path for a public download follows this pattern /{user}/{repo}/downloads/{whatever}
// {@link https://blog.bitbucket.org/2009/04/12/new-feature-downloads/}
$pathParts = explode('/', $path);
if (count($pathParts) >= 4 && $pathParts[2] != 'downloads') {
return true;
}
return false;
}
}