Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package okteto for openSUSE:Factory checked 
in at 2022-12-17 20:36:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/okteto (Old)
 and      /work/SRC/openSUSE:Factory/.okteto.new.1835 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "okteto"

Sat Dec 17 20:36:50 2022 rev:35 rq:1043457 version:2.10.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/okteto/okteto.changes    2022-12-02 
13:13:19.049911339 +0100
+++ /work/SRC/openSUSE:Factory/.okteto.new.1835/okteto.changes  2022-12-17 
20:37:08.532801760 +0100
@@ -1,0 +2,7 @@
+Fri Dec 16 12:37:48 UTC 2022 - ka...@b1-systems.de
+
+- Update to version 2.10.2:
+  * Fix sanitize name (#3263) (#3295)
+  * Fix infer name for "okteto logs" (#3264) (#3274)
+
+-------------------------------------------------------------------

Old:
----
  okteto-2.10.1.tar.gz

New:
----
  okteto-2.10.2.tar.gz

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

Other differences:
------------------
++++++ okteto.spec ++++++
--- /var/tmp/diff_new_pack.lIIpin/_old  2022-12-17 20:37:09.184805342 +0100
+++ /var/tmp/diff_new_pack.lIIpin/_new  2022-12-17 20:37:09.188805364 +0100
@@ -19,7 +19,7 @@
 %define __arch_install_post export NO_BRP_STRIP_DEBUG=true
 
 Name:           okteto
-Version:        2.10.1
+Version:        2.10.2
 Release:        0
 Summary:        Develop your applications directly in your Kubernetes Cluster
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.lIIpin/_old  2022-12-17 20:37:09.216805518 +0100
+++ /var/tmp/diff_new_pack.lIIpin/_new  2022-12-17 20:37:09.220805540 +0100
@@ -3,10 +3,10 @@
     <param name="url">https://github.com/okteto/okteto</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">2.10.1</param>
+    <param name="revision">2.10.2</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="changesgenerate">enable</param>
-    <param name="match-tag">2.10.1</param>
+    <param name="match-tag">2.10.2</param>
   </service>
   <service name="set_version" mode="disabled">
     <param name="basename">okteto</param>
@@ -16,7 +16,7 @@
     <param name="compression">gz</param>
   </service>
   <service name="go_modules" mode="disabled">
-    <param name="archive">okteto-2.10.1.tar.gz</param>
+    <param name="archive">okteto-2.10.2.tar.gz</param>
   </service>
 </services>
 

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.lIIpin/_old  2022-12-17 20:37:09.236805628 +0100
+++ /var/tmp/diff_new_pack.lIIpin/_new  2022-12-17 20:37:09.236805628 +0100
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/okteto/okteto</param>
-              <param 
name="changesrevision">c9b1cc3a7c128d0905811a03697b396444e9ebb6</param></service></servicedata>
+              <param 
name="changesrevision">1fad522d06e5be2426145d57e2d8391f4b22da9c</param></service></servicedata>
 (No newline at EOF)
 

++++++ okteto-2.10.1.tar.gz -> okteto-2.10.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/cmd/deploy/command_configuration.go 
new/okteto-2.10.2/cmd/deploy/command_configuration.go
--- old/okteto-2.10.1/cmd/deploy/command_configuration.go       2022-12-01 
20:09:06.000000000 +0100
+++ new/okteto-2.10.2/cmd/deploy/command_configuration.go       2022-12-14 
12:39:03.000000000 +0100
@@ -57,6 +57,8 @@
                        deployOptions.Manifest.Name = deployOptions.Name
                }
                if deployOptions.Manifest.Deploy != nil && 
deployOptions.Manifest.Deploy.ComposeSection != nil && 
deployOptions.Manifest.Deploy.ComposeSection.Stack != nil {
+                       // when deploy options has name, stack name is 
overridden
+                       // this name might not be sanitized
                        deployOptions.Manifest.Deploy.ComposeSection.Stack.Name 
= deployOptions.Name
                }
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/cmd/deploy/deploy.go 
new/okteto-2.10.2/cmd/deploy/deploy.go
--- old/okteto-2.10.1/cmd/deploy/deploy.go      2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/cmd/deploy/deploy.go      2022-12-14 12:39:03.000000000 
+0100
@@ -395,6 +395,8 @@
                fmt.Sprintf("%s=true", oktetoLog.OktetoDisableSpinnerEnvVar),
                // Set OKTETO_NAMESPACE=namespace-name env variable, so all the 
commandsruns on the same namespace
                fmt.Sprintf("%s=%s", model.OktetoNamespaceEnvVar, 
okteto.Context().Namespace),
+               // Set OKTETO_AUTODISCOVERY_RELEASE_NAME=sanitized name, so the 
release name in case of autodiscovery of helm is valid
+               fmt.Sprintf("%s=%s", constants.OktetoAutodiscoveryReleaseName, 
format.ResourceK8sMetaString(deployOptions.Name)),
        )
        oktetoLog.EnableMasking()
        err = dc.deploy(ctx, deployOptions)
