public function execute(Config $config, IO $io, Repository $repository, Config\Action $action) : void
    {
        $class = $action->getAction();

        try {
            if ($this->isStaticMethodCall($class)) {
                $io->write($this->executeStatic($class));
            } else {
                $exe = $this->createAction($class);
                $exe->execute($config, $io, $repository, $action);
            }
        } catch (\Exception $e) {
            throw new ActionFailed('Execution failed: ' . $e->getMessage());
        } catch (\Error $e) {
            throw new ActionFailed('PHP Error:' . $e->getMessage());
        }
    }