Bläddra i källkod

Output warning for invalid-looking packagist config, fixes #5404

Jordi Boggiano 8 år sedan
förälder
incheckning
5a3d60c0cf

+ 1 - 1
src/Composer/Repository/RepositoryFactory.php

@@ -153,7 +153,7 @@ class RepositoryFactory
             if ($repo['type'] === 'filesystem') {
                 $repos[$name] = new FilesystemRepository($repo['json']);
             } else {
-                $repos[$name] = $rm->createRepository($repo['type'], $repo);
+                $repos[$name] = $rm->createRepository($repo['type'], $repo, $index);
             }
         }
 

+ 6 - 1
src/Composer/Repository/RepositoryManager.php

@@ -108,15 +108,20 @@ class RepositoryManager
      *
      * @param  string                    $type   repository type
      * @param  array                     $config repository configuration
+     * @param  string                    $name   repository name
      * @throws \InvalidArgumentException if repository for provided type is not registered
      * @return RepositoryInterface
      */
-    public function createRepository($type, $config)
+    public function createRepository($type, $config, $name = null)
     {
         if (!isset($this->repositoryClasses[$type])) {
             throw new \InvalidArgumentException('Repository type is not registered: '.$type);
         }
 
+        if (isset($config['packagist']) && false === $config['packagist']) {
+            $this->io->writeError('<warning>Repository "'.$name.'" ('.json_encode($config).') has a packagist key which should be in its own repository definition</warning>');
+        }
+
         $class = $this->repositoryClasses[$type];
 
         $reflMethod = new \ReflectionMethod($class, '__construct');