From df8c7a02f121cd66407995ff2b9c1262b2e22186 Mon Sep 17 00:00:00 2001 From: David Calavera Date: Thu, 24 Mar 2016 15:08:17 -0700 Subject: [PATCH] Publish helper structs and methods. Signed-off-by: David Calavera --- osxkeychain/cmd/main_darwin.go | 2 +- osxkeychain/osxkeychain_darwin.go | 14 +++++--------- osxkeychain/osxkeychain_darwin_test.go | 4 ++-- secretservice/cmd/main_linux.go | 2 +- secretservice/secretservice_linux.go | 16 ++++++---------- secretservice/secretservice_linux_test.go | 4 ++-- wincred/cmd/main_windows.go | 2 +- wincred/wincred_windows.go | 14 +++++--------- wincred/wincred_windows_test.go | 4 ++-- 9 files changed, 25 insertions(+), 37 deletions(-) diff --git a/osxkeychain/cmd/main_darwin.go b/osxkeychain/cmd/main_darwin.go index becec57..e3ab9ab 100644 --- a/osxkeychain/cmd/main_darwin.go +++ b/osxkeychain/cmd/main_darwin.go @@ -6,5 +6,5 @@ import ( ) func main() { - credentials.Serve(osxkeychain.New()) + credentials.Serve(osxkeychain.Osxkeychain{}) } diff --git a/osxkeychain/osxkeychain_darwin.go b/osxkeychain/osxkeychain_darwin.go index 3a49530..5567541 100644 --- a/osxkeychain/osxkeychain_darwin.go +++ b/osxkeychain/osxkeychain_darwin.go @@ -22,15 +22,11 @@ import ( // when the credentials are not in the keychain. const errCredentialsNotFound = "The specified item could not be found in the keychain." -type osxkeychain struct{} - -// New creates a new osxkeychain. -func New() credentials.Helper { - return osxkeychain{} -} +// Osxkeychain handles secrets using the OS X Keychain as store. +type Osxkeychain struct{} // Add adds new credentials to the keychain. -func (h osxkeychain) Add(creds *credentials.Credentials) error { +func (h Osxkeychain) Add(creds *credentials.Credentials) error { s, err := splitServer(creds.ServerURL) if err != nil { return err @@ -52,7 +48,7 @@ func (h osxkeychain) Add(creds *credentials.Credentials) error { } // Delete removes credentials from the keychain. -func (h osxkeychain) Delete(serverURL string) error { +func (h Osxkeychain) Delete(serverURL string) error { s, err := splitServer(serverURL) if err != nil { return err @@ -69,7 +65,7 @@ func (h osxkeychain) Delete(serverURL string) error { } // Get returns the username and secret to use for a given registry server URL. -func (h osxkeychain) Get(serverURL string) (string, string, error) { +func (h Osxkeychain) Get(serverURL string) (string, string, error) { s, err := splitServer(serverURL) if err != nil { return "", "", err diff --git a/osxkeychain/osxkeychain_darwin_test.go b/osxkeychain/osxkeychain_darwin_test.go index 419b670..f2d7f41 100644 --- a/osxkeychain/osxkeychain_darwin_test.go +++ b/osxkeychain/osxkeychain_darwin_test.go @@ -13,7 +13,7 @@ func TestOSXKeychainHelper(t *testing.T) { Secret: "foobarbaz", } - helper := New() + helper := Osxkeychain{} if err := helper.Add(creds); err != nil { t.Fatal(err) } @@ -37,7 +37,7 @@ func TestOSXKeychainHelper(t *testing.T) { } func TestMissingCredentials(t *testing.T) { - helper := New() + helper := Osxkeychain{} _, _, err := helper.Get("https://adsfasdf.wrewerwer.com/asdfsdddd") if err != credentials.ErrCredentialsNotFound { t.Fatalf("exptected ErrCredentialsNotFound, got %v", err) diff --git a/secretservice/cmd/main_linux.go b/secretservice/cmd/main_linux.go index bb8be9f..6965ca7 100644 --- a/secretservice/cmd/main_linux.go +++ b/secretservice/cmd/main_linux.go @@ -6,5 +6,5 @@ import ( ) func main() { - credentials.Serve(secretservice.New()) + credentials.Serve(secretservice.Secretservice{}) } diff --git a/secretservice/secretservice_linux.go b/secretservice/secretservice_linux.go index 8875208..637077a 100644 --- a/secretservice/secretservice_linux.go +++ b/secretservice/secretservice_linux.go @@ -14,15 +14,11 @@ import ( "github.com/docker/docker-credential-helpers/credentials" ) -type secretservice struct{} - -// New creates a new secretservice. -func New() credentials.Helper { - return secretservice{} -} +// Secretservice handles secrets using Linux secret-service as a store. +type Secretservice struct{} // Add adds new credentials to the keychain. -func (h secretservice) Add(creds *credentials.Credentials) error { +func (h Secretservice) Add(creds *credentials.Credentials) error { if creds == nil { return errors.New("missing credentials") } @@ -41,8 +37,8 @@ func (h secretservice) Add(creds *credentials.Credentials) error { return nil } -// Delete removes credentials from the keychain. -func (h secretservice) Delete(serverURL string) error { +// Delete removes credentials from the store. +func (h Secretservice) Delete(serverURL string) error { if serverURL == "" { return errors.New("missing server url") } @@ -58,7 +54,7 @@ func (h secretservice) Delete(serverURL string) error { } // Get returns the username and secret to use for a given registry server URL. -func (h secretservice) Get(serverURL string) (string, string, error) { +func (h Secretservice) Get(serverURL string) (string, string, error) { if serverURL == "" { return "", "", errors.New("missing server url") } diff --git a/secretservice/secretservice_linux_test.go b/secretservice/secretservice_linux_test.go index 5341b3e..ee273b1 100644 --- a/secretservice/secretservice_linux_test.go +++ b/secretservice/secretservice_linux_test.go @@ -15,7 +15,7 @@ func TestSecretServiceHelper(t *testing.T) { Secret: "foobarbaz", } - helper := New() + helper := Secretservice{} if err := helper.Add(creds); err != nil { t.Fatal(err) } @@ -41,7 +41,7 @@ func TestSecretServiceHelper(t *testing.T) { func TestMissingCredentials(t *testing.T) { t.Skip("test requires gnome-keyring but travis CI doesn't have it") - helper := New() + helper := Secretservice{} _, _, err := helper.Get("https://adsfasdf.wrewerwer.com/asdfsdddd") if err != credentials.ErrCredentialsNotFound { t.Fatalf("exptected ErrCredentialsNotFound, got %v", err) diff --git a/wincred/cmd/main_windows.go b/wincred/cmd/main_windows.go index 6113445..c0b797f 100644 --- a/wincred/cmd/main_windows.go +++ b/wincred/cmd/main_windows.go @@ -6,5 +6,5 @@ import ( ) func main() { - credentials.Serve(wincred.New()) + credentials.Serve(wincred.Wincred{}) } diff --git a/wincred/wincred_windows.go b/wincred/wincred_windows.go index 16ea47c..d05821c 100644 --- a/wincred/wincred_windows.go +++ b/wincred/wincred_windows.go @@ -5,15 +5,11 @@ import ( "github.com/docker/docker-credential-helpers/credentials" ) -type wincred struct{} - -// New creates a new wincred. -func New() credentials.Helper { - return wincred{} -} +// Wincred handles secrets using the Windows credential service. +type Wincred struct{} // Add adds new credentials to the windows credentials manager. -func (h wincred) Add(creds *credentials.Credentials) error { +func (h Wincred) Add(creds *credentials.Credentials) error { g := winc.NewGenericCredential(creds.ServerURL) g.UserName = creds.Username g.CredentialBlob = []byte(creds.Secret) @@ -22,7 +18,7 @@ func (h wincred) Add(creds *credentials.Credentials) error { } // Delete removes credentials from the windows credentials manager. -func (h wincred) Delete(serverURL string) error { +func (h Wincred) Delete(serverURL string) error { g, err := winc.GetGenericCredential(serverURL) if g == nil { return nil @@ -34,7 +30,7 @@ func (h wincred) Delete(serverURL string) error { } // Get retrieves credentials from the windows credentials manager. -func (h wincred) Get(serverURL string) (string, string, error) { +func (h Wincred) Get(serverURL string) (string, string, error) { g, _ := winc.GetGenericCredential(serverURL) if g == nil { return "", "", credentials.ErrCredentialsNotFound diff --git a/wincred/wincred_windows_test.go b/wincred/wincred_windows_test.go index bc1ead4..a89298b 100644 --- a/wincred/wincred_windows_test.go +++ b/wincred/wincred_windows_test.go @@ -13,7 +13,7 @@ func TestWinCredHelper(t *testing.T) { Secret: "foobarbaz", } - helper := New() + helper := Wincred{} if err := helper.Add(creds); err != nil { t.Fatal(err) } @@ -37,7 +37,7 @@ func TestWinCredHelper(t *testing.T) { } func TestMissingCredentials(t *testing.T) { - helper := New() + helper := Wincred{} _, _, err := helper.Get("https://adsfasdf.wrewerwer.com/asdfsdddd") if err != credentials.ErrCredentialsNotFound { t.Fatalf("exptected ErrCredentialsNotFound, got %v", err)