Ejemplo n.º 1
0
 /**
  * Create a new instance of GitlabClient.
  * @param array $config
  * @return GitlabGuzzleClient
  */
 public static function createClient($config = [])
 {
     $default = ['ssl.certificate_authority' => 'system'];
     $required = ['base_url', 'api_token'];
     $config = Collection::fromConfig($config, $default, $required);
     $config['base_url'] = self::completeBaseUrl($config['base_url']);
     $serviceDescriptionFilePath = __DIR__ . '/ServiceDescription/service_description.yml';
     $definition = self::loadServiceDefinition($serviceDescriptionFilePath);
     self::emulateGuzzle3ResponseModels($definition);
     $description = new Description($definition);
     $client = new Client($config->toArray());
     $client->setDefaultOption('headers/accept', 'application/json');
     $privateTokenPlugin = new PrivateTokenPlugin($config['api_token']);
     $client->getEmitter()->attach($privateTokenPlugin);
     $gitlabClient = new GitlabGuzzleClient($client, $description);
     $gitlabClient->getEmitter()->attach(new ResponseClassProcessor($description));
     return $gitlabClient;
 }