From 591f68288b4319efc0563b81c99c71c700fa830d Mon Sep 17 00:00:00 2001 From: Stefan Grootscholten Date: Sun, 1 May 2016 11:27:16 +0200 Subject: [PATCH] Provide a fallback to ssh for https bitbucket URLs. When running in non-interactive mode, there is no way to ask for credentials. If there are no credentials available, no attempt is made to execute the command. This commit provides a fallback to SSH for non authenticated, non-interactive install/updates of bitbucket https URLs. --- src/Composer/Util/Git.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Composer/Util/Git.php b/src/Composer/Util/Git.php index a2b03bbb9..c90fde0b3 100644 --- a/src/Composer/Util/Git.php +++ b/src/Composer/Util/Git.php @@ -141,6 +141,13 @@ class Git if (0 === $this->process->execute($command, $ignoredOutput, $cwd)) { return; } + } else { // Falling back to ssh + $sshUrl = 'git@bitbucket.org:' . $match[2] . '.git'; + $this->io->writeError(' No bitbucket authentication configured. Falling back to ssh.'); + $command = call_user_func($commandCallable, $sshUrl); + if (0 === $this->process->execute($command, $ignoredOutput, $cwd)) { + return; + } } } elseif ($this->isAuthenticationFailure($url, $match)) { // private non-github repo that failed to authenticate if (strpos($match[2], '@')) {