grokkit/internal/errors/errors.go
Greg Gauthier f0322a84bd
Some checks failed
CI / Test (push) Successful in 33s
CI / Lint (push) Failing after 17s
CI / Build (push) Successful in 21s
chore(lint): enhance golangci configuration and add security annotations
- Expand .golangci.yml with more linters (bodyclose, errcheck, etc.), settings for govet, revive, gocritic, gosec
- Add // nolint:gosec comments for intentional file operations and subprocesses
- Change file write permissions from 0644 to 0600 for better security
- Refactor loops, error handling, and test parallelism with t.Parallel()
- Minor fixes: ignore unused args, use errors.Is, adjust mkdir permissions to 0750
2026-03-04 20:00:32 +00:00

52 lines
980 B
Go

package errors
import "fmt"
// GitError represents errors from git operations
type GitError struct {
Command string
Err error
}
func (e *GitError) Error() string {
_ = e.Err // keep field used for error message
return fmt.Sprintf("git %s failed: %v", e.Command, e.Err)
}
func (e *GitError) Unwrap() error {
return e.Err
}
// APIError represents errors from Grok API calls
type APIError struct {
StatusCode int
Message string
Err error
}
func (e *APIError) Error() string {
if e.StatusCode > 0 {
return fmt.Sprintf("API error (status %d): %s", e.StatusCode, e.Message)
}
return fmt.Sprintf("API error: %s", e.Message)
}
func (e *APIError) Unwrap() error {
return e.Err
}
// FileError represents file operation errors
type FileError struct {
Path string
Op string
Err error
}
func (e *FileError) Error() string {
return fmt.Sprintf("file %s failed for %s: %v", e.Op, e.Path, e.Err)
}
func (e *FileError) Unwrap() error {
return e.Err
}