@@ -565,7 +567,7 @@
 
        translateOptions := &ingresses.TranslateOptions{
                Namespace: opts.Manifest.Namespace,
-               Name:      opts.Manifest.Name,
+               Name:      format.ResourceK8sMetaString(opts.Manifest.Name),
        }
 
        for name, endpoint := range opts.Manifest.Deploy.Endpoints {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/cmd/deploy/kubeconfig.go 
new/okteto-2.10.2/cmd/deploy/kubeconfig.go
--- old/okteto-2.10.1/cmd/deploy/kubeconfig.go  2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/cmd/deploy/kubeconfig.go  2022-12-14 12:39:03.000000000 
+0100
@@ -19,6 +19,7 @@
        "time"
 
        "github.com/okteto/okteto/pkg/config"
+       "github.com/okteto/okteto/pkg/format"
        oktetoLog "github.com/okteto/okteto/pkg/log"
        "github.com/okteto/okteto/pkg/okteto"
        "k8s.io/client-go/rest"
@@ -89,6 +90,6 @@
 
 // GetTempKubeConfigFile returns where the temp kubeConfigFile for deploy 
should be stored
 func GetTempKubeConfigFile(name string) string {
-       tempKubeConfigTemplate := fmt.Sprintf("kubeconfig-deploy-%s-%d", name, 
time.Now().UnixMilli())
+       tempKubeConfigTemplate := fmt.Sprintf("kubeconfig-deploy-%s-%d", 
format.ResourceK8sMetaString(name), time.Now().UnixMilli())
        return filepath.Join(config.GetOktetoHome(), tempKubeConfigTemplate)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/cmd/logs/logs.go 
new/okteto-2.10.2/cmd/logs/logs.go
--- old/okteto-2.10.1/cmd/logs/logs.go  2022-12-01 20:09:06.000000000 +0100
+++ new/okteto-2.10.2/cmd/logs/logs.go  2022-12-14 12:39:03.000000000 +0100
@@ -61,6 +61,13 @@
                        if err != nil {
                                return err
                        }
+                       wd, err := os.Getwd()
+                       if err != nil {
+                               return err
+                       }
+                       if manifest.Name == "" {
+                               manifest.Name = utils.InferName(wd)
+                       }
 
                        if len(args) > 0 {
                                options.Include = args[0]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/cmd/pipeline/deploy.go 
new/okteto-2.10.2/cmd/pipeline/deploy.go
--- old/okteto-2.10.1/cmd/pipeline/deploy.go    2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/cmd/pipeline/deploy.go    2022-12-14 12:39:03.000000000 
+0100
@@ -114,6 +114,8 @@
        }
 
        if opts.Name == "" {
+               // in case of inferring the name from the repositoryURL
+               // opts.Name is not sanitized
                opts.Name = getPipelineName(opts.Repository)
        }
 
@@ -223,6 +225,7 @@
        return resp, nil
 }
 
+// getPipelineName returns the repository name without sanitizing
 func getPipelineName(repository string) string {
        return model.TranslateURLToName(repository)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/cmd/utils/manifest.go 
new/okteto-2.10.2/cmd/utils/manifest.go
--- old/okteto-2.10.1/cmd/utils/manifest.go     2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/cmd/utils/manifest.go     2022-12-14 12:39:03.000000000 
+0100
@@ -22,12 +22,12 @@
 
 // InferName infers the application name from the folder received as parameter
 func InferName(cwd string) string {
-       repo, err := model.GetRepositoryURL(cwd)
+       repoURL, err := model.GetRepositoryURL(cwd)
        if err != nil {
                oktetoLog.Info("inferring name from folder")
                return filepath.Base(cwd)
        }
 
        oktetoLog.Info("inferring name from git repository URL")
-       return model.TranslateURLToName(repo)
+       return model.TranslateURLToName(repoURL)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/integration/commands/deploy.go 
new/okteto-2.10.2/integration/commands/deploy.go
--- old/okteto-2.10.1/integration/commands/deploy.go    2022-12-01 
20:09:06.000000000 +0100
+++ new/okteto-2.10.2/integration/commands/deploy.go    2022-12-14 
12:39:03.000000000 +0100
@@ -35,6 +35,7 @@
        Namespace        string
        OktetoHome       string
        Token            string
+       Name             string
 }
 
 // DestroyOptions defines the options that can be added to a deploy command
@@ -130,6 +131,9 @@
        if deployOptions.LogOutput != "" {
                cmd.Args = append(cmd.Args, "--log-output", 
deployOptions.LogOutput)
        }
+       if deployOptions.Name != "" {
+               cmd.Args = append(cmd.Args, "--name", deployOptions.Name)
+       }
        cmd.Env = os.Environ()
        if v := os.Getenv(model.OktetoURLEnvVar); v != "" {
                cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", 
model.OktetoURLEnvVar, v))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/integration/deploy/helm_test.go 
new/okteto-2.10.2/integration/deploy/helm_test.go
--- old/okteto-2.10.1/integration/deploy/helm_test.go   2022-12-01 
20:09:06.000000000 +0100
+++ new/okteto-2.10.2/integration/deploy/helm_test.go   2022-12-14 
12:39:03.000000000 +0100
@@ -135,6 +135,52 @@
        require.True(t, k8sErrors.IsNotFound(err))
 }
 
+// TestDeployFromHelmNameOK tests the following scenario:
+// - Deploying a pipeline manifest with custom name not sanaitized
+// - Deploying a pipeline manifest locally from a helm chart
+// - The endpoints generated are accessible
+func TestDeployFromHelmNameOK(t *testing.T) {
+       t.Parallel()
+       oktetoPath, err := integration.GetOktetoPath()
+       require.NoError(t, err)
+
+       dir := t.TempDir()
+       require.NoError(t, createHelmChart(dir))
+
+       testNamespace := 
integration.GetTestNamespace("TestDeployFromHelmNameOK", user)
+       namespaceOpts := &commands.NamespaceOptions{
+               Namespace:  testNamespace,
+               OktetoHome: dir,
+               Token:      token,
+       }
+       require.NoError(t, commands.RunOktetoCreateNamespace(oktetoPath, 
namespaceOpts))
+       defer commands.RunOktetoDeleteNamespace(oktetoPath, namespaceOpts)
+       require.NoError(t, commands.RunOktetoKubeconfig(oktetoPath, dir))
+       c, _, err := 
okteto.NewK8sClientProvider().Provide(kubeconfig.Get([]string{filepath.Join(dir,
 ".kube", "config")}))
+       require.NoError(t, err)
+
+       deployOptions := &commands.DeployOptions{
+               Workdir:    dir,
+               Namespace:  testNamespace,
+               OktetoHome: dir,
+               Token:      token,
+               Name:       "my custom name",
+       }
+       require.NoError(t, commands.RunOktetoDeploy(oktetoPath, deployOptions))
+       autowakeURL := fmt.Sprintf("https://e2etest-%s.%s";, testNamespace, 
appsSubdomain)
+       require.NotEmpty(t, integration.GetContentFromURL(autowakeURL, timeout))
+
+       destroyOptions := &commands.DestroyOptions{
+               Workdir:    dir,
+               Namespace:  testNamespace,
+               OktetoHome: dir,
+               Name:       "my custom name",
+       }
+       require.NoError(t, commands.RunOktetoDestroy(oktetoPath, 
destroyOptions))
+       _, err = integration.GetService(context.Background(), testNamespace, 
"e2etest", c)
+       require.True(t, k8sErrors.IsNotFound(err))
+}
+
 func createHelmChart(dir string) error {
        if err := os.Mkdir(filepath.Join(dir, "chart"), 0700); err != nil {
                return err
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/integration/okteto/deploy_test.go 
new/okteto-2.10.2/integration/okteto/deploy_test.go
--- old/okteto-2.10.1/integration/okteto/deploy_test.go 2022-12-01 
20:09:06.000000000 +0100
+++ new/okteto-2.10.2/integration/okteto/deploy_test.go 2022-12-14 
12:39:03.000000000 +0100
@@ -145,6 +145,41 @@
        }
 }
 
