Quellcode durchsuchen

gcr should check if server url is subset of registry url

Alexander Belanger vor 5 Jahren
Ursprung
Commit
2b1acb80d3

+ 8 - 1
cli/cmd/docker.go

@@ -7,6 +7,7 @@ import (
 	"net/url"
 	"os"
 	"path/filepath"
+	"strings"
 
 	"github.com/porter-dev/porter/cli/cmd/api"
 	"github.com/porter-dev/porter/cli/cmd/github"
@@ -56,8 +57,14 @@ func dockerConfig(user *api.AuthCheckResponse, client *api.Client, args []string
 
 	for _, registry := range registries {
 		if registry.URL != "" {
+			rURL := registry.URL
+
+			if !strings.Contains(rURL, "http") {
+				rURL = "http://" + rURL
+			}
+
 			// strip the protocol
-			regURL, err := url.Parse(registry.URL)
+			regURL, err := url.Parse(rURL)
 
 			if err != nil {
 				continue

+ 4 - 0
cmd/docker-credential-porter/helper/helper.go

@@ -44,6 +44,8 @@ var ecrPattern = regexp.MustCompile(`(^[a-zA-Z0-9][a-zA-Z0-9-_]*)\.dkr\.ecr(\-fi
 // Get retrieves credentials from the store.
 // It returns username and secret as strings.
 func (p *PorterHelper) Get(serverURL string) (user string, secret string, err error) {
+	p.init()
+
 	if strings.Contains(serverURL, "gcr.io") {
 		return p.getGCR(serverURL)
 	}
@@ -154,6 +156,8 @@ func (p *PorterHelper) getECR(serverURL string) (user string, secret string, err
 
 // List returns the stored serverURLs and their associated usernames.
 func (p *PorterHelper) List() (map[string]string, error) {
+	p.init()
+
 	credCache := BuildCredentialsCache("")
 	entries := credCache.List()
 

+ 2 - 1
server/api/registry_handler.go

@@ -4,6 +4,7 @@ import (
 	"encoding/json"
 	"net/http"
 	"strconv"
+	"strings"
 	"time"
 
 	"github.com/porter-dev/porter/internal/registry"
@@ -198,7 +199,7 @@ func (app *App) HandleGetProjectRegistryGCRToken(w http.ResponseWriter, r *http.
 	var expiresAt *time.Time
 
 	for _, reg := range regs {
-		if reg.GCPIntegrationID != 0 && reg.URL == reqBody.ServerURL {
+		if reg.GCPIntegrationID != 0 && strings.Contains(reg.URL, reqBody.ServerURL) {
 			_reg := registry.Registry(*reg)
 
 			tokenCache, err := _reg.GetGCRToken(*app.Repo)