diff --git a/src/Composer/IO/BaseIO.php b/src/Composer/IO/BaseIO.php index 139e58723..43248c92c 100644 --- a/src/Composer/IO/BaseIO.php +++ b/src/Composer/IO/BaseIO.php @@ -60,6 +60,19 @@ abstract class BaseIO implements IOInterface */ public function loadConfiguration(Config $config) { + // Use COMPOSER_AUTH environment variable if set + if ($envvar_data = getenv('COMPOSER_AUTH')) { + $auth_data = json_decode($envvar_data); + + if (is_null($auth_data)) { + throw new \UnexpectedValueException('COMPOSER_AUTH environment variable is malformed'); + } + + foreach ($auth_data as $domain => $credentials) { + $this->setAuthentication($domain, $credentials->username, $credentials->password); + } + } + // reload oauth token from config if available if ($tokens = $config->get('github-oauth')) { foreach ($tokens as $domain => $token) {