17 Commits

Author SHA1 Message Date
argoyle ac93eacbbc docs: add CLAUDE.md for Claude Code integration 2025-12-31 22:11:47 +01:00
argoyle e96ce57940 Merge branch 'renovate/golang-1.25.5' into 'main'
chore(deps): update golang:1.25.5 docker digest to ad03ba9

See merge request unboundsoftware/shiny/presenter!105
2025-12-30 15:56:02 +01:00
Renovate 923e6a5585 chore(deps): update golang:1.25.5 docker digest to ad03ba9 2025-12-30 03:56:06 +00:00
argoyle b2617b1eb2 Merge branch 'renovate/github.com-99designs-gqlgen-0.x' into 'main'
fix(deps): update module github.com/99designs/gqlgen to v0.17.85

See merge request unboundsoftware/shiny/presenter!104
2025-12-17 08:27:13 +01:00
Renovate 023d0ed776 fix(deps): update module github.com/99designs/gqlgen to v0.17.85 2025-12-17 03:07:32 +00:00
argoyle f7c85d1e56 Merge branch 'renovate/golang-1.25.5' into 'main'
chore(deps): update golang:1.25.5 docker digest to 0c27bcf

See merge request unboundsoftware/shiny/presenter!103
2025-12-09 09:53:35 +01:00
Renovate f6632726c5 chore(deps): update golang:1.25.5 docker digest to 0c27bcf 2025-12-09 02:09:10 +00:00
argoyle 1d58e4afb1 Merge branch 'renovate/golangci-golangci-lint-2.x' into 'main'
chore(deps): update pre-commit hook golangci/golangci-lint to v2.7.2

See merge request unboundsoftware/shiny/presenter!102
2025-12-08 09:41:03 +01:00
Renovate 1b7274b421 chore(deps): update pre-commit hook golangci/golangci-lint to v2.7.2 2025-12-07 16:56:33 +00:00
argoyle e7bea420a7 Merge branch 'renovate/golangci-golangci-lint-2.x' into 'main'
chore(deps): update pre-commit hook golangci/golangci-lint to v2.7.1

See merge request unboundsoftware/shiny/presenter!101
2025-12-04 16:24:20 +01:00
Renovate 14b00f06d3 chore(deps): update pre-commit hook golangci/golangci-lint to v2.7.1 2025-12-04 14:56:55 +00:00
argoyle b286d56403 Merge branch 'renovate/golangci-golangci-lint-2.x' into 'main'
chore(deps): update pre-commit hook golangci/golangci-lint to v2.7.0

See merge request unboundsoftware/shiny/presenter!100
2025-12-04 08:28:03 +01:00
Renovate 5c1b8981d1 chore(deps): update pre-commit hook golangci/golangci-lint to v2.7.0 2025-12-03 19:56:19 +00:00
argoyle 9bb84fb008 Merge branch 'renovate/golang-1.x' into 'main'
chore(deps): update golang docker tag to v1.25.5

See merge request unboundsoftware/shiny/presenter!99
2025-12-02 19:39:54 +01:00
Renovate a3c4bcfe0f chore(deps): update golang docker tag to v1.25.5 2025-12-02 18:08:38 +00:00
argoyle 6deb62064d Merge branch 'renovate/gitleaks-gitleaks-8.x' into 'main'
chore(deps): update pre-commit hook gitleaks/gitleaks to v8.30.0

See merge request unboundsoftware/shiny/presenter!97
2025-11-27 00:03:58 +01:00
Renovate eb8cefdc83 chore(deps): update pre-commit hook gitleaks/gitleaks to v8.30.0 2025-11-26 18:56:37 +00:00
6 changed files with 50 additions and 7 deletions
+1
View File
@@ -1,2 +1,3 @@
.idea
.claude
/release
+2 -2
View File
@@ -7,7 +7,7 @@ include:
- project: unboundsoftware/ci-templates
file: Pre-Commit-Go.gitlab-ci.yml
image: amd64/golang:1.25.4@sha256:efe81fa41fdf81fb873ab7cd931b9bb29bd10aced6c252cbd91739c34e654f01
image: amd64/golang:1.25.5@sha256:ad03ba93327b8a6143b49373790b5d92c28067bdb814418509466122ee9c9e63
stages:
- deps
@@ -32,7 +32,7 @@ test:
vulnerabilities:
stage: test
image: amd64/golang:1.25.4@sha256:efe81fa41fdf81fb873ab7cd931b9bb29bd10aced6c252cbd91739c34e654f01
image: amd64/golang:1.25.5@sha256:ad03ba93327b8a6143b49373790b5d92c28067bdb814418509466122ee9c9e63
script:
- go install golang.org/x/vuln/cmd/govulncheck@latest
- govulncheck ./...
+2 -2
View File
@@ -37,10 +37,10 @@ repos:
- id: go-test
- id: gofumpt
- repo: https://github.com/golangci/golangci-lint
rev: v2.6.2
rev: v2.7.2
hooks:
- id: golangci-lint-full
- repo: https://github.com/gitleaks/gitleaks
rev: v8.29.1
rev: v8.30.0
hooks:
- id: gitleaks
+42
View File
@@ -0,0 +1,42 @@
# presenter
Shared Go library for GraphQL error presentation with coded errors.
## Shared Documentation
@../docs/claude/architecture.md
@../docs/claude/go-services.md
@../docs/claude/graphql.md
@../docs/claude/conventions.md
## Library Information
### Purpose
Provides a standardized GraphQL error presenter that handles coded errors across all microservices. Converts internal error codes to GraphQL error extensions.
### Usage
```go
import "gitlab.com/unboundsoftware/shiny/presenter"
// Create error presenter with valid codes and entities
errorPresenter := presenter.New(logger, validCodes, validEntities, internalErrorCode)
// Use in gqlgen server config
srv := handler.NewDefaultServer(generated.NewExecutableSchema(cfg))
srv.SetErrorPresenter(errorPresenter)
```
### Key Types
- `CodedError` - Error type with code, entity, and params
- `Code` - Error code type
- `Entity` - Error entity type
### Error Extensions
Errors are presented with extensions:
- `code` - The error code (mapped to valid codes or internal error)
- `errorEntity` - The entity related to the error (optional)
- `params` - Additional error parameters (optional)
+1 -1
View File
@@ -3,7 +3,7 @@ module gitlab.com/unboundsoftware/shiny/presenter
go 1.24.1
require (
github.com/99designs/gqlgen v0.17.84
github.com/99designs/gqlgen v0.17.85
github.com/stretchr/testify v1.11.1
github.com/vektah/gqlparser/v2 v2.5.31
)
+2 -2
View File
@@ -1,5 +1,5 @@
github.com/99designs/gqlgen v0.17.84 h1:iVMdiStgUVx/BFkMb0J5GAXlqfqtQ7bqMCYK6v52kQ0=
github.com/99designs/gqlgen v0.17.84/go.mod h1:qjoUqzTeiejdo+bwUg8unqSpeYG42XrcrQboGIezmFA=
github.com/99designs/gqlgen v0.17.85 h1:EkGx3U2FDcxQm8YDLQSpXIAVmpDyZ3IcBMOJi2nH1S0=
github.com/99designs/gqlgen v0.17.85/go.mod h1:yvs8s0bkQlRfqg03YXr3eR4OQUowVhODT/tHzCXnbOU=
github.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM=
github.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=