Skip to content

Commit 0ef4c73

Browse files
committed
remove uses of pkg/errors
While pkg/errors is a great package, it's probably not needed for how it's used in this project, so let's replace with Go's native error wrapping. Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent 8d087d0 commit 0ef4c73

File tree

14 files changed

+34
-729
lines changed

14 files changed

+34
-729
lines changed

go.mod

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ go 1.19
55
require (
66
github.com/danieljoos/wincred v1.2.1
77
github.com/jsipprell/keyctl v1.0.0
8-
github.com/pkg/errors v0.9.1
98
)
109

1110
require golang.org/x/sys v0.15.0 // indirect

go.sum

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ github.com/danieljoos/wincred v1.2.1/go.mod h1:uGaFL9fDn3OLTvzCGulzE+SzjEe5NGlh5
33
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
44
github.com/jsipprell/keyctl v1.0.0 h1:eMMJGk3UEsCXQegACLlfIjnfPlYHV61qfGXZ9/axBn4=
55
github.com/jsipprell/keyctl v1.0.0/go.mod h1:64s6WpBtruURX3w8W/vhWj1/uh+nOm7vUXSJlK5+KMs=
6-
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
7-
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
86
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
97
github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c=
108
github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk=

keyctl/keyctl.go

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313

1414
"github.com/docker/docker-credential-helpers/credentials"
1515
"github.com/jsipprell/keyctl"
16-
"github.com/pkg/errors"
1716
)
1817

