From 7a2694fc9899bf367886783c60a7ed5dc9728107 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 31 May 2021 16:37:58 +0200 Subject: [PATCH 1/3] fix some linting issues /go/src/github.com/docker/docker-credential-helper/pass/pass.go:1:1: package comment should be of the form "Package pass ..." /go/src/github.com/docker/docker-credential-helper/pass/pass.go:22:7: don't use ALL_CAPS in Go names; use CamelCase /go/src/github.com/docker/docker-credential-helper/pass/pass.go:22:7: exported const PASS_FOLDER should have comment or be unexported /go/src/github.com/docker/docker-credential-helper/pass/pass.go:82:1: receiver name h should be consistent with previous receiver name p for Pass /go/src/github.com/docker/docker-credential-helper/pass/pass.go:94:1: receiver name h should be consistent with previous receiver name p for Pass /go/src/github.com/docker/docker-credential-helper/pass/pass.go:131:1: receiver name h should be consistent with previous receiver name p for Pass /go/src/github.com/docker/docker-credential-helper/pass/pass.go:161:1: receiver name h should be consistent with previous receiver name p for Pass /go/src/github.com/docker/docker-credential-helper/registryurl/url_go18.go:9:1: exported function GetHostname should have comment or be unexported /go/src/github.com/docker/docker-credential-helper/registryurl/url_go18.go:13:1: exported function GetPort should have comment or be unexported /go/src/github.com/docker/docker-credential-helper/secretservice/secretservice_linux_test.go:22:2: don't use underscores in Go names; var old_auths should be oldAuths /go/src/github.com/docker/docker-credential-helper/secretservice/secretservice_linux_test.go:64:2: don't use underscores in Go names; var new_auths should be newAuths Signed-off-by: Sebastiaan van Stijn --- pass/pass.go | 25 ++++++++++++----------- registryurl/url_go18.go | 2 ++ secretservice/secretservice_linux_test.go | 16 +++++++-------- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/pass/pass.go b/pass/pass.go index 342e538..5750a78 100644 --- a/pass/pass.go +++ b/pass/pass.go @@ -1,7 +1,7 @@ -// A `pass` based credential helper. Passwords are stored as arguments to pass -// of the form: "$PASS_FOLDER/base64-url(serverURL)/username". We base64-url -// encode the serverURL, because under the hood pass uses files and folders, so -// /s will get translated into additional folders. +// Package pass implements a `pass` based credential helper. Passwords are stored +// as arguments to pass of the form: "$PASS_FOLDER/base64-url(serverURL)/username". +// We base64-url encode the serverURL, because under the hood pass uses files and +// folders, so /s will get translated into additional folders. package pass import ( @@ -19,7 +19,8 @@ import ( "github.com/docker/docker-credential-helpers/credentials" ) -const PASS_FOLDER = "docker-credential-helpers" +// PASS_FOLDER contains the directory where credentials are stored +const PASS_FOLDER = "docker-credential-helpers" //nolint: golint // Pass handles secrets using Linux secret-service as a store. type Pass struct{} @@ -79,25 +80,25 @@ func (p Pass) runPassHelper(stdinContent string, args ...string) (string, error) } // Add adds new credentials to the keychain. -func (h Pass) Add(creds *credentials.Credentials) error { +func (p Pass) Add(creds *credentials.Credentials) error { if creds == nil { return errors.New("missing credentials") } encoded := base64.URLEncoding.EncodeToString([]byte(creds.ServerURL)) - _, err := h.runPass(creds.Secret, "insert", "-f", "-m", path.Join(PASS_FOLDER, encoded, creds.Username)) + _, err := p.runPass(creds.Secret, "insert", "-f", "-m", path.Join(PASS_FOLDER, encoded, creds.Username)) return err } // Delete removes credentials from the store. -func (h Pass) Delete(serverURL string) error { +func (p Pass) Delete(serverURL string) error { if serverURL == "" { return errors.New("missing server url") } encoded := base64.URLEncoding.EncodeToString([]byte(serverURL)) - _, err := h.runPass("", "rm", "-rf", path.Join(PASS_FOLDER, encoded)) + _, err := p.runPass("", "rm", "-rf", path.Join(PASS_FOLDER, encoded)) return err } @@ -128,7 +129,7 @@ func listPassDir(args ...string) ([]os.FileInfo, error) { } // Get returns the username and secret to use for a given registry server URL. -func (h Pass) Get(serverURL string) (string, string, error) { +func (p Pass) Get(serverURL string) (string, string, error) { if serverURL == "" { return "", "", errors.New("missing server url") } @@ -153,12 +154,12 @@ func (h Pass) Get(serverURL string) (string, string, error) { } actual := strings.TrimSuffix(usernames[0].Name(), ".gpg") - secret, err := h.runPass("", "show", path.Join(PASS_FOLDER, encoded, actual)) + secret, err := p.runPass("", "show", path.Join(PASS_FOLDER, encoded, actual)) return actual, secret, err } // List returns the stored URLs and corresponding usernames for a given credentials label -func (h Pass) List() (map[string]string, error) { +func (p Pass) List() (map[string]string, error) { servers, err := listPassDir() if err != nil { return nil, err diff --git a/registryurl/url_go18.go b/registryurl/url_go18.go index dbfbfa1..2bfc153 100644 --- a/registryurl/url_go18.go +++ b/registryurl/url_go18.go @@ -6,10 +6,12 @@ import ( url "net/url" ) +// GetHostname returns the hostname of the URL func GetHostname(u *url.URL) string { return u.Hostname() } +// GetPort returns the port number of the URL func GetPort(u *url.URL) string { return u.Port() } diff --git a/secretservice/secretservice_linux_test.go b/secretservice/secretservice_linux_test.go index 8c7839d..1451dde 100644 --- a/secretservice/secretservice_linux_test.go +++ b/secretservice/secretservice_linux_test.go @@ -19,14 +19,14 @@ func TestSecretServiceHelper(t *testing.T) { helper := Secretservice{} // Check how many docker credentials we have when starting the test - old_auths, err := helper.List() + oldAuths, err := helper.List() if err != nil { t.Fatal(err) } // If any docker credentials with the tests values we are providing, we // remove them as they probably come from a previous failed test - for k, v := range old_auths { + for k, v := range oldAuths { if strings.Compare(k, creds.ServerURL) == 0 && strings.Compare(v, creds.Username) == 0 { if err := helper.Delete(creds.ServerURL); err != nil { @@ -36,7 +36,7 @@ func TestSecretServiceHelper(t *testing.T) { } // Check again how many docker credentials we have when starting the test - old_auths, err = helper.List() + oldAuths, err = helper.List() if err != nil { t.Fatal(err) } @@ -61,11 +61,11 @@ func TestSecretServiceHelper(t *testing.T) { } // We should have one more credential than before adding - new_auths, err := helper.List() - if err != nil || (len(new_auths)-len(old_auths) != 1) { + newAuths, err := helper.List() + if err != nil || (len(newAuths)-len(oldAuths) != 1) { t.Fatal(err) } - old_auths = new_auths + oldAuths = newAuths // Deleting the credentials associated to current server url should succeed if err := helper.Delete(creds.ServerURL); err != nil { @@ -73,8 +73,8 @@ func TestSecretServiceHelper(t *testing.T) { } // We should have one less credential than before deleting - new_auths, err = helper.List() - if err != nil || (len(old_auths)-len(new_auths) != 1) { + newAuths, err = helper.List() + if err != nil || (len(oldAuths)-len(newAuths) != 1) { t.Fatal(err) } } From f552261f32e702056ff820579c06906797c383b5 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Mon, 31 May 2021 16:17:17 +0200 Subject: [PATCH 2/3] travis: fix selection of ppc64le Signed-off-by: Sebastiaan van Stijn --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1285a1a..d6f0534 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,6 +20,6 @@ before_script: - make deps - "export DISPLAY=:99.0" - - if [[ "$TRAVIS_OS_NAME" == "linux" && "$HOSTTYPE" != "powerpc64le" ]]; then sh ci/before_script_linux.sh; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" && "$HOSTTYPE" != "ppc64le" ]]; then sh ci/before_script_linux.sh; fi - make validate script: make test From e4a625d24b20acb67c3f8854820299d3bed15200 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Tue, 1 Jun 2021 10:36:09 +0200 Subject: [PATCH 3/3] travis: temporarily disable ppc The ppc machines use systemd, so starting xvfb doesnt work +sh -e /etc/init.d/xvfb start sh: 0: Can't open /etc/init.d/xvfb Temporarily disabling it for now Signed-off-by: Sebastiaan van Stijn --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index d6f0534..7bd675a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,6 @@ os: - linux - osx - - linux-ppc64le notifications: email: false go: @@ -20,6 +19,6 @@ before_script: - make deps - "export DISPLAY=:99.0" - - if [[ "$TRAVIS_OS_NAME" == "linux" && "$HOSTTYPE" != "ppc64le" ]]; then sh ci/before_script_linux.sh; fi + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sh ci/before_script_linux.sh; fi - make validate script: make test