Skip to content

Commit 4774096

Browse files
fix: resolve lint issues (shadow, wsl, wrapcheck, ineffassign)
Fix pre-existing golangci-lint issues: - govet shadow: variable shadowing in tests - wsl: whitespace linter spacing issues - wrapcheck: unwrapped errors from external packages - ineffassign: ineffectual assignment in root.go 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 1bedbdc commit 4774096

5 files changed

Lines changed: 39 additions & 10 deletions

File tree

internal/cmd/root.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ func helpDescription() string {
175175
}
176176

177177
backendInfo, err := secrets.ResolveKeyringBackendInfo()
178-
backendLine := "unknown"
178+
var backendLine string
179179
if err != nil {
180180
backendLine = fmt.Sprintf("error: %v", err)
181181
} else {

internal/config/config.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ func ConfigExists() (bool, error) {
3232
if os.IsNotExist(statErr) {
3333
return false, nil
3434
}
35-
return false, statErr
35+
36+
return false, fmt.Errorf("stat config: %w", statErr)
3637
}
3738

3839
return true, nil
@@ -49,6 +50,7 @@ func ReadConfig() (File, error) {
4950
if os.IsNotExist(err) {
5051
return File{}, nil
5152
}
53+
5254
return File{}, fmt.Errorf("read config: %w", err)
5355
}
5456

@@ -58,5 +60,6 @@ func ReadConfig() (File, error) {
5860
}
5961

6062
cfg.KeyringBackend = strings.ToLower(strings.TrimSpace(cfg.KeyringBackend))
63+
6164
return cfg, nil
6265
}

internal/config/config_test.go

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,11 @@ func TestConfigPath(t *testing.T) {
1616
if err != nil {
1717
t.Fatalf("ConfigPath: %v", err)
1818
}
19+
1920
if filepath.Base(path) != "config.json" {
2021
t.Fatalf("unexpected config file: %q", filepath.Base(path))
2122
}
23+
2224
if filepath.Base(filepath.Dir(path)) != AppName {
2325
t.Fatalf("unexpected config dir: %q", filepath.Dir(path))
2426
}
@@ -33,6 +35,7 @@ func TestReadConfig_Missing(t *testing.T) {
3335
if err != nil {
3436
t.Fatalf("ReadConfig: %v", err)
3537
}
38+
3639
if cfg.KeyringBackend != "" {
3740
t.Fatalf("expected empty config, got %q", cfg.KeyringBackend)
3841
}
@@ -47,22 +50,29 @@ func TestReadConfig_JSON5(t *testing.T) {
4750
if err != nil {
4851
t.Fatalf("ConfigPath: %v", err)
4952
}
50-
if err := os.MkdirAll(filepath.Dir(path), 0o700); err != nil {
53+
54+
err = os.MkdirAll(filepath.Dir(path), 0o700)
55+
if err != nil {
5156
t.Fatalf("mkdir: %v", err)
5257
}
58+
5359
data := `{
5460
// allow comments + trailing commas
5561
keyring_backend: "file",
5662
}`
57-
if err := os.WriteFile(path, []byte(data), 0o600); err != nil {
63+
64+
err = os.WriteFile(path, []byte(data), 0o600)
65+
if err != nil {
5866
t.Fatalf("write config: %v", err)
5967
}
6068

6169
cfg, err := ReadConfig()
6270
if err != nil {
6371
t.Fatalf("ReadConfig: %v", err)
6472
}
65-
if got := strings.TrimSpace(cfg.KeyringBackend); got != "file" {
73+
74+
got := strings.TrimSpace(cfg.KeyringBackend)
75+
if got != "file" {
6676
t.Fatalf("expected keyring_backend=file, got %q", got)
6777
}
6878
}

internal/secrets/store.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,9 @@ func ResolveKeyringBackendInfo() (KeyringBackendInfo, error) {
6767

6868
cfg, err := config.ReadConfig()
6969
if err != nil {
70-
return KeyringBackendInfo{}, err
70+
return KeyringBackendInfo{}, fmt.Errorf("read config: %w", err)
7171
}
72+
7273
if cfg.KeyringBackend != "" {
7374
return KeyringBackendInfo{Value: cfg.KeyringBackend, Source: keyringBackendSourceConfig}, nil
7475
}

internal/secrets/store_test.go

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@ func TestResolveKeyringBackendInfo_Default(t *testing.T) {
1919
if err != nil {
2020
t.Fatalf("ResolveKeyringBackendInfo: %v", err)
2121
}
22+
2223
if info.Value != "auto" {
2324
t.Fatalf("expected auto, got %q", info.Value)
2425
}
26+
2527
if info.Source != keyringBackendSourceDefault {
2628
t.Fatalf("expected source default, got %q", info.Source)
2729
}
@@ -37,20 +39,26 @@ func TestResolveKeyringBackendInfo_Config(t *testing.T) {
3739
if err != nil {
3840
t.Fatalf("ConfigPath: %v", err)
3941
}
40-
if err := os.MkdirAll(filepath.Dir(path), 0o700); err != nil {
42+
43+
err = os.MkdirAll(filepath.Dir(path), 0o700)
44+
if err != nil {
4145
t.Fatalf("mkdir: %v", err)
4246
}
43-
if err := os.WriteFile(path, []byte(`{ keyring_backend: "file" }`), 0o600); err != nil {
47+
48+
err = os.WriteFile(path, []byte(`{ keyring_backend: "file" }`), 0o600)
49+
if err != nil {
4450
t.Fatalf("write config: %v", err)
4551
}
4652

4753
info, err := ResolveKeyringBackendInfo()
4854
if err != nil {
4955
t.Fatalf("ResolveKeyringBackendInfo: %v", err)
5056
}
57+
5158
if info.Value != "file" {
5259
t.Fatalf("expected file, got %q", info.Value)
5360
}
61+
5462
if info.Source != keyringBackendSourceConfig {
5563
t.Fatalf("expected source config, got %q", info.Source)
5664
}
@@ -66,20 +74,26 @@ func TestResolveKeyringBackendInfo_EnvOverridesConfig(t *testing.T) {
6674
if err != nil {
6775
t.Fatalf("ConfigPath: %v", err)
6876
}
69-
if err := os.MkdirAll(filepath.Dir(path), 0o700); err != nil {
77+
78+
err = os.MkdirAll(filepath.Dir(path), 0o700)
79+
if err != nil {
7080
t.Fatalf("mkdir: %v", err)
7181
}
72-
if err := os.WriteFile(path, []byte(`{ keyring_backend: "file" }`), 0o600); err != nil {
82+
83+
err = os.WriteFile(path, []byte(`{ keyring_backend: "file" }`), 0o600)
84+
if err != nil {
7385
t.Fatalf("write config: %v", err)
7486
}
7587

7688
info, err := ResolveKeyringBackendInfo()
7789
if err != nil {
7890
t.Fatalf("ResolveKeyringBackendInfo: %v", err)
7991
}
92+
8093
if info.Value != "keychain" {
8194
t.Fatalf("expected keychain, got %q", info.Value)
8295
}
96+
8397
if info.Source != keyringBackendSourceEnv {
8498
t.Fatalf("expected source env, got %q", info.Source)
8599
}
@@ -90,6 +104,7 @@ func TestAllowedBackends_Invalid(t *testing.T) {
90104
if err == nil {
91105
t.Fatalf("expected error")
92106
}
107+
93108
if !errors.Is(err, errInvalidKeyringBackend) {
94109
t.Fatalf("expected invalid backend error, got %v", err)
95110
}

0 commit comments

Comments
 (0)