diff --git a/pkg/api/types.go b/pkg/api/types.go index a9132931..b03956ff 100644 --- a/pkg/api/types.go +++ b/pkg/api/types.go @@ -232,6 +232,7 @@ type Project struct { Name string `json:"name,omitempty"` GitURL string `json:"gitUrl,omitempty"` PrivateKey string `json:"privateKey,omitempty"` + PublicKey string `json:"publicKey,omitempty"` Subfolder string `json:"subfolder,omitempty"` RouterPattern string `json:"routerPattern,omitempty"` Branches string `json:"branches,omitempty"` diff --git a/pkg/lagoon/projects/main.go b/pkg/lagoon/projects/main.go index 0ad9ad62..8b4db6c6 100644 --- a/pkg/lagoon/projects/main.go +++ b/pkg/lagoon/projects/main.go @@ -9,7 +9,6 @@ import ( "github.com/uselagoon/lagoon-cli/pkg/api" "github.com/uselagoon/lagoon-cli/pkg/graphql" "github.com/uselagoon/lagoon-cli/pkg/output" - "golang.org/x/crypto/ssh" ) // Projects . @@ -233,8 +232,14 @@ func (p *Projects) GetProjectKey(projectName string, revealValue bool) ([]byte, Name: projectName, } keyFragment := `fragment Project on Project { - privateKey + publicKey }` + if revealValue { + keyFragment = `fragment Project on Project { + privateKey + publicKey + }` + } projectByName, err := p.api.GetProjectByName(project, keyFragment) if err != nil { return []byte(""), err @@ -252,15 +257,9 @@ func processProjectKey(projectByName []byte, revealValue bool) ([]byte, error) { if err != nil { return []byte(""), err } - signer, err := ssh.ParsePrivateKey([]byte(project.PrivateKey)) - if err != nil { - fmt.Println("Error was:", err.Error()) - return []byte(""), err - } - publicKey := signer.PublicKey() // get the key, but strip the newlines we don't need projectData := []string{ - strings.TrimSuffix(string(ssh.MarshalAuthorizedKey(publicKey)), "\n"), + strings.TrimSuffix(project.PublicKey, "\n"), } if revealValue { projectData = append(projectData, strings.TrimSuffix(project.PrivateKey, "\n"))