Browse Source

Update github URLs to the most ideal one when submitting packages and do CS URL matches, fixes #354, fixes #423

Jordi Boggiano 10 years ago
parent
commit
cc2f686775

+ 10 - 12
composer.lock

@@ -12,12 +12,12 @@
             "source": {
                 "type": "git",
                 "url": "https://github.com/composer/composer.git",
-                "reference": "02984abf23d3bc7ed12b6ea79cef7fc1f306bb71"
+                "reference": "d5294ef91b061064785f077db0fd88717495ef16"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/composer/composer/zipball/02984abf23d3bc7ed12b6ea79cef7fc1f306bb71",
-                "reference": "02984abf23d3bc7ed12b6ea79cef7fc1f306bb71",
+                "url": "https://api.github.com/repos/composer/composer/zipball/d5294ef91b061064785f077db0fd88717495ef16",
+                "reference": "d5294ef91b061064785f077db0fd88717495ef16",
                 "shasum": ""
             },
             "require": {
@@ -54,17 +54,15 @@
                 "MIT"
             ],
             "authors": [
-                {
-                    "name": "Jordi Boggiano",
-                    "email": "j.boggiano@seld.be",
-                    "homepage": "http://seld.be",
-                    "role": "Developer"
-                },
                 {
                     "name": "Nils Adermann",
                     "email": "naderman@naderman.de",
-                    "homepage": "http://www.naderman.de",
-                    "role": "Developer"
+                    "homepage": "http://www.naderman.de"
+                },
+                {
+                    "name": "Jordi Boggiano",
+                    "email": "j.boggiano@seld.be",
+                    "homepage": "http://seld.be"
                 }
             ],
             "description": "Composer helps you declare, manage and install dependencies of PHP projects, ensuring you have the right stack everywhere.",
@@ -74,7 +72,7 @@
                 "dependency",
                 "package"
             ],
-            "time": "2014-06-29 14:00:03"
+            "time": "2014-07-19 16:40:01"
         },
         {
             "name": "doctrine/annotations",

+ 2 - 2
src/Packagist/WebBundle/Controller/ApiController.php

@@ -104,10 +104,10 @@ class ApiController extends Controller
         }
 
         if (isset($payload['repository']['url'])) { // github/gitlab/anything hook
-            $urlRegex = '{^(?:https?://|git://|git@)?(?P<host>[a-z0-9.-]+)[:/](?P<path>[\w.-]+/[\w.-]+?)(?:\.git)?$}';
+            $urlRegex = '{^(?:https?://|git://|git@)?(?P<host>[a-z0-9.-]+)[:/](?P<path>[\w.-]+/[\w.-]+?)(?:\.git)?$}i';
             $url = $payload['repository']['url'];
         } elseif (isset($payload['canon_url']) && isset($payload['repository']['absolute_url'])) { // bitbucket hook
-            $urlRegex = '{^(?:https?://|git://|git@)?(?P<host>bitbucket\.org)[/:](?P<path>[\w.-]+/[\w.-]+?)(\.git)?/?$}';
+            $urlRegex = '{^(?:https?://|git://|git@)?(?P<host>bitbucket\.org)[/:](?P<path>[\w.-]+/[\w.-]+?)(\.git)?/?$}i';
             $url = $payload['canon_url'].$payload['repository']['absolute_url'];
         } else {
             return new JsonResponse(array('status' => 'error', 'message' => 'Missing or invalid payload'), 406);

+ 4 - 0
src/Packagist/WebBundle/Entity/Package.php

@@ -20,6 +20,7 @@ use Composer\IO\NullIO;
 use Composer\Factory;
 use Composer\Repository\VcsRepository;
 use Composer\Repository\RepositoryManager;
+use Composer\Repository\Vcs\GitHubDriver;
 
 /**
  * @ORM\Entity(repositoryClass="Packagist\WebBundle\Entity\PackageRepository")
@@ -359,6 +360,9 @@ class Package
             if (null === $this->getName()) {
                 $this->setName($information['name']);
             }
+            if ($driver instanceof GitHubDriver) {
+                $this->repository = $driver->getRepositoryUrl();
+            }
         } catch (\Exception $e) {
             $this->vcsDriverError = '['.get_class($e).'] '.$e->getMessage();
         }