public static function setup(Event $event) : void
    {
        $extra  = self::getExtraConfig($event);
        $config = self::extract(CH::COMPOSER_CONFIG, $extra, CH::CONFIG);
        $repo   = self::extract(CH::COMPOSER_GIT_DIR, $extra, '.git');
        $app    = self::createApplication($event->getIO(), $config);

        self::configure($app, $config);
        self::install($app, $config, $repo);
    }