/** * Test the author mapping against ignored authors. * * @return void */ public function testIgnoredAuthorMapping() { $config = new Config(); $config->aliasAuthor('Author Alias <*****@*****.**>', 'Real Author <*****@*****.**>'); $config->aliasAuthor('Ignored Alias <*****@*****.**>', 'Real Author <*****@*****.**>'); $config->aliasAuthor('Ignored Alias2 <*****@*****.**>', 'Ignored Author <*****@*****.**>'); $config->ignoreAuthors(array('Ignored Author <*****@*****.**>', 'Ignored Alias <*****@*****.**>')); $this->assertFalse($config->isAlias('Real Author <*****@*****.**>')); $this->assertFalse($config->isAlias('Ignored Author <*****@*****.**>')); $this->assertNull($config->getRealAuthor('Ignored Author <*****@*****.**>')); $this->assertNull($config->getRealAuthor('Ignored Alias <*****@*****.**>')); $this->assertNull($config->getRealAuthor('Ignored Alias2 <*****@*****.**>')); $this->assertEquals('Real Author <*****@*****.**>', $config->getRealAuthor('Real Author <*****@*****.**>')); $this->assertEquals('Real Author <*****@*****.**>', $config->getRealAuthor('Author Alias <*****@*****.**>')); }
/** * {@inheritDoc} * * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) */ protected function execute(InputInterface $input, OutputInterface $output) { $error = $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output; if (!($input->getOption('php-files') || $input->getOption('composer') || $input->getOption('bower') || $input->getOption('packages'))) { $error->writeln('<error>You must select at least one validation to run!</error>'); $error->writeln('check-author.php [--php-files] [--composer] [--bower] [--packages]'); return 1; } $config = new Config(); if (!$input->getOption('do-not-ignore-well-known-bots')) { $configFile = dirname(dirname(__DIR__)) . DIRECTORY_SEPARATOR . 'defaults' . DIRECTORY_SEPARATOR . 'ignore-well-known-bots.yml'; $config->addFromYml($configFile); } $configFile = $input->getOption('config'); if (is_file($configFile)) { $config->addFromYml($configFile); } $config->ignoreAuthors($input->getOption('ignore'))->excludePaths($input->getOption('exclude'))->includePaths(array_filter(array_map(function ($arg) { return realpath($arg); }, $input->getArgument('include')))); $diff = $input->getOption('diff'); $extractors = $this->createSourceExtractors($input, $error, $config); $gitExtractor = new GitAuthorExtractor($config, $error); $comparator = new AuthorListComparator($config, $error); $comparator->shallGeneratePatches($diff); $failed = $this->handleExtractors($extractors, $gitExtractor, $comparator); if ($failed && $diff) { $output->writeln($comparator->getPatchSet()); } return $failed ? 1 : 0; }