docs: def create_new_app_from_source(self, image_name, project=None,
                                     source=None, oc_new_app_args=None):
          """
          Deploy app using source-to-image in OpenShift cluster using 'oc new-app'
          :param image_name: image to be used as builder image
          :param project: project where app should be created, default: current project
          :param source: source used to extend the image, can be path or url
          :param oc_new_app_args: additional parameters for the `oc new-app`
          :return: str, name of the app
          """
          self.project = project or self.get_current_project()
  
          # app name is generated randomly
          name = 'app-{random_string}'.format(random_string=random_str(5))
  
          oc_new_app_args = oc_new_app_args or []
  
          new_image = self.import_image(image_name.split('/')[-1], image_name)
  
          c = self._oc_command(
              ["new-app"] + [new_image + "~" + source] + oc_new_app_args
              + ["-n"] + [project] + ["--name=%s" % name])
  
          logger.info("Creating new app in project %s", project)
  
          try:
              o = run_cmd(c, return_output=True)
              logger.debug(o)
          except subprocess.CalledProcessError as ex:
              raise ConuException("oc new-app failed: %s" % ex)
  
          # build from local source
          if os.path.isdir(source):
              self.start_build(name, ["-n", project, "--from-dir=%s" % source])
  
          return name