1918
// Keyctl based credential helper looks for a default keyring inside
@@ -36,11 +35,11 @@ func (k Keyctl) createDefaultPersistentKeyring() (string, error) {
3635
cmd.Stdout = &out
3736
err := cmd.Run()
3837
if err != nil {
39-
return "", errors.Wrapf(err, "cannot run keyctl command to create persistent keyring %+v: %s", err, errout.String())
38+
return "", fmt.Errorf("cannot run keyctl command to create persistent keyring: %s: %w", errout.String(), err)
4039
}
4140
persistentKeyringID := out.String()
4241
if err != nil {
43-
return "", errors.Wrapf(err, "cannot create or read persistent keyring %+v", err)
42+
return "", fmt.Errorf("cannot create or read persistent keyring: %w", err)
4443
}
4544
return persistentKeyringID, nil
4645
}
@@ -49,12 +48,12 @@ func (k Keyctl) getDefaultCredsStoreFromPersistent() (keyctl.NamedKeyring, error
4948
var out, errout bytes.Buffer
5049
persistentKeyringID, err := k.createDefaultPersistentKeyring()
5150
if err != nil {
52-
return nil, errors.Wrap(err, "default persistent keyring cannot be created")
51+
return nil, fmt.Errorf("default persistent keyring cannot be created: %w", err)
5352
}
5453

5554
defaultSessionKeyring, err := keyctl.SessionKeyring()
5655
if err != nil {
57-
return nil, errors.New("errors getting session keyring")
56+
return nil, fmt.Errorf("errors getting session keyring: %w", err)
5857
}
5958

6059
defaultKeyring, err := keyctl.OpenKeyring(defaultSessionKeyring, defaultKeyringName)
@@ -65,13 +64,13 @@ func (k Keyctl) getDefaultCredsStoreFromPersistent() (keyctl.NamedKeyring, error
6564
cmd.Stderr = &errout
6665
err := cmd.Run()
6766
if err != nil {
68-
return nil, errors.Wrapf(err, "cannot run keyctl command to created credstore keyring %s %s %s", cmd.String(), errout.String(), out.String())
67+
return nil, fmt.Errorf("cannot run keyctl command to created credstore keyring (%s): %s %s: %w", cmd.String(), errout.String(), out.String(), err)
6968
}
7069
}
7170
/* Search for it again and return the default keyring*/
7271
defaultKeyring, err = keyctl.OpenKeyring(defaultSessionKeyring, defaultKeyringName)
7372
if err != nil {
74-
return nil, errors.Wrap(err, "failed to lookup default session keyring")
73+
return nil, fmt.Errorf("failed to lookup default session keyring: %w", err)
7574
}
7675

7776
return defaultKeyring, nil
@@ -80,25 +79,32 @@ func (k Keyctl) getDefaultCredsStoreFromPersistent() (keyctl.NamedKeyring, error
8079
// getDefaultCredsStore is a helper function to get the default credsStore keyring
8180
func (k Keyctl) getDefaultCredsStore() (keyctl.NamedKeyring, error) {
8281
if persistent == 1 {
83-
return k.getDefaultCredsStoreFromPersistent()
82+
cs, err := k.getDefaultCredsStoreFromPersistent()
83+
if err != nil {
84+
return nil, err
85+
}
86+
if cs == nil {
87+
return nil, fmt.Errorf("nil credstore")
88+
}
89+
return cs, err
8490
}
8591
defaultSessionKeyring, err := keyctl.SessionKeyring()
8692
if err != nil {
87-
return nil, errors.Wrap(err, "error getting session keyring")
93+
return nil, fmt.Errorf("error getting session keyring: %w", err)
8894
}
8995

9096
defaultKeyring, err := keyctl.OpenKeyring(defaultSessionKeyring, defaultKeyringName)
9197
if err != nil || defaultKeyring == nil {
9298
if defaultKeyring == nil {
9399
defaultKeyring, err = keyctl.CreateKeyring(defaultSessionKeyring, defaultKeyringName)
94100
if err != nil {
95-
return nil, errors.Wrap(err, "failed to create default credsStore keyring")
101+
return nil, fmt.Errorf("failed to create default credsStore keyring: %w", err)
96102
}
97103
}
98104
}
99105

100106
if defaultKeyring == nil {
101-
return nil, errors.Wrap(errors.New(""), " nil credstore")
107+
return nil, fmt.Errorf("nil credstore")
102108
}
103109

104110
return defaultKeyring, nil
@@ -107,29 +113,29 @@ func (k Keyctl) getDefaultCredsStore() (keyctl.NamedKeyring, error) {
107113
// Add adds new credentials to the keychain.
108114
func (k Keyctl) Add(creds *credentials.Credentials) error {
109115
defaultKeyring, err := k.getDefaultCredsStore()
110-
if err != nil || defaultKeyring == nil {
111-
return errors.Wrapf(err, "failed to create credsStore entry for %s", creds.ServerURL)
116+
if err != nil {
117+
return fmt.Errorf("failed to create credsStore entry for %s: %w", creds.ServerURL, err)
112118
}
113119

114120
// create a child keyring under default for given url
115121
encoded := base64.URLEncoding.EncodeToString([]byte(strings.TrimSuffix(creds.ServerURL, "\n")))
116122
urlKeyring, err := keyctl.CreateKeyring(defaultKeyring, encoded)
117123
if err != nil {
118-
return errors.Wrapf(err, "failed to create keyring for %s", creds.ServerURL)
124+
return fmt.Errorf("failed to create keyring for %s: %w", creds.ServerURL, err)
119125
}
120126

121127
_, err = urlKeyring.Add(creds.Username, []byte(creds.Secret))
122128
if err != nil {
123-
return errors.Wrapf(err, "failed to add creds to keryring for %s with error: %+v", creds.ServerURL, err)
129+
return fmt.Errorf("failed to add creds to keryring for %s: %w", creds.ServerURL, err)
124130
}
125131
return err
126132
}
127133

128134
// searchHelper function searches for an url inside the default keyring.
129135
func (k Keyctl) searchHelper(serverURL string) (keyctl.NamedKeyring, string, error) {
130136
defaultKeyring, err := k.getDefaultCredsStore()
131-
if err != nil || defaultKeyring == nil {
132-
return nil, "", fmt.Errorf("searchHelper failed: cannot read defaultCredsStore")
137+
if err != nil {
138+
return nil, "", fmt.Errorf("searchHelper failed: cannot read defaultCredsStore: %w", err)
133139
}
134140

135141
encoded := base64.URLEncoding.EncodeToString([]byte(strings.TrimSuffix(serverURL, "\n")))
@@ -166,21 +172,21 @@ func (k Keyctl) searchHelper(serverURL string) (keyctl.NamedKeyring, string, err
166172
// Get returns the username and secret to use for a given registry server URL.
167173
func (k Keyctl) Get(serverURL string) (string, string, error) {
168174
if serverURL == "" {
169-
return "", "", errors.New("missing server url")
175+
return "", "", fmt.Errorf("missing server url")
170176
}
171177

172178
serverURL = strings.TrimSuffix(serverURL, "\n")
173179
urlKeyring, searchData, err := k.searchHelper(serverURL)
174180
if err != nil {
175-
return "", "", errors.Wrapf(err, "url not found by searchHelper: %s err: %v", serverURL, err)
181+
return "", "", fmt.Errorf("url (%s) not found by searchHelper: %w", serverURL, err)
176182
}
177183
key, err := urlKeyring.Search(searchData)
178184
if err != nil {
179-
return "", "", errors.Wrapf(err, "url not found in %+v", urlKeyring)
185+
return "", "", fmt.Errorf("url (%s) not found in %+v: %w", serverURL, urlKeyring, err)
180186
}
181187
secret, err := key.Get()
182188
if err != nil {
183-
return "", "", errors.Wrapf(err, "failed to read credentials for %s:%s", serverURL, searchData)
189+
return "", "", fmt.Errorf("failed to read credentials for url (%s): %s: %w", serverURL, searchData, err)
184190
}
185191

186192
return searchData, string(secret), nil
@@ -191,7 +197,7 @@ func (k Keyctl) Delete(serverURL string) error {
191197
serverURL = strings.TrimSuffix(serverURL, "\n")
192198
urlKeyring, searchData, err := k.searchHelper(serverURL)
193199
if err != nil {
194-
return errors.Wrapf(err, "cannot find server url %s", serverURL)
200+
return fmt.Errorf("cannot find server url (%s): %w", serverURL, err)
195201
}
196202

197203
key, err := urlKeyring.Search(searchData)
@@ -209,9 +215,9 @@ func (k Keyctl) Delete(serverURL string) error {
209215
fmt.Printf("cannot list keyring %s", urlKeyring.Name())
210216
}
211217
if len(refs) == 0 {
212-
keyctl.UnlinkKeyring(urlKeyring)
218+
_ = keyctl.UnlinkKeyring(urlKeyring)
213219
} else {
214-
return errors.Wrapf(err, "Canot remove keyring as its not empty %s", urlKeyring.Name())
220+
return fmt.Errorf("canot remove keyring as its not empty %s", urlKeyring.Name())
215221
}
216222

217223
return err
@@ -220,8 +226,8 @@ func (k Keyctl) Delete(serverURL string) error {
220226
// List returns the stored URLs and corresponding usernames for a given credentials label
221227
func (k Keyctl) List() (map[string]string, error) {
222228
defaultKeyring, err := k.getDefaultCredsStore()
223-
if err != nil || defaultKeyring == nil {
224-
return nil, errors.Wrap(err, "List() failed: cannot read default credStore")
229+
if err != nil {
230+
return nil, fmt.Errorf("failed to list credentials: cannot read default credStore: %w", err)
225231
}
226232

227233
resp := map[string]string{}

keyctl/keyctl_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package keyctl
22

33
import (
4+
"fmt"
45
"strings"
56
"testing"
67

78
"github.com/docker/docker-credential-helpers/credentials"
8-
"github.com/pkg/errors"
99
)
1010

1111
func TestKeyctlHelper(t *testing.T) {
@@ -59,7 +59,7 @@ func TestKeyctlHelper(t *testing.T) {
5959
}
6060
err = helper.Delete(s)
6161
if err != nil {
62-
errors.Wrapf(err, "error in deleting %s", s)
62+
t.Error(fmt.Errorf("error in deleting %s: %w", s, err))
6363
}
6464
}
6565

vendor/github.com/pkg/errors/.gitignore

Lines changed: 0 additions & 24 deletions
This file was deleted.

vendor/github.com/pkg/errors/.travis.yml

Lines changed: 0 additions & 10 deletions
This file was deleted.

vendor/github.com/pkg/errors/LICENSE

Lines changed: 0 additions & 23 deletions
This file was deleted.

vendor/github.com/pkg/errors/Makefile

Lines changed: 0 additions & 44 deletions
This file was deleted.

vendor/github.com/pkg/errors/README.md

Lines changed: 0 additions & 59 deletions
This file was deleted.

0 commit comments

Comments
 (0)