public function testGitHubAuthentication() { $remote = new GitHubRemote(); $this->assertEquals([], $remote->getAuthenticationPart()); $remote->setOptions(['personal_token' => 'testpersonaltoken', 'username' => 'testusername']); $this->assertEquals(['auth' => ['testusername', 'testpersonaltoken']], $remote->getAuthenticationPart()); $repository = new GitHubRepository('text/test', 'just a test', $anon = 'https://github.com/test/test.git'); $repository->setRemote($remote); $this->assertEquals($anon, $repository->getAnonymousUri()); $this->assertEquals('https://*****:*****@github.com/test/test.git', $repository->getUri()); }
public function execute(InputInterface $input, OutputInterface $output) { if (!in_array($input->getOption('adapter'), ['BitBucket', 'GitHub'])) { throw new InvalidArgumentException(sprintf('The given adapter "%s" is not supported (yet)', $input->getOption('adapter'))); } $guardian = new GitGuardian(); $emitter = $guardian->getEmitter(); if ('GitHub' === $input->getOption('adapter')) { $users = $input->getArgument('owner'); if (count($users) && !strstr($users[0], '/')) { $username = array_shift($users); $gitHubCredentials = ['personal_token' => $input->getOption('personal-token'), 'username' => $username]; $remote = new GitHubRemote(); $remote->setEmitter($emitter); $remote->setOptions($gitHubCredentials); $guardian->addRemote($remote); } foreach ($users as $owner) { $remote = new GitHubRemote(); $remote->setEmitter($emitter); $remote->setUser($owner); $guardian->addRemote($remote); } } else { $bitBucketCredentials = ['client_id' => $input->getOption('client-id'), 'client_secret' => $input->getOption('client-secret')]; foreach ($input->getArgument('owner') as $owner) { $remote = new BitBucketRemote(); $remote->setEmitter($emitter); $remote->setOptions($bitBucketCredentials); $remote->setUser($owner); $guardian->addRemote($remote); } } $this->setupListeners($emitter, $output); $guardian->cloneAll($input->getOption('destination')); }