Hello community,

here is the log from the commit of package platformsh-cli for openSUSE:Factory 
checked in at 2017-08-16 16:18:36
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/platformsh-cli (Old)
 and      /work/SRC/openSUSE:Factory/.platformsh-cli.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "platformsh-cli"

Wed Aug 16 16:18:36 2017 rev:16 rq:516933 version:3.20.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/platformsh-cli/platformsh-cli.changes    
2017-07-27 11:13:45.400652654 +0200
+++ /work/SRC/openSUSE:Factory/.platformsh-cli.new/platformsh-cli.changes       
2017-08-16 16:18:45.422907840 +0200
@@ -1,0 +2,30 @@
+Mon Aug 14 21:33:03 UTC 2017 - [email protected]
+
+- Update to version 3.20.0:
+  * Switch to SHA-256 for file verification
+  * Installer: remove BC code
+  * Add pricing URL in create command
+  * Add build_pull_requests_post_merge for github integrations (#612)
+  * Clarify user:delete command (issue #615)
+  * Alias --no-wait to -W
+  * Add "health" integration types
+  * Add summary format for health integrations
+  * Match partial integration IDs
+  * Unused import
+  * Inspection tweaks
+  * Avoid re-initializing application/command in CompletionCommand
+  * Release v3.20.0
+
+-------------------------------------------------------------------
+Fri Aug 11 18:41:37 UTC 2017 - [email protected]
+
+- Update to version 3.19.1:
+  * Populate project, environment, and app from environment variables where 
possible (#610)
+  * Push command: do not activate by default in non-interactive mode
+  * Travis update: add 7.2, fix hhvm build
+  * Fix app choice for inactive environments
+  * Sort routes choice in route:get
+  * Add SHA-256 info in build command
+  * Release v3.19.1
+
+-------------------------------------------------------------------

Old:
----
  platformsh-cli-3.19.0.tar.xz

New:
----
  platformsh-cli-3.20.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ platformsh-cli.spec ++++++
--- /var/tmp/diff_new_pack.lRFbxb/_old  2017-08-16 16:18:46.262789948 +0200
+++ /var/tmp/diff_new_pack.lRFbxb/_new  2017-08-16 16:18:46.270788825 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           platformsh-cli
-Version:        3.19.0
+Version:        3.20.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.lRFbxb/_old  2017-08-16 16:18:46.314782649 +0200
+++ /var/tmp/diff_new_pack.lRFbxb/_new  2017-08-16 16:18:46.314782649 +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.19.0</param>
+    <param name="revision">refs/tags/v3.20.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.lRFbxb/_old  2017-08-16 16:18:46.350777597 +0200
+++ /var/tmp/diff_new_pack.lRFbxb/_new  2017-08-16 16:18:46.350777597 +0200
@@ -1,6 +1,6 @@
 <servicedata>
   <service name="tar_scm">
     <param name="url">git://github.com/platformsh/platformsh-cli.git</param>
-    <param 
name="changesrevision">8608f91adb3f1f721a9ff418aa27276c718f68eb</param>
+    <param 
name="changesrevision">48241718f7d61b41206871f8f0a13bea2e341181</param>
   </service>
 </servicedata>

++++++ licenses.txt ++++++
--- /var/tmp/diff_new_pack.lRFbxb/_old  2017-08-16 16:18:46.406769738 +0200
+++ /var/tmp/diff_new_pack.lRFbxb/_new  2017-08-16 16:18:46.410769176 +0200
@@ -15,8 +15,8 @@
 guzzlehttp/streams                  3.0.0    MIT           
 padraic/humbug_get_contents         1.0.4    BSD-3-Clause  
 padraic/phar-updater                1.0.3    BSD-3-Clause  
-platformsh/client                   v0.11.2  MIT           
-platformsh/console-form             v0.0.10  MIT           
+platformsh/client                   v0.11.4  MIT           
+platformsh/console-form             v0.0.11  MIT           
 psr/log                             1.0.2    MIT           
 react/promise                       v2.5.1   MIT           
 stecman/symfony-console-completion  0.7.0    MIT           

++++++ platformsh-cli-3.19.0.tar.xz -> platformsh-cli-3.20.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.19.0/.travis.yml 
new/platformsh-cli-3.20.0/.travis.yml
--- old/platformsh-cli-3.19.0/.travis.yml       2017-07-18 17:24:27.000000000 
+0200
+++ new/platformsh-cli-3.20.0/.travis.yml       2017-08-14 17:36:21.000000000 
+0200
@@ -1,5 +1,5 @@
 language: php
-
+dist: trusty
 sudo: false
 
 php:
@@ -8,6 +8,7 @@
   - hhvm
   - 7.0
   - 7.1
+  - 7.2
 
 matrix:
   allow_failures:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.19.0/README.md 
new/platformsh-cli-3.20.0/README.md
--- old/platformsh-cli-3.19.0/README.md 2017-07-18 17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/README.md 2017-08-14 17:36:21.000000000 +0200
@@ -161,7 +161,7 @@
   tunnel:open                               Open SSH tunnels to an app's 
relationships
 user
   user:add                                  Add a user to the project
-  user:delete                               Delete a user
+  user:delete                               Delete a user from the project
   user:list (users)                         List project users
   user:role                                 View or change a user's role
 variable
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.19.0/composer.json 
new/platformsh-cli-3.20.0/composer.json
--- old/platformsh-cli-3.19.0/composer.json     2017-07-18 17:24:27.000000000 
+0200
+++ new/platformsh-cli-3.20.0/composer.json     2017-08-14 17:36:21.000000000 
+0200
@@ -7,7 +7,7 @@
         "doctrine/cache": "~1.5",
         "guzzlehttp/guzzle": "^5.3",
         "guzzlehttp/ringphp": "^1.1",
-        "platformsh/console-form": "0.0.10",
+        "platformsh/console-form": "0.0.11",
         "platformsh/client": "^0.11",
         "symfony/console": "^3.0 !=3.2.5 !=3.2.6",
         "symfony/yaml": "^3.0 || ^2.6",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.19.0/composer.lock 
new/platformsh-cli-3.20.0/composer.lock
--- old/platformsh-cli-3.19.0/composer.lock     2017-07-18 17:24:27.000000000 
+0200
+++ new/platformsh-cli-3.20.0/composer.lock     2017-08-14 17:36:21.000000000 
+0200
@@ -4,7 +4,7 @@
         "Read more about it at 
https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file";,
         "This file is @generated automatically"
     ],
-    "content-hash": "f957991eaff440eb45dfa0be23d53071",
+    "content-hash": "8b27d8ff8b2caa88d8a69a86c857012f",
     "packages": [
         {
             "name": "cocur/slugify",
@@ -593,20 +593,20 @@
         },
         {
             "name": "platformsh/client",
-            "version": "v0.11.2",
+            "version": "v0.11.4",
             "source": {
                 "type": "git",
                 "url": 
"https://github.com/platformsh/platformsh-client-php.git";,
-                "reference": "3c8bb553b09665fec4bc42975c624d09d9971c97"
+                "reference": "07bc12cf0b81a23368679b6dc274f95c74eeaef2"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/platformsh/platformsh-client-php/zipball/3c8bb553b09665fec4bc42975c624d09d9971c97";,
-                "reference": "3c8bb553b09665fec4bc42975c624d09d9971c97",
+                "url": 
"https://api.github.com/repos/platformsh/platformsh-client-php/zipball/07bc12cf0b81a23368679b6dc274f95c74eeaef2";,
+                "reference": "07bc12cf0b81a23368679b6dc274f95c74eeaef2",
                 "shasum": ""
             },
             "require": {
-                "cocur/slugify": "~1.0",
+                "cocur/slugify": "^2.0 || ~1.0",
                 "commerceguys/guzzle-oauth2-plugin": "~2.0",
                 "cweagans/composer-patches": "~1.0",
                 "guzzlehttp/cache-subscriber": "~0.1",
@@ -638,20 +638,20 @@
                 }
             ],
             "description": "Platform.sh API client",
-            "time": "2017-07-01T15:17:33+00:00"
+            "time": "2017-08-10T10:50:40+00:00"
         },
         {
             "name": "platformsh/console-form",
-            "version": "v0.0.10",
+            "version": "v0.0.11",
             "source": {
                 "type": "git",
                 "url": "https://github.com/platformsh/console-form.git";,
-                "reference": "6c4af8274d97fb7e9c4eaa8d0a72e79f4bbef0f9"
+                "reference": "f3971c9fde735a96b7a574f101724ee4a87a1d18"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/platformsh/console-form/zipball/6c4af8274d97fb7e9c4eaa8d0a72e79f4bbef0f9";,
-                "reference": "6c4af8274d97fb7e9c4eaa8d0a72e79f4bbef0f9",
+                "url": 
"https://api.github.com/repos/platformsh/console-form/zipball/f3971c9fde735a96b7a574f101724ee4a87a1d18";,
+                "reference": "f3971c9fde735a96b7a574f101724ee4a87a1d18",
                 "shasum": ""
             },
             "require": {
@@ -676,7 +676,7 @@
                 }
             ],
             "description": "A lightweight Symfony Console form system.",
-            "time": "2017-04-02T11:43:41+00:00"
+            "time": "2017-08-10T10:49:11+00:00"
         },
         {
             "name": "psr/log",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.19.0/config.yaml 
new/platformsh-cli-3.20.0/config.yaml
--- old/platformsh-cli-3.19.0/config.yaml       2017-07-18 17:24:27.000000000 
+0200
+++ new/platformsh-cli-3.20.0/config.yaml       2017-08-14 17:36:21.000000000 
+0200
@@ -1,7 +1,7 @@
 # Metadata about the CLI application itself.
 application:
   name: 'Platform.sh CLI'
-  version: '3.19.0'
+  version: '3.20.0'
   executable: 'platform'
   package_name: 'platformsh/cli'
   installer_url: 'https://platform.sh/cli/installer'
@@ -34,6 +34,7 @@
   docs_url: 'https://docs.platform.sh'
   docs_search_url: 'https://docs.platform.sh/?q={{ terms }}'
   accounts_url: 'https://accounts.platform.sh'
+  pricing_url: 'https://platform.sh/pricing'
   available_regions:
     - eu.platform.sh
     - us.platform.sh
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.19.0/dist/installer.php 
new/platformsh-cli-3.20.0/dist/installer.php
--- old/platformsh-cli-3.19.0/dist/installer.php        2017-07-18 
17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/dist/installer.php        2017-08-14 
17:36:21.000000000 +0200
@@ -179,7 +179,7 @@
 }
 
 output("  Checking file integrity...");
-if ($latest->sha1 !== sha1_file(CLI_PHAR)) {
+if ($latest->sha256 !== hash_file('sha256', CLI_PHAR)) {
     unlink(CLI_PHAR);
     output("  The download was corrupted.", 'error');
     exit(1);
@@ -241,20 +241,6 @@
             $currentShellConfig = '';
         }
 
-        // Backwards compatibility for the old 'platform.rc'.
-        // @todo remove any time after about late 2016.
-        $oldRcLocation = str_replace('/shell-config.rc', '/platform.rc', 
$rcDestination);
-        if (file_exists($oldRcLocation)) {
-            @unlink($oldRcLocation);
-        }
-        if (strpos($currentShellConfig, $oldRcLocation) !== false) {
-            $currentShellConfig = str_replace($oldRcLocation, $rcDestination, 
$currentShellConfig);
-            if (!file_put_contents($shellConfigFile, $currentShellConfig)) {
-                output("  Failed to configure the shell automatically.", 
'warning');
-            }
-        }
-        // End backwards compatibility section.
-
         if (strpos($currentShellConfig, $configDir . "/bin") === false) {
             $currentShellConfig .= PHP_EOL . PHP_EOL
                 . "# Automatically added by the " . CLI_NAME . " installer" . 
PHP_EOL
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.19.0/src/Command/CommandBase.php 
new/platformsh-cli-3.20.0/src/Command/CommandBase.php
--- old/platformsh-cli-3.19.0/src/Command/CommandBase.php       2017-07-18 
17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/src/Command/CommandBase.php       2017-08-14 
17:36:21.000000000 +0200
@@ -6,7 +6,6 @@
 use Platformsh\Cli\Exception\LoginRequiredException;
 use Platformsh\Cli\Exception\ProjectNotFoundException;
 use Platformsh\Cli\Exception\RootNotFoundException;
-use Platformsh\Cli\Local\LocalApplication;
 use Platformsh\Cli\Local\BuildFlavor\Drupal;
 use Platformsh\Client\Model\Environment;
 use Platformsh\Client\Model\Project;
@@ -586,7 +585,7 @@
     protected function addNoWaitOption($description = 'Do not wait for the 
operation to complete')
     {
         /** @noinspection PhpIncompatibleReturnTypeInspection */
-        return $this->addOption('no-wait', null, InputOption::VALUE_NONE, 
$description);
+        return $this->addOption('no-wait', 'W', InputOption::VALUE_NONE, 
$description);
     }
 
     /**
@@ -632,6 +631,16 @@
      */
     protected function selectEnvironment($environmentId = null, $required = 
true)
     {
+        $envPrefix = $this->config()->get('service.env_prefix');
+        if ($environmentId === null && getenv($envPrefix . 'BRANCH')) {
+            $environmentId = getenv($envPrefix . 'BRANCH');
+            $this->stdErr->writeln(sprintf(
+                'Environment ID read from environment variable %s: %s',
+                $envPrefix . 'BRANCH',
+                $environmentId
+            ), OutputInterface::VERBOSITY_VERBOSE);
+        }
+
         if (!empty($environmentId)) {
             $environment = $this->api()->getEnvironment($environmentId, 
$this->project, null, true);
             if (!$environment) {
@@ -642,7 +651,6 @@
             return;
         }
 
-        // If no ID is specified, try to auto-detect the current environment.
         if ($environment = $this->getCurrentEnvironment($this->project)) {
             $this->environment = $environment;
             return;
@@ -678,6 +686,10 @@
 
         $environment = $this->getSelectedEnvironment();
         $apps = array_keys($environment->getSshUrls());
+        if (!count($apps)) {
+          return null;
+        }
+
         $this->debug('Found app(s): ' . implode(',', $apps));
         if (count($apps) === 1) {
             $appName = reset($apps);
@@ -798,9 +810,36 @@
             $environmentId = $result['environmentId'];
         }
 
-        // Set the --app option based on the parsed project URL, if relevant.
-        if (isset($result['appId']) && $input->hasOption('app') && 
!$input->getOption('app')) {
-            $input->setOption('app', $result['appId']);
+        // Load the project ID from an environment variable, if available.
+        $envPrefix = $this->config()->get('service.env_prefix');
+        if ($projectId === null && getenv($envPrefix . 'PROJECT')) {
+            $projectId = getenv($envPrefix . 'PROJECT');
+            $this->stdErr->writeln(sprintf(
+                'Project ID read from environment variable %s: %s',
+                $envPrefix . 'PROJECT',
+                $projectId
+            ), OutputInterface::VERBOSITY_VERBOSE);
+        }
+
+        // Set the --app option.
+        if ($input->hasOption('app') && !$input->getOption('app')) {
+            // An app ID might be provided from the parsed project URL.
+            if (isset($result) && isset($result['appId'])) {
+                $input->setOption('app', $result['appId']);
+                $this->debug(sprintf(
+                    'App name detected from project URL as: %s',
+                    $input->getOption('app')
+                ));
+            }
+            // Or from an environment variable.
+            elseif (getenv($envPrefix . 'APPLICATION_NAME')) {
+                $input->setOption('app', getenv($envPrefix . 
'APPLICATION_NAME'));
+                $this->stdErr->writeln(sprintf(
+                    'App name read from environment variable %s: %s',
+                    $envPrefix . 'APPLICATION_NAME',
+                    $input->getOption('app')
+                ), OutputInterface::VERBOSITY_VERBOSE);
+            }
         }
 
         // Select the project.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/CompletionCommand.php 
new/platformsh-cli-3.20.0/src/Command/CompletionCommand.php
--- old/platformsh-cli-3.19.0/src/Command/CompletionCommand.php 2017-07-18 
17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/src/Command/CompletionCommand.php 2017-08-14 
17:36:21.000000000 +0200
@@ -3,7 +3,6 @@
 namespace Platformsh\Cli\Command;
 
 use Platformsh\Cli\Service\Api;
-use Platformsh\Cli\Application;
 use Platformsh\Cli\Local\LocalApplication;
 use Stecman\Component\Symfony\Console\BashCompletion\Completion;
 use Stecman\Component\Symfony\Console\BashCompletion\CompletionCommand as 
ParentCompletionCommand;
@@ -14,15 +13,15 @@
     /** @var Api */
     protected $api;
 
-    /** @var CommandBase */
-    protected $welcomeCommand;
-
     /**
      * A list of the user's projects.
      * @var array
      */
     protected $projects = [];
 
+    /** @var CommandBase|null */
+    private $welcomeCommand;
+
     /**
      * {@inheritdoc}
      */
@@ -32,22 +31,12 @@
     }
 
     /**
-     * {@inheritdoc}
-     */
-    protected function setUp()
-    {
-        $this->api = new Api();
-        $this->projects = $this->api->isLoggedIn() ? 
$this->api->getProjects(false) : [];
-        $this->welcomeCommand = new WelcomeCommand('welcome');
-        $this->welcomeCommand->setApplication(new Application());
-    }
-
-    /**
      * @inheritdoc
      */
     protected function runCompletion()
     {
-        $this->setUp();
+        $this->api = new Api();
+        $this->projects = $this->api->isLoggedIn() ? 
$this->api->getProjects(false) : [];
         $projectIds = array_keys($this->projects);
 
         $this->handler->addHandlers([
@@ -185,18 +174,31 @@
     }
 
     /**
+     * @return WelcomeCommand
+     */
+    protected function getWelcomeCommand()
+    {
+        if (!isset($this->welcomeCommand)) {
+            $this->welcomeCommand = new WelcomeCommand('welcome');
+            $this->welcomeCommand->setApplication($this->getApplication());
+        }
+
+        return $this->welcomeCommand;
+    }
+
+    /**
      * Get a list of environments IDs that can be checked out.
      *
      * @return string[]
      */
     public function getEnvironmentsForCheckout()
     {
-        $project = $this->welcomeCommand->getCurrentProject();
+        $project = $this->getWelcomeCommand()->getCurrentProject();
         if (!$project) {
             return [];
         }
         try {
-            $currentEnvironment = 
$this->welcomeCommand->getCurrentEnvironment($project, false);
+            $currentEnvironment = 
$this->getWelcomeCommand()->getCurrentEnvironment($project, false);
         } catch (\Exception $e) {
             $currentEnvironment = false;
         }
@@ -221,7 +223,7 @@
     public function getAppNames()
     {
         $apps = [];
-        if ($projectRoot = $this->welcomeCommand->getProjectRoot()) {
+        if ($projectRoot = $this->getWelcomeCommand()->getProjectRoot()) {
             foreach (LocalApplication::getApplications($projectRoot) as $app) {
                 $name = $app->getName();
                 if ($name !== null) {
@@ -251,7 +253,7 @@
         $commandLine = $this->handler->getContext()
             ->getCommandLine();
         $currentProjectId = $this->getProjectIdFromCommandLine($commandLine);
-        if (!$currentProjectId && ($currentProject = 
$this->welcomeCommand->getCurrentProject())) {
+        if (!$currentProjectId && ($currentProject = 
$this->getWelcomeCommand()->getCurrentProject())) {
             return $currentProject;
         } elseif (isset($this->projects[$currentProjectId])) {
             return $this->projects[$currentProjectId];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/Environment/EnvironmentPushCommand.php 
new/platformsh-cli-3.20.0/src/Command/Environment/EnvironmentPushCommand.php
--- 
old/platformsh-cli-3.19.0/src/Command/Environment/EnvironmentPushCommand.php    
    2017-07-18 17:24:27.000000000 +0200
+++ 
new/platformsh-cli-3.20.0/src/Command/Environment/EnvironmentPushCommand.php    
    2017-08-14 17:36:21.000000000 +0200
@@ -105,10 +105,10 @@
             // Determine whether to activate the environment after pushing.
             if (!$targetEnvironment || $targetEnvironment->status === 
'inactive') {
                 $activate = $input->getOption('activate')
-                    || $questionHelper->confirm(sprintf(
+                    || ($input->isInteractive() && 
$questionHelper->confirm(sprintf(
                         'Activate <info>%s</info> after pushing?',
                         $target
-                    ));
+                    )));
             }
 
             // If activating, determine what the environment's parent should 
be.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/Environment/EnvironmentUrlCommand.php 
new/platformsh-cli-3.20.0/src/Command/Environment/EnvironmentUrlCommand.php
--- old/platformsh-cli-3.19.0/src/Command/Environment/EnvironmentUrlCommand.php 
2017-07-18 17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/src/Command/Environment/EnvironmentUrlCommand.php 
2017-08-14 17:36:21.000000000 +0200
@@ -32,19 +32,7 @@
             return 1;
         }
 
-        // Sort the URLs heuristically. Prefer short URLs with HTTPS.
-        usort($urls, function ($a, $b) {
-            $result = 0;
-            if (parse_url($a, PHP_URL_SCHEME) === 'https') {
-                $result -= 2;
-            }
-            if (parse_url($b, PHP_URL_SCHEME) === 'https') {
-                $result += 2;
-            }
-            $result += strlen($a) <= strlen($b) ? -1 : 1;
-
-            return $result;
-        });
+        usort($urls, [$this->api(), 'urlSort']);
 
         // Just display the URLs if --browser is 0 or if --pipe is set.
         if ($input->getOption('pipe') || $input->getOption('browser') === '0') 
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/Integration/IntegrationCommandBase.php 
new/platformsh-cli-3.20.0/src/Command/Integration/IntegrationCommandBase.php
--- 
old/platformsh-cli-3.19.0/src/Command/Integration/IntegrationCommandBase.php    
    2017-07-18 17:24:27.000000000 +0200
+++ 
new/platformsh-cli-3.20.0/src/Command/Integration/IntegrationCommandBase.php    
    2017-08-14 17:36:21.000000000 +0200
@@ -5,6 +5,7 @@
 use Platformsh\Client\Model\Integration;
 use Platformsh\ConsoleForm\Field\ArrayField;
 use Platformsh\ConsoleForm\Field\BooleanField;
+use Platformsh\ConsoleForm\Field\EmailAddressField;
 use Platformsh\ConsoleForm\Field\Field;
 use Platformsh\ConsoleForm\Field\OptionsField;
 use Platformsh\ConsoleForm\Field\UrlField;
@@ -36,6 +37,9 @@
             'github',
             'hipchat',
             'webhook',
+            'health.email',
+            'health.pagerduty',
+            'health.slack',
         ];
 
         return [
@@ -48,11 +52,9 @@
                 'conditions' => ['type' => [
                     'github',
                     'hipchat',
+                    'health.slack',
                 ]],
                 'description' => 'An OAuth token for the integration',
-                'validator' => function ($string) {
-                    return base64_decode($string, true) !== false;
-                },
             ]),
             'repository' => new Field('Repository', [
                 'conditions' => ['type' => [
@@ -76,6 +78,12 @@
                 ]],
                 'description' => 'GitHub: build pull requests as environments',
             ]),
+            'build_pull_requests_post_merge' => new BooleanField('Build pull 
requests post-merge', [
+              'conditions' => ['type' => [
+                'github',
+              ]],
+              'description' => 'GitHub: build pull requests based on their 
post-merge state',
+            ]),
             'fetch_branches' => new BooleanField('Fetch branches', [
                 'conditions' => ['type' => [
                     'github',
@@ -120,6 +128,43 @@
                 'default' => ['*'],
                 'description' => 'Generic webhook: the environments relevant 
to the hook',
             ]),
+            'from_address' => new EmailAddressField('From address', [
+                'conditions' => ['type' => [
+                    'health.email',
+                ]],
+                'description' => 'The From address for alert emails',
+            ]),
+            'recipients' => new ArrayField('Recipients', [
+                'conditions' => ['type' => [
+                    'health.email',
+                ]],
+                'description' => 'The recipient email address(es)',
+                'validator' => function ($emails) {
+                    $invalid = array_filter($emails, function ($email) {
+                        return !filter_var($email, FILTER_VALIDATE_EMAIL);
+                    });
+                    if (count($invalid)) {
+                        return sprintf('Invalid email address(es): %s', 
implode(', ', $invalid));
+                    }
+
+                    return true;
+                },
+            ]),
+            'channel' => new Field('Channel', [
+                'conditions' => ['type' => [
+                    'health.slack',
+                ]],
+                'description' => 'The Slack channel (beginning with the #)',
+                'validator' => function ($string) {
+                    return strpos($string, '#') === 0;
+                },
+            ]),
+            'routing_key' => new Field('Routing key', [
+                'conditions' => ['type' => [
+                    'health.pagerduty',
+                ]],
+                'description' => 'The PagerDuty routing key',
+            ]),
         ];
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/Integration/IntegrationDeleteCommand.php 
new/platformsh-cli-3.20.0/src/Command/Integration/IntegrationDeleteCommand.php
--- 
old/platformsh-cli-3.19.0/src/Command/Integration/IntegrationDeleteCommand.php  
    2017-07-18 17:24:27.000000000 +0200
+++ 
new/platformsh-cli-3.20.0/src/Command/Integration/IntegrationDeleteCommand.php  
    2017-08-14 17:36:21.000000000 +0200
@@ -25,17 +25,19 @@
         $this->validateInput($input);
 
         $id = $input->getArgument('id');
+        $project = $this->getSelectedProject();
 
-        $integration = $this->getSelectedProject()
-                            ->getIntegration($id);
+        $integration = $project->getIntegration($id);
         if (!$integration) {
-            $this->stdErr->writeln("Integration not found: 
<error>$id</error>");
-
-            return 1;
+            try {
+                $integration = $this->api()->matchPartialId($id, 
$project->getIntegrations(), 'Integration');
+            } catch (\InvalidArgumentException $e) {
+                $this->stdErr->writeln($e->getMessage());
+                return 1;
+            }
         }
 
-        $type = $integration->type;
-        $confirmText = "Delete the integration <info>$id</info> (type: 
$type)?";
+        $confirmText = sprintf('Delete the integration <info>%s</info> (type: 
%s)?', $integration->id, $integration->type);
         /** @var \Platformsh\Cli\Service\QuestionHelper $questionHelper */
         $questionHelper = $this->getService('question_helper');
         if (!$questionHelper->confirm($confirmText)) {
@@ -44,7 +46,7 @@
 
         $result = $integration->delete();
 
-        $this->stdErr->writeln("Deleted integration <info>$id</info>");
+        $this->stdErr->writeln(sprintf('Deleted integration <info>%s</info>', 
$integration->id));
 
         if (!$input->getOption('no-wait')) {
             /** @var \Platformsh\Cli\Service\ActivityMonitor $activityMonitor 
*/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/Integration/IntegrationGetCommand.php 
new/platformsh-cli-3.20.0/src/Command/Integration/IntegrationGetCommand.php
--- old/platformsh-cli-3.19.0/src/Command/Integration/IntegrationGetCommand.php 
2017-07-18 17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/src/Command/Integration/IntegrationGetCommand.php 
2017-08-14 17:36:21.000000000 +0200
@@ -50,12 +50,14 @@
             $id = $questionHelper->choose($choices, 'Enter a number to choose 
an integration:');
         }
 
-        $integration = $this->getSelectedProject()
-                            ->getIntegration($id);
+        $integration = $project->getIntegration($id);
         if (!$integration) {
-            $this->stdErr->writeln("Integration not found: 
<error>$id</error>");
-
-            return 1;
+            try {
+                $integration = $this->api()->matchPartialId($id, 
$project->getIntegrations(), 'Integration');
+            } catch (\InvalidArgumentException $e) {
+                $this->stdErr->writeln($e->getMessage());
+                return 1;
+            }
         }
 
         if ($property = $input->getOption('property')) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/Integration/IntegrationListCommand.php 
new/platformsh-cli-3.20.0/src/Command/Integration/IntegrationListCommand.php
--- 
old/platformsh-cli-3.19.0/src/Command/Integration/IntegrationListCommand.php    
    2017-07-18 17:24:27.000000000 +0200
+++ 
new/platformsh-cli-3.20.0/src/Command/Integration/IntegrationListCommand.php    
    2017-08-14 17:36:21.000000000 +0200
@@ -86,6 +86,18 @@
                 $summary = sprintf('URL: %s', $details['url']);
                 break;
 
+            case 'health.email':
+                $summary = sprintf("From: %s\nTo: %s", 
$details['from_address'], implode(', ', $details['recipients']));
+                break;
+
+            case 'health.slack':
+                $summary = sprintf('Channel: %s', $details['channel']);
+                break;
+
+            case 'health.pagerduty':
+                $summary = sprintf('Routing key: %s', $details['routing_key']);
+                break;
+
             default:
                 $summary = json_encode($details);
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/Integration/IntegrationUpdateCommand.php 
new/platformsh-cli-3.20.0/src/Command/Integration/IntegrationUpdateCommand.php
--- 
old/platformsh-cli-3.19.0/src/Command/Integration/IntegrationUpdateCommand.php  
    2017-07-18 17:24:27.000000000 +0200
+++ 
new/platformsh-cli-3.20.0/src/Command/Integration/IntegrationUpdateCommand.php  
    2017-08-14 17:36:21.000000000 +0200
@@ -29,12 +29,15 @@
         $this->validateInput($input);
 
         $id = $input->getArgument('id');
-        $integration = $this->getSelectedProject()
-                            ->getIntegration($id);
+        $project = $this->getSelectedProject();
+        $integration = $project->getIntegration($id);
         if (!$integration) {
-            $this->stdErr->writeln("Integration not found: 
<error>$id</error>");
-
-            return 1;
+            try {
+                $integration = $this->api()->matchPartialId($id, 
$project->getIntegrations(), 'Integration');
+            } catch (\InvalidArgumentException $e) {
+                $this->stdErr->writeln($e->getMessage());
+                return 1;
+            }
         }
 
         $values = [];
@@ -62,7 +65,7 @@
         }
 
         $result = $integration->update($values);
-        $this->stdErr->writeln("Integration <info>$id</info> 
(<info>{$integration->type}</info>) updated");
+        $this->stdErr->writeln("Integration <info>{$integration->id}</info> 
(<info>{$integration->type}</info>) updated");
 
         $this->displayIntegration($integration);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/Project/ProjectCreateCommand.php 
new/platformsh-cli-3.20.0/src/Command/Project/ProjectCreateCommand.php
--- old/platformsh-cli-3.19.0/src/Command/Project/ProjectCreateCommand.php      
2017-07-18 17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/src/Command/Project/ProjectCreateCommand.php      
2017-08-14 17:36:21.000000000 +0200
@@ -56,11 +56,16 @@
             ->getClient()
             ->getSubscriptionEstimate($options['plan'], $options['storage'], 
$options['environments'], 1);
         $costConfirm = sprintf(
-            'The estimated monthly cost of this project is: 
<comment>%s</comment>'
-            . "\n\n"
-            . 'Are you sure you want to continue?',
+            'The estimated monthly cost of this project is: 
<comment>%s</comment>',
             $estimate['total']
         );
+        if ($this->config()->has('service.pricing_url')) {
+            $costConfirm .= sprintf(
+                "\nPricing information: <comment>%s</comment>",
+                $this->config()->get('service.pricing_url')
+            );
+        }
+        $costConfirm .= "\n\nAre you sure you want to continue?";
         if (!$questionHelper->confirm($costConfirm)) {
             return 1;
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/Route/RouteGetCommand.php 
new/platformsh-cli-3.20.0/src/Command/Route/RouteGetCommand.php
--- old/platformsh-cli-3.19.0/src/Command/Route/RouteGetCommand.php     
2017-07-18 17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/src/Command/Route/RouteGetCommand.php     
2017-08-14 17:36:21.000000000 +0200
@@ -58,6 +58,7 @@
             foreach ($routes as $route) {
                 $items[$route['original_url']] = $route['original_url'];
             }
+            uksort($items, [$this->api(), 'urlSort']);
             $originalUrl = $questionHelper->choose($items, 'Enter a number to 
choose a route:');
         }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/Self/SelfBuildCommand.php 
new/platformsh-cli-3.20.0/src/Command/Self/SelfBuildCommand.php
--- old/platformsh-cli-3.19.0/src/Command/Self/SelfBuildCommand.php     
2017-07-18 17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/src/Command/Self/SelfBuildCommand.php     
2017-08-14 17:36:21.000000000 +0200
@@ -135,13 +135,15 @@
         }
 
         $sha1 = sha1_file($phar);
+        $sha256 = hash_file('sha256', $phar);
         $size = filesize($phar);
 
         $this->stdErr->writeln('The package was built successfully');
         $output->writeln($phar);
         $this->stdErr->writeln([
             sprintf('Size: %s', FormatterHelper::formatMemory($size)),
-            sprintf('SHA1: %s', $sha1),
+            sprintf('SHA-1: %s', $sha1),
+            sprintf('SHA-256: %s', $sha256),
             sprintf('Version: %s', $version),
         ]);
         return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/Command/User/UserDeleteCommand.php 
new/platformsh-cli-3.20.0/src/Command/User/UserDeleteCommand.php
--- old/platformsh-cli-3.19.0/src/Command/User/UserDeleteCommand.php    
2017-07-18 17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/src/Command/User/UserDeleteCommand.php    
2017-08-14 17:36:21.000000000 +0200
@@ -13,7 +13,7 @@
     {
         $this
             ->setName('user:delete')
-            ->setDescription('Delete a user')
+            ->setDescription('Delete a user from the project')
             ->addArgument('email', InputArgument::REQUIRED, "The user's email 
address");
         $this->addProjectOption()->addNoWaitOption();
         $this->addExample('Delete Alice from the project', 
'[email protected]');
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/platformsh-cli-3.19.0/src/SelfUpdate/ManifestStrategy.php 
new/platformsh-cli-3.20.0/src/SelfUpdate/ManifestStrategy.php
--- old/platformsh-cli-3.19.0/src/SelfUpdate/ManifestStrategy.php       
2017-07-18 17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/src/SelfUpdate/ManifestStrategy.php       
2017-08-14 17:36:21.000000000 +0200
@@ -28,7 +28,7 @@
     private $allowUnstable = false;
 
     /** @var array */
-    private static $requiredKeys = ['sha1', 'version', 'url'];
+    private static $requiredKeys = ['sha256', 'version', 'url'];
 
     /** @var int */
     private $manifestTimeout = 10;
@@ -45,7 +45,7 @@
      * @param string $localVersion  The local version.
      * @param string $manifestUrl   The URL to a JSON manifest file. The
      *                              manifest contains an array of objects, each
-     *                              containing a 'version', 'sha1', and 'url'.
+     *                              containing a 'version', 'sha256', and 
'url'.
      * @param bool   $allowMajor    Whether to allow updating between major
      *                              versions.
      * @param bool   $allowUnstable Whether to allow updating to an unstable
@@ -152,13 +152,13 @@
             throw new \RuntimeException(sprintf('Failed to write file: %s', 
$tmpFilename));
         }
 
-        $tmpSha = sha1_file($tmpFilename);
-        if ($tmpSha !== $versionInfo['sha1']) {
+        $tmpSha = hash_file('sha256', $tmpFilename);
+        if ($tmpSha !== $versionInfo['sha256']) {
             unlink($tmpFilename);
             throw new \RuntimeException(
                 sprintf(
-                    'SHA-1 verification failed: expected %s, actual %s',
-                    $versionInfo['sha1'],
+                    'SHA-256 verification failed: expected %s, actual %s',
+                    $versionInfo['sha256'],
                     $tmpSha
                 )
             );
@@ -170,7 +170,7 @@
      *
      * @return array
      *   An array keyed by the version name, whose elements are arrays
-     *   containing version information ('name', 'sha1', and 'url').
+     *   containing version information ('version', 'sha256', and 'url').
      */
     private function getAvailableVersions()
     {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/platformsh-cli-3.19.0/src/Service/Api.php 
new/platformsh-cli-3.20.0/src/Service/Api.php
--- old/platformsh-cli-3.19.0/src/Service/Api.php       2017-07-18 
17:24:27.000000000 +0200
+++ new/platformsh-cli-3.20.0/src/Service/Api.php       2017-08-14 
17:36:21.000000000 +0200
@@ -579,7 +579,7 @@
 
         if (count($matched) > 1) {
             $matchedIds = array_map(function (ApiResource $resource) {
-                return $resource->id;
+                return $resource->getProperty('id');
             }, $matched);
             throw new \InvalidArgumentException(sprintf(
                 'The partial ID "<error>%s</error>" is ambiguous; it matches 
the following %s IDs: %s',
@@ -614,4 +614,25 @@
 
         return $token;
     }
+
+    /**
+     * Sort URLs, preferring shorter ones with HTTPS.
+     *
+     * @param string $a
+     * @param string $b
+     *
+     * @return int
+    */
+    public function urlSort($a, $b)
+    {
+        $result = 0;
+        foreach ([$a, $b] as $key => $url) {
+            if (parse_url($url, PHP_URL_SCHEME) === 'https') {
+                $result += $key === 0 ? -2 : 2;
+            }
+        }
+        $result += strlen($a) <= strlen($b) ? -1 : 1;
+
+        return $result;
+    }
 }

++++++ 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     2017-07-27 04:20:29.062179883 +0200
+++ new/vendor/autoload.php     2017-08-14 23:33:07.732611180 +0200
@@ -4,4 +4,4 @@
 
 require_once __DIR__ . '/composer/autoload_real.php';
 
-return ComposerAutoloaderInit02166adf9488991e8ec36bfe80c7524a::getLoader();
+return ComposerAutoloaderInitb6506811e4b3232d0fae5c2d61c458bc::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       2017-07-27 04:20:29.062179883 
+0200
+++ new/vendor/composer/autoload_real.php       2017-08-14 23:33:07.732611180 
+0200
@@ -2,7 +2,7 @@
 
 // autoload_real.php @generated by Composer
 
-class ComposerAutoloaderInit02166adf9488991e8ec36bfe80c7524a
+class ComposerAutoloaderInitb6506811e4b3232d0fae5c2d61c458bc
 {
     private static $loader;
 
@@ -19,15 +19,15 @@
             return self::$loader;
         }
 
-        
spl_autoload_register(array('ComposerAutoloaderInit02166adf9488991e8ec36bfe80c7524a',
 'loadClassLoader'), true, true);
+        
spl_autoload_register(array('ComposerAutoloaderInitb6506811e4b3232d0fae5c2d61c458bc',
 'loadClassLoader'), true, true);
         self::$loader = $loader = new \Composer\Autoload\ClassLoader();
-        
spl_autoload_unregister(array('ComposerAutoloaderInit02166adf9488991e8ec36bfe80c7524a',
 'loadClassLoader'));
+        
spl_autoload_unregister(array('ComposerAutoloaderInitb6506811e4b3232d0fae5c2d61c458bc',
 '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\ComposerStaticInit02166adf9488991e8ec36bfe80c7524a::getInitializer($loader));
+            
call_user_func(\Composer\Autoload\ComposerStaticInitb6506811e4b3232d0fae5c2d61c458bc::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\ComposerStaticInit02166adf9488991e8ec36bfe80c7524a::$files;
+            $includeFiles = 
Composer\Autoload\ComposerStaticInitb6506811e4b3232d0fae5c2d61c458bc::$files;
         } else {
             $includeFiles = require __DIR__ . '/autoload_files.php';
         }
         foreach ($includeFiles as $fileIdentifier => $file) {
-            composerRequire02166adf9488991e8ec36bfe80c7524a($fileIdentifier, 
$file);
+            composerRequireb6506811e4b3232d0fae5c2d61c458bc($fileIdentifier, 
$file);
         }
 
         return $loader;
     }
 }
 
-function composerRequire02166adf9488991e8ec36bfe80c7524a($fileIdentifier, 
$file)
+function composerRequireb6506811e4b3232d0fae5c2d61c458bc($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     2017-07-27 04:20:29.062179883 
+0200
+++ new/vendor/composer/autoload_static.php     2017-08-14 23:33:07.732611180 
+0200
@@ -4,7 +4,7 @@
 
 namespace Composer\Autoload;
 
-class ComposerStaticInit02166adf9488991e8ec36bfe80c7524a
+class ComposerStaticInitb6506811e4b3232d0fae5c2d61c458bc
 {
     public static $files = array (
         '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . 
'/symfony/polyfill-mbstring/bootstrap.php',
@@ -183,9 +183,9 @@
     public static function getInitializer(ClassLoader $loader)
     {
         return \Closure::bind(function () use ($loader) {
-            $loader->prefixLengthsPsr4 = 
ComposerStaticInit02166adf9488991e8ec36bfe80c7524a::$prefixLengthsPsr4;
-            $loader->prefixDirsPsr4 = 
ComposerStaticInit02166adf9488991e8ec36bfe80c7524a::$prefixDirsPsr4;
-            $loader->classMap = 
ComposerStaticInit02166adf9488991e8ec36bfe80c7524a::$classMap;
+            $loader->prefixLengthsPsr4 = 
ComposerStaticInitb6506811e4b3232d0fae5c2d61c458bc::$prefixLengthsPsr4;
+            $loader->prefixDirsPsr4 = 
ComposerStaticInitb6506811e4b3232d0fae5c2d61c458bc::$prefixDirsPsr4;
+            $loader->classMap = 
ComposerStaticInitb6506811e4b3232d0fae5c2d61c458bc::$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  2017-07-27 04:20:28.446174003 +0200
+++ new/vendor/composer/installed.json  2017-08-14 23:33:07.104605260 +0200
@@ -656,21 +656,21 @@
     },
     {
         "name": "platformsh/client",
-        "version": "v0.11.2",
-        "version_normalized": "0.11.2.0",
+        "version": "v0.11.4",
+        "version_normalized": "0.11.4.0",
         "source": {
             "type": "git",
             "url": "https://github.com/platformsh/platformsh-client-php.git";,
-            "reference": "3c8bb553b09665fec4bc42975c624d09d9971c97"
+            "reference": "07bc12cf0b81a23368679b6dc274f95c74eeaef2"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/platformsh/platformsh-client-php/zipball/3c8bb553b09665fec4bc42975c624d09d9971c97";,
-            "reference": "3c8bb553b09665fec4bc42975c624d09d9971c97",
+            "url": 
"https://api.github.com/repos/platformsh/platformsh-client-php/zipball/07bc12cf0b81a23368679b6dc274f95c74eeaef2";,
+            "reference": "07bc12cf0b81a23368679b6dc274f95c74eeaef2",
             "shasum": ""
         },
         "require": {
-            "cocur/slugify": "~1.0",
+            "cocur/slugify": "^2.0 || ~1.0",
             "commerceguys/guzzle-oauth2-plugin": "~2.0",
             "cweagans/composer-patches": "~1.0",
             "guzzlehttp/cache-subscriber": "~0.1",
@@ -679,7 +679,7 @@
         "require-dev": {
             "phpunit/phpunit": "~4.5"
         },
-        "time": "2017-07-01T15:17:33+00:00",
+        "time": "2017-08-10T10:50:40+00:00",
         "type": "library",
         "extra": {
             "patches": {
@@ -941,17 +941,17 @@
     },
     {
         "name": "platformsh/console-form",
-        "version": "v0.0.10",
-        "version_normalized": "0.0.10.0",
+        "version": "v0.0.11",
+        "version_normalized": "0.0.11.0",
         "source": {
             "type": "git",
             "url": "https://github.com/platformsh/console-form.git";,
-            "reference": "6c4af8274d97fb7e9c4eaa8d0a72e79f4bbef0f9"
+            "reference": "f3971c9fde735a96b7a574f101724ee4a87a1d18"
         },
         "dist": {
             "type": "zip",
-            "url": 
"https://api.github.com/repos/platformsh/console-form/zipball/6c4af8274d97fb7e9c4eaa8d0a72e79f4bbef0f9";,
-            "reference": "6c4af8274d97fb7e9c4eaa8d0a72e79f4bbef0f9",
+            "url": 
"https://api.github.com/repos/platformsh/console-form/zipball/f3971c9fde735a96b7a574f101724ee4a87a1d18";,
+            "reference": "f3971c9fde735a96b7a574f101724ee4a87a1d18",
             "shasum": ""
         },
         "require": {
@@ -960,7 +960,7 @@
         "require-dev": {
             "phpunit/phpunit": "~4"
         },
-        "time": "2017-04-02T11:43:41+00:00",
+        "time": "2017-08-10T10:49:11+00:00",
         "type": "library",
         "installation-source": "dist",
         "autoload": {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/platformsh/client/composer.json 
new/vendor/platformsh/client/composer.json
--- old/vendor/platformsh/client/composer.json  2017-07-01 17:17:33.000000000 
+0200
+++ new/vendor/platformsh/client/composer.json  2017-08-10 12:50:40.000000000 
+0200
@@ -3,7 +3,7 @@
     "description": "Platform.sh API client",
     "license": "MIT",
     "require": {
-        "cocur/slugify": "~1.0",
+        "cocur/slugify": "^2.0 || ~1.0",
         "guzzlehttp/guzzle": "~5.3",
         "commerceguys/guzzle-oauth2-plugin": "~2.0",
         "guzzlehttp/cache-subscriber": "~0.1",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/platformsh/client/composer.lock 
new/vendor/platformsh/client/composer.lock
--- old/vendor/platformsh/client/composer.lock  2017-07-01 17:17:33.000000000 
+0200
+++ new/vendor/platformsh/client/composer.lock  2017-08-10 12:50:40.000000000 
+0200
@@ -4,40 +4,40 @@
         "Read more about it at 
https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file";,
         "This file is @generated automatically"
     ],
-    "hash": "9bf19fb8a86f0ce2d16cfb1a1e8d678f",
-    "content-hash": "f30956c399a3dcc2f3235c308c5fd744",
+    "content-hash": "03d139694c2b711bea00ded2c7c0f173",
     "packages": [
         {
             "name": "cocur/slugify",
-            "version": "v1.4.1",
+            "version": "v2.5",
             "source": {
                 "type": "git",
                 "url": "https://github.com/cocur/slugify.git";,
-                "reference": "16cdd7e792657d524cde931ea666436623b23301"
+                "reference": "e8167e9a3236044afebd6e8ab13ebeb3ec9ca145"
             },
             "dist": {
                 "type": "zip",
-                "url": 
"https://api.github.com/repos/cocur/slugify/zipball/16cdd7e792657d524cde931ea666436623b23301";,
-                "reference": "16cdd7e792657d524cde931ea666436623b23301",
+                "url": 
"https://api.github.com/repos/cocur/slugify/zipball/e8167e9a3236044afebd6e8ab13ebeb3ec9ca145";,
+                "reference": "e8167e9a3236044afebd6e8ab13ebeb3ec9ca145",
                 "shasum": ""
             },
             "require": {
-                "php": ">=5.3.3"
+                "php": ">=5.5.9"
             },
             "require-dev": {
-                "codeclimate/php-test-reporter": "dev-master",
-                "laravel/framework": "~4.1",
+                "laravel/framework": "~5.1",
                 "latte/latte": "~2.2",
+                "league/container": "^2.2.0",
+                "mikey179/vfsstream": "~1.6",
                 "mockery/mockery": "~0.9",
                 "nette/di": "~2.2",
-                "phpunit/phpunit": "~4.6",
+                "phpunit/phpunit": "~4.8|~5.2",
+                "pimple/pimple": "~1.1",
                 "plumphp/plum": "~0.1",
-                "sami/sami": "~1.3",
-                "satooshi/php-coveralls": "0.6.*",
-                "silex/silex": "~1.2",
-                "symfony/dependency-injection": "~2.4",
-                "symfony/http-kernel": "~2.4",
-                "twig/twig": "~1",
+                "silex/silex": "~1.3",
+                "symfony/config": "~2.4|~3.0",
+                "symfony/dependency-injection": "~2.4|~3.0",
+                "symfony/http-kernel": "~2.4|~3.0",
+                "twig/twig": "~1.26|~2.0",
                 "zendframework/zend-modulemanager": "~2.2",
                 "zendframework/zend-servicemanager": "~2.2",
                 "zendframework/zend-view": "~2.2"
@@ -68,7 +68,7 @@
                 "slug",
                 "slugify"
             ],
-            "time": "2016-02-11 09:53:46"
+            "time": "2017-03-23T21:52:55+00:00"
         },
         {
             "name": "commerceguys/guzzle-oauth2-plugin",
@@ -118,7 +118,7 @@
                 }
             ],
             "description": "An OAuth2 plugin (subscriber) for Guzzle",
-            "time": "2015-12-12 23:27:25"
+            "time": "2015-12-12T23:27:25+00:00"
         },
         {
             "name": "cweagans/composer-patches",
@@ -162,7 +162,7 @@
                 }
             ],
             "description": "Provides a way to patch Composer packages.",
-            "time": "2016-12-01 01:19:32"
+            "time": "2016-12-01T01:19:32+00:00"
         },
         {
             "name": "doctrine/cache",
@@ -232,7 +232,7 @@
                 "cache",
                 "caching"
             ],
-            "time": "2016-10-29 11:16:17"
+            "time": "2016-10-29T11:16:17+00:00"
         },
         {
             "name": "firebase/php-jwt",
@@ -276,7 +276,7 @@
             ],
             "description": "A simple library to encode and decode JSON Web 
Tokens (JWT) in PHP. Should conform to the current spec.",
             "homepage": "https://github.com/firebase/php-jwt";,
-            "time": "2015-06-22 23:26:39"
+            "time": "2015-06-22T23:26:39+00:00"
         },
         {
             "name": "guzzlehttp/cache-subscriber",
@@ -328,7 +328,7 @@
                 "Guzzle",
                 "cache"
             ],
-            "time": "2014-10-29 21:06:25"
+            "time": "2014-10-29T21:06:25+00:00"
         },
         {
             "name": "guzzlehttp/guzzle",
@@ -380,7 +380,7 @@
                 "rest",
                 "web service"
             ],
-            "time": "2016-07-15 19:28:39"
+            "time": "2016-07-15T19:28:39+00:00"
         },
         {
             "name": "guzzlehttp/ringphp",
@@ -431,7 +431,7 @@
                 }
             ],
             "description": "Provides a simple API and specification that 
abstracts away the details of HTTP into a single PHP function.",
-            "time": "2015-05-20 03:37:09"
+            "time": "2015-05-20T03:37:09+00:00"
         },
         {
             "name": "guzzlehttp/streams",
@@ -481,7 +481,7 @@
                 "Guzzle",
                 "stream"
             ],
-            "time": "2014-10-12 19:18:40"
+            "time": "2014-10-12T19:18:40+00:00"
         },
         {
             "name": "react/promise",
@@ -524,7 +524,7 @@
                 "promise",
                 "promises"
             ],
-            "time": "2016-12-22 14:09:01"
+            "time": "2016-12-22T14:09:01+00:00"
         }
     ],
     "packages-dev": [
@@ -580,7 +580,7 @@
                 "constructor",
                 "instantiate"
             ],
-            "time": "2015-06-14 21:17:01"
+            "time": "2015-06-14T21:17:01+00:00"
         },
         {
             "name": "phpdocumentor/reflection-common",
@@ -634,7 +634,7 @@
                 "reflection",
                 "static analysis"
             ],
-            "time": "2015-12-27 11:43:31"
+            "time": "2015-12-27T11:43:31+00:00"
         },
         {
             "name": "phpdocumentor/reflection-docblock",
@@ -679,7 +679,7 @@
                 }
             ],
             "description": "With this component, a library can provide support 
for annotations via DocBlocks or otherwise retrieve information that is 
embedded in a DocBlock.",
-            "time": "2016-09-30 07:12:33"
+            "time": "2016-09-30T07:12:33+00:00"
         },
         {
             "name": "phpdocumentor/type-resolver",
@@ -726,7 +726,7 @@
                     "email": "[email protected]"
                 }
             ],
-            "time": "2016-11-25 06:54:22"
+            "time": "2016-11-25T06:54:22+00:00"
         },
         {
             "name": "phpspec/prophecy",
@@ -789,7 +789,7 @@
                 "spy",
                 "stub"
             ],
-            "time": "2016-11-21 14:58:47"
+            "time": "2016-11-21T14:58:47+00:00"
         },
         {
             "name": "phpunit/php-code-coverage",
@@ -851,7 +851,7 @@
                 "testing",
                 "xunit"
             ],
-            "time": "2015-10-06 15:47:00"
+            "time": "2015-10-06T15:47:00+00:00"
         },
         {
             "name": "phpunit/php-file-iterator",
@@ -898,7 +898,7 @@
                 "filesystem",
                 "iterator"
             ],
-            "time": "2016-10-03 07:40:28"
+            "time": "2016-10-03T07:40:28+00:00"
         },
         {
             "name": "phpunit/php-text-template",
@@ -939,7 +939,7 @@
             "keywords": [
                 "template"
             ],
-            "time": "2015-06-21 13:50:34"
+            "time": "2015-06-21T13:50:34+00:00"
         },
         {
             "name": "phpunit/php-timer",
@@ -983,7 +983,7 @@
             "keywords": [
                 "timer"
             ],
-            "time": "2016-05-12 18:03:57"
+            "time": "2016-05-12T18:03:57+00:00"
         },
         {
             "name": "phpunit/php-token-stream",
@@ -1032,7 +1032,7 @@
             "keywords": [
                 "tokenizer"
             ],
-            "time": "2016-11-15 14:06:22"
+            "time": "2016-11-15T14:06:22+00:00"
         },
         {
             "name": "phpunit/phpunit",
@@ -1104,7 +1104,7 @@
                 "testing",
                 "xunit"
             ],
-            "time": "2016-12-09 02:45:31"
+            "time": "2016-12-09T02:45:31+00:00"
         },
         {
             "name": "phpunit/phpunit-mock-objects",
@@ -1160,7 +1160,7 @@
                 "mock",
                 "xunit"
             ],
-            "time": "2015-10-02 06:51:40"
+            "time": "2015-10-02T06:51:40+00:00"
         },
         {
             "name": "sebastian/comparator",
@@ -1224,7 +1224,7 @@
                 "compare",
                 "equality"
             ],
-            "time": "2016-11-19 09:18:40"
+            "time": "2016-11-19T09:18:40+00:00"
         },
         {
             "name": "sebastian/diff",
@@ -1276,7 +1276,7 @@
             "keywords": [
                 "diff"
             ],
-            "time": "2015-12-08 07:14:41"
+            "time": "2015-12-08T07:14:41+00:00"
         },
         {
             "name": "sebastian/environment",
@@ -1326,7 +1326,7 @@
                 "environment",
                 "hhvm"
             ],
-            "time": "2016-08-18 05:49:44"
+            "time": "2016-08-18T05:49:44+00:00"
         },
         {
             "name": "sebastian/exporter",
@@ -1393,7 +1393,7 @@
                 "export",
                 "exporter"
             ],
-            "time": "2016-06-17 09:04:28"
+            "time": "2016-06-17T09:04:28+00:00"
         },
         {
             "name": "sebastian/global-state",
@@ -1444,7 +1444,7 @@
             "keywords": [
                 "global state"
             ],
-            "time": "2015-10-12 03:26:01"
+            "time": "2015-10-12T03:26:01+00:00"
         },
         {
             "name": "sebastian/recursion-context",
@@ -1497,7 +1497,7 @@
             ],
             "description": "Provides functionality to recursively process PHP 
variables",
             "homepage": 
"http://www.github.com/sebastianbergmann/recursion-context";,
-            "time": "2015-11-11 19:50:13"
+            "time": "2015-11-11T19:50:13+00:00"
         },
         {
             "name": "sebastian/version",
@@ -1532,7 +1532,7 @@
             ],
             "description": "Library that helps with managing the version 
number of Git-hosted PHP projects",
             "homepage": "https://github.com/sebastianbergmann/version";,
-            "time": "2015-06-21 13:59:46"
+            "time": "2015-06-21T13:59:46+00:00"
         },
         {
             "name": "symfony/yaml",
@@ -1587,7 +1587,7 @@
             ],
             "description": "Symfony Yaml Component",
             "homepage": "https://symfony.com";,
-            "time": "2016-12-10 10:07:06"
+            "time": "2016-12-10T10:07:06+00:00"
         },
         {
             "name": "webmozart/assert",
@@ -1637,7 +1637,7 @@
                 "check",
                 "validate"
             ],
-            "time": "2016-11-23 20:04:58"
+            "time": "2016-11-23T20:04:58+00:00"
         }
     ],
     "aliases": [],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/platformsh/client/src/Model/Integration.php 
new/vendor/platformsh/client/src/Model/Integration.php
--- old/vendor/platformsh/client/src/Model/Integration.php      2017-07-01 
17:17:33.000000000 +0200
+++ new/vendor/platformsh/client/src/Model/Integration.php      2017-08-10 
12:50:40.000000000 +0200
@@ -15,7 +15,15 @@
     protected static $required = ['type'];
 
     /** @var array */
-    protected static $types = ['bitbucket', 'hipchat', 'github', 'webhook'];
+    protected static $types = [
+      'bitbucket',
+      'hipchat',
+      'github',
+      'webhook',
+      'health.email',
+      'health.pagerduty',
+      'health.slack',
+    ];
 
     /**
      * @inheritdoc
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/platformsh/console-form/src/Field/ArrayField.php 
new/vendor/platformsh/console-form/src/Field/ArrayField.php
--- old/vendor/platformsh/console-form/src/Field/ArrayField.php 2017-04-02 
13:43:41.000000000 +0200
+++ new/vendor/platformsh/console-form/src/Field/ArrayField.php 2017-08-10 
12:49:11.000000000 +0200
@@ -15,7 +15,7 @@
     {
         $question = parent::getAsQuestion();
         $question->setNormalizer(function ($value) {
-            return is_array($value) ? $value : preg_split('/[,;\n] */', 
$value);
+            return is_array($value) ? $value : 
array_filter(preg_split('/[,;\n] */', $value), 'strlen');
         });
 
         return $question;
@@ -36,4 +36,20 @@
     {
         return InputOption::VALUE_IS_ARRAY | InputOption::VALUE_REQUIRED;
     }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isEmpty($value)
+    {
+        return empty($value);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function isRequired()
+    {
+        return $this->required && empty($this->default);
+    }
 }


Reply via email to