+func TestDeployWithNonSanitizedOK(t *testing.T) {
+       integration.SkipIfNotOktetoCluster(t)
+       t.Parallel()
+       oktetoPath, err := integration.GetOktetoPath()
+       require.NoError(t, err)
+
+       dir := t.TempDir()
+       require.NoError(t, createComposeScenario(dir))
+
+       testNamespace := 
integration.GetTestNamespace("TestDeployWithNonSanitizedOK", user)
+       namespaceOpts := &commands.NamespaceOptions{
+               Namespace:  testNamespace,
+               OktetoHome: dir,
+               Token:      token,
+       }
+       require.NoError(t, commands.RunOktetoCreateNamespace(oktetoPath, 
namespaceOpts))
+       require.NoError(t, commands.RunOktetoKubeconfig(oktetoPath, dir))
+       defer commands.RunOktetoDeleteNamespace(oktetoPath, namespaceOpts)
+
+       deployOptions := &commands.DeployOptions{
+               Workdir:    dir,
+               Namespace:  testNamespace,
+               OktetoHome: dir,
+               Token:      token,
+               Name:       "test/my deployment",
+       }
+       require.NoError(t, commands.RunOktetoDeploy(oktetoPath, deployOptions))
+
+       c, _, err := 
okteto.NewK8sClientProvider().Provide(kubeconfig.Get([]string{filepath.Join(dir,
 ".kube", "config")}))
+       require.NoError(t, err)
+       _, err = integration.GetConfigmap(context.Background(), testNamespace, 
fmt.Sprintf("okteto-git-%s", "test-my-deployment"), c)
+       require.NoError(t, err)
+
+}
+
 func TestCmdFailOutput(t *testing.T) {
        integration.SkipIfNotOktetoCluster(t)
        t.Parallel()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/cmd/stack/deploy.go 
new/okteto-2.10.2/pkg/cmd/stack/deploy.go
--- old/okteto-2.10.1/pkg/cmd/stack/deploy.go   2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/pkg/cmd/stack/deploy.go   2022-12-14 12:39:03.000000000 
+0100
@@ -187,14 +187,14 @@
 
                        // add specific stack labels
                        if _, ok := endpoint.Labels[model.StackNameLabel]; !ok {
-                               endpoint.Labels[model.StackNameLabel] = s.Name
+                               endpoint.Labels[model.StackNameLabel] = 
format.ResourceK8sMetaString(s.Name)
                        }
                        if _, ok := 
endpoint.Labels[model.StackEndpointNameLabel]; !ok {
                                endpoint.Labels[model.StackEndpointNameLabel] = 
endpointName
                        }
 
                        translateOptions := &ingresses.TranslateOptions{
-                               Name:      s.Name,
+                               Name:      format.ResourceK8sMetaString(s.Name),
                                Namespace: s.Namespace,
                        }
                        ingress := ingresses.Translate(endpointName, endpoint, 
translateOptions)
@@ -381,14 +381,14 @@
        }
        // add specific stack labels
        if _, ok := endpoint.Labels[model.StackNameLabel]; !ok {
-               endpoint.Labels[model.StackNameLabel] = s.Name
+               endpoint.Labels[model.StackNameLabel] = 
format.ResourceK8sMetaString(s.Name)
        }
        if _, ok := endpoint.Labels[model.StackEndpointNameLabel]; !ok {
                endpoint.Labels[model.StackEndpointNameLabel] = ingressName
        }
 
        translateOptions := &ingresses.TranslateOptions{
-               Name:      s.Name,
+               Name:      format.ResourceK8sMetaString(s.Name),
                Namespace: s.Namespace,
        }
        ingress := ingresses.Translate(ingressName, endpoint, translateOptions)
