public function ensureGitRemote($dir, $url)
{
if (!file_exists($dir . '/.git')) {
throw new \InvalidArgumentException('The directory is not a Git repository');
}
$gitHelper = new GitHelper();
$gitHelper->ensureInstalled();
$gitHelper->setDefaultRepositoryDir($dir);
$currentUrl = $gitHelper->getConfig("remote." . $this->config->get('detection.git_remote_name') . ".url", $dir);
if (!$currentUrl) {
$gitHelper->execute(['remote', 'add', $this->config->get('detection.git_remote_name'), $url], $dir, true);
} elseif ($currentUrl != $url) {
$gitHelper->execute(['remote', 'set-url', $this->config->get('detection.git_remote_name'), $url], $dir, true);
}
// Add an origin remote too.
if ($this->config->get('detection.git_remote_name') !== 'origin' && !$gitHelper->getConfig("remote.origin.url", $dir)) {
$gitHelper->execute(['remote', 'add', 'origin', $url]);
}
}