public static function create(Repository $repository, string $message, bool $stageAll = false, $author = null)
    {
        $repository->getCaller()->execute(MainCommand::getInstance($repository)->commit($message, $stageAll, $author));

        return $repository->getCommit();
    }