From d4335b39ced065edb55468c747fccbd0ab11133c Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 16 Apr 2023 11:17:37 +0200 Subject: [PATCH 1/4] update go to 1.20 Signed-off-by: CrazyMax Signed-off-by: Davide Cosentino --- .github/workflows/build.yml | 2 +- Dockerfile | 2 +- docker-bake.hcl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c181b298..201281b7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ on: env: DESTDIR: ./bin - GO_VERSION: 1.18.5 + GO_VERSION: 1.20.3 jobs: validate: diff --git a/Dockerfile b/Dockerfile index b57a05d3..7118b2a0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ # syntax=docker/dockerfile:1 -ARG GO_VERSION=1.18.5 +ARG GO_VERSION=1.20.3 ARG XX_VERSION=1.2.1 ARG OSXCROSS_VERSION=11.3-r7-debian ARG GOLANGCI_LINT_VERSION=v1.47.3 diff --git a/docker-bake.hcl b/docker-bake.hcl index 74c30977..f28ec469 100644 --- a/docker-bake.hcl +++ b/docker-bake.hcl @@ -1,5 +1,5 @@ variable "GO_VERSION" { - default = "1.18.5" + default = "1.20.3" } # Defines the output folder From 8bad46601de328b0cd1349ffd4ac09cde48d5c53 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 16 Apr 2023 11:18:44 +0200 Subject: [PATCH 2/4] update golangci-lint to v1.51.1 Signed-off-by: CrazyMax Signed-off-by: Davide Cosentino --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7118b2a0..41432719 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ ARG GO_VERSION=1.20.3 ARG XX_VERSION=1.2.1 ARG OSXCROSS_VERSION=11.3-r7-debian -ARG GOLANGCI_LINT_VERSION=v1.47.3 +ARG GOLANGCI_LINT_VERSION=v1.51.1 ARG DEBIAN_FRONTEND=noninteractive ARG PACKAGE=github.com/docker/docker-credential-helpers From c9d5f999afdc69472bcd1111b0671bd5f6520214 Mon Sep 17 00:00:00 2001 From: CrazyMax Date: Sun, 16 Apr 2023 11:22:02 +0200 Subject: [PATCH 3/4] remove deprecated golangci-lint linters Linters 'deadcode', 'structcheck', 'varcheck' are deprecated since v1.49.0 and had been replaced by 'unused'. Signed-off-by: CrazyMax Signed-off-by: Davide Cosentino --- .golangci.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.golangci.yml b/.golangci.yml index 930e66a6..902f7d51 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -6,17 +6,14 @@ linters: enable: - gofmt - govet - - deadcode - depguard - goimports - ineffassign - misspell - unused - - varcheck - revive - staticcheck - typecheck - - structcheck disable-all: true linters-settings: From f898af7aad119735b0859ad13c33272212941806 Mon Sep 17 00:00:00 2001 From: Davide Cosentino Date: Wed, 10 May 2023 01:41:01 +0200 Subject: [PATCH 4/4] Fix username slash issue Signed-off-by: Davide Cosentino --- pass/pass.go | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/pass/pass.go b/pass/pass.go index 6624e730..fc7bf9a7 100644 --- a/pass/pass.go +++ b/pass/pass.go @@ -87,7 +87,12 @@ func (p Pass) Add(creds *credentials.Credentials) error { encoded := base64.URLEncoding.EncodeToString([]byte(creds.ServerURL)) - _, err := p.runPass(creds.Secret, "insert", "-f", "-m", path.Join(PASS_FOLDER, encoded, creds.Username)) + username := creds.Username + if strings.Contains(username, "/") { + username = base64.URLEncoding.EncodeToString([]byte(creds.Username)) + } + + _, err := p.runPass(creds.Secret, "insert", "-f", "-m", path.Join(PASS_FOLDER, encoded, username)) return err } @@ -160,8 +165,13 @@ func (p Pass) Get(serverURL string) (string, string, error) { } actual := strings.TrimSuffix(usernames[0].Name(), ".gpg") + username := actual + decodedUsername, err := base64.URLEncoding.DecodeString(actual) + if err == nil { + username = string(decodedUsername) + } secret, err := p.runPass("", "show", path.Join(PASS_FOLDER, encoded, actual)) - return actual, secret, err + return username, secret, err } // List returns the stored URLs and corresponding usernames for a given credentials label @@ -193,6 +203,10 @@ func (p Pass) List() (map[string]string, error) { } resp[string(serverURL)] = strings.TrimSuffix(usernames[0].Name(), ".gpg") + decodedUsername, err := base64.URLEncoding.DecodeString(strings.TrimSuffix(usernames[0].Name(), ".gpg")) + if err == nil { + resp[string(serverURL)] = string(decodedUsername) + } } return resp, nil