protected function api()
{
if (!isset($this->api)) {
$dispatcher = new EventDispatcher();
$dispatcher->addListener('login_required', [$this, 'login']);
$dispatcher->addListener('environments_changed', [$this, 'updateDrushAliases']);
$this->api = new Api(self::$config, $dispatcher);
}
return $this->api;
}