Hello community, here is the log from the commit of package platformsh-cli for openSUSE:Factory checked in at 2020-06-10 00:53:37 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/platformsh-cli (Old) and /work/SRC/openSUSE:Factory/.platformsh-cli.new.3606 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "platformsh-cli" Wed Jun 10 00:53:37 2020 rev:100 rq:813024 version:3.57.0 Changes: -------- --- /work/SRC/openSUSE:Factory/platformsh-cli/platformsh-cli.changes 2020-05-28 09:15:20.936701062 +0200 +++ /work/SRC/openSUSE:Factory/.platformsh-cli.new.3606/platformsh-cli.changes 2020-06-10 00:53:59.559816622 +0200 @@ -1,0 +2,41 @@ +Tue Jun 09 18:55:18 UTC 2020 - [email protected] + +- Update to version 3.57.0: + * Release v3.57.0 + * Remove whitelist/blacklist from variable names + * Add file-level comment for config.yaml + * Show session info in auth:info, logout, login, and welcome commands + * Recommend login after switching sessions; report filename of invalid ID + * Fix not logged in error after switching session + * Improve SSH key commands + * Improve session:switch documentation + * Improve comment in session.config file + * Clean up Api service - remove getCache(), add some property documentation + * Fix running parent command after login + * Display the session ID when useful + * Add session:switch command + * Fix 403 errors when a non-current project is specified + * Silence deleting session include files when it's automatic + * Only add the default SSH identities if necessary + * Automatically select an SSH key corresponding to the user account (#941) + * Refactor API token configuration to remove circular dependency + * Delete SSH configuration on logout independently from Certifier + * Include only one session's SSH certificate configuration + * Refactor Config service to allow new instances + * Select integration from a list in integration:update command (when interactive) + * Disable command auth:password-login, which no longer works + * Fix use of certifier URL configuration + * Release v3.56.6 + * Search more activities to find the backup in backup:restore command (#938) + * Sort routes, and optionally display the URL, in the route:list (routes) command (#935) + * Skip python dependencies install on Travis + * Separate dependencies tests + * Find existing pip command automatically + * Clarify error when a repository is not found, for an external repository + * Move some SSH certificate code into the API client library + * Release v3.56.5 + * Ensure include file for SSH configuration exists + * Support app config grouped in .platform/applications.yaml (#932) + * Read certificate principals, options, and extensions as arrays (#934) + +------------------------------------------------------------------- Old: ---- platformsh-cli-3.56.4.tar.xz New: ---- platformsh-cli-3.57.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ platformsh-cli.spec ++++++ --- /var/tmp/diff_new_pack.8oSwLM/_old 2020-06-10 00:54:01.223820929 +0200 +++ /var/tmp/diff_new_pack.8oSwLM/_new 2020-06-10 00:54:01.223820929 +0200 @@ -17,7 +17,7 @@ Name: platformsh-cli -Version: 3.56.4 +Version: 3.57.0 Release: 0 Summary: Tool for managing Platform.sh services from the command line # See licenses.txt for dependency licenses. ++++++ _service ++++++ --- /var/tmp/diff_new_pack.8oSwLM/_old 2020-06-10 00:54:01.251821001 +0200 +++ /var/tmp/diff_new_pack.8oSwLM/_new 2020-06-10 00:54:01.251821001 +0200 @@ -2,7 +2,7 @@ <service name="tar_scm" mode="disabled"> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(.*)</param> - <param name="revision">refs/tags/v3.56.4</param> + <param name="revision">refs/tags/v3.57.0</param> <param name="url">git://github.com/platformsh/platformsh-cli.git</param> <param name="scm">git</param> <param name="changesgenerate">enable</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.8oSwLM/_old 2020-06-10 00:54:01.271821053 +0200 +++ /var/tmp/diff_new_pack.8oSwLM/_new 2020-06-10 00:54:01.271821053 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">git://github.com/platformsh/platformsh-cli.git</param> - <param name="changesrevision">85fc39329f807852adc01dd8673958cd957df65c</param> + <param name="changesrevision">90d020777dd129b1549c7011c37e7a071d2053f6</param> </service> </servicedata> ++++++ licenses.txt ++++++ --- /var/tmp/diff_new_pack.8oSwLM/_old 2020-06-10 00:54:01.315821166 +0200 +++ /var/tmp/diff_new_pack.8oSwLM/_new 2020-06-10 00:54:01.315821166 +0200 @@ -16,7 +16,7 @@ padraic/phar-updater v1.0.6 BSD-3-Clause paragonie/random_compat v2.0.18 MIT pjcdawkins/guzzle-oauth2-plugin v2.3.1 MIT -platformsh/client v0.32.3 MIT +platformsh/client v0.33.0 MIT platformsh/console-form v0.0.24 MIT psr/container 1.0.0 MIT psr/log 1.1.2 MIT ++++++ platformsh-cli-3.56.4.tar.xz -> platformsh-cli-3.57.0.tar.xz ++++++ ++++ 4660 lines of diff (skipped) ++++++ platformsh-cli-vendor.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/autoload.php new/vendor/autoload.php --- old/vendor/autoload.php 2020-05-26 21:33:59.389155081 +0200 +++ new/vendor/autoload.php 2020-06-09 20:55:25.379569733 +0200 @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitee7e957e3b7602f1df6ace83960d08c8::getLoader(); +return ComposerAutoloaderInitcdc25cd154dee2da8bb20d9b620b75f7::getLoader(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/composer/autoload_real.php new/vendor/composer/autoload_real.php --- old/vendor/composer/autoload_real.php 2020-05-26 21:33:59.389155081 +0200 +++ new/vendor/composer/autoload_real.php 2020-06-09 20:55:25.379569733 +0200 @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitee7e957e3b7602f1df6ace83960d08c8 +class ComposerAutoloaderInitcdc25cd154dee2da8bb20d9b620b75f7 { private static $loader; @@ -19,15 +19,15 @@ return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInitee7e957e3b7602f1df6ace83960d08c8', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInitcdc25cd154dee2da8bb20d9b620b75f7', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInitee7e957e3b7602f1df6ace83960d08c8', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInitcdc25cd154dee2da8bb20d9b620b75f7', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitee7e957e3b7602f1df6ace83960d08c8::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInitcdc25cd154dee2da8bb20d9b620b75f7::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitee7e957e3b7602f1df6ace83960d08c8::$files; + $includeFiles = Composer\Autoload\ComposerStaticInitcdc25cd154dee2da8bb20d9b620b75f7::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequireee7e957e3b7602f1df6ace83960d08c8($fileIdentifier, $file); + composerRequirecdc25cd154dee2da8bb20d9b620b75f7($fileIdentifier, $file); } return $loader; } } -function composerRequireee7e957e3b7602f1df6ace83960d08c8($fileIdentifier, $file) +function composerRequirecdc25cd154dee2da8bb20d9b620b75f7($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/composer/autoload_static.php new/vendor/composer/autoload_static.php --- old/vendor/composer/autoload_static.php 2020-05-26 21:33:59.389155081 +0200 +++ new/vendor/composer/autoload_static.php 2020-06-09 20:55:25.379569733 +0200 @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitee7e957e3b7602f1df6ace83960d08c8 +class ComposerStaticInitcdc25cd154dee2da8bb20d9b620b75f7 { public static $files = array ( '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php', @@ -193,9 +193,9 @@ public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitee7e957e3b7602f1df6ace83960d08c8::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitee7e957e3b7602f1df6ace83960d08c8::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInitee7e957e3b7602f1df6ace83960d08c8::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInitcdc25cd154dee2da8bb20d9b620b75f7::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitcdc25cd154dee2da8bb20d9b620b75f7::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitcdc25cd154dee2da8bb20d9b620b75f7::$classMap; }, null, ClassLoader::class); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/composer/installed.json new/vendor/composer/installed.json --- old/vendor/composer/installed.json 2020-05-26 21:33:58.997151212 +0200 +++ new/vendor/composer/installed.json 2020-06-09 20:55:23.887555783 +0200 @@ -682,17 +682,17 @@ }, { "name": "platformsh/client", - "version": "v0.32.3", - "version_normalized": "0.32.3.0", + "version": "v0.33.0", + "version_normalized": "0.33.0.0", "source": { "type": "git", "url": "https://github.com/platformsh/platformsh-client-php.git", - "reference": "ba215a99200d4e5a710382dac8f29402356c351a" + "reference": "0b5efe375fcb1f5c23491b07b879dbab507109d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/platformsh/platformsh-client-php/zipball/ba215a99200d4e5a710382dac8f29402356c351a", - "reference": "ba215a99200d4e5a710382dac8f29402356c351a", + "url": "https://api.github.com/repos/platformsh/platformsh-client-php/zipball/0b5efe375fcb1f5c23491b07b879dbab507109d9", + "reference": "0b5efe375fcb1f5c23491b07b879dbab507109d9", "shasum": "" }, "require": { @@ -706,7 +706,7 @@ "require-dev": { "phpunit/phpunit": "~4.5" }, - "time": "2020-04-15T22:42:00+00:00", + "time": "2020-05-27T21:11:24+00:00", "type": "library", "installation-source": "dist", "autoload": { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/platformsh/client/README.md new/vendor/platformsh/client/README.md --- old/vendor/platformsh/client/README.md 2020-04-16 00:42:00.000000000 +0200 +++ new/vendor/platformsh/client/README.md 2020-05-27 23:11:24.000000000 +0200 @@ -31,8 +31,8 @@ // N.B. you must keep your API token(s) safe! // // The second parameter is the token type: -// - 'exchange' for all newer API tokens (created after April 2016) -// - 'access' for older 'personal access tokens'. +// - 'exchange' for an API token +// - 'access' for using an OAuth 2.0 access token directly. $client->getConnector()->setApiToken($myToken, 'exchange'); // Get the user's first project. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/platformsh/client/src/Connection/Connector.php new/vendor/platformsh/client/src/Connection/Connector.php --- old/vendor/platformsh/client/src/Connection/Connector.php 2020-04-16 00:42:00.000000000 +0200 +++ new/vendor/platformsh/client/src/Connection/Connector.php 2020-05-27 23:11:24.000000000 +0200 @@ -64,8 +64,9 @@ 'verify' => true, 'user_agent' => null, 'cache' => false, - 'revoke_url' => '/oauth2/revoke', - 'token_url' => '/oauth2/token', + 'revoke_url' => 'https://auth.api.platform.sh/oauth2/revoke', + 'token_url' => 'https://auth.api.platform.sh/oauth2/token', + 'certifier_url' => 'https://ssh.api.platform.sh', 'proxy' => null, 'api_token' => null, 'api_token_type' => 'access', @@ -95,6 +96,14 @@ } /** + * @return Collection + */ + public function getConfig() + { + return $this->config; + } + + /** * @return string */ private function defaultUserAgent() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/platformsh/client/src/Connection/ConnectorInterface.php new/vendor/platformsh/client/src/Connection/ConnectorInterface.php --- old/vendor/platformsh/client/src/Connection/ConnectorInterface.php 2020-04-16 00:42:00.000000000 +0200 +++ new/vendor/platformsh/client/src/Connection/ConnectorInterface.php 2020-05-27 23:11:24.000000000 +0200 @@ -62,8 +62,8 @@ * @param string $token * The token value. * @param string|null $type - * The token type ('access' for personal access tokens, or 'exchange' - * for exchangeable tokens). + * The token type ('access' for OAuth 2.0 access tokens, or 'exchange' + * for API tokens). */ public function setApiToken($token, $type = 'access'); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/platformsh/client/src/PlatformClient.php new/vendor/platformsh/client/src/PlatformClient.php --- old/vendor/platformsh/client/src/PlatformClient.php 2020-04-16 00:42:00.000000000 +0200 +++ new/vendor/platformsh/client/src/PlatformClient.php 2020-05-27 23:11:24.000000000 +0200 @@ -3,6 +3,7 @@ namespace Platformsh\Client; use GuzzleHttp\Exception\BadResponseException; +use GuzzleHttp\Url; use Platformsh\Client\Connection\Connector; use Platformsh\Client\Connection\ConnectorInterface; use Platformsh\Client\Exception\ApiResponseException; @@ -333,4 +334,28 @@ { return Region::getCollection($this->accountsEndpoint . 'regions', 0, [], $this->getConnector()->getClient()); } + + /** + * Request an SSH certificate. + * + * @param string $publicKey + * The contents of an SSH public key. Do not reuse a key that had other + * purposes: generate a dedicated key pair for the current user. + * + * @return string + * An SSH certificate, which should be saved alongside the SSH key pair, + * e.g. as "id_rsa-cert.pub", alongside "id_rsa" and "id_rsa.pub". + */ + public function getSshCertificate($publicKey) + { + $url = Url::fromString($this->connector->getConfig()['certifier_url']) + ->combine('/ssh') + ->__toString(); + $response = $this->connector->getClient()->post( + $url, + ['json' => ['key' => $publicKey]] + ); + + return $response->json()['certificate']; + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/platformsh/client/src/SshCert/Metadata.php new/vendor/platformsh/client/src/SshCert/Metadata.php --- old/vendor/platformsh/client/src/SshCert/Metadata.php 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/platformsh/client/src/SshCert/Metadata.php 2020-05-27 23:11:24.000000000 +0200 @@ -0,0 +1,176 @@ +<?php + +namespace Platformsh\Client\SshCert; + +/** + * Parses an OpenSSH RSA certificate. + * + * @see https://cvsweb.openbsd.org/src/usr.bin/ssh/PROTOCOL.certkeys?annotate=HEAD + */ +class Metadata { + + private $keyType; + private $nonce; + private $rsaExponent; + private $publicModulus; + private $serial; + private $type; + private $keyId; + private $validPrincipals; + private $validAfter; + private $validBefore; + private $criticalOptions; + private $extensions; + private $reserved; + private $signatureKey; + private $signature; + + /** + * Constructor + * + * @param string $string The certificate's contents. + */ + public function __construct($string) + { + list($type, $cert) = \explode(' ', $string); + if ($type !== '[email protected]') { + throw new \InvalidArgumentException('Unsupported key type: ' . $type); + } + $bytes = \base64_decode($cert, true); + if (!$bytes) { + throw new \InvalidArgumentException('Unable to decode SSH certificate'); + } + $this->keyType = $this->readString($bytes); + $this->nonce = $this->readString($bytes); + $this->rsaExponent = $this->readString($bytes); + $this->publicModulus = $this->readString($bytes); + $this->serial = $this->readUint64($bytes); + $this->type = $this->readUint32($bytes); + $this->keyId = $this->readString($bytes); + $this->validPrincipals = $this->readPrincipals($this->readString($bytes)); + $this->validAfter = $this->readUint64($bytes); + $this->validBefore = $this->readUint64($bytes); + $this->criticalOptions = $this->readTuples($bytes); + $this->extensions = $this->readTuples($bytes); + $this->reserved = $this->readString($bytes); + $this->signatureKey = $this->readString($bytes); + $this->signature = $this->readString($bytes); + } + + /** + * Reads the next string, and removes it from the remaining bytes. + * + * @param string &$bytes + * + * @return string + */ + private function readString(&$bytes) { + $len = \unpack('N', \substr($bytes, 0, 4)); + // The first unnamed element from \unpack() will be keyed by 1. + $str = \substr($bytes, 4, $len[1]); + $bytes = \substr($bytes, 4 + $len[1]); + return $str; + } + + /** + * Reads the next uint64, and removes it from the remaining bytes. + * + * @param string &$bytes + * + * @return int + */ + private function readUint64(&$bytes) { + $ret = \unpack('J', \substr($bytes, 0, 8)); + $bytes = \substr($bytes, 8); + return (int) $ret[1]; + } + + /** + * Reads the next uint32, and removes it from the remaining bytes. + * + * @param string &$bytes + * + * @return int + */ + private function readUint32(&$bytes) { + $ret = \unpack('N', \substr($bytes, 0, 4)); + $bytes = \substr($bytes, 4); + return (int) $ret[1]; + } + + /** + * Reads the next set of tuples, and removes it from the remaining bytes. + * + * @see https://github.com/golang/crypto/commit/59435533c88bd0b1254c738244da1fe96b59d05d + * + * @param string &$bytes + * + * @return array + */ + private function readTuples(&$bytes) { + $container = $this->readString($bytes); + $tuples = []; + while (strlen($container) > 0) { + $key = $this->readString($container); + $value = $this->readString($container); + $tuples[$key] = $value; + } + return $tuples; + } + + /** + * Reads principals from a packed string. + * + * @param string $str + * + * @return string[] + */ + private function readPrincipals($str) { + $principals = []; + while (strlen($str) > 0) { + $principals[] = $this->readString($str); + } + return $principals; + } + + /** + * Returns the "valid after" date of the certificate, as a UNIX timestamp. + * + * @return int + */ + public function getValidAfter() { + return $this->validAfter; + } + + /** + * Returns the expiry date of the certificate, as a UNIX timestamp. + * + * @return int + */ + public function getValidBefore() { + return $this->validBefore; + } + + /** + * Returns the certificate extensions. + * + * @return array + */ + public function getExtensions() { + return $this->extensions; + } + + /** + * Returns the certificate's key ID. + * + * According to PROTOCOL.certkeys: + * "key id is a free-form text field that is filled in by the CA at the time + * of signing; the intention is that the contents of this field are used to + * identify the identity principal in log messages." + * + * @return string + */ + public function getKeyId() { + return $this->keyId; + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/platformsh/client/tests/SshCert/MetadataTest.php new/vendor/platformsh/client/tests/SshCert/MetadataTest.php --- old/vendor/platformsh/client/tests/SshCert/MetadataTest.php 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/platformsh/client/tests/SshCert/MetadataTest.php 2020-05-27 23:11:24.000000000 +0200 @@ -0,0 +1,29 @@ +<?php + +namespace Platformsh\Client\Tests\SshCert; + +use PHPUnit\Framework\TestCase; +use Platformsh\Client\SshCert\Metadata; + +class MetadataTest extends TestCase { + private $metadata; + + public function setUp() + { + // Key generated with: + // ssh-keygen -s test -I 'foo' -V '20140513120000:20200429060000' test.pub + $this->metadata = new Metadata(\file_get_contents(dirname(__DIR__) . '/data/ssh-certs/test-cert.pub')); + } + + public function testGetValidAfter() { + $this->assertEquals(strtotime('2014-05-13T12:00:00Z'), $this->metadata->getValidAfter()); + } + + public function testGetValidBefore() { + $this->assertEquals(strtotime('2020-04-29T06:00:00Z'), $this->metadata->getValidBefore()); + } + + public function testGetKeyId() { + $this->assertEquals('foo', $this->metadata->getKeyId()); + } +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/platformsh/client/tests/data/ssh-certs/test new/vendor/platformsh/client/tests/data/ssh-certs/test --- old/vendor/platformsh/client/tests/data/ssh-certs/test 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/platformsh/client/tests/data/ssh-certs/test 2020-05-27 23:11:24.000000000 +0200 @@ -0,0 +1,38 @@ +-----BEGIN OPENSSH PRIVATE KEY----- +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 +-----END OPENSSH PRIVATE KEY----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/platformsh/client/tests/data/ssh-certs/test-cert.pub new/vendor/platformsh/client/tests/data/ssh-certs/test-cert.pub --- old/vendor/platformsh/client/tests/data/ssh-certs/test-cert.pub 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/platformsh/client/tests/data/ssh-certs/test-cert.pub 2020-05-27 23:11:24.000000000 +0200 @@ -0,0 +1 @@ [email protected] AAAAHHNzaC1yc2EtY2VydC12MDFAb3BlbnNzaC5jb20AAAAgPqjBEMDQGi35zu009fojLXfZWR8Td7x09xElf/Mia7gAAAADAQABAAABgQDh/hqTApgWJZ41PI0QFXmApxjY+SJZ57uZzYCA+pCWJA8KDMYQt2/rGehM/72kYLWMC/Evfg+KONZx/z2jkKpFdUnJSIvqT2MqUNVL6X+zVxVf1T/OEtm9VtZLNFbgPsaBVtk2/uimw9j5T8DLs8ITMrFSYesT5qtMmS0U1qcZuvjTp4G09k3dwXKdu4YoAZcn2w3sN9Kf9wSdtXedm2FiUa/Rd5wX1HUYc5NOlIUGYXNKReK9RFGrZIhKFcsplOAnL6ZhEh9VY5DwavtfJ2YPeNeYJ4p5Ss1Fd3E6udHwBq28oZAArg/Emu/FwnPAo1H6YhavHm2zmkm8Ah4ICk7/XGoQvVslAnppJnPmkin2L/jxmd8T0/kkl+a7hDAO+hybI9ijoTsmQizOQOrSFo13vpMUe0FToABMbEnmJOv+Gy8buQkCjGy5KbYEIuFG4DqR66EQ0yxxh6MkDho9yQ+OcPZRgdn+AJ4cMWN7Vii6hvhfqyy4sg1P6RsRKMRmE3kAAAAAAAAAAAAAAAEAAAADZm9vAAAAAAAAAABTcglAAAAAAF6pF+AAAAAAAAAAggAAABVwZXJtaXQtWDExLWZvcndhcmRpbmcAAAAAAAAAF3Blcm1pdC1hZ2VudC1mb3J3YXJkaW5nAAAAAAAAABZwZXJtaXQtcG9ydC1mb3J3YXJkaW5nAAAAAAAAAApwZXJtaXQtcHR5AAAAAAAAAA5wZXJtaXQtdXNlci1yYwAAAAAAAAAAAAABlwAAAAdzc2gtcnNhAAAAAwEAAQAAAYEA4f4akwKYFiWeNTyNEBV5gKcY2PkiWee7mc2AgPqQliQPCgzGELdv6xnoTP+9pGC1jAvxL34PijjWcf89o5CqRXVJyUiL6k9jKlDVS+l/s1cVX9U/zhLZvVbWSzRW4D7GgVbZNv7opsPY+U/Ay7PCEzKxUmHrE+arTJktFNanGbr406eBtPZN3cFynbuGKAGXJ9sN7DfSn/cEnbV3nZthYlGv0XecF9R1GHOTTpSFBmFzSkXivURRq2SIShXLKZTgJy+mYRIfVWOQ8Gr7XydmD3jXmCeKeUrNRXdxOrnR8AatvKGQAK4PxJrvxcJzwKNR+mIWrx5ts5pJvAIeCApO/1xqEL1bJQJ6aSZz5pIp9i/48ZnfE9P5JJfmu4QwDvocmyPYo6E7JkIszkDq0haNd76TFHtBU6AATGxJ5iTr/hsvG7kJAoxsuSm2BCLhRuA6keuhENMscYejJA4aPckPjnD2UYHZ/gCeHDFje1Youob4X6ssuLINT+kbESjEZhN5AAABlAAAAAxyc2Etc2hhMi01MTIAAAGAdFqI9SjCr81Sg45GvfwOdTeevvD1XHN2c/8IQXl7b58ipoJjcLrm4GQL0ZjjuXg5HdNbFfJNW55zOTRgBI+Kd3CoILo/rM4FRVfGbCGXAKputFKLk43GNWngvD/g3fDD22+ckFZRwetFUxs5D7bgYsC0z30woQZ2hKBSQFoiFrKD05uFHF51XJ90BrxAQVvJdi8b6eCFZBCChp6mzUoDVfYAS43UQ6BKhP7qKeB3aztGzL1sAwhkxcsoc/7oHJdyGRIM7t0tzDniv4rPwBgY1ToH+DjmB/29VFtYeq1ewSZMnWYYtr+74oKu/tKKECyYszqEMrj4xN6n46lJ7Mc5sPIEp621WzCbn8zfuGx2YmwD6N0VDOysIXONSwD7ZC4Ejo72CGuEFw48asTvbCqmCUajdYW2daxbRe/u1EUEQ/Y56zSeGSk1a/ZQ1j3TZ26twhvA5UKCi+b9AspBEVucVYCSVztHaHjIy3YdhPQ1gTMxIbuRouKPilGViKRr9Y+e patrick@xps diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor/platformsh/client/tests/data/ssh-certs/test.pub new/vendor/platformsh/client/tests/data/ssh-certs/test.pub --- old/vendor/platformsh/client/tests/data/ssh-certs/test.pub 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor/platformsh/client/tests/data/ssh-certs/test.pub 2020-05-27 23:11:24.000000000 +0200 @@ -0,0 +1 @@ +ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDh/hqTApgWJZ41PI0QFXmApxjY+SJZ57uZzYCA+pCWJA8KDMYQt2/rGehM/72kYLWMC/Evfg+KONZx/z2jkKpFdUnJSIvqT2MqUNVL6X+zVxVf1T/OEtm9VtZLNFbgPsaBVtk2/uimw9j5T8DLs8ITMrFSYesT5qtMmS0U1qcZuvjTp4G09k3dwXKdu4YoAZcn2w3sN9Kf9wSdtXedm2FiUa/Rd5wX1HUYc5NOlIUGYXNKReK9RFGrZIhKFcsplOAnL6ZhEh9VY5DwavtfJ2YPeNeYJ4p5Ss1Fd3E6udHwBq28oZAArg/Emu/FwnPAo1H6YhavHm2zmkm8Ah4ICk7/XGoQvVslAnppJnPmkin2L/jxmd8T0/kkl+a7hDAO+hybI9ijoTsmQizOQOrSFo13vpMUe0FToABMbEnmJOv+Gy8buQkCjGy5KbYEIuFG4DqR66EQ0yxxh6MkDho9yQ+OcPZRgdn+AJ4cMWN7Vii6hvhfqyy4sg1P6RsRKMRmE3k= patrick@xps
