Initial release: Go Jdenticon library v0.1.0

- Core library with SVG and PNG generation
- CLI tool with generate and batch commands
- Cross-platform path handling for Windows compatibility
- Comprehensive test suite with integration tests
This commit is contained in:
Kevin McIntyre
2026-01-02 23:56:48 -05:00
parent f84b511895
commit d9e84812ff
292 changed files with 19725 additions and 38884 deletions

153
.golangci.yml Normal file
View File

@@ -0,0 +1,153 @@
run:
timeout: 5m
tests: true
modules-download-mode: readonly
linters-settings:
errcheck:
check-type-assertions: false
check-blank: false
exclude-functions:
- (io.Closer).Close
- (*github.com/spf13/pflag.FlagSet).GetString
- (*github.com/spf13/pflag.FlagSet).GetInt
- (*github.com/spf13/pflag.FlagSet).GetBool
- (github.com/spf13/viper).BindPFlag
- (*github.com/spf13/cobra.Command).MarkFlagRequired
- (*github.com/spf13/cobra.Command).RegisterFlagCompletionFunc
gocyclo:
min-complexity: 30
funlen:
lines: 100
statements: 60
govet:
enable-all: false
enable:
- assign
- atomic
- bools
- buildtag
- copylocks
- httpresponse
- loopclosure
- lostcancel
- nilfunc
- printf
- shadow
- shift
- unreachable
- unusedresult
misspell:
locale: US
staticcheck:
checks: ["all", "-SA4003"]
lll:
line-length: 140
goconst:
min-len: 3
min-occurrences: 5
revive:
rules:
- name: var-naming
disabled: true
- name: unused-parameter
disabled: true
- name: redefines-builtin-id
disabled: true
gosec:
excludes:
- G115 # integer overflow conversion - we handle this safely
- G306 # WriteFile permissions - public output files are fine
linters:
enable:
- bodyclose
- dogsled
- errcheck
- goconst
- gocritic
- gocyclo
- gofmt
- goimports
- gosec
- gosimple
- govet
- ineffassign
- misspell
- nakedret
- noctx
- nolintlint
- revive
- staticcheck
- typecheck
- unconvert
- unparam
- unused
- whitespace
disable:
- depguard
- funlen
- gochecknoinits
- lll
- prealloc
issues:
exclude-rules:
- path: _test\.go
linters:
- gocyclo
- errcheck
- dupl
- gosec
- funlen
- goconst
- path: cmd/
linters:
- gochecknoinits
- text: "weak cryptographic primitive"
linters:
- gosec
- path: example_
linters:
- lll
# Allow unlambda in cobra command setup
- text: "unlambda"
linters:
- gocritic
# Allow if-else chains in complex validation logic
- text: "ifElseChain"
linters:
- gocritic
# Allow elseif suggestions
- text: "elseif"
linters:
- gocritic
# Exclude appendAssign in specific cases
- text: "appendAssign"
linters:
- gocritic
# Allow assignOp suggestions
- text: "assignOp"
linters:
- gocritic
max-issues-per-linter: 0
max-same-issues: 0