Merge pull request #406 from mugioka/imprv/convert-hyphen-included-in-repo-name-to-underbar
imprv: convert hyphen included in repo name to underbar with gatherOCIUsernamePassword.
This commit is contained in:
		
						commit
						3165551f9a
					
				| 
						 | 
					@ -1498,6 +1498,20 @@ export MYOCIREGISTRY_USERNAME=spongebob
 | 
				
			||||||
export MYOCIREGISTRY_PASSWORD=squarepants
 | 
					export MYOCIREGISTRY_PASSWORD=squarepants
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If `<registryName>` contains hyphens, the environment variable to be read is the hyphen replaced by an underscore., e.g.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```yaml
 | 
				
			||||||
 | 
					repositories:
 | 
				
			||||||
 | 
					  - name: my-oci-registry
 | 
				
			||||||
 | 
					    url: myregistry.azurecr.io
 | 
				
			||||||
 | 
					    oci: true
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```shell
 | 
				
			||||||
 | 
					export MY_OCI_REGISTRY_USERNAME=spongebob
 | 
				
			||||||
 | 
					export MY_OCI_REGISTRY_PASSWORD=squarepants
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Attribution
 | 
					## Attribution
 | 
				
			||||||
 | 
					
 | 
				
			||||||
We use:
 | 
					We use:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -455,15 +455,16 @@ func (st *HelmState) SyncRepos(helm RepoUpdater, shouldSkip map[string]bool) ([]
 | 
				
			||||||
func gatherOCIUsernamePassword(repoName string, username string, password string) (string, string) {
 | 
					func gatherOCIUsernamePassword(repoName string, username string, password string) (string, string) {
 | 
				
			||||||
	var user, pass string
 | 
						var user, pass string
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						replacedRepoName := strings.ToUpper(strings.Replace(repoName, "-", "_", -1))
 | 
				
			||||||
	if username != "" {
 | 
						if username != "" {
 | 
				
			||||||
		user = username
 | 
							user = username
 | 
				
			||||||
	} else if u := os.Getenv(fmt.Sprintf("%s_USERNAME", strings.ToUpper(repoName))); u != "" {
 | 
						} else if u := os.Getenv(fmt.Sprintf("%s_USERNAME", replacedRepoName)); u != "" {
 | 
				
			||||||
		user = u
 | 
							user = u
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if password != "" {
 | 
						if password != "" {
 | 
				
			||||||
		pass = password
 | 
							pass = password
 | 
				
			||||||
	} else if p := os.Getenv(fmt.Sprintf("%s_PASSWORD", strings.ToUpper(repoName))); p != "" {
 | 
						} else if p := os.Getenv(fmt.Sprintf("%s_PASSWORD", replacedRepoName)); p != "" {
 | 
				
			||||||
		pass = p
 | 
							pass = p
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2420,3 +2420,72 @@ func TestReverse(t *testing.T) {
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func Test_gatherOCIUsernamePassword(t *testing.T) {
 | 
				
			||||||
 | 
						type args struct {
 | 
				
			||||||
 | 
							repoName string
 | 
				
			||||||
 | 
							username string
 | 
				
			||||||
 | 
							password string
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						tests := []struct {
 | 
				
			||||||
 | 
							name             string
 | 
				
			||||||
 | 
							args             args
 | 
				
			||||||
 | 
							envUsernameKey   string
 | 
				
			||||||
 | 
							envUsernameValue string
 | 
				
			||||||
 | 
							envPasswordKey   string
 | 
				
			||||||
 | 
							envPasswordValue string
 | 
				
			||||||
 | 
							wantUsername     string
 | 
				
			||||||
 | 
							wantPassword     string
 | 
				
			||||||
 | 
						}{
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								name: "pass username/password from args",
 | 
				
			||||||
 | 
								args: args{
 | 
				
			||||||
 | 
									repoName: "myOCIRegistry",
 | 
				
			||||||
 | 
									username: "username1",
 | 
				
			||||||
 | 
									password: "password1",
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								wantUsername: "username1",
 | 
				
			||||||
 | 
								wantPassword: "password1",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								name: "repoName does not contain hyphen, read username/password from environment variables",
 | 
				
			||||||
 | 
								args: args{
 | 
				
			||||||
 | 
									repoName: "myOCIRegistry",
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								envUsernameKey:   "MYOCIREGISTRY_USERNAME",
 | 
				
			||||||
 | 
								envUsernameValue: "username2",
 | 
				
			||||||
 | 
								envPasswordKey:   "MYOCIREGISTRY_PASSWORD",
 | 
				
			||||||
 | 
								envPasswordValue: "password2",
 | 
				
			||||||
 | 
								wantUsername:     "username2",
 | 
				
			||||||
 | 
								wantPassword:     "password2",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								name: "repoName contain hyphen, read username/password from environment variables",
 | 
				
			||||||
 | 
								args: args{
 | 
				
			||||||
 | 
									repoName: "my-oci-registry",
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								envUsernameKey:   "MY_OCI_REGISTRY_USERNAME",
 | 
				
			||||||
 | 
								envUsernameValue: "username3",
 | 
				
			||||||
 | 
								envPasswordKey:   "MY_OCI_REGISTRY_PASSWORD",
 | 
				
			||||||
 | 
								envPasswordValue: "password3",
 | 
				
			||||||
 | 
								wantUsername:     "username3",
 | 
				
			||||||
 | 
								wantPassword:     "password3",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						for i := range tests {
 | 
				
			||||||
 | 
							tt := tests[i]
 | 
				
			||||||
 | 
							t.Run(tt.name, func(t *testing.T) {
 | 
				
			||||||
 | 
								if tt.envUsernameKey != "" && tt.envUsernameValue != "" {
 | 
				
			||||||
 | 
									t.Setenv(tt.envUsernameKey, tt.envUsernameValue)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								if tt.envPasswordKey != "" && tt.envPasswordValue != "" {
 | 
				
			||||||
 | 
									t.Setenv(tt.envPasswordKey, tt.envPasswordValue)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								gotUsername, gotPassword := gatherOCIUsernamePassword(tt.args.repoName, tt.args.username, tt.args.password)
 | 
				
			||||||
 | 
								if gotUsername != tt.wantUsername || gotPassword != tt.wantPassword {
 | 
				
			||||||
 | 
									t.Errorf("gatherOCIUsernamePassword() = got username/password %v/%v, want username/password %v/%v", gotUsername, gotPassword, tt.wantUsername, tt.wantPassword)
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue