Browse Source

Fix origin computation

Jordi Boggiano 5 years ago
parent
commit
0fe200d6d9

+ 8 - 1
src/Composer/Repository/Vcs/GitLabDriver.php

@@ -495,13 +495,20 @@ class GitLabDriver extends VcsDriver
     private static function determineOrigin(array $configuredDomains, $guessedDomain, array &$urlParts, $portNumber)
     private static function determineOrigin(array $configuredDomains, $guessedDomain, array &$urlParts, $portNumber)
     {
     {
         if (in_array($guessedDomain, $configuredDomains) || ($portNumber && in_array($guessedDomain.':'.$portNumber, $configuredDomains))) {
         if (in_array($guessedDomain, $configuredDomains) || ($portNumber && in_array($guessedDomain.':'.$portNumber, $configuredDomains))) {
+            if ($portNumber) {
+                return $guessedDomain.':'.$portNumber;
+            }
             return $guessedDomain;
             return $guessedDomain;
         }
         }
 
 
+        if ($portNumber) {
+            $guessedDomain .= ':'.$portNumber;
+        }
+
         while (null !== ($part = array_shift($urlParts))) {
         while (null !== ($part = array_shift($urlParts))) {
             $guessedDomain .= '/' . $part;
             $guessedDomain .= '/' . $part;
 
 
-            if (in_array($guessedDomain, $configuredDomains) || ($portNumber && in_array(preg_replace('{/}', ':'.$portNumber.'/', $guessedDomain, 1), $configuredDomains))) {
+            if (in_array($guessedDomain, $configuredDomains) || ($portNumber && in_array(preg_replace('{:\d+}', '', $guessedDomain), $configuredDomains))) {
                 return $guessedDomain;
                 return $guessedDomain;
             }
             }
         }
         }

+ 1 - 1
tests/Composer/Test/Repository/Vcs/GitLabDriverTest.php

@@ -207,7 +207,7 @@ JSON;
 JSON;
 JSON;
 
 
         $this->remoteFilesystem
         $this->remoteFilesystem
-            ->getContents($domain, $apiUrl, false, array())
+            ->getContents($domain.':'.$port, $apiUrl, false, array())
             ->willReturn(sprintf($projectData, $domain, $port, $namespace))
             ->willReturn(sprintf($projectData, $domain, $port, $namespace))
             ->shouldBeCalledTimes(1);
             ->shouldBeCalledTimes(1);