mirror of
https://github.com/docker/docker-credential-helpers.git
synced 2026-06-13 16:01:28 +05:30
Publish helper structs and methods.
Signed-off-by: David Calavera <david.calavera@gmail.com>
This commit is contained in:
@@ -6,5 +6,5 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
credentials.Serve(osxkeychain.New())
|
credentials.Serve(osxkeychain.Osxkeychain{})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,15 +22,11 @@ import (
|
|||||||
// when the credentials are not in the keychain.
|
// when the credentials are not in the keychain.
|
||||||
const errCredentialsNotFound = "The specified item could not be found in the keychain."
|
const errCredentialsNotFound = "The specified item could not be found in the keychain."
|
||||||
|
|
||||||
type osxkeychain struct{}
|
// Osxkeychain handles secrets using the OS X Keychain as store.
|
||||||
|
type Osxkeychain struct{}
|
||||||
// New creates a new osxkeychain.
|
|
||||||
func New() credentials.Helper {
|
|
||||||
return osxkeychain{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add adds new credentials to the keychain.
|
// 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)
|
s, err := splitServer(creds.ServerURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@@ -52,7 +48,7 @@ func (h osxkeychain) Add(creds *credentials.Credentials) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Delete removes credentials from the keychain.
|
// Delete removes credentials from the keychain.
|
||||||
func (h osxkeychain) Delete(serverURL string) error {
|
func (h Osxkeychain) Delete(serverURL string) error {
|
||||||
s, err := splitServer(serverURL)
|
s, err := splitServer(serverURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
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.
|
// 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)
|
s, err := splitServer(serverURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", err
|
return "", "", err
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ func TestOSXKeychainHelper(t *testing.T) {
|
|||||||
Secret: "foobarbaz",
|
Secret: "foobarbaz",
|
||||||
}
|
}
|
||||||
|
|
||||||
helper := New()
|
helper := Osxkeychain{}
|
||||||
if err := helper.Add(creds); err != nil {
|
if err := helper.Add(creds); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -37,7 +37,7 @@ func TestOSXKeychainHelper(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMissingCredentials(t *testing.T) {
|
func TestMissingCredentials(t *testing.T) {
|
||||||
helper := New()
|
helper := Osxkeychain{}
|
||||||
_, _, err := helper.Get("https://adsfasdf.wrewerwer.com/asdfsdddd")
|
_, _, err := helper.Get("https://adsfasdf.wrewerwer.com/asdfsdddd")
|
||||||
if err != credentials.ErrCredentialsNotFound {
|
if err != credentials.ErrCredentialsNotFound {
|
||||||
t.Fatalf("exptected ErrCredentialsNotFound, got %v", err)
|
t.Fatalf("exptected ErrCredentialsNotFound, got %v", err)
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
credentials.Serve(secretservice.New())
|
credentials.Serve(secretservice.Secretservice{})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,15 +14,11 @@ import (
|
|||||||
"github.com/docker/docker-credential-helpers/credentials"
|
"github.com/docker/docker-credential-helpers/credentials"
|
||||||
)
|
)
|
||||||
|
|
||||||
type secretservice struct{}
|
// Secretservice handles secrets using Linux secret-service as a store.
|
||||||
|
type Secretservice struct{}
|
||||||
// New creates a new secretservice.
|
|
||||||
func New() credentials.Helper {
|
|
||||||
return secretservice{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add adds new credentials to the keychain.
|
// 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 {
|
if creds == nil {
|
||||||
return errors.New("missing credentials")
|
return errors.New("missing credentials")
|
||||||
}
|
}
|
||||||
@@ -41,8 +37,8 @@ func (h secretservice) Add(creds *credentials.Credentials) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Delete removes credentials from the keychain.
|
// Delete removes credentials from the store.
|
||||||
func (h secretservice) Delete(serverURL string) error {
|
func (h Secretservice) Delete(serverURL string) error {
|
||||||
if serverURL == "" {
|
if serverURL == "" {
|
||||||
return errors.New("missing server url")
|
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.
|
// 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 == "" {
|
if serverURL == "" {
|
||||||
return "", "", errors.New("missing server url")
|
return "", "", errors.New("missing server url")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ func TestSecretServiceHelper(t *testing.T) {
|
|||||||
Secret: "foobarbaz",
|
Secret: "foobarbaz",
|
||||||
}
|
}
|
||||||
|
|
||||||
helper := New()
|
helper := Secretservice{}
|
||||||
if err := helper.Add(creds); err != nil {
|
if err := helper.Add(creds); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -41,7 +41,7 @@ func TestSecretServiceHelper(t *testing.T) {
|
|||||||
func TestMissingCredentials(t *testing.T) {
|
func TestMissingCredentials(t *testing.T) {
|
||||||
t.Skip("test requires gnome-keyring but travis CI doesn't have it")
|
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")
|
_, _, err := helper.Get("https://adsfasdf.wrewerwer.com/asdfsdddd")
|
||||||
if err != credentials.ErrCredentialsNotFound {
|
if err != credentials.ErrCredentialsNotFound {
|
||||||
t.Fatalf("exptected ErrCredentialsNotFound, got %v", err)
|
t.Fatalf("exptected ErrCredentialsNotFound, got %v", err)
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
credentials.Serve(wincred.New())
|
credentials.Serve(wincred.Wincred{})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,15 +5,11 @@ import (
|
|||||||
"github.com/docker/docker-credential-helpers/credentials"
|
"github.com/docker/docker-credential-helpers/credentials"
|
||||||
)
|
)
|
||||||
|
|
||||||
type wincred struct{}
|
// Wincred handles secrets using the Windows credential service.
|
||||||
|
type Wincred struct{}
|
||||||
// New creates a new wincred.
|
|
||||||
func New() credentials.Helper {
|
|
||||||
return wincred{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add adds new credentials to the windows credentials manager.
|
// 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 := winc.NewGenericCredential(creds.ServerURL)
|
||||||
g.UserName = creds.Username
|
g.UserName = creds.Username
|
||||||
g.CredentialBlob = []byte(creds.Secret)
|
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.
|
// 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)
|
g, err := winc.GetGenericCredential(serverURL)
|
||||||
if g == nil {
|
if g == nil {
|
||||||
return nil
|
return nil
|
||||||
@@ -34,7 +30,7 @@ func (h wincred) Delete(serverURL string) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get retrieves credentials from the windows credentials manager.
|
// 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)
|
g, _ := winc.GetGenericCredential(serverURL)
|
||||||
if g == nil {
|
if g == nil {
|
||||||
return "", "", credentials.ErrCredentialsNotFound
|
return "", "", credentials.ErrCredentialsNotFound
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ func TestWinCredHelper(t *testing.T) {
|
|||||||
Secret: "foobarbaz",
|
Secret: "foobarbaz",
|
||||||
}
|
}
|
||||||
|
|
||||||
helper := New()
|
helper := Wincred{}
|
||||||
if err := helper.Add(creds); err != nil {
|
if err := helper.Add(creds); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -37,7 +37,7 @@ func TestWinCredHelper(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestMissingCredentials(t *testing.T) {
|
func TestMissingCredentials(t *testing.T) {
|
||||||
helper := New()
|
helper := Wincred{}
|
||||||
_, _, err := helper.Get("https://adsfasdf.wrewerwer.com/asdfsdddd")
|
_, _, err := helper.Get("https://adsfasdf.wrewerwer.com/asdfsdddd")
|
||||||
if err != credentials.ErrCredentialsNotFound {
|
if err != credentials.ErrCredentialsNotFound {
|
||||||
t.Fatalf("exptected ErrCredentialsNotFound, got %v", err)
|
t.Fatalf("exptected ErrCredentialsNotFound, got %v", err)
|
||||||
|
|||||||
Reference in New Issue
Block a user