mirror of https://github.com/docker/cli.git
bump docker-credential-helpers v0.6.2
full diff: 5241b46610...8a9f93a99f
includes:
- docker/docker-credential-helpers#29 C.free(unsafe.Pointer(err)) -> C.g_error_free(err)
- docker/docker-credential-helpers#124 pass: changed the way for checking if password-store is initalized
- addresses docker/docker-credential-helpers#133 docker-credential-pass commits about 10 times every time I run a docker command
- docker/docker-credential-helpers#143 Fix docker-credential-osxkeychain list behaviour in case of missing entry in keychain
- docker/docker-credential-helpers#139 make docker-credential-wincred work like docker-credential-osxkeychain
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
32d7596df6
commit
f6a4c76fbb
|
@ -16,7 +16,7 @@ github.com/dgrijalva/jwt-go a2c85815a77d0f951e33ba4db5ae
|
||||||
github.com/docker/compose-on-kubernetes 7a68f5c914c7e06d7a08dc71608f41811c91f0bc # v0.4.21
|
github.com/docker/compose-on-kubernetes 7a68f5c914c7e06d7a08dc71608f41811c91f0bc # v0.4.21
|
||||||
github.com/docker/distribution 0d3efadf0154c2b8a4e7b6621fff9809655cc580
|
github.com/docker/distribution 0d3efadf0154c2b8a4e7b6621fff9809655cc580
|
||||||
github.com/docker/docker 3998dffb806f3887f804b813069f59bc14a7f3c1
|
github.com/docker/docker 3998dffb806f3887f804b813069f59bc14a7f3c1
|
||||||
github.com/docker/docker-credential-helpers 5241b46610f2491efdf9d1c85f1ddf5b02f6d962
|
github.com/docker/docker-credential-helpers 8a9f93a99ff87f416cc79f267c68151af0026f60 # v0.6.2
|
||||||
github.com/docker/go d30aec9fd63c35133f8f79c3412ad91a3b08be06 # Contains a customized version of canonical/json and is used by Notary. The package is periodically rebased on current Go versions.
|
github.com/docker/go d30aec9fd63c35133f8f79c3412ad91a3b08be06 # Contains a customized version of canonical/json and is used by Notary. The package is periodically rebased on current Go versions.
|
||||||
github.com/docker/go-connections 7395e3f8aa162843a74ed6d48e79627d9792ac55 # v0.4.0
|
github.com/docker/go-connections 7395e3f8aa162843a74ed6d48e79627d9792ac55 # v0.4.0
|
||||||
github.com/docker/go-events 9461782956ad83b30282bf90e31fa6a70c255ba9
|
github.com/docker/go-events 9461782956ad83b30282bf90e31fa6a70c255ba9
|
||||||
|
|
|
@ -16,7 +16,7 @@ The programs in this repository are written with the Go programming language. Th
|
||||||
$ go get github.com/docker/docker-credential-helpers
|
$ go get github.com/docker/docker-credential-helpers
|
||||||
```
|
```
|
||||||
|
|
||||||
2 - Use `make` to build the program you want. That will leave any executable in the `bin` directory inside the repository.
|
2 - Use `make` to build the program you want. That will leave an executable in the `bin` directory inside the repository.
|
||||||
|
|
||||||
```
|
```
|
||||||
$ cd $GOPATH/docker/docker-credentials-helpers
|
$ cd $GOPATH/docker/docker-credentials-helpers
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package credentials
|
package credentials
|
||||||
|
|
||||||
// Version holds a string describing the current version
|
// Version holds a string describing the current version
|
||||||
const Version = "0.6.0"
|
const Version = "0.6.2"
|
||||||
|
|
46
vendor/github.com/docker/docker-credential-helpers/osxkeychain/osxkeychain_darwin.go
generated
vendored
46
vendor/github.com/docker/docker-credential-helpers/osxkeychain/osxkeychain_darwin.go
generated
vendored
|
@ -1,8 +1,8 @@
|
||||||
package osxkeychain
|
package osxkeychain
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#cgo CFLAGS: -x objective-c -mmacosx-version-min=10.10
|
#cgo CFLAGS: -x objective-c -mmacosx-version-min=10.11
|
||||||
#cgo LDFLAGS: -framework Security -framework Foundation -mmacosx-version-min=10.10
|
#cgo LDFLAGS: -framework Security -framework Foundation -mmacosx-version-min=10.11
|
||||||
|
|
||||||
#include "osxkeychain_darwin.h"
|
#include "osxkeychain_darwin.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@ -10,12 +10,11 @@ package osxkeychain
|
||||||
import "C"
|
import "C"
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"net/url"
|
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
|
||||||
"unsafe"
|
"unsafe"
|
||||||
|
|
||||||
"github.com/docker/docker-credential-helpers/credentials"
|
"github.com/docker/docker-credential-helpers/credentials"
|
||||||
|
"github.com/docker/docker-credential-helpers/registryurl"
|
||||||
)
|
)
|
||||||
|
|
||||||
// errCredentialsNotFound is the specific error message returned by OS X
|
// errCredentialsNotFound is the specific error message returned by OS X
|
||||||
|
@ -113,6 +112,10 @@ func (h Osxkeychain) List() (map[string]string, error) {
|
||||||
if errMsg != nil {
|
if errMsg != nil {
|
||||||
defer C.free(unsafe.Pointer(errMsg))
|
defer C.free(unsafe.Pointer(errMsg))
|
||||||
goMsg := C.GoString(errMsg)
|
goMsg := C.GoString(errMsg)
|
||||||
|
if goMsg == errCredentialsNotFound {
|
||||||
|
return make(map[string]string), nil
|
||||||
|
}
|
||||||
|
|
||||||
return nil, errors.New(goMsg)
|
return nil, errors.New(goMsg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -135,7 +138,7 @@ func (h Osxkeychain) List() (map[string]string, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func splitServer(serverURL string) (*C.struct_Server, error) {
|
func splitServer(serverURL string) (*C.struct_Server, error) {
|
||||||
u, err := parseURL(serverURL)
|
u, err := registryurl.Parse(serverURL)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -145,7 +148,7 @@ func splitServer(serverURL string) (*C.struct_Server, error) {
|
||||||
proto = C.kSecProtocolTypeHTTP
|
proto = C.kSecProtocolTypeHTTP
|
||||||
}
|
}
|
||||||
var port int
|
var port int
|
||||||
p := getPort(u)
|
p := registryurl.GetPort(u)
|
||||||
if p != "" {
|
if p != "" {
|
||||||
port, err = strconv.Atoi(p)
|
port, err = strconv.Atoi(p)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -155,7 +158,7 @@ func splitServer(serverURL string) (*C.struct_Server, error) {
|
||||||
|
|
||||||
return &C.struct_Server{
|
return &C.struct_Server{
|
||||||
proto: C.SecProtocolType(proto),
|
proto: C.SecProtocolType(proto),
|
||||||
host: C.CString(getHostname(u)),
|
host: C.CString(registryurl.GetHostname(u)),
|
||||||
port: C.uint(port),
|
port: C.uint(port),
|
||||||
path: C.CString(u.Path),
|
path: C.CString(u.Path),
|
||||||
}, nil
|
}, nil
|
||||||
|
@ -165,32 +168,3 @@ func freeServer(s *C.struct_Server) {
|
||||||
C.free(unsafe.Pointer(s.host))
|
C.free(unsafe.Pointer(s.host))
|
||||||
C.free(unsafe.Pointer(s.path))
|
C.free(unsafe.Pointer(s.path))
|
||||||
}
|
}
|
||||||
|
|
||||||
// parseURL parses and validates a given serverURL to an url.URL, and
|
|
||||||
// returns an error if validation failed. Querystring parameters are
|
|
||||||
// omitted in the resulting URL, because they are not used in the helper.
|
|
||||||
//
|
|
||||||
// If serverURL does not have a valid scheme, `//` is used as scheme
|
|
||||||
// before parsing. This prevents the hostname being used as path,
|
|
||||||
// and the credentials being stored without host.
|
|
||||||
func parseURL(serverURL string) (*url.URL, error) {
|
|
||||||
// Check if serverURL has a scheme, otherwise add `//` as scheme.
|
|
||||||
if !strings.Contains(serverURL, "://") && !strings.HasPrefix(serverURL, "//") {
|
|
||||||
serverURL = "//" + serverURL
|
|
||||||
}
|
|
||||||
|
|
||||||
u, err := url.Parse(serverURL)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
if u.Scheme != "" && u.Scheme != "https" && u.Scheme != "http" {
|
|
||||||
return nil, errors.New("unsupported scheme: " + u.Scheme)
|
|
||||||
}
|
|
||||||
if getHostname(u) == "" {
|
|
||||||
return nil, errors.New("no hostname in URL")
|
|
||||||
}
|
|
||||||
|
|
||||||
u.RawQuery = ""
|
|
||||||
return u, nil
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
//+build go1.8
|
|
||||||
|
|
||||||
package osxkeychain
|
|
||||||
|
|
||||||
import "net/url"
|
|
||||||
|
|
||||||
func getHostname(u *url.URL) string {
|
|
||||||
return u.Hostname()
|
|
||||||
}
|
|
||||||
|
|
||||||
func getPort(u *url.URL) string {
|
|
||||||
return u.Port()
|
|
||||||
}
|
|
41
vendor/github.com/docker/docker-credential-helpers/osxkeychain/url_non_go18.go
generated
vendored
41
vendor/github.com/docker/docker-credential-helpers/osxkeychain/url_non_go18.go
generated
vendored
|
@ -1,41 +0,0 @@
|
||||||
//+build !go1.8
|
|
||||||
|
|
||||||
package osxkeychain
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net/url"
|
|
||||||
"strings"
|
|
||||||
)
|
|
||||||
|
|
||||||
func getHostname(u *url.URL) string {
|
|
||||||
return stripPort(u.Host)
|
|
||||||
}
|
|
||||||
|
|
||||||
func getPort(u *url.URL) string {
|
|
||||||
return portOnly(u.Host)
|
|
||||||
}
|
|
||||||
|
|
||||||
func stripPort(hostport string) string {
|
|
||||||
colon := strings.IndexByte(hostport, ':')
|
|
||||||
if colon == -1 {
|
|
||||||
return hostport
|
|
||||||
}
|
|
||||||
if i := strings.IndexByte(hostport, ']'); i != -1 {
|
|
||||||
return strings.TrimPrefix(hostport[:i], "[")
|
|
||||||
}
|
|
||||||
return hostport[:colon]
|
|
||||||
}
|
|
||||||
|
|
||||||
func portOnly(hostport string) string {
|
|
||||||
colon := strings.IndexByte(hostport, ':')
|
|
||||||
if colon == -1 {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
if i := strings.Index(hostport, "]:"); i != -1 {
|
|
||||||
return hostport[i+len("]:"):]
|
|
||||||
}
|
|
||||||
if strings.Contains(hostport, "]") {
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
return hostport[colon+len(":"):]
|
|
||||||
}
|
|
|
@ -93,7 +93,7 @@ func (h Secretservice) List() (map[string]string, error) {
|
||||||
var listLenC C.uint
|
var listLenC C.uint
|
||||||
err := C.list(credsLabelC, &pathsC, &acctsC, &listLenC)
|
err := C.list(credsLabelC, &pathsC, &acctsC, &listLenC)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
defer C.free(unsafe.Pointer(err))
|
defer C.g_error_free(err)
|
||||||
return nil, errors.New("Error from list function in secretservice_linux.c likely due to error in secretservice library")
|
return nil, errors.New("Error from list function in secretservice_linux.c likely due to error in secretservice library")
|
||||||
}
|
}
|
||||||
defer C.freeListData(&pathsC, listLenC)
|
defer C.freeListData(&pathsC, listLenC)
|
||||||
|
|
Loading…
Reference in New Issue