mirror of
https://github.com/docker/docker-credential-helpers.git
synced 2026-06-13 16:01:28 +05:30
osxkeychain: list: return full server URIs
Commit4cdcdc2changed the format of `list` output. Before that commit, the json keys were containing full URIs (scheme://host/path[:port]), but afterward, the keys were only containing the path component. With this commit, the `list` operation now returns full URIs (fixing the regression), and also fixes the malformed URIs issue when a port is specified (introduced by19ec1c3, and affecting >=v0.4.2,<v0.9.0). Signed-off-by: Albin Kerouanton <albinker@gmail.com>
This commit is contained in:
@@ -12,6 +12,8 @@ import "C"
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"net"
|
||||
"net/url"
|
||||
"strconv"
|
||||
|
||||
"github.com/docker/docker-credential-helpers/credentials"
|
||||
@@ -121,10 +123,20 @@ func (h Osxkeychain) List() (map[string]string, error) {
|
||||
|
||||
resp := make(map[string]string)
|
||||
for _, r := range res {
|
||||
if r.Path == "" {
|
||||
continue
|
||||
proto := "http"
|
||||
if r.Protocol == kSecProtocolTypeHTTPS {
|
||||
proto = "https"
|
||||
}
|
||||
resp[r.Path] = r.Account
|
||||
host := r.Server
|
||||
if r.Port != 0 {
|
||||
host = net.JoinHostPort(host, strconv.Itoa(int(r.Port)))
|
||||
}
|
||||
u := url.URL{
|
||||
Scheme: proto,
|
||||
Host: host,
|
||||
Path: r.Path,
|
||||
}
|
||||
resp[u.String()] = r.Account
|
||||
}
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user