@@ -431,7 +431,7 @@
 func getErrorDueToRestartLimit(ctx context.Context, stack *model.Stack, 
svcName string, client kubernetes.Interface) error {
        svc := stack.Services[svcName]
        for dependingSvc := range svc.DependsOn {
-               svcLabels := map[string]string{model.StackNameLabel: 
stack.Name, model.StackServiceNameLabel: dependingSvc}
+               svcLabels := map[string]string{model.StackNameLabel: 
format.ResourceK8sMetaString(stack.Name), model.StackServiceNameLabel: 
dependingSvc}
                p, err := pods.GetBySelector(ctx, stack.Namespace, svcLabels, 
client)
                if err != nil {
                        oktetoLog.Infof("could not get pod of svc '%s': %s", 
dependingSvc, err)
@@ -487,7 +487,7 @@
 }
 
 func getPodName(ctx context.Context, stack *model.Stack, svcName string, 
client kubernetes.Interface) string {
-       svcLabels := map[string]string{model.StackNameLabel: stack.Name, 
model.StackServiceNameLabel: svcName}
+       svcLabels := map[string]string{model.StackNameLabel: 
format.ResourceK8sMetaString(stack.Name), model.StackServiceNameLabel: svcName}
 
        p, err := pods.GetBySelector(ctx, stack.Namespace, svcLabels, client)
        if err != nil {
@@ -606,7 +606,7 @@
                // when the stack is under an .okteto folder, this was the name 
for the dev environment
                // for those users which will have a dev environment deployed 
with old version
                // when re-deploying we switch the name for the environment and 
we have to move the resources to the new name
-               if old.Labels[model.StackNameLabel] != s.Name && 
old.Labels[model.StackNameLabel] != "okteto" {
+               if old.Labels[model.StackNameLabel] != 
format.ResourceK8sMetaString(s.Name) && old.Labels[model.StackNameLabel] != 
"okteto" {
                        return false, fmt.Errorf("skipping deploy of deployment 
'%s' due to name collision with deployment in compose '%s'", svcName, 
old.Labels[model.StackNameLabel])
                }
                if v, ok := old.Labels[model.DeployedByLabel]; ok {
@@ -653,7 +653,7 @@
        if old.Labels[model.StackNameLabel] == "" {
                return false, fmt.Errorf("skipping deploy of statefulset '%s' 
due to name collision with pre-existing statefulset", svcName)
        }
-       if old.Labels[model.StackNameLabel] != s.Name && 
old.Labels[model.StackNameLabel] != "okteto" {
+       if old.Labels[model.StackNameLabel] != 
format.ResourceK8sMetaString(s.Name) && old.Labels[model.StackNameLabel] != 
"okteto" {
                return false, fmt.Errorf("skipping deploy of statefulset '%s' 
due to name collision with statefulset in compose '%s'", svcName, 
old.Labels[model.StackNameLabel])
        }
        if v, ok := old.Labels[model.DeployedByLabel]; ok {
@@ -688,7 +688,7 @@
                if old.Labels[model.StackNameLabel] == "" {
                        return false, fmt.Errorf("skipping deploy of job '%s' 
due to name collision with pre-existing job", svcName)
                }
-               if old.Labels[model.StackNameLabel] != s.Name && 
old.Labels[model.StackNameLabel] != "okteto" {
+               if old.Labels[model.StackNameLabel] != 
format.ResourceK8sMetaString(s.Name) && old.Labels[model.StackNameLabel] != 
"okteto" {
                        return false, fmt.Errorf("skipping deploy of job '%s' 
due to name collision with job in stack '%s'", svcName, 
old.Labels[model.StackNameLabel])
                }
        }
@@ -722,7 +722,7 @@
                        oktetoLog.Warning("skipping creation of volume '%s' due 
to name collision with pre-existing volume", pvc.Name)
                        return nil
                }
-               if old.Labels[model.StackNameLabel] != s.Name && 
old.Labels[model.StackNameLabel] != "okteto" {
+               if old.Labels[model.StackNameLabel] != 
format.ResourceK8sMetaString(s.Name) && old.Labels[model.StackNameLabel] != 
"okteto" {
                        oktetoLog.Warning("skipping creation of volume '%s' due 
to name collision with volume in stack '%s'", pvc.Name, 
old.Labels[model.StackNameLabel])
                        return nil
                }
@@ -758,7 +758,7 @@
        ticker := time.NewTicker(100 * time.Millisecond)
        timeout := time.Now().Add(600 * time.Second)
 
-       selector := map[string]string{model.StackNameLabel: s.Name}
+       selector := map[string]string{model.StackNameLabel: 
format.ResourceK8sMetaString(s.Name)}
        for time.Now().Before(timeout) {
                <-ticker.C
                pendingPods := numPods
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/cmd/stack/deploy_test.go 
new/okteto-2.10.2/pkg/cmd/stack/deploy_test.go
--- old/okteto-2.10.1/pkg/cmd/stack/deploy_test.go      2022-12-01 
20:09:06.000000000 +0100
+++ new/okteto-2.10.2/pkg/cmd/stack/deploy_test.go      2022-12-14 
12:39:03.000000000 +0100
@@ -233,7 +233,7 @@
                                if err != nil {
                                        t.Fatal(err)
                                }
-                               if d.Labels[model.StackNameLabel] != 
tt.stack.Name {
+                               if d.Labels[model.StackNameLabel] != 
format.ResourceK8sMetaString(tt.stack.Name) {
                                        t.Fatal()
                                }
                                if d.Labels[model.DeployedByLabel] != 
format.ResourceK8sMetaString(tt.stack.Name) {
@@ -245,7 +245,7 @@
                                if err != nil {
                                        t.Fatal(err)
                                }
-                               if sfs.Labels[model.StackNameLabel] != 
tt.stack.Name {
+                               if sfs.Labels[model.StackNameLabel] != 
format.ResourceK8sMetaString(tt.stack.Name) {
                                        t.Fatal()
                                }
                                if sfs.Labels[model.DeployedByLabel] != 
format.ResourceK8sMetaString(tt.stack.Name) {
@@ -258,7 +258,7 @@
                                if err != nil {
                                        t.Fatal(err)
                                }
-                               if job.Labels[model.StackNameLabel] != 
tt.stack.Name {
+                               if job.Labels[model.StackNameLabel] != 
format.ResourceK8sMetaString(tt.stack.Name) {
                                        t.Fatal()
                                }
                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/cmd/stack/destroy.go 
new/okteto-2.10.2/pkg/cmd/stack/destroy.go
--- old/okteto-2.10.1/pkg/cmd/stack/destroy.go  2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/pkg/cmd/stack/destroy.go  2022-12-14 12:39:03.000000000 
+0100
@@ -22,6 +22,7 @@
        "time"
 
        oktetoErrors "github.com/okteto/okteto/pkg/errors"
+       "github.com/okteto/okteto/pkg/format"
        "github.com/okteto/okteto/pkg/k8s/configmaps"
        "github.com/okteto/okteto/pkg/k8s/deployments"
        "github.com/okteto/okteto/pkg/k8s/ingresses"
@@ -251,7 +252,7 @@
        ticker := time.NewTicker(100 * time.Millisecond)
        timeout := time.Now().Add(300 * time.Second)
 
-       selector := map[string]string{model.StackNameLabel: s.Name}
+       selector := map[string]string{model.StackNameLabel: 
format.ResourceK8sMetaString(s.Name)}
        for time.Now().Before(timeout) {
                <-ticker.C
                podList, err := pods.ListBySelector(ctx, s.Namespace, selector, 
c)
@@ -271,7 +272,7 @@
                return err
        }
        for _, v := range vList {
-               if v.Labels[model.StackNameLabel] == s.Name {
+               if v.Labels[model.StackNameLabel] == 
format.ResourceK8sMetaString(s.Name) {
                        if err := volumes.Destroy(ctx, v.Name, v.Namespace, c, 
timeout); err != nil {
                                return fmt.Errorf("error destroying volume 
'%s': %s", v.Name, err)
                        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/cmd/stack/endpoints.go 
new/okteto-2.10.2/pkg/cmd/stack/endpoints.go
--- old/okteto-2.10.1/pkg/cmd/stack/endpoints.go        2022-12-01 
20:09:06.000000000 +0100
+++ new/okteto-2.10.2/pkg/cmd/stack/endpoints.go        2022-12-14 
12:39:03.000000000 +0100
@@ -35,7 +35,7 @@
                return err
        }
 
-       endpointList, err := iClient.GetEndpointsBySelector(ctx, 
stack.Namespace, fmt.Sprintf("%s=%s", model.StackNameLabel, stack.Name))
+       endpointList, err := iClient.GetEndpointsBySelector(ctx, 
stack.Namespace, stack.GetLabelSelector())
        if err != nil {
                return err
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/cmd/stack/translate.go 
new/okteto-2.10.2/pkg/cmd/stack/translate.go
--- old/okteto-2.10.1/pkg/cmd/stack/translate.go        2022-12-01 
20:09:06.000000000 +0100
+++ new/okteto-2.10.2/pkg/cmd/stack/translate.go        2022-12-14 
12:39:03.000000000 +0100
@@ -24,6 +24,7 @@
 
        buildv2 "github.com/okteto/okteto/cmd/build/v2"
        "github.com/okteto/okteto/cmd/utils"
+       "github.com/okteto/okteto/pkg/format"
        "github.com/okteto/okteto/pkg/model"
        "github.com/okteto/okteto/pkg/types"
        appsv1 "k8s.io/api/apps/v1"
@@ -447,7 +448,7 @@
 func translateVolumeLabels(volumeName string, s *model.Stack) 
map[string]string {
        volume := s.Volumes[volumeName]
        labels := map[string]string{
-               model.StackNameLabel:       s.Name,
+               model.StackNameLabel:       
format.ResourceK8sMetaString(s.Name),
                model.StackVolumeNameLabel: volumeName,
        }
        for k := range volume.Labels {
@@ -489,7 +490,7 @@
 func translateLabels(svcName string, s *model.Stack) map[string]string {
        svc := s.Services[svcName]
        labels := map[string]string{
-               model.StackNameLabel:        s.Name,
+               model.StackNameLabel:        
format.ResourceK8sMetaString(s.Name),
                model.StackServiceNameLabel: svcName,
        }
        for k := range svc.Labels {
@@ -506,7 +507,7 @@
 
 func translateLabelSelector(svcName string, s *model.Stack) map[string]string {
        labels := map[string]string{
-               model.StackNameLabel:        s.Name,
+               model.StackNameLabel:        
format.ResourceK8sMetaString(s.Name),
                model.StackServiceNameLabel: svcName,
        }
        return labels
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/cmd/stack/translate_test.go 
new/okteto-2.10.2/pkg/cmd/stack/translate_test.go
--- old/okteto-2.10.1/pkg/cmd/stack/translate_test.go   2022-12-01 
20:09:06.000000000 +0100
+++ new/okteto-2.10.2/pkg/cmd/stack/translate_test.go   2022-12-14 
12:39:03.000000000 +0100
@@ -33,7 +33,7 @@
 func Test_translateConfigMap(t *testing.T) {
        s := &model.Stack{
                Manifest: []byte("manifest"),
-               Name:     "stackName",
+               Name:     "stack Name",
                Services: map[string]*model.Service{
                        "svcName": {
                                Image: "image",
@@ -41,13 +41,13 @@
                },
        }
        result := translateConfigMap(s)
-       if result.Name != "okteto-stackName" {
+       if result.Name != "okteto-stack-name" {
                t.Errorf("Wrong configmap name: '%s'", result.Name)
        }
        if result.Labels[model.StackLabel] != "true" {
                t.Errorf("Wrong labels: '%s'", result.Labels)
        }
-       if result.Data[NameField] != "stackName" {
+       if result.Data[NameField] != "stack Name" {
                t.Errorf("Wrong data.name: '%s'", result.Data[NameField])
        }
        if result.Data[YamlField] != 
base64.StdEncoding.EncodeToString(s.Manifest) {
@@ -94,7 +94,7 @@
        labels := map[string]string{
                "label1":                    "value1",
                "label2":                    "value2",
-               model.StackNameLabel:        "stackName",
+               model.StackNameLabel:        "stackname",
                model.StackServiceNameLabel: "svcName",
        }
        if !reflect.DeepEqual(result.Labels, labels) {
@@ -111,7 +111,7 @@
                t.Errorf("Wrong deployment spec.replicas: '%d'", 
*result.Spec.Replicas)
        }
        selector := map[string]string{
-               model.StackNameLabel:        "stackName",
+               model.StackNameLabel:        "stackname",
                model.StackServiceNameLabel: "svcName",
        }
        if !reflect.DeepEqual(result.Spec.Selector.MatchLabels, selector) {
@@ -211,7 +211,7 @@
        labels := map[string]string{
                "label1":                    "value1",
                "label2":                    "value2",
-               model.StackNameLabel:        "stackName",
+               model.StackNameLabel:        "stackname",
                model.StackServiceNameLabel: "svcName",
        }
        assert.Equal(t, labels, result.Labels)
@@ -227,7 +227,7 @@
                t.Errorf("Wrong statefulset spec.replicas: '%d'", 
*result.Spec.Replicas)
        }
        selector := map[string]string{
-               model.StackNameLabel:        "stackName",
+               model.StackNameLabel:        "stackname",
                model.StackServiceNameLabel: "svcName",
        }
        if !reflect.DeepEqual(result.Spec.Selector.MatchLabels, selector) {
@@ -405,7 +405,7 @@
        labels := map[string]string{
                "label1":                    "value1",
                "label2":                    "value2",
-               model.StackNameLabel:        "stackName",
+               model.StackNameLabel:        "stackname",
                model.StackServiceNameLabel: "svcName",
        }
        if !reflect.DeepEqual(result.Labels, labels) {
@@ -539,7 +539,7 @@
        labels := map[string]string{
                "label1":                    "value1",
                "label2":                    "value2",
-               model.StackNameLabel:        "stackName",
+               model.StackNameLabel:        "stackname",
                model.StackServiceNameLabel: "svcName",
        }
        if !reflect.DeepEqual(result.Labels, labels) {
@@ -702,7 +702,7 @@
                                        Labels: map[string]string{
                                                "label1":                    
"value1",
                                                "label2":                    
"value2",
-                                               model.StackNameLabel:        
"stackName",
+                                               model.StackNameLabel:        
"stackname",
                                                model.StackServiceNameLabel: 
"svcName",
                                        },
                                        Annotations: map[string]string{
@@ -713,7 +713,7 @@
                                Spec: apiv1.ServiceSpec{
                                        Type: apiv1.ServiceTypeClusterIP,
                                        Selector: map[string]string{
-                                               model.StackNameLabel:        
"stackName",
+                                               model.StackNameLabel:        
"stackname",
                                                model.StackServiceNameLabel: 
"svcName",
                                        },
                                        Ports: []apiv1.ServicePort{
@@ -776,7 +776,7 @@
                                        Labels: map[string]string{
                                                "label1":                    
"value1",
                                                "label2":                    
"value2",
-                                               model.StackNameLabel:        
"stackName",
+                                               model.StackNameLabel:        
"stackname",
                                                model.StackServiceNameLabel: 
"svcName",
                                        },
                                        Annotations: map[string]string{
@@ -788,7 +788,7 @@
                                Spec: apiv1.ServiceSpec{
                                        Type: apiv1.ServiceTypeClusterIP,
                                        Selector: map[string]string{
-                                               model.StackNameLabel:        
"stackName",
+                                               model.StackNameLabel:        
"stackname",
                                                model.StackServiceNameLabel: 
"svcName",
                                        },
                                        Ports: []apiv1.ServicePort{
@@ -849,7 +849,7 @@
                                        Labels: map[string]string{
                                                "label1":                    
"value1",
                                                "label2":                    
"value2",
-                                               model.StackNameLabel:        
"stackName",
+                                               model.StackNameLabel:        
"stackname",
                                                model.StackServiceNameLabel: 
"svcName",
                                        },
                                        Annotations: map[string]string{
@@ -861,7 +861,7 @@
                                Spec: apiv1.ServiceSpec{
                                        Type: apiv1.ServiceTypeClusterIP,
                                        Selector: map[string]string{
-                                               model.StackNameLabel:        
"stackName",
+                                               model.StackNameLabel:        
"stackname",
                                                model.StackServiceNameLabel: 
"svcName",
                                        },
                                        Ports: []apiv1.ServicePort{
@@ -922,7 +922,7 @@
                                        Labels: map[string]string{
                                                "label1":                    
"value1",
                                                "label2":                    
"value2",
-                                               model.StackNameLabel:        
"stackName",
+                                               model.StackNameLabel:        
"stackname",
                                                model.StackServiceNameLabel: 
"svcName",
                                        },
                                        Annotations: map[string]string{
@@ -934,7 +934,7 @@
                                Spec: apiv1.ServiceSpec{
                                        Type: apiv1.ServiceTypeClusterIP,
                                        Selector: map[string]string{
-                                               model.StackNameLabel:        
"stackName",
+                                               model.StackNameLabel:        
"stackname",
                                                model.StackServiceNameLabel: 
"svcName",
                                        },
                                        Ports: []apiv1.ServicePort{
@@ -990,7 +990,7 @@
                                        Labels: map[string]string{
                                                "label1":                    
"value1",
                                                "label2":                    
"value2",
-                                               model.StackNameLabel:        
"stackName",
+                                               model.StackNameLabel:        
"stackname",
                                                model.StackServiceNameLabel: 
"svcName",
                                        },
                                        Annotations: map[string]string{
@@ -1001,7 +1001,7 @@
                                Spec: apiv1.ServiceSpec{
                                        Type: apiv1.ServiceTypeClusterIP,
                                        Selector: map[string]string{
-                                               model.StackNameLabel:        
"stackName",
+                                               model.StackNameLabel:        
"stackname",
                                                model.StackServiceNameLabel: 
"svcName",
                                        },
                                        Ports: []apiv1.ServicePort{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/constants/constants.go 
new/okteto-2.10.2/pkg/constants/constants.go
--- old/okteto-2.10.1/pkg/constants/constants.go        2022-12-01 
20:09:06.000000000 +0100
+++ new/okteto-2.10.2/pkg/constants/constants.go        2022-12-14 
12:39:03.000000000 +0100
@@ -40,4 +40,7 @@
 
        // OktetoFolderEnvVar defines the path of okteto folder
        OktetoFolderEnvVar = "OKTETO_FOLDER"
+
+       // OktetoAutodiscoveryReleaseName defines the name used for helm 
release when autodiscovery
+       OktetoAutodiscoveryReleaseName = "OKTETO_AUTODISCOVERY_RELEASE_NAME"
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/k8s/ingresses/translate_test.go 
new/okteto-2.10.2/pkg/k8s/ingresses/translate_test.go
--- old/okteto-2.10.1/pkg/k8s/ingresses/translate_test.go       2022-12-01 
20:09:06.000000000 +0100
+++ new/okteto-2.10.2/pkg/k8s/ingresses/translate_test.go       2022-12-14 
12:39:03.000000000 +0100
@@ -29,7 +29,7 @@
                                "endpoint1": {
                                        Labels: model.Labels{
                                                "label1":                     
"value1",
-                                               model.StackNameLabel:         
"stackName",
+                                               model.StackNameLabel:         
"stackname",
                                                model.StackEndpointNameLabel: 
"endpoint1",
                                        },
                                        Annotations: 
model.Annotations{"annotation1": "value1"},
@@ -53,7 +53,7 @@
                        },
                        expectedIngressLabels: map[string]string{
                                model.DeployedByLabel:        "stackname",
-                               model.StackNameLabel:         "stackName",
+                               model.StackNameLabel:         "stackname",
                                model.StackEndpointNameLabel: "endpoint1",
                                "label1":                     "value1",
                        },
@@ -156,7 +156,7 @@
                                "endpoint1": {
                                        Labels: model.Labels{
                                                "label1":                     
"value1",
-                                               model.StackNameLabel:         
"stackName",
+                                               model.StackNameLabel:         
"stackname",
                                                model.StackEndpointNameLabel: 
"endpoint1",
                                        },
                                        Annotations: 
model.Annotations{"annotation1": "value1"},
@@ -180,7 +180,7 @@
                        },
                        expectedIngressLabels: map[string]string{
                                model.DeployedByLabel:        "stackname",
-                               model.StackNameLabel:         "stackName",
+                               model.StackNameLabel:         "stackname",
                                model.StackEndpointNameLabel: "endpoint1",
                                "label1":                     "value1",
                        },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/k8s/pods/pod.go 
new/okteto-2.10.2/pkg/k8s/pods/pod.go
--- old/okteto-2.10.1/pkg/k8s/pods/pod.go       2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/pkg/k8s/pods/pod.go       2022-12-14 12:39:03.000000000 
+0100
@@ -24,6 +24,7 @@
        "time"
 
        oktetoErrors "github.com/okteto/okteto/pkg/errors"
+       "github.com/okteto/okteto/pkg/format"
        "github.com/okteto/okteto/pkg/k8s/events"
        "github.com/okteto/okteto/pkg/k8s/exec"
        oktetoLog "github.com/okteto/okteto/pkg/log"
@@ -408,7 +409,7 @@
 }
 
 func GetHealthcheckFailure(ctx context.Context, namespace, svcName, stackName 
string, c kubernetes.Interface) string {
-       selector := fmt.Sprintf("%s=%s,%s=%s", model.StackNameLabel, stackName, 
model.StackServiceNameLabel, svcName)
+       selector := fmt.Sprintf("%s=%s,%s=%s", model.StackNameLabel, 
format.ResourceK8sMetaString(stackName), model.StackServiceNameLabel, svcName)
        pods, err := c.CoreV1().Pods(namespace).List(
                ctx,
                metav1.ListOptions{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/model/manifest.go 
new/okteto-2.10.2/pkg/model/manifest.go
--- old/okteto-2.10.1/pkg/model/manifest.go     2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/pkg/model/manifest.go     2022-12-14 12:39:03.000000000 
+0100
@@ -486,7 +486,7 @@
                }
                oktetoLog.AddToBuffer(oktetoLog.InfoLevel, "Found helm chart on 
%s", chartPath)
                tags := inferHelmTags(chartPath)
-               command := fmt.Sprintf("helm upgrade --install ${%s} %s %s", 
constants.OktetoNameEnvVar, chartPath, tags)
+               command := fmt.Sprintf("helm upgrade --install ${%s} %s %s", 
constants.OktetoAutodiscoveryReleaseName, chartPath, tags)
                chartManifest := &Manifest{
                        Type: ChartType,
                        Deploy: &DeployInfo{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/model/stack.go 
new/okteto-2.10.2/pkg/model/stack.go
--- old/okteto-2.10.1/pkg/model/stack.go        2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/pkg/model/stack.go        2022-12-14 12:39:03.000000000 
+0100
@@ -28,6 +28,7 @@
        "github.com/okteto/okteto/pkg/discovery"
        oktetoErrors "github.com/okteto/okteto/pkg/errors"
        "github.com/okteto/okteto/pkg/filesystem"
+       "github.com/okteto/okteto/pkg/format"
        oktetoLog "github.com/okteto/okteto/pkg/log"
        "github.com/okteto/okteto/pkg/model/forward"
        yaml "gopkg.in/yaml.v2"
@@ -275,6 +276,7 @@
        if actualStackName == "" {
                nameEnvVar := os.Getenv(constants.OktetoNameEnvVar)
                if nameEnvVar != "" {
+                       // this name could be not sanitized when running at 
pipeline installer
                        return nameEnvVar, nil
                }
                name, err := GetValidNameFromGitRepo(filepath.Dir(stackPath))
@@ -407,7 +409,8 @@
 }
 
 func (s *Stack) Validate() error {
-       if err := validateStackName(s.Name); err != nil {
+       // in case name is coming from option "name" at deploy this could not 
be sanitized
+       if err := validateStackName(format.ResourceK8sMetaString(s.Name)); err 
!= nil {
                return fmt.Errorf("Invalid compose name: %s", err)
        }
        if len(s.Services) == 0 {
@@ -453,6 +456,8 @@
        return validateDependsOn(s)
 }
 
+// validateStackName checks if the name is compliant
+// name param is sanitized
 func validateStackName(name string) error {
        if name == "" {
                return fmt.Errorf("name cannot be empty")
@@ -491,12 +496,14 @@
 
 // GetLabelSelector returns the label selector for the stack name
 func (s *Stack) GetLabelSelector() string {
-       return fmt.Sprintf("%s=%s", StackNameLabel, s.Name)
+       // we need to sanitize the stack name in case this is overridden by the 
deploy options name
+       return fmt.Sprintf("%s=%s", StackNameLabel, 
format.ResourceK8sMetaString(s.Name))
 }
 
 // GetStackConfigMapName returns the label selector for the stack name
 func GetStackConfigMapName(stackName string) string {
-       return fmt.Sprintf("okteto-%s", stackName)
+       // we need to sanitize the stack name in case this is overridden by the 
deploy options name
+       return fmt.Sprintf("okteto-%s", format.ResourceK8sMetaString(stackName))
 }
 
 func IsPortInService(port int32, ports []Port) bool {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/model/utils.go 
new/okteto-2.10.2/pkg/model/utils.go
--- old/okteto-2.10.1/pkg/model/utils.go        2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/pkg/model/utils.go        2022-12-14 12:39:03.000000000 
+0100
@@ -25,7 +25,8 @@
 
 type graph map[string][]string
 
-// GetValidNameFromFolder returns a valid kubernetes name for a folder
+// GetValidNameFromFolder returns name for a folder
+// this name is not sanitized
 func GetValidNameFromFolder(folder string) (string, error) {
        dir, err := filepath.Abs(folder)
        if err != nil {
@@ -36,15 +37,11 @@
        }
 
        name := filepath.Base(dir)
-       name = strings.ToLower(name)
-       name = ValidKubeNameRegex.ReplaceAllString(name, "-")
-       name = strings.TrimPrefix(name, "-")
-       name = strings.TrimSuffix(name, "-")
        oktetoLog.Infof("autogenerated name: %s", name)
        return name, nil
 }
 
-// GetValidNameFromGitRepo returns a valid kubernetes name for a folder
+// GetValidNameFromGitRepo returns a name from a repository url
 func GetValidNameFromGitRepo(folder string) (string, error) {
        repo, err := GetRepositoryURL(folder)
        if err != nil {
@@ -54,22 +51,26 @@
        return name, nil
 }
 
-func TranslateURLToName(repo string) string {
-       repoName := findRepoName(repo)
+// TranslateURLToName returns the repo name from the repository url
+// removes .git in case it has this as suffix
+// repoName is not sanitized
+func TranslateURLToName(repoURL string) string {
+       repoName := findRepoName(repoURL)
 
        if strings.HasSuffix(repoName, ".git") {
                repoName = repoName[:strings.LastIndex(repoName, ".git")]
        }
-       name := ValidKubeNameRegex.ReplaceAllString(repoName, "-")
-       return name
+       return repoName
 }
-func findRepoName(repo string) string {
-       possibleName := strings.ToLower(repo[strings.LastIndex(repo, "/")+1:])
+
+// findRepoName returns string after last "/" from repoURL
+func findRepoName(repoURL string) string {
+       possibleName := repoURL[strings.LastIndex(repoURL, "/")+1:]
        if possibleName == "" {
-               possibleName = repo
-               nthTrim := strings.Count(repo, "/")
+               possibleName = repoURL
+               nthTrim := strings.Count(repoURL, "/")
                for i := 0; i < nthTrim-1; i++ {
-                       possibleName = 
strings.ToLower(possibleName[strings.Index(possibleName, "/")+1:])
+                       possibleName = possibleName[strings.Index(possibleName, 
"/")+1:]
                }
                possibleName = possibleName[:len(possibleName)-1]
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/okteto-2.10.1/pkg/model/utils_test.go 
new/okteto-2.10.2/pkg/model/utils_test.go
--- old/okteto-2.10.1/pkg/model/utils_test.go   2022-12-01 20:09:06.000000000 
+0100
+++ new/okteto-2.10.2/pkg/model/utils_test.go   2022-12-14 12:39:03.000000000 
+0100
@@ -26,10 +26,10 @@
                expected string
        }{
                {name: "all lower case", folder: "lowercase", expected: 
"lowercase"},
-               {name: "with some lower case", folder: "lowerCase", expected: 
"lowercase"},
-               {name: "upper case", folder: "UpperCase", expected: 
"uppercase"},
-               {name: "valid symbols", folder: "getting-started.test", 
expected: "getting-started-test"},
-               {name: "invalid symbols", folder: "getting_$#started", 
expected: "getting-started"},
+               {name: "with some lower case", folder: "lowerCase", expected: 
"lowerCase"},
+               {name: "upper case", folder: "UpperCase", expected: 
"UpperCase"},
+               {name: "valid symbols", folder: "getting-started.test", 
expected: "getting-started.test"},
+               {name: "invalid symbols", folder: "getting_$#started", 
expected: "getting_$#started"},
                {name: "current folder", folder: ".", expected: "model"},
                {name: "parent folder", folder: "..", expected: "pkg"},
                {name: "okteto folder", folder: ".okteto", expected: "model"},
@@ -58,8 +58,8 @@
                {name: "https with slash at the end", gitRepo: 
"https://github.com/okteto/stacks-getting-started/";, expected: 
"stacks-getting-started"},
                {name: "ssh url", gitRepo: 
"g...@github.com:okteto/stacks-getting-started.git", expected: 
"stacks-getting-started"},
                {name: "ssh url with slash at the end", gitRepo: 
"g...@github.com:okteto/stacks-getting-started.git/", expected: 
"stacks-getting-started"},
-               {name: "https with dots", gitRepo: 
"https://github.com/okteto/stacks.getting.started";, expected: 
"stacks-getting-started"},
-               {name: "URL with uppers", gitRepo: 
"https://github.com/okteto/StacksGettingStarted";, expected: 
"stacksgettingstarted"},
+               {name: "https with dots", gitRepo: 
"https://github.com/okteto/stacks.getting.started";, expected: 
"stacks.getting.started"},
+               {name: "URL with uppers", gitRepo: 
"https://github.com/okteto/StacksGettingStarted";, expected: 
"StacksGettingStarted"},
        }
 
        for _, tt := range tests {

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/okteto/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.okteto.new.1835/vendor.tar.gz differ: char 5, line 1

Reply via email to