1
0
mirror of https://github.com/docker/docker-credential-helpers.git synced 2026-06-13 16:01:28 +05:30

Merge pull request #205 from thaJeztah/fix_ci2

travis: temporarily disabling ppc64le, and fix some linting issues
This commit is contained in:
Emmanuel Briney
2021-06-01 12:36:26 +02:00
committed by GitHub
4 changed files with 24 additions and 22 deletions
+1 -2
View File
@@ -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" != "powerpc64le" ]]; 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
+13 -12
View File
@@ -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
+2
View File
@@ -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()
}
+8 -8
View File
@@ -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)
}
}