瀏覽代碼

Fixed bugs.

xaav 13 年之前
父節點
當前提交
39e12cae73

+ 4 - 8
src/Packagist/WebBundle/Command/UpdatePackagesCommand.php

@@ -52,7 +52,7 @@ EOF
     {
         $em = $this->getContainer()->get('doctrine')->getEntityManager();
         $logger = $this->getContainer()->get('logger');
-        $provider = $this->getContainer()->get('git_repository_provider');
+        $provider = $this->getContainer()->get('repository_provider');
 
         $qb = $em->createQueryBuilder();
         $qb->select('p, v')
@@ -65,14 +65,10 @@ EOF
             $repo = $package->getRepository();
 
             // Process GitHub via API
-            if ($provider->supports($repo)) {
+            if ($gitRepo = $provider->getRepository($repo)) {
 
-                $gitRepo = $provider->getRepository($repo);
-
-
-
-                $owner = $match[1];
-                $repository = $match[2];
+                $owner = $gitRepo->getOwner();
+                $repository = $gitRepo->getRepository();
                 $output->writeln('Importing '.$owner.'/'.$repository);
 
                 $repoData = $gitRepo->getRepoData();

+ 1 - 1
src/Packagist/WebBundle/Repository/Provider/GitRepositoryProvider.php

@@ -13,6 +13,6 @@ class GitRepositoryProvider implements RepositoryProviderInterface
 
     public function supports($url)
     {
-        return preg_match('#^(?:https?|git)://github\.com/([^/]+)/(.+?)(?:\.git)?$#', $repo, $match);
+        return preg_match('#^(?:https?|git)://github\.com/([^/]+)/(.+?)(?:\.git)?$#', $url, $match);
     }
 }

+ 11 - 1
src/Packagist/WebBundle/Repository/Repository/GitRepository.php

@@ -9,7 +9,7 @@ class GitRepository implements RepositoryInterface
 
     public function __construct($url)
     {
-        preg_match('#^(?:https?|git)://github\.com/([^/]+)/(.+?)(?:\.git)?$#', $repo, $match);
+        preg_match('#^(?:https?|git)://github\.com/([^/]+)/(.+?)(?:\.git)?$#', $url, $match);
         $this->owner = $match[1];
         $this->repository = $match[2];
     }
@@ -28,4 +28,14 @@ class GitRepository implements RepositoryInterface
     {
         return json_decode(file_get_contents('http://github.com/api/v2/json/repos/show/'.$this->owner.'/'.$this->repository.'/tags'), true);
     }
+
+    public function getOwner()
+    {
+        return $this->owner;
+    }
+
+    public function getRepository()
+    {
+        return $this->repository;
+    }
 }

+ 1 - 1
src/Packagist/WebBundle/Repository/Repository/RepositoryInterface.php

@@ -7,5 +7,5 @@ interface RepositoryInterface
     /**
      * Returns the decoded composer.json file.
      */
-    public function getComposerFile();
+    public function getComposerFile($hash);
 }

+ 2 - 4
src/Packagist/WebBundle/Repository/RepositoryProviderProvider.php

@@ -15,10 +15,8 @@ class RepositoryProviderProvider
 
     public function getRepository($url)
     {
-        foreach ($this->providers as $provider)
-        {
-            if($provider->supports($url))
-            {
+        foreach ($this->providers as $provider){
+            if($provider->supports($url)){
                 return $provider->getRepository($url);
             }
         }

+ 6 - 1
src/Packagist/WebBundle/Resources/config/services.yml

@@ -1,3 +1,8 @@
 services:
     git_repository_provider:
-        class: Packagist\WebBundle\Repository\Provider\GitRepositoryProvider
+        class: Packagist\WebBundle\Repository\Provider\GitRepositoryProvider
+        
+    repository_provider:
+        class: Packagist\WebBundle\Repository\RepositoryProviderProvider
+        calls:
+            - [ addProvider, [ @git_repository_provider ] ]