Pyrech\ComposerChangelogs\UrlGenerator\BitbucketUrlGenerator::generateCompareUrl PHP Méthode

generateCompareUrl() public méthode

public generateCompareUrl ( $sourceUrlFrom, Version $versionFrom, $sourceUrlTo, Version $versionTo )
$versionFrom Pyrech\ComposerChangelogs\Version
$versionTo Pyrech\ComposerChangelogs\Version
    public function generateCompareUrl($sourceUrlFrom, Version $versionFrom, $sourceUrlTo, Version $versionTo)
    {
        // Check if both urls come from the supported domain
        // It avoids problems when one url is from another domain or is local
        if (!$this->supports($sourceUrlFrom) || !$this->supports($sourceUrlTo)) {
            return false;
        }
        $sourceUrlFrom = $this->generateBaseUrl($sourceUrlFrom);
        $sourceUrlTo = $this->generateBaseUrl($sourceUrlTo);
        // Check if comparison across forks is needed
        if ($sourceUrlFrom !== $sourceUrlTo) {
            $repositoryFrom = $this->extractRepositoryInformation($sourceUrlFrom);
            $repositoryTo = $this->extractRepositoryInformation($sourceUrlTo);
            return sprintf('%s/branches/compare/%s/%s:%s%%0D%s/%s:%s', $sourceUrlTo, $repositoryTo['user'], $repositoryTo['repository'], $this->getCompareVersion($versionTo), $repositoryFrom['user'], $repositoryFrom['repository'], $this->getCompareVersion($versionFrom));
        }
        return sprintf('%s/branches/compare/%s%%0D%s', $sourceUrlTo, $this->getCompareVersion($versionTo), $this->getCompareVersion($versionFrom));
    }

Usage Example

 /**
  * @expectedException \LogicException
  * @expectedExceptionMessage Malformed Bitbucket source url: "https://example.com/url/to/repo"
  */
 public function test_it_throws_exception_when_generating_compare_urls_across_forks_if_a_source_url_is_invalid()
 {
     $versionFrom = new Version('v1.0.0.0', 'v1.0.0', 'v1.0.0');
     $versionTo = new Version('v1.0.1.0', 'v1.0.1', 'v1.0.1');
     $this->SUT->generateCompareUrl('https://bitbucket.org/acme1/repo', $versionFrom, 'https://example.com/url/to/repo', $versionTo);
 }
All Usage Examples Of Pyrech\ComposerChangelogs\UrlGenerator\BitbucketUrlGenerator::generateCompareUrl