-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Replace json-iterator/go with goccy/go-json #9566
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #9566 +/- ##
==========================================
+ Coverage 67.29% 67.32% +0.02%
==========================================
Files 209 209
Lines 29055 29052 -3
==========================================
+ Hits 19554 19560 +6
+ Misses 7814 7803 -11
- Partials 1687 1689 +2 🚀 New features to boost your workflow:
|
saschagrunert
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code LGTM, pulls in many additional files into vendor. Maybe we could try to get rid of the indirect github.com/json-iterator/go v1.1.12 dep in the future.
/hold
for more eyes on this.
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: saschagrunert, sohankunkerkar The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/lgtm |
|
It needs rebase. |
fab9765 to
bbac84d
Compare
WalkthroughReplaces json-iterator with github.com/goccy/go-json v0.10.5, updates imports and a few call sites to use the vendored go-json API, and adds the full vendored go-json implementation and ancillary files into vendor/. Changes
Estimated code review effort🎯 5 (Critical) | ⏱️ ~120 minutes Areas to review closely:
Suggested labels
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: defaults Review profile: CHILL Plan: Pro ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (7)
🚧 Files skipped from review as they are similar to previous changes (6)
🧰 Additional context used📓 Path-based instructions (1)**/*.go📄 CodeRabbit inference engine (AGENTS.md)
Files:
🧠 Learnings (2)📚 Learning: 2025-12-17T13:38:34.646ZApplied to files:
📚 Learning: 2025-12-18T13:28:24.244ZApplied to files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (31)
🔇 Additional comments (2)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
bbac84d to
0f9bd20
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR migrates from the unmaintained json-iterator/go library to the actively maintained goccy/go-json library to resolve a concurrent map panic issue (#9419). The changes consist entirely of vendored code additions for version 0.10.4 of goccy/go-json. The actual code migration (updating import statements) has already been completed in the main codebase.
- Added
goccy/go-json v0.10.4as a new dependency - Vendored all necessary internal packages for encoding, decoding, runtime, and error handling
- The library uses generated VM code for different encoding modes (standard, indented, colored, colored+indented)
Reviewed changes
Copilot reviewed 17 out of 100 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| vendor/modules.txt | Added dependency entry for goccy/go-json v0.10.4 and its internal packages |
| vendor/github.com/goccy/go-json/*.go | Core JSON API files including marshal/unmarshal, paths, queries, and options |
| vendor/github.com/goccy/go-json/internal/encoder/* | Encoder implementation with VM-based code generation for performance |
| vendor/github.com/goccy/go-json/internal/decoder/* | Decoder implementation for parsing JSON |
| vendor/github.com/goccy/go-json/internal/runtime/* | Runtime type introspection and struct field handling |
| vendor/github.com/goccy/go-json/internal/errors/* | Custom error types for JSON operations |
| vendor/github.com/goccy/go-json/internal/encoder/vm*/* | Generated VM code for different encoding modes (plain, indent, color, color+indent) |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
♻️ Duplicate comments (2)
vendor/github.com/goccy/go-json/.codecov.yml (1)
1-32: Development tooling file not needed in vendor directory.Similar to the docker-compose.yml file, this Codecov configuration is for the library's own CI/CD and is typically not necessary when vendoring.
vendor/github.com/goccy/go-json/.golangci.yml (1)
1-86: Linting configuration not needed in vendor directory.This golangci-lint configuration is for developing the library itself and is not needed when vendoring the dependency.
🧹 Nitpick comments (2)
vendor/github.com/goccy/go-json/docker-compose.yml (1)
1-13: Consider excluding development tooling files from vendor directory.This docker-compose.yml file is used for testing the goccy/go-json library itself during development. It's typically not necessary when vendoring a dependency. Consider configuring your vendoring tool to exclude such files (e.g., .yml, .codecov.yml, .golangci.yml, docker-compose.yml) to reduce vendor directory size.
vendor/github.com/goccy/go-json/internal/decoder/compile.go (1)
315-317: Minor: Typo in parameter name.The parameter
strutNameshould bestructNamefor consistency. However, since this is vendored upstream code, this would need to be fixed in the goccy/go-json repository rather than here.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
go.sumis excluded by!**/*.sum
📒 Files selected for processing (95)
go.mod(2 hunks)internal/config/seccomp/notifier.go(1 hunks)internal/config/seccomp/seccomp.go(2 hunks)internal/criocli/wipe.go(1 hunks)internal/lib/container_server.go(1 hunks)internal/oci/container.go(1 hunks)internal/oci/runtime_oci.go(1 hunks)internal/storage/image.go(2 hunks)internal/storage/runtime.go(1 hunks)internal/version/version.go(1 hunks)scripts/release/release_test.go(1 hunks)server/container_status.go(1 hunks)server/image_status.go(1 hunks)server/inspect.go(1 hunks)server/sandbox_run_freebsd.go(1 hunks)server/sandbox_run_linux.go(1 hunks)server/sandbox_status.go(1 hunks)vendor/github.com/goccy/go-json/.codecov.yml(1 hunks)vendor/github.com/goccy/go-json/.gitignore(1 hunks)vendor/github.com/goccy/go-json/.golangci.yml(1 hunks)vendor/github.com/goccy/go-json/CHANGELOG.md(1 hunks)vendor/github.com/goccy/go-json/LICENSE(1 hunks)vendor/github.com/goccy/go-json/Makefile(1 hunks)vendor/github.com/goccy/go-json/README.md(1 hunks)vendor/github.com/goccy/go-json/color.go(1 hunks)vendor/github.com/goccy/go-json/decode.go(1 hunks)vendor/github.com/goccy/go-json/docker-compose.yml(1 hunks)vendor/github.com/goccy/go-json/encode.go(1 hunks)vendor/github.com/goccy/go-json/error.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/array.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/assign.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/bool.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/bytes.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/compile.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/compile_norace.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/compile_race.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/context.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/float.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/func.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/int.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/interface.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/invalid.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/map.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/number.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/option.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/path.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/ptr.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/slice.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/stream.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/string.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/struct.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/type.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/uint.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/wrapped_string.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/code.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compact.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compiler.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compiler_norace.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compiler_race.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/context.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/decode_rune.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/encoder.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/indent.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/int.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/map112.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/map113.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/opcode.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/option.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/optype.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/query.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/string.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/string_table.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm/hack.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color/hack.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/hack.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/errors/error.go(1 hunks)vendor/github.com/goccy/go-json/internal/runtime/rtype.go(1 hunks)vendor/github.com/goccy/go-json/internal/runtime/struct_field.go(1 hunks)vendor/github.com/goccy/go-json/internal/runtime/type.go(1 hunks)vendor/github.com/goccy/go-json/json.go(1 hunks)vendor/github.com/goccy/go-json/option.go(1 hunks)vendor/github.com/goccy/go-json/path.go(1 hunks)vendor/github.com/goccy/go-json/query.go(1 hunks)vendor/modules.txt(1 hunks)
🧰 Additional context used
📓 Path-based instructions (3)
**/*.go
📄 CodeRabbit inference engine (AGENTS.md)
**/*.go: Use interface-based design and dependency injection patterns in Go code
Propagate context.Context through function calls in Go code
Usefmt.Errorfwith%wfor error wrapping in Go code
Use logrus with structured fields for logging in Go code
Add comments explaining 'why' not 'what' in Go code
Use platform-specific file naming:*_{linux,freebsd}.gofor platform-dependent code
Files:
server/inspect.goserver/container_status.goserver/sandbox_run_linux.gointernal/oci/runtime_oci.goserver/sandbox_status.govendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/debug_vm.govendor/github.com/goccy/go-json/internal/encoder/compiler_race.govendor/github.com/goccy/go-json/internal/encoder/map112.goserver/sandbox_run_freebsd.govendor/github.com/goccy/go-json/internal/decoder/wrapped_string.govendor/github.com/goccy/go-json/internal/encoder/vm_color/debug_vm.govendor/github.com/goccy/go-json/internal/encoder/vm/hack.govendor/github.com/goccy/go-json/internal/decoder/invalid.govendor/github.com/goccy/go-json/internal/decoder/string.govendor/github.com/goccy/go-json/internal/encoder/vm_indent/debug_vm.govendor/github.com/goccy/go-json/internal/decoder/func.govendor/github.com/goccy/go-json/internal/encoder/vm_indent/util.govendor/github.com/goccy/go-json/internal/encoder/vm/debug_vm.gointernal/config/seccomp/seccomp.goserver/image_status.gointernal/version/version.govendor/github.com/goccy/go-json/internal/encoder/compiler_norace.govendor/github.com/goccy/go-json/internal/decoder/compile_norace.govendor/github.com/goccy/go-json/internal/decoder/type.govendor/github.com/goccy/go-json/internal/decoder/option.govendor/github.com/goccy/go-json/internal/encoder/vm/util.govendor/github.com/goccy/go-json/internal/decoder/compile_race.govendor/github.com/goccy/go-json/internal/decoder/context.govendor/github.com/goccy/go-json/internal/decoder/bool.govendor/github.com/goccy/go-json/internal/decoder/float.gointernal/oci/container.govendor/github.com/goccy/go-json/query.govendor/github.com/goccy/go-json/internal/encoder/string.gointernal/storage/runtime.govendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.goscripts/release/release_test.govendor/github.com/goccy/go-json/internal/encoder/indent.gointernal/config/seccomp/notifier.govendor/github.com/goccy/go-json/internal/encoder/query.govendor/github.com/goccy/go-json/internal/encoder/option.govendor/github.com/goccy/go-json/internal/decoder/uint.govendor/github.com/goccy/go-json/internal/decoder/assign.govendor/github.com/goccy/go-json/internal/decoder/number.govendor/github.com/goccy/go-json/internal/encoder/vm_color/hack.govendor/github.com/goccy/go-json/internal/decoder/bytes.govendor/github.com/goccy/go-json/internal/encoder/decode_rune.govendor/github.com/goccy/go-json/internal/runtime/struct_field.govendor/github.com/goccy/go-json/internal/encoder/context.govendor/github.com/goccy/go-json/internal/runtime/type.govendor/github.com/goccy/go-json/color.govendor/github.com/goccy/go-json/path.govendor/github.com/goccy/go-json/error.govendor/github.com/goccy/go-json/internal/decoder/interface.govendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.gointernal/criocli/wipe.govendor/github.com/goccy/go-json/internal/encoder/vm_indent/hack.gointernal/storage/image.govendor/github.com/goccy/go-json/internal/encoder/optype.gointernal/lib/container_server.govendor/github.com/goccy/go-json/internal/decoder/compile.govendor/github.com/goccy/go-json/internal/decoder/anonymous_field.govendor/github.com/goccy/go-json/internal/decoder/map.govendor/github.com/goccy/go-json/internal/decoder/stream.govendor/github.com/goccy/go-json/internal/encoder/map113.govendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/util.govendor/github.com/goccy/go-json/internal/decoder/ptr.govendor/github.com/goccy/go-json/json.govendor/github.com/goccy/go-json/internal/decoder/array.govendor/github.com/goccy/go-json/internal/encoder/compact.govendor/github.com/goccy/go-json/option.govendor/github.com/goccy/go-json/internal/encoder/int.govendor/github.com/goccy/go-json/internal/decoder/int.govendor/github.com/goccy/go-json/internal/encoder/string_table.govendor/github.com/goccy/go-json/encode.govendor/github.com/goccy/go-json/internal/runtime/rtype.govendor/github.com/goccy/go-json/decode.govendor/github.com/goccy/go-json/internal/decoder/struct.govendor/github.com/goccy/go-json/internal/decoder/slice.govendor/github.com/goccy/go-json/internal/decoder/path.govendor/github.com/goccy/go-json/internal/encoder/opcode.govendor/github.com/goccy/go-json/internal/errors/error.govendor/github.com/goccy/go-json/internal/encoder/vm_color/util.govendor/github.com/goccy/go-json/internal/encoder/encoder.govendor/github.com/goccy/go-json/internal/encoder/compiler.govendor/github.com/goccy/go-json/internal/encoder/code.go
**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
Edit
.mdsource files for documentation, not generated files
Files:
vendor/github.com/goccy/go-json/CHANGELOG.mdvendor/github.com/goccy/go-json/README.md
**/*_test.go
📄 CodeRabbit inference engine (AGENTS.md)
Use
*_test.gonaming convention for unit test files
Files:
scripts/release/release_test.go
🧠 Learnings (5)
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Applies to **/*.go : Use interface-based design and dependency injection patterns in Go code
Applied to files:
server/inspect.goserver/sandbox_run_linux.go
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Check `internal/version/version.go` for current version and supported versions
Applied to files:
server/sandbox_run_linux.gointernal/oci/runtime_oci.gointernal/oci/container.gogo.mod
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Check `go.mod` for Go version and dependency requirements
Applied to files:
scripts/release/release_test.govendor/modules.txtgo.mod
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Applies to **/*.go : Use logrus with structured fields for logging in Go code
Applied to files:
scripts/release/release_test.govendor/github.com/goccy/go-json/internal/runtime/struct_field.gointernal/lib/container_server.go
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Applies to **/*.go : Propagate context.Context through function calls in Go code
Applied to files:
go.mod
🧬 Code graph analysis (38)
vendor/github.com/goccy/go-json/internal/encoder/compiler_race.go (4)
vendor/github.com/goccy/go-json/internal/encoder/compiler_norace.go (1)
CompileToGetCodeSet(6-33)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/encoder.go (1)
OpcodeSet(96-107)
vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
MapIterValue(9-9)
vendor/github.com/goccy/go-json/internal/decoder/wrapped_string.go (5)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/decode.go (1)
Decoder(15-17)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/encoder/vm_color/debug_vm.go (4)
vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/encoder.go (1)
OpcodeSet(96-107)vendor/github.com/goccy/go-json/internal/encoder/option.go (2)
Option(21-27)HTMLEscapeOption(11-11)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)
vendor/github.com/goccy/go-json/internal/decoder/invalid.go (3)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/error.go (1)
UnmarshalTypeError(33-33)vendor/github.com/goccy/go-json/internal/errors/error.go (1)
UnmarshalTypeError(76-82)
vendor/github.com/goccy/go-json/internal/decoder/func.go (3)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/errors/error.go (2)
UnmarshalTypeError(76-82)ErrInvalidBeginningOfValue(159-164)
internal/config/seccomp/seccomp.go (1)
vendor/github.com/goccy/go-json/internal/encoder/query.go (1)
Marshal(10-10)
vendor/github.com/goccy/go-json/internal/decoder/compile_norace.go (4)
vendor/github.com/goccy/go-json/internal/decoder/compile_race.go (1)
CompileToGetDecoder(15-38)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/decode.go (1)
Decoder(15-17)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)
vendor/github.com/goccy/go-json/internal/decoder/option.go (2)
vendor/github.com/goccy/go-json/internal/decoder/path.go (1)
Path(315-320)vendor/github.com/goccy/go-json/path.go (1)
Path(32-34)
vendor/github.com/goccy/go-json/internal/encoder/vm/util.go (10)
vendor/github.com/goccy/go-json/internal/encoder/int.go (2)
AppendInt(80-132)AppendUint(134-176)vendor/github.com/goccy/go-json/internal/encoder/encoder.go (9)
AppendFloat32(332-344)AppendFloat64(346-356)AppendNumber(385-396)MapIterInit(300-300)MapIterKey(304-304)MapIterNext(308-308)MapLen(312-312)AppendMarshalJSON(398-449)AppendMarshalText(501-522)vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/optype.go (1)
OpType(428-428)vendor/github.com/goccy/go-json/json.go (1)
Number(303-303)vendor/github.com/goccy/go-json/internal/runtime/type.go (1)
SliceHeader(8-12)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)
vendor/github.com/goccy/go-json/internal/decoder/context.go (3)
vendor/github.com/goccy/go-json/internal/decoder/option.go (1)
Option(13-17)vendor/github.com/goccy/go-json/internal/encoder/context.go (3)
RuntimeContext(71-82)TakeRuntimeContext(99-101)ReleaseRuntimeContext(103-105)vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrExceededMaxDepth(124-129)ErrUnexpectedEndOfJSON(135-140)ErrInvalidCharacter(146-157)
vendor/github.com/goccy/go-json/internal/decoder/bool.go (3)
vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/errors/error.go (1)
ErrUnexpectedEndOfJSON(135-140)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/decoder/float.go (3)
vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/errors/error.go (2)
ErrUnexpectedEndOfJSON(135-140)ErrSyntax(112-114)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/encoder/string.go (4)
vendor/github.com/goccy/go-json/internal/runtime/type.go (1)
SliceHeader(8-12)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/option.go (3)
Option(21-27)HTMLEscapeOption(11-11)NormalizeUTF8Option(17-17)
vendor/github.com/goccy/go-json/internal/encoder/query.go (2)
vendor/github.com/goccy/go-json/query.go (4)
FieldQuery(11-11)FieldQueryString(12-12)FieldQueryFromContext(17-17)SetFieldQueryToContext(19-19)vendor/github.com/goccy/go-json/json.go (2)
Marshal(169-171)Unmarshal(273-275)
vendor/github.com/goccy/go-json/internal/encoder/option.go (1)
vendor/github.com/goccy/go-json/color.go (1)
ColorScheme(11-11)
vendor/github.com/goccy/go-json/internal/decoder/uint.go (4)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/internal/errors/error.go (2)
UnmarshalTypeError(76-82)ErrUnexpectedEndOfJSON(135-140)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/decoder/bytes.go (6)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (3)
Type(9-9)PtrTo(241-241)RType2Type(253-253)vendor/github.com/goccy/go-json/decode.go (1)
Decoder(15-17)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/errors/error.go (1)
UnmarshalTypeError(76-82)
vendor/github.com/goccy/go-json/internal/runtime/type.go (1)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)
vendor/github.com/goccy/go-json/color.go (1)
vendor/github.com/goccy/go-json/internal/encoder/option.go (2)
ColorFormat(47-47)ColorScheme(46-46)
vendor/github.com/goccy/go-json/path.go (4)
vendor/github.com/goccy/go-json/internal/decoder/path.go (4)
Path(315-320)PathString(12-12)SingleQuotePathSelector(311-311)DoubleQuotePathSelector(312-312)vendor/github.com/goccy/go-json/option.go (1)
DecodeOptionFunc(67-67)vendor/github.com/goccy/go-json/json.go (1)
Unmarshal(273-275)vendor/github.com/goccy/go-json/internal/decoder/assign.go (1)
AssignValue(13-23)
vendor/github.com/goccy/go-json/error.go (1)
vendor/github.com/goccy/go-json/internal/errors/error.go (9)
InvalidUTF8Error(9-11)InvalidUnmarshalError(17-19)MarshalerError(33-37)SyntaxError(51-54)UnmarshalFieldError(62-66)UnmarshalTypeError(76-82)UnsupportedTypeError(95-97)UnsupportedValueError(103-106)PathError(166-168)
internal/storage/image.go (1)
vendor/github.com/goccy/go-json/encode.go (1)
NewEncoder(26-28)
vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go (5)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/decode.go (1)
Decoder(15-17)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrInvalidCharacter(146-157)ErrExceededMaxDepth(124-129)ErrUnexpectedEndOfJSON(135-140)
vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
MapIterValue(9-9)
vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/util.go (10)
vendor/github.com/goccy/go-json/internal/encoder/encoder.go (2)
AppendIndent(573-580)AppendStructEndIndent(563-571)vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/json.go (2)
Number(303-303)Indent(330-332)vendor/github.com/goccy/go-json/internal/runtime/type.go (1)
SliceHeader(8-12)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/decoder/option.go (1)
Option(13-17)vendor/github.com/goccy/go-json/internal/encoder/option.go (2)
Option(21-27)ColorScheme(46-46)vendor/github.com/goccy/go-json/internal/encoder/int.go (2)
AppendInt(80-132)AppendUint(134-176)
vendor/github.com/goccy/go-json/internal/decoder/ptr.go (4)
vendor/github.com/goccy/go-json/decode.go (1)
Decoder(15-17)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/decoder/array.go (4)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrExceededMaxDepth(124-129)ErrUnexpectedEndOfJSON(135-140)ErrInvalidCharacter(146-157)
vendor/github.com/goccy/go-json/option.go (3)
vendor/github.com/goccy/go-json/internal/decoder/option.go (2)
Option(13-17)FirstWinOption(8-8)vendor/github.com/goccy/go-json/internal/encoder/option.go (6)
Option(21-27)UnorderedMapOption(13-13)HTMLEscapeOption(11-11)NormalizeUTF8Option(17-17)DebugOption(14-14)ColorScheme(46-46)vendor/github.com/goccy/go-json/color.go (1)
ColorScheme(11-11)
vendor/github.com/goccy/go-json/internal/encoder/int.go (2)
vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)
vendor/github.com/goccy/go-json/decode.go (8)
vendor/github.com/goccy/go-json/internal/decoder/stream.go (2)
Stream(17-29)NewStream(31-38)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/option.go (1)
DecodeOptionFunc(67-67)vendor/github.com/goccy/go-json/internal/decoder/compile_norace.go (1)
CompileToGetDecoder(12-30)vendor/github.com/goccy/go-json/internal/decoder/context.go (2)
TakeRuntimeContext(25-27)ReleaseRuntimeContext(29-31)vendor/github.com/goccy/go-json/internal/decoder/option.go (1)
Option(13-17)vendor/github.com/goccy/go-json/path.go (1)
Path(32-34)vendor/github.com/goccy/go-json/internal/errors/error.go (1)
ErrSyntax(112-114)
vendor/github.com/goccy/go-json/internal/decoder/slice.go (3)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (3)
Type2RType(260-262)Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/errors/error.go (3)
UnmarshalTypeError(76-82)ErrUnexpectedEndOfJSON(135-140)ErrInvalidCharacter(146-157)
vendor/github.com/goccy/go-json/internal/decoder/path.go (5)
vendor/github.com/goccy/go-json/path.go (1)
Path(32-34)vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrEmptyPath(181-183)ErrInvalidPath(174-179)PathError(166-168)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/internal/decoder/assign.go (1)
AssignValue(13-23)vendor/github.com/goccy/go-json/internal/runtime/struct_field.go (1)
StructTagFromField(68-91)
vendor/github.com/goccy/go-json/internal/encoder/opcode.go (4)
vendor/github.com/goccy/go-json/internal/encoder/optype.go (6)
CodeType(8-8)CodeArrayHead(12-12)CodeSliceHead(14-14)CodeMapHead(16-16)CodeMapValue(18-18)CodeMapEnd(19-19)vendor/github.com/goccy/go-json/internal/encoder/encoder.go (1)
CompiledCode(122-127)vendor/github.com/goccy/go-json/internal/encoder/query.go (1)
FieldQuery(14-18)vendor/github.com/goccy/go-json/internal/runtime/type.go (1)
SliceHeader(8-12)
vendor/github.com/goccy/go-json/internal/errors/error.go (1)
vendor/github.com/goccy/go-json/error.go (9)
InvalidUTF8Error(13-13)InvalidUnmarshalError(17-17)MarshalerError(20-20)SyntaxError(23-23)UnmarshalFieldError(29-29)UnmarshalTypeError(33-33)UnsupportedTypeError(37-37)UnsupportedValueError(39-39)PathError(41-41)
vendor/github.com/goccy/go-json/internal/encoder/vm_color/util.go (5)
vendor/github.com/goccy/go-json/internal/encoder/encoder.go (12)
ErrUnsupportedValue(190-199)ErrUnsupportedFloat(201-206)MapIterInit(300-300)MapIterKey(304-304)MapIterNext(308-308)MapLen(312-312)AppendFloat32(332-344)AppendFloat64(346-356)AppendByteSlice(314-330)AppendNumber(385-396)AppendMarshalJSON(398-449)AppendMarshalText(501-522)vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)vendor/github.com/goccy/go-json/internal/encoder/int.go (2)
AppendInt(80-132)AppendUint(134-176)
vendor/github.com/goccy/go-json/internal/encoder/compiler.go (8)
vendor/github.com/goccy/go-json/internal/encoder/encoder.go (2)
OpcodeSet(96-107)CompiledCode(122-127)vendor/github.com/goccy/go-json/internal/runtime/type.go (2)
TypeAddr(18-23)AnalyzeTypeAddr(36-100)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/query.go (1)
FieldQueryFromContext(121-131)vendor/github.com/goccy/go-json/internal/encoder/code.go (4)
Code(11-15)StructCode(373-380)Opcodes(21-21)StructFieldCode(599-612)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)vendor/github.com/goccy/go-json/internal/encoder/optype.go (1)
OpRecursiveEnd(443-443)
🪛 checkmake (0.2.2)
vendor/github.com/goccy/go-json/Makefile
[warning] 37-37: Missing required phony target "all"
(minphony)
[warning] 37-37: Missing required phony target "clean"
(minphony)
[warning] 37-37: Missing required phony target "test"
(minphony)
🪛 LanguageTool
vendor/github.com/goccy/go-json/CHANGELOG.md
[grammar] ~348-~348: Use a hyphen to join words.
Context: ...x decoder * Fix decoder for invalid top level value ( #184 ) * Fix decoder for i...
(QB_NEW_EN_HYPHEN)
[uncategorized] ~415-~415: Do not mix variants of the same word (‘prefilled’ and ‘pre-filled’) within a single text.
Context: ...ding of invalid value * Fix decoding of prefilled value * Fix not being able to return Un...
(EN_WORD_COHERENCY)
[grammar] ~419-~419: Use a hyphen to join words.
Context: ...ecoding of type of null string * Use pre allocated pointer if exists it at decodi...
(QB_NEW_EN_HYPHEN)
vendor/github.com/goccy/go-json/README.md
[style] ~76-~76: Consider a more formal alternative to strengthen your wording.
Context: ...) Benchmarking gave very slow results. It seems that it is assumed that the user will u...
(SEEM_APPEAR)
[style] ~77-~77: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...user will use the buffer pool properly. Also, development seems to have already stop...
(REP_SENT_START_ALSO)
[grammar] ~298-~298: Ensure spelling is correct
Context: ...s to 3 opcodes ! Reducing the number of opcodees means reducing the number of branches w...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~356-~356: Consider using an alternative to strengthen your wording.
Context: ... based process described above. If you want to know more, please refer to the imple...
(WANT_KEEN)
[style] ~365-~365: Consider a more concise word here.
Context: ...aracter inspection using NUL character In order to decode, you have to traverse the input ...
(IN_ORDER_TO_PREMIUM)
[style] ~514-~514: Consider using a synonym to be more concise.
Context: ... memory usage. ### Others I have done a lot of other optimizations. I will find time t...
(A_LOT_OF)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (14)
- GitHub Check: rpm-build:fedora-43-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-aarch64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-aarch64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-aarch64:fedora-rawhide
- GitHub Check: CodeQL analysis (go)
- GitHub Check: Agent
Migrate from unmaintained json-iterator/go to actively maintained goccy/go-json to fix concurrent map panic (issue cri-o#9419). Fixes cri-o#9419 Signed-off-by: Sohan Kunkerkar <[email protected]>
0f9bd20 to
3cead51
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (1)
vendor/github.com/goccy/go-json/.codecov.yml (1)
1-32: Vendored Codecov configuration files in vendor/ should be excluded for repository hygiene.CRI-O has a root-level
.codecov.ymlwhich takes precedence according to Codecov's documented behavior. While the vendored.codecov.ymlfiles (including this one from goccy/go-json) won't override CRI-O's configuration, they are unnecessarily scanned by Codecov during CI/CD. To follow best practices and avoid confusion, configure Codecov to exclude the vendor directory or remove CI/CD configuration files from vendored dependencies.Consider adding
folders_to_ignore: ["vendor"]to the root.codecov.ymlor explicitly specifyingsearch_rootto prevent unnecessary scanning of vendored libraries.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
go.sumis excluded by!**/*.sum
📒 Files selected for processing (94)
go.mod(2 hunks)internal/config/seccomp/notifier.go(1 hunks)internal/config/seccomp/seccomp.go(2 hunks)internal/criocli/wipe.go(1 hunks)internal/lib/container_server.go(1 hunks)internal/oci/container.go(1 hunks)internal/oci/runtime_oci.go(1 hunks)internal/storage/image.go(2 hunks)internal/storage/runtime.go(1 hunks)internal/version/version.go(1 hunks)scripts/release/release_test.go(1 hunks)server/container_status.go(1 hunks)server/image_status.go(1 hunks)server/inspect.go(1 hunks)server/sandbox_run_freebsd.go(1 hunks)server/sandbox_run_linux.go(1 hunks)server/sandbox_status.go(1 hunks)vendor/github.com/goccy/go-json/.codecov.yml(1 hunks)vendor/github.com/goccy/go-json/.gitignore(1 hunks)vendor/github.com/goccy/go-json/.golangci.yml(1 hunks)vendor/github.com/goccy/go-json/CHANGELOG.md(1 hunks)vendor/github.com/goccy/go-json/LICENSE(1 hunks)vendor/github.com/goccy/go-json/Makefile(1 hunks)vendor/github.com/goccy/go-json/README.md(1 hunks)vendor/github.com/goccy/go-json/color.go(1 hunks)vendor/github.com/goccy/go-json/decode.go(1 hunks)vendor/github.com/goccy/go-json/docker-compose.yml(1 hunks)vendor/github.com/goccy/go-json/encode.go(1 hunks)vendor/github.com/goccy/go-json/error.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/array.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/assign.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/bool.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/bytes.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/compile.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/compile_norace.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/compile_race.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/context.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/float.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/func.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/int.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/interface.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/invalid.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/map.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/number.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/option.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/path.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/ptr.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/slice.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/stream.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/string.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/struct.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/type.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/uint.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/wrapped_string.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/code.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compact.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compiler.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compiler_norace.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compiler_race.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/context.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/decode_rune.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/encoder.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/indent.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/int.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/map112.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/map113.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/opcode.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/option.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/optype.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/query.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/string.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/string_table.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm/hack.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color/hack.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/hack.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/errors/error.go(1 hunks)vendor/github.com/goccy/go-json/internal/runtime/rtype.go(1 hunks)vendor/github.com/goccy/go-json/internal/runtime/struct_field.go(1 hunks)vendor/github.com/goccy/go-json/internal/runtime/type.go(1 hunks)vendor/github.com/goccy/go-json/json.go(1 hunks)vendor/github.com/goccy/go-json/option.go(1 hunks)vendor/github.com/goccy/go-json/path.go(1 hunks)vendor/github.com/goccy/go-json/query.go(1 hunks)
✅ Files skipped from review due to trivial changes (4)
- vendor/github.com/goccy/go-json/.gitignore
- vendor/github.com/goccy/go-json/internal/decoder/func.go
- vendor/github.com/goccy/go-json/docker-compose.yml
- vendor/github.com/goccy/go-json/LICENSE
🚧 Files skipped from review as they are similar to previous changes (35)
- server/sandbox_run_freebsd.go
- internal/storage/runtime.go
- internal/config/seccomp/notifier.go
- scripts/release/release_test.go
- server/container_status.go
- vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/debug_vm.go
- vendor/github.com/goccy/go-json/.golangci.yml
- server/inspect.go
- internal/version/version.go
- vendor/github.com/goccy/go-json/internal/decoder/invalid.go
- vendor/github.com/goccy/go-json/internal/decoder/bytes.go
- vendor/github.com/goccy/go-json/internal/encoder/decode_rune.go
- vendor/github.com/goccy/go-json/internal/decoder/compile_norace.go
- vendor/github.com/goccy/go-json/internal/encoder/vm_color/hack.go
- internal/lib/container_server.go
- go.mod
- vendor/github.com/goccy/go-json/internal/decoder/float.go
- server/image_status.go
- internal/storage/image.go
- vendor/github.com/goccy/go-json/internal/decoder/bool.go
- vendor/github.com/goccy/go-json/internal/encoder/string_table.go
- vendor/github.com/goccy/go-json/internal/encoder/vm_indent/util.go
- vendor/github.com/goccy/go-json/internal/decoder/compile_race.go
- internal/oci/runtime_oci.go
- vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/util.go
- vendor/github.com/goccy/go-json/json.go
- vendor/github.com/goccy/go-json/option.go
- vendor/github.com/goccy/go-json/error.go
- vendor/github.com/goccy/go-json/internal/encoder/vm_color/debug_vm.go
- server/sandbox_run_linux.go
- vendor/github.com/goccy/go-json/internal/encoder/vm_color/util.go
- vendor/github.com/goccy/go-json/internal/encoder/vm/util.go
- vendor/github.com/goccy/go-json/internal/decoder/assign.go
- vendor/github.com/goccy/go-json/internal/encoder/vm_indent/hack.go
- vendor/github.com/goccy/go-json/internal/encoder/code.go
🧰 Additional context used
📓 Path-based instructions (2)
**/*.go
📄 CodeRabbit inference engine (AGENTS.md)
**/*.go: Use interface-based design and dependency injection patterns in Go code
Propagate context.Context through function calls in Go code
Usefmt.Errorfwith%wfor error wrapping in Go code
Use logrus with structured fields for logging in Go code
Add comments explaining 'why' not 'what' in Go code
Use platform-specific file naming:*_{linux,freebsd}.gofor platform-dependent code
Files:
internal/oci/container.govendor/github.com/goccy/go-json/internal/encoder/indent.govendor/github.com/goccy/go-json/internal/decoder/type.govendor/github.com/goccy/go-json/internal/encoder/map113.govendor/github.com/goccy/go-json/internal/decoder/option.govendor/github.com/goccy/go-json/internal/decoder/interface.govendor/github.com/goccy/go-json/internal/decoder/ptr.govendor/github.com/goccy/go-json/internal/decoder/compile.govendor/github.com/goccy/go-json/internal/decoder/stream.gointernal/criocli/wipe.govendor/github.com/goccy/go-json/internal/runtime/struct_field.govendor/github.com/goccy/go-json/internal/encoder/vm/debug_vm.govendor/github.com/goccy/go-json/internal/encoder/int.govendor/github.com/goccy/go-json/internal/decoder/array.govendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.goserver/sandbox_status.govendor/github.com/goccy/go-json/internal/encoder/compiler_norace.govendor/github.com/goccy/go-json/internal/encoder/option.govendor/github.com/goccy/go-json/encode.govendor/github.com/goccy/go-json/internal/decoder/slice.govendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.govendor/github.com/goccy/go-json/path.govendor/github.com/goccy/go-json/internal/encoder/map112.govendor/github.com/goccy/go-json/internal/runtime/type.govendor/github.com/goccy/go-json/internal/encoder/optype.govendor/github.com/goccy/go-json/internal/encoder/vm/hack.govendor/github.com/goccy/go-json/internal/decoder/wrapped_string.govendor/github.com/goccy/go-json/internal/decoder/context.govendor/github.com/goccy/go-json/internal/decoder/string.govendor/github.com/goccy/go-json/internal/encoder/context.govendor/github.com/goccy/go-json/query.govendor/github.com/goccy/go-json/internal/encoder/compiler_race.govendor/github.com/goccy/go-json/internal/decoder/path.govendor/github.com/goccy/go-json/decode.govendor/github.com/goccy/go-json/internal/decoder/uint.govendor/github.com/goccy/go-json/internal/encoder/opcode.govendor/github.com/goccy/go-json/internal/decoder/number.gointernal/config/seccomp/seccomp.govendor/github.com/goccy/go-json/internal/decoder/struct.govendor/github.com/goccy/go-json/internal/errors/error.govendor/github.com/goccy/go-json/internal/decoder/int.govendor/github.com/goccy/go-json/internal/encoder/string.govendor/github.com/goccy/go-json/internal/encoder/query.govendor/github.com/goccy/go-json/internal/encoder/vm_indent/debug_vm.govendor/github.com/goccy/go-json/internal/runtime/rtype.govendor/github.com/goccy/go-json/color.govendor/github.com/goccy/go-json/internal/encoder/compact.govendor/github.com/goccy/go-json/internal/decoder/anonymous_field.govendor/github.com/goccy/go-json/internal/encoder/compiler.govendor/github.com/goccy/go-json/internal/encoder/encoder.govendor/github.com/goccy/go-json/internal/decoder/map.go
**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
Edit
.mdsource files for documentation, not generated files
Files:
vendor/github.com/goccy/go-json/README.mdvendor/github.com/goccy/go-json/CHANGELOG.md
🧠 Learnings (3)
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Check `internal/version/version.go` for current version and supported versions
Applied to files:
internal/oci/container.go
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Applies to **/*.go : Use interface-based design and dependency injection patterns in Go code
Applied to files:
vendor/github.com/goccy/go-json/internal/decoder/interface.goserver/sandbox_status.go
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Applies to **/*.go : Use logrus with structured fields for logging in Go code
Applied to files:
vendor/github.com/goccy/go-json/internal/runtime/struct_field.go
🧬 Code graph analysis (33)
vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
MapIterValue(9-9)
vendor/github.com/goccy/go-json/internal/decoder/option.go (2)
vendor/github.com/goccy/go-json/internal/decoder/path.go (1)
Path(315-320)vendor/github.com/goccy/go-json/path.go (1)
Path(32-34)
vendor/github.com/goccy/go-json/internal/decoder/interface.go (7)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)Type2RType(260-262)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/errors/error.go (2)
ErrUnexpectedEndOfJSON(135-140)ErrInvalidBeginningOfValue(159-164)vendor/github.com/goccy/go-json/internal/decoder/compile_norace.go (1)
CompileToGetDecoder(12-30)vendor/github.com/goccy/go-json/internal/decoder/compile_race.go (1)
CompileToGetDecoder(15-38)
vendor/github.com/goccy/go-json/internal/decoder/ptr.go (4)
vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/decoder/compile.go (5)
vendor/github.com/goccy/go-json/json.go (1)
Number(303-303)vendor/github.com/goccy/go-json/internal/runtime/type.go (2)
TypeAddr(18-23)AnalyzeTypeAddr(36-100)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (3)
Type(9-9)PtrTo(241-241)Type2RType(260-262)vendor/github.com/goccy/go-json/internal/runtime/struct_field.go (3)
StructTags(40-40)IsIgnoredStructField(13-30)StructTagFromField(68-91)
vendor/github.com/goccy/go-json/internal/decoder/stream.go (4)
vendor/sigs.k8s.io/yaml/yaml.go (1)
DisallowUnknownFields(423-426)vendor/github.com/goccy/go-json/internal/decoder/option.go (1)
Option(13-17)vendor/github.com/goccy/go-json/json.go (3)
Token(300-300)Delim(311-311)Number(303-303)vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrInvalidCharacter(146-157)ErrExceededMaxDepth(124-129)ErrUnexpectedEndOfJSON(135-140)
vendor/github.com/goccy/go-json/internal/encoder/vm/debug_vm.go (5)
vendor/github.com/goccy/go-json/internal/encoder/vm_color/debug_vm.go (1)
DebugRun(9-35)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)vendor/github.com/goccy/go-json/internal/encoder/option.go (2)
Option(21-27)HTMLEscapeOption(11-11)vendor/github.com/goccy/go-json/internal/encoder/vm/vm.go (1)
Run(14-4859)
vendor/github.com/goccy/go-json/internal/encoder/int.go (3)
vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)
vendor/github.com/goccy/go-json/internal/decoder/array.go (5)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrExceededMaxDepth(124-129)ErrUnexpectedEndOfJSON(135-140)ErrInvalidCharacter(146-157)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.go (4)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/internal/errors/error.go (2)
UnmarshalTypeError(76-82)SyntaxError(51-54)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/encoder/compiler_norace.go (3)
vendor/github.com/goccy/go-json/internal/encoder/compiler_race.go (1)
CompileToGetCodeSet(12-46)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/encoder.go (1)
OpcodeSet(96-107)
vendor/github.com/goccy/go-json/internal/encoder/option.go (1)
vendor/github.com/goccy/go-json/color.go (1)
ColorScheme(11-11)
vendor/github.com/goccy/go-json/encode.go (3)
vendor/github.com/goccy/go-json/internal/decoder/context.go (3)
TakeRuntimeContext(25-27)ReleaseRuntimeContext(29-31)RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/encoder/context.go (3)
TakeRuntimeContext(99-101)ReleaseRuntimeContext(103-105)RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/option.go (3)
Option(21-27)ContextOption(16-16)IndentOption(12-12)
vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go (6)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/internal/errors/error.go (2)
UnmarshalTypeError(76-82)SyntaxError(51-54)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/option.go (2)
Option(13-17)ContextOption(9-9)vendor/github.com/goccy/go-json/json.go (1)
Unmarshaler(31-33)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/path.go (4)
vendor/github.com/goccy/go-json/internal/decoder/path.go (4)
Path(315-320)PathString(12-12)SingleQuotePathSelector(311-311)DoubleQuotePathSelector(312-312)vendor/github.com/goccy/go-json/option.go (1)
DecodeOptionFunc(67-67)vendor/github.com/goccy/go-json/json.go (1)
Unmarshal(273-275)vendor/github.com/goccy/go-json/internal/decoder/assign.go (1)
AssignValue(13-23)
vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
MapIterValue(9-9)
vendor/github.com/goccy/go-json/internal/runtime/type.go (2)
vendor/golang.org/x/net/html/atom/table.go (1)
Data(66-66)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)
vendor/github.com/goccy/go-json/internal/decoder/context.go (3)
vendor/github.com/goccy/go-json/internal/decoder/option.go (1)
Option(13-17)vendor/github.com/goccy/go-json/internal/encoder/context.go (3)
RuntimeContext(71-82)TakeRuntimeContext(99-101)ReleaseRuntimeContext(103-105)vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrExceededMaxDepth(124-129)ErrUnexpectedEndOfJSON(135-140)ErrInvalidCharacter(146-157)
vendor/github.com/goccy/go-json/internal/encoder/context.go (3)
vendor/github.com/goccy/go-json/internal/encoder/code.go (1)
Opcodes(21-21)vendor/github.com/goccy/go-json/internal/decoder/context.go (3)
RuntimeContext(10-13)TakeRuntimeContext(25-27)ReleaseRuntimeContext(29-31)vendor/github.com/goccy/go-json/internal/runtime/type.go (1)
SliceHeader(8-12)
vendor/github.com/goccy/go-json/query.go (2)
vendor/github.com/goccy/go-json/internal/encoder/query.go (5)
FieldQuery(14-18)FieldQueryString(47-47)FieldQueryFromContext(121-131)SetFieldQueryToContext(133-135)Marshal(10-10)vendor/github.com/goccy/go-json/json.go (1)
Marshal(169-171)
vendor/github.com/goccy/go-json/internal/encoder/compiler_race.go (4)
vendor/github.com/goccy/go-json/internal/encoder/compiler_norace.go (1)
CompileToGetCodeSet(6-33)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/encoder.go (1)
OpcodeSet(96-107)
vendor/github.com/goccy/go-json/internal/decoder/uint.go (4)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/internal/errors/error.go (2)
UnmarshalTypeError(76-82)ErrUnexpectedEndOfJSON(135-140)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/encoder/opcode.go (4)
vendor/github.com/goccy/go-json/internal/encoder/optype.go (18)
OpType(428-428)CodeType(8-8)OpMap(454-454)OpArray(453-453)OpSlice(455-455)CodeArrayHead(12-12)CodeSliceHead(14-14)CodeMapHead(16-16)CodeMapValue(18-18)CodeMapEnd(19-19)CodeStructField(21-21)CodeStructEnd(22-22)OpSliceElem(434-434)OpArrayElem(436-436)OpMapKey(438-438)OpMapValue(439-439)OpMapEnd(440-440)OpRecursive(441-441)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/internal/encoder/encoder.go (1)
CompiledCode(122-127)vendor/github.com/goccy/go-json/internal/encoder/query.go (1)
FieldQuery(14-18)
vendor/github.com/goccy/go-json/internal/decoder/number.go (4)
vendor/github.com/goccy/go-json/json.go (1)
Number(303-303)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrSyntax(112-114)ErrInvalidBeginningOfValue(159-164)ErrUnexpectedEndOfJSON(135-140)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
internal/config/seccomp/seccomp.go (2)
vendor/github.com/goccy/go-json/internal/encoder/query.go (1)
Marshal(10-10)vendor/github.com/goccy/go-json/json.go (1)
Marshal(169-171)
vendor/github.com/goccy/go-json/internal/errors/error.go (1)
vendor/github.com/goccy/go-json/error.go (9)
InvalidUTF8Error(13-13)InvalidUnmarshalError(17-17)MarshalerError(20-20)SyntaxError(23-23)UnmarshalFieldError(29-29)UnmarshalTypeError(33-33)UnsupportedTypeError(37-37)UnsupportedValueError(39-39)PathError(41-41)
vendor/github.com/goccy/go-json/internal/decoder/int.go (5)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/error.go (1)
UnmarshalTypeError(33-33)vendor/github.com/goccy/go-json/internal/errors/error.go (2)
UnmarshalTypeError(76-82)ErrUnexpectedEndOfJSON(135-140)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/encoder/vm_indent/debug_vm.go (4)
vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/option.go (2)
Option(21-27)HTMLEscapeOption(11-11)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/vm.go (1)
Run(14-4859)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
vendor/go.uber.org/mock/mockgen/model/model.go (1)
ChanDir(205-205)
vendor/github.com/goccy/go-json/color.go (1)
vendor/github.com/goccy/go-json/internal/encoder/option.go (2)
ColorFormat(47-47)ColorScheme(46-46)
vendor/github.com/goccy/go-json/internal/encoder/compact.go (4)
vendor/github.com/goccy/go-json/json.go (1)
Compact(315-317)vendor/github.com/goccy/go-json/internal/errors/error.go (4)
ErrUnexpectedEndOfJSON(135-140)ErrSyntax(112-114)ErrExpected(142-144)ErrInvalidCharacter(146-157)vendor/github.com/goccy/go-json/internal/decoder/context.go (2)
TakeRuntimeContext(25-27)ReleaseRuntimeContext(29-31)vendor/github.com/goccy/go-json/internal/encoder/context.go (2)
TakeRuntimeContext(99-101)ReleaseRuntimeContext(103-105)
vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go (5)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/decode.go (1)
Decoder(15-17)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/encoder/encoder.go (6)
vendor/github.com/goccy/go-json/internal/encoder/optype.go (32)
OpType(428-428)OpStructHead(655-655)OpStructHeadSlice(527-527)OpStructHeadArray(519-519)OpStructHeadMap(523-523)OpStructHeadStruct(531-531)OpStructHeadOmitEmpty(656-656)OpStructHeadOmitEmptySlice(528-528)OpStructHeadOmitEmptyArray(520-520)OpStructHeadOmitEmptyMap(524-524)OpStructHeadOmitEmptyStruct(532-532)OpStructHeadSlicePtr(611-611)OpStructHeadOmitEmptySlicePtr(612-612)OpStructHeadArrayPtr(603-603)OpStructHeadOmitEmptyArrayPtr(604-604)OpStructHeadMapPtr(607-607)OpStructHeadOmitEmptyMapPtr(608-608)OpStructField(827-827)OpStructFieldSlice(699-699)OpStructFieldArray(691-691)OpStructFieldMap(695-695)OpStructFieldStruct(703-703)OpStructFieldOmitEmpty(828-828)OpStructFieldOmitEmptySlice(700-700)OpStructFieldOmitEmptyArray(692-692)OpStructFieldOmitEmptyMap(696-696)OpStructFieldSlicePtr(783-783)OpStructFieldOmitEmptySlicePtr(784-784)OpStructFieldArrayPtr(775-775)OpStructFieldOmitEmptyArrayPtr(776-776)OpStructFieldMapPtr(779-779)OpStructFieldOmitEmptyMapPtr(780-780)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)vendor/github.com/goccy/go-json/internal/runtime/type.go (1)
SliceHeader(8-12)vendor/github.com/goccy/go-json/error.go (2)
UnsupportedValueError(39-39)MarshalerError(20-20)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/query.go (2)
SetFieldQueryToContext(133-135)FieldQuery(14-18)
🪛 checkmake (0.2.2)
vendor/github.com/goccy/go-json/Makefile
[warning] 37-37: Missing required phony target "all"
(minphony)
[warning] 37-37: Missing required phony target "clean"
(minphony)
[warning] 37-37: Missing required phony target "test"
(minphony)
🪛 LanguageTool
vendor/github.com/goccy/go-json/README.md
[style] ~76-~76: Consider a more formal alternative to strengthen your wording.
Context: ...) Benchmarking gave very slow results. It seems that it is assumed that the user will u...
(SEEM_APPEAR)
[style] ~77-~77: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...user will use the buffer pool properly. Also, development seems to have already stop...
(REP_SENT_START_ALSO)
[grammar] ~298-~298: Ensure spelling is correct
Context: ...s to 3 opcodes ! Reducing the number of opcodees means reducing the number of branches w...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~356-~356: Consider using an alternative to strengthen your wording.
Context: ... based process described above. If you want to know more, please refer to the imple...
(WANT_KEEN)
[style] ~365-~365: Consider a more concise word here.
Context: ...aracter inspection using NUL character In order to decode, you have to traverse the input ...
(IN_ORDER_TO_PREMIUM)
[style] ~514-~514: Consider using a synonym to be more concise.
Context: ... memory usage. ### Others I have done a lot of other optimizations. I will find time t...
(A_LOT_OF)
vendor/github.com/goccy/go-json/CHANGELOG.md
[grammar] ~348-~348: Use a hyphen to join words.
Context: ...x decoder * Fix decoder for invalid top level value ( #184 ) * Fix decoder for i...
(QB_NEW_EN_HYPHEN)
[uncategorized] ~415-~415: Do not mix variants of the same word (‘prefilled’ and ‘pre-filled’) within a single text.
Context: ...ding of invalid value * Fix decoding of prefilled value * Fix not being able to return Un...
(EN_WORD_COHERENCY)
[grammar] ~419-~419: Use a hyphen to join words.
Context: ...ecoding of type of null string * Use pre allocated pointer if exists it at decodi...
(QB_NEW_EN_HYPHEN)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (27)
- GitHub Check: integration / conmon / crun / amd64
- GitHub Check: integration / userns / crun / amd64
- GitHub Check: integration / conmon-rs / crun / amd64
- GitHub Check: rpm-build:fedora-43-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-aarch64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-aarch64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-aarch64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-aarch64:fedora-rawhide
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 4
♻️ Duplicate comments (2)
vendor/github.com/goccy/go-json/internal/encoder/string.go (1)
1-60: Verify v0.10.5 is correctly vendored to include the data race fix.The past review correctly identified that v0.10.4 had a data race in
AnalyzeTypeAddrthat was fixed in v0.10.5 (PR #531, released Jan 2025). The library context indicates v0.10.5 is now being used, which should resolve the concurrent map panic issue (#9419).Please confirm the fix is included by verifying the vendored version.
#!/bin/bash # Verify go-json version in go.mod/go.sum echo "=== Checking go.mod for go-json version ===" rg -n "goccy/go-json" go.mod go.sum 2>/dev/null || echo "go.mod/go.sum not found" # Check if the fix for AnalyzeTypeAddr is present (lazy init pattern from v0.10.5) echo "" echo "=== Checking for v0.10.5 data race fix (lazy init in type analysis) ===" rg -n "sync\.Once|lazyInit" vendor/github.com/goccy/go-json/internal/encoder/ 2>/dev/null | head -20vendor/github.com/goccy/go-json/internal/encoder/optype.go (1)
1-932: Generated encoder op-type definitions from goccy/go-json.This is auto-generated vendored code. The version upgrade requirement to v0.10.5 has already been flagged in a previous review comment.
🧹 Nitpick comments (3)
vendor/github.com/goccy/go-json/internal/decoder/ptr.go (1)
34-93: Pointer decode semantics are reasonable; note stream vs non-stream differenceThe lazy allocation and
nullhandling for pointer fields look correct. One nuance:Decodeclears the destination pointer on inner decode errors, whileDecodeStreamleaves any newly allocated value in place if the inner decoder fails. That’s acceptable, but worth being aware of if callers rely on post-error state of pointer fields.vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go (1)
72-100: Use a type switch inDecodeto match the safe pattern inDecodeStreamThe
Decodemethod currently relies on theContextOptionflag to decide between callingv.(unmarshalerContext).UnmarshalJSON(...)andv.(json.Unmarshaler).UnmarshalJSON(...). This is unsafe: if a type implements onlyunmarshalerContextbutContextOptionis false, or vice versa, the hard type assertion will panic.The
implementsUnmarshalJSONTypecheck used by the decoder factory returns true if the type implements either interface (lines 51–68 in compile.go confirm bothunmarshalJSONTypeandunmarshalJSONContextTypeare checked). This means a decoder can be created for types that implement only one interface, regardless of the caller's flag setting.
DecodeStreamalready demonstrates the safer pattern (lines 51–68): use a type switch to detect which interface is actually present, and handle both gracefully.Decodeshould follow the same approach instead of trusting the flag alone.vendor/github.com/goccy/go-json/internal/decoder/assign.go (1)
25-438: Consider using kind-specific setters or Convert() to handle named numeric types
castValueconstructs results usingreflect.ValueOfon builtin types, e.g.reflect.ValueOf(int(vv.Int()))forreflect.Int. This works for plainint, but will panic when the destination is a named type with the same kind, such astype MyInt int. Go'sreflect.Value.Set()requires type assignability, and named types are distinct from their underlying builtins.The kind-specific setters (
SetInt,SetUint,SetFloat) andreflect.Value.Convert()are the idiomatic solutions:
- Use
SetInt(vv.Int())/SetUint(vv.Uint())/SetFloat(vv.Float())to assign values to named integer or float types- Or convert explicitly:
vv.Convert(t)before assignment, wheretis the destination typeThis would prevent runtime panics when decoding into fields with named aliases of primitive types.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (1)
go.sumis excluded by!**/*.sum
📒 Files selected for processing (95)
go.mod(2 hunks)internal/config/seccomp/notifier.go(1 hunks)internal/config/seccomp/seccomp.go(2 hunks)internal/criocli/wipe.go(1 hunks)internal/lib/container_server.go(1 hunks)internal/oci/container.go(1 hunks)internal/oci/runtime_oci.go(1 hunks)internal/storage/image.go(2 hunks)internal/storage/runtime.go(1 hunks)internal/version/version.go(1 hunks)scripts/release/release_test.go(1 hunks)server/container_status.go(1 hunks)server/image_status.go(1 hunks)server/inspect.go(1 hunks)server/sandbox_run_freebsd.go(1 hunks)server/sandbox_run_linux.go(1 hunks)server/sandbox_status.go(1 hunks)vendor/github.com/goccy/go-json/.codecov.yml(1 hunks)vendor/github.com/goccy/go-json/.gitignore(1 hunks)vendor/github.com/goccy/go-json/.golangci.yml(1 hunks)vendor/github.com/goccy/go-json/CHANGELOG.md(1 hunks)vendor/github.com/goccy/go-json/LICENSE(1 hunks)vendor/github.com/goccy/go-json/Makefile(1 hunks)vendor/github.com/goccy/go-json/README.md(1 hunks)vendor/github.com/goccy/go-json/color.go(1 hunks)vendor/github.com/goccy/go-json/decode.go(1 hunks)vendor/github.com/goccy/go-json/docker-compose.yml(1 hunks)vendor/github.com/goccy/go-json/encode.go(1 hunks)vendor/github.com/goccy/go-json/error.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/array.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/assign.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/bool.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/bytes.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/compile.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/compile_norace.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/compile_race.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/context.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/float.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/func.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/int.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/interface.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/invalid.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/map.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/number.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/option.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/path.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/ptr.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/slice.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/stream.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/string.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/struct.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/type.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/uint.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.go(1 hunks)vendor/github.com/goccy/go-json/internal/decoder/wrapped_string.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/code.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compact.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compiler.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compiler_norace.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/compiler_race.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/context.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/decode_rune.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/encoder.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/indent.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/int.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/map112.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/map113.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/opcode.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/option.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/optype.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/query.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/string.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/string_table.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm/hack.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color/hack.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/debug_vm.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/hack.go(1 hunks)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/util.go(1 hunks)vendor/github.com/goccy/go-json/internal/errors/error.go(1 hunks)vendor/github.com/goccy/go-json/internal/runtime/rtype.go(1 hunks)vendor/github.com/goccy/go-json/internal/runtime/struct_field.go(1 hunks)vendor/github.com/goccy/go-json/internal/runtime/type.go(1 hunks)vendor/github.com/goccy/go-json/json.go(1 hunks)vendor/github.com/goccy/go-json/option.go(1 hunks)vendor/github.com/goccy/go-json/path.go(1 hunks)vendor/github.com/goccy/go-json/query.go(1 hunks)vendor/modules.txt(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- internal/storage/runtime.go
🚧 Files skipped from review as they are similar to previous changes (32)
- internal/config/seccomp/seccomp.go
- internal/oci/container.go
- server/image_status.go
- vendor/github.com/goccy/go-json/internal/decoder/option.go
- vendor/github.com/goccy/go-json/internal/encoder/compiler_norace.go
- vendor/github.com/goccy/go-json/internal/encoder/int.go
- internal/lib/container_server.go
- vendor/github.com/goccy/go-json/LICENSE
- internal/criocli/wipe.go
- vendor/github.com/goccy/go-json/.gitignore
- vendor/github.com/goccy/go-json/internal/decoder/anonymous_field.go
- vendor/modules.txt
- vendor/github.com/goccy/go-json/internal/decoder/interface.go
- vendor/github.com/goccy/go-json/internal/encoder/option.go
- vendor/github.com/goccy/go-json/option.go
- vendor/github.com/goccy/go-json/internal/decoder/compile_norace.go
- vendor/github.com/goccy/go-json/internal/decoder/type.go
- vendor/github.com/goccy/go-json/internal/encoder/vm_indent/hack.go
- vendor/github.com/goccy/go-json/internal/encoder/map113.go
- server/sandbox_run_linux.go
- vendor/github.com/goccy/go-json/docker-compose.yml
- server/sandbox_run_freebsd.go
- vendor/github.com/goccy/go-json/internal/decoder/wrapped_string.go
- vendor/github.com/goccy/go-json/decode.go
- go.mod
- vendor/github.com/goccy/go-json/internal/decoder/number.go
- vendor/github.com/goccy/go-json/error.go
- server/sandbox_status.go
- vendor/github.com/goccy/go-json/internal/encoder/string_table.go
- vendor/github.com/goccy/go-json/color.go
- vendor/github.com/goccy/go-json/internal/encoder/query.go
- vendor/github.com/goccy/go-json/internal/errors/error.go
🧰 Additional context used
📓 Path-based instructions (3)
**/*.go
📄 CodeRabbit inference engine (AGENTS.md)
**/*.go: Use interface-based design and dependency injection patterns in Go code
Propagate context.Context through function calls in Go code
Usefmt.Errorfwith%wfor error wrapping in Go code
Use logrus with structured fields for logging in Go code
Add comments explaining 'why' not 'what' in Go code
Use platform-specific file naming:*_{linux,freebsd}.gofor platform-dependent code
Files:
vendor/github.com/goccy/go-json/internal/decoder/slice.govendor/github.com/goccy/go-json/internal/encoder/decode_rune.govendor/github.com/goccy/go-json/internal/encoder/vm/hack.gointernal/version/version.govendor/github.com/goccy/go-json/internal/encoder/compact.govendor/github.com/goccy/go-json/internal/encoder/vm_color/debug_vm.goscripts/release/release_test.govendor/github.com/goccy/go-json/internal/encoder/vm/debug_vm.govendor/github.com/goccy/go-json/internal/decoder/assign.gointernal/storage/image.govendor/github.com/goccy/go-json/internal/runtime/struct_field.govendor/github.com/goccy/go-json/query.govendor/github.com/goccy/go-json/internal/decoder/ptr.govendor/github.com/goccy/go-json/internal/decoder/context.govendor/github.com/goccy/go-json/internal/encoder/vm_color/hack.govendor/github.com/goccy/go-json/internal/decoder/func.govendor/github.com/goccy/go-json/internal/decoder/map.govendor/github.com/goccy/go-json/internal/decoder/compile_race.govendor/github.com/goccy/go-json/encode.govendor/github.com/goccy/go-json/internal/decoder/bytes.govendor/github.com/goccy/go-json/internal/encoder/string.gointernal/oci/runtime_oci.govendor/github.com/goccy/go-json/internal/encoder/vm_indent/debug_vm.govendor/github.com/goccy/go-json/internal/decoder/uint.govendor/github.com/goccy/go-json/internal/decoder/float.govendor/github.com/goccy/go-json/internal/encoder/compiler_race.goserver/container_status.govendor/github.com/goccy/go-json/internal/encoder/indent.govendor/github.com/goccy/go-json/internal/decoder/struct.govendor/github.com/goccy/go-json/internal/decoder/int.govendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/debug_vm.govendor/github.com/goccy/go-json/internal/encoder/map112.govendor/github.com/goccy/go-json/internal/decoder/string.govendor/github.com/goccy/go-json/internal/encoder/optype.govendor/github.com/goccy/go-json/internal/decoder/compile.govendor/github.com/goccy/go-json/internal/decoder/array.govendor/github.com/goccy/go-json/internal/decoder/stream.govendor/github.com/goccy/go-json/internal/decoder/bool.govendor/github.com/goccy/go-json/internal/decoder/invalid.govendor/github.com/goccy/go-json/internal/runtime/type.govendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/util.govendor/github.com/goccy/go-json/internal/encoder/vm/util.govendor/github.com/goccy/go-json/internal/encoder/context.gointernal/config/seccomp/notifier.govendor/github.com/goccy/go-json/internal/decoder/path.govendor/github.com/goccy/go-json/path.goserver/inspect.govendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.govendor/github.com/goccy/go-json/internal/encoder/opcode.govendor/github.com/goccy/go-json/internal/runtime/rtype.govendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.govendor/github.com/goccy/go-json/internal/encoder/vm_color/util.govendor/github.com/goccy/go-json/internal/encoder/vm_indent/util.govendor/github.com/goccy/go-json/internal/encoder/compiler.govendor/github.com/goccy/go-json/internal/encoder/encoder.govendor/github.com/goccy/go-json/json.govendor/github.com/goccy/go-json/internal/encoder/code.go
**/*_test.go
📄 CodeRabbit inference engine (AGENTS.md)
Use
*_test.gonaming convention for unit test files
Files:
scripts/release/release_test.go
**/*.md
📄 CodeRabbit inference engine (AGENTS.md)
Edit
.mdsource files for documentation, not generated files
Files:
vendor/github.com/goccy/go-json/CHANGELOG.mdvendor/github.com/goccy/go-json/README.md
🧠 Learnings (3)
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Check `internal/version/version.go` for current version and supported versions
Applied to files:
scripts/release/release_test.gointernal/oci/runtime_oci.go
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Applies to **/*.go : Use logrus with structured fields for logging in Go code
Applied to files:
scripts/release/release_test.govendor/github.com/goccy/go-json/internal/runtime/struct_field.go
📚 Learning: 2025-12-03T18:27:19.593Z
Learnt from: CR
Repo: cri-o/cri-o PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T18:27:19.593Z
Learning: Applies to **/*.go : Use interface-based design and dependency injection patterns in Go code
Applied to files:
server/inspect.go
🧬 Code graph analysis (29)
vendor/github.com/goccy/go-json/internal/decoder/slice.go (2)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (3)
Type2RType(260-262)Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)
vendor/github.com/goccy/go-json/internal/encoder/compact.go (4)
vendor/github.com/goccy/go-json/json.go (1)
Compact(315-317)vendor/github.com/goccy/go-json/internal/errors/error.go (4)
ErrUnexpectedEndOfJSON(135-140)ErrSyntax(112-114)ErrExpected(142-144)ErrInvalidCharacter(146-157)vendor/github.com/goccy/go-json/internal/decoder/context.go (2)
TakeRuntimeContext(25-27)ReleaseRuntimeContext(29-31)vendor/github.com/goccy/go-json/internal/encoder/context.go (2)
TakeRuntimeContext(99-101)ReleaseRuntimeContext(103-105)
vendor/github.com/goccy/go-json/internal/encoder/vm_color/debug_vm.go (5)
vendor/github.com/goccy/go-json/internal/encoder/option.go (2)
Option(21-27)HTMLEscapeOption(11-11)vendor/github.com/goccy/go-json/internal/encoder/vm/vm.go (1)
Run(14-4859)vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/vm.go (1)
Run(14-4859)vendor/github.com/goccy/go-json/internal/encoder/vm_indent/vm.go (1)
Run(14-4859)vendor/github.com/goccy/go-json/internal/encoder/vm_color/vm.go (1)
Run(14-4859)
vendor/github.com/goccy/go-json/internal/encoder/vm/debug_vm.go (3)
vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/option.go (2)
Option(21-27)HTMLEscapeOption(11-11)vendor/github.com/goccy/go-json/internal/encoder/vm/vm.go (1)
Run(14-4859)
vendor/github.com/goccy/go-json/query.go (2)
vendor/github.com/goccy/go-json/internal/encoder/query.go (5)
FieldQuery(14-18)FieldQueryString(47-47)FieldQueryFromContext(121-131)SetFieldQueryToContext(133-135)Marshal(10-10)vendor/github.com/goccy/go-json/json.go (1)
Marshal(169-171)
vendor/github.com/goccy/go-json/internal/decoder/ptr.go (4)
vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/decoder/context.go (3)
vendor/github.com/goccy/go-json/internal/decoder/option.go (1)
Option(13-17)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrExceededMaxDepth(124-129)ErrUnexpectedEndOfJSON(135-140)ErrInvalidCharacter(146-157)
vendor/github.com/goccy/go-json/internal/decoder/compile_race.go (4)
vendor/github.com/goccy/go-json/internal/decoder/compile_norace.go (1)
CompileToGetDecoder(12-30)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)vendor/github.com/goccy/go-json/decode.go (1)
Decoder(15-17)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)
vendor/github.com/goccy/go-json/encode.go (4)
vendor/github.com/goccy/go-json/option.go (1)
EncodeOptionFunc(11-11)vendor/github.com/goccy/go-json/internal/decoder/context.go (3)
TakeRuntimeContext(25-27)ReleaseRuntimeContext(29-31)RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/decoder/option.go (2)
Option(13-17)ContextOption(9-9)vendor/github.com/goccy/go-json/internal/encoder/option.go (5)
Option(21-27)ContextOption(16-16)HTMLEscapeOption(11-11)NormalizeUTF8Option(17-17)IndentOption(12-12)
vendor/github.com/goccy/go-json/internal/decoder/float.go (3)
vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/errors/error.go (2)
ErrUnexpectedEndOfJSON(135-140)ErrSyntax(112-114)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/decoder/struct.go (5)
vendor/github.com/goccy/go-json/decode.go (1)
Decoder(15-17)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/errors/error.go (5)
ErrUnexpectedEndOfJSON(135-140)ErrInvalidBeginningOfValue(159-164)ErrInvalidCharacter(146-157)ErrExceededMaxDepth(124-129)ErrExpected(142-144)vendor/github.com/goccy/go-json/internal/decoder/option.go (2)
Option(13-17)FirstWinOption(8-8)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/encoder/vm_color_indent/debug_vm.go (6)
vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)vendor/github.com/goccy/go-json/internal/encoder/encoder.go (1)
OpcodeSet(96-107)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)vendor/github.com/goccy/go-json/internal/encoder/option.go (2)
Option(21-27)HTMLEscapeOption(11-11)vendor/github.com/goccy/go-json/internal/encoder/vm/vm.go (1)
Run(14-4859)
vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
MapIterValue(9-9)
vendor/github.com/goccy/go-json/internal/decoder/compile.go (5)
vendor/github.com/goccy/go-json/json.go (1)
Number(303-303)vendor/github.com/goccy/go-json/internal/runtime/type.go (2)
TypeAddr(19-24)AnalyzeTypeAddr(37-98)vendor/github.com/goccy/go-json/internal/decoder/type.go (1)
Decoder(11-15)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (3)
Type(9-9)PtrTo(241-241)Type2RType(260-262)vendor/github.com/goccy/go-json/internal/runtime/struct_field.go (2)
IsIgnoredStructField(13-30)StructTagFromField(68-91)
vendor/github.com/goccy/go-json/internal/decoder/stream.go (3)
vendor/github.com/goccy/go-json/internal/decoder/option.go (1)
Option(13-17)vendor/github.com/goccy/go-json/json.go (3)
Token(300-300)Delim(311-311)Number(303-303)vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrInvalidCharacter(146-157)ErrExceededMaxDepth(124-129)ErrUnexpectedEndOfJSON(135-140)
vendor/github.com/goccy/go-json/internal/decoder/bool.go (3)
vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/errors/error.go (1)
ErrUnexpectedEndOfJSON(135-140)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/decoder/invalid.go (3)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/error.go (1)
UnmarshalTypeError(33-33)vendor/github.com/goccy/go-json/internal/errors/error.go (1)
UnmarshalTypeError(76-82)
vendor/github.com/goccy/go-json/internal/runtime/type.go (1)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
Type(9-9)
vendor/github.com/goccy/go-json/internal/encoder/vm/util.go (5)
vendor/github.com/goccy/go-json/internal/encoder/int.go (2)
AppendInt(80-132)AppendUint(134-176)vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)
vendor/github.com/goccy/go-json/internal/decoder/path.go (3)
vendor/github.com/goccy/go-json/internal/errors/error.go (3)
ErrEmptyPath(181-183)ErrInvalidPath(174-179)PathError(166-168)vendor/github.com/goccy/go-json/internal/decoder/assign.go (1)
AssignValue(13-23)vendor/github.com/goccy/go-json/internal/runtime/struct_field.go (1)
StructTagFromField(68-91)
vendor/github.com/goccy/go-json/path.go (3)
vendor/github.com/goccy/go-json/internal/decoder/path.go (4)
Path(315-320)PathString(12-12)SingleQuotePathSelector(311-311)DoubleQuotePathSelector(312-312)vendor/github.com/goccy/go-json/json.go (1)
Unmarshal(273-275)vendor/github.com/goccy/go-json/internal/decoder/assign.go (1)
AssignValue(13-23)
vendor/github.com/goccy/go-json/internal/decoder/unmarshal_json.go (5)
vendor/github.com/goccy/go-json/internal/errors/error.go (2)
UnmarshalTypeError(76-82)SyntaxError(51-54)vendor/github.com/goccy/go-json/internal/decoder/stream.go (1)
Stream(17-29)vendor/github.com/goccy/go-json/internal/decoder/option.go (2)
Option(13-17)ContextOption(9-9)vendor/github.com/goccy/go-json/json.go (1)
Unmarshaler(31-33)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (1)
vendor/go.uber.org/mock/mockgen/model/model.go (1)
ChanDir(205-205)
vendor/github.com/goccy/go-json/internal/decoder/unmarshal_text.go (3)
vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)RType2Type(253-253)vendor/github.com/goccy/go-json/error.go (2)
UnmarshalTypeError(33-33)SyntaxError(23-23)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)
vendor/github.com/goccy/go-json/internal/encoder/vm_color/util.go (5)
vendor/github.com/goccy/go-json/internal/encoder/encoder.go (12)
ErrUnsupportedValue(190-199)ErrUnsupportedFloat(201-206)MapIterInit(300-300)MapIterKey(304-304)MapIterNext(308-308)MapLen(312-312)AppendFloat32(332-344)AppendFloat64(346-356)AppendByteSlice(314-330)AppendNumber(385-396)AppendMarshalJSON(398-449)AppendMarshalText(501-522)vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/optype.go (1)
OpType(428-428)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)
vendor/github.com/goccy/go-json/internal/encoder/vm_indent/util.go (7)
vendor/github.com/goccy/go-json/internal/encoder/int.go (2)
AppendInt(80-132)AppendUint(134-176)vendor/github.com/goccy/go-json/internal/encoder/encoder.go (2)
AppendFloat32(332-344)AppendFloat64(346-356)vendor/github.com/goccy/go-json/internal/encoder/map112.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/map113.go (1)
MapIterValue(9-9)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (1)
Opcode(30-51)vendor/github.com/goccy/go-json/internal/decoder/context.go (1)
RuntimeContext(10-13)vendor/github.com/goccy/go-json/internal/encoder/indent.go (1)
Indent(18-37)
vendor/github.com/goccy/go-json/internal/encoder/encoder.go (3)
vendor/github.com/goccy/go-json/internal/encoder/optype.go (7)
OpType(428-428)OpStructHead(655-655)OpStructHeadSlice(527-527)OpStructHeadArray(519-519)OpStructHeadMap(523-523)OpStructHeadStruct(531-531)OpStructHeadOmitEmpty(656-656)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (3)
Opcode(30-51)AddrForMarshalerFlags(23-23)MarshalerContextFlags(26-26)vendor/github.com/goccy/go-json/internal/encoder/context.go (1)
RuntimeContext(71-82)
vendor/github.com/goccy/go-json/json.go (5)
vendor/github.com/goccy/go-json/internal/encoder/query.go (2)
Marshal(10-10)Unmarshal(11-11)vendor/github.com/goccy/go-json/option.go (2)
EncodeOptionFunc(11-11)DecodeOptionFunc(67-67)vendor/github.com/goccy/go-json/internal/encoder/compact.go (1)
Compact(27-45)vendor/github.com/goccy/go-json/internal/encoder/indent.go (1)
Indent(18-37)vendor/github.com/goccy/go-json/decode.go (1)
NewDecoder(180-185)
vendor/github.com/goccy/go-json/internal/encoder/code.go (4)
vendor/github.com/goccy/go-json/internal/encoder/query.go (1)
FieldQuery(14-18)vendor/github.com/goccy/go-json/internal/encoder/opcode.go (2)
Opcode(30-51)OpFlags(15-15)vendor/github.com/goccy/go-json/internal/runtime/rtype.go (2)
Type(9-9)Type2RType(260-262)vendor/github.com/goccy/go-json/internal/runtime/struct_field.go (2)
StructTags(40-40)StructTag(32-38)
🪛 checkmake (0.2.2)
vendor/github.com/goccy/go-json/Makefile
[warning] 37-37: Missing required phony target "all"
(minphony)
[warning] 37-37: Missing required phony target "clean"
(minphony)
[warning] 37-37: Missing required phony target "test"
(minphony)
🪛 LanguageTool
vendor/github.com/goccy/go-json/CHANGELOG.md
[grammar] ~348-~348: Use a hyphen to join words.
Context: ...x decoder * Fix decoder for invalid top level value ( #184 ) * Fix decoder for i...
(QB_NEW_EN_HYPHEN)
[uncategorized] ~415-~415: Do not mix variants of the same word (‘prefilled’ and ‘pre-filled’) within a single text.
Context: ...ding of invalid value * Fix decoding of prefilled value * Fix not being able to return Un...
(EN_WORD_COHERENCY)
[grammar] ~419-~419: Use a hyphen to join words.
Context: ...ecoding of type of null string * Use pre allocated pointer if exists it at decodi...
(QB_NEW_EN_HYPHEN)
vendor/github.com/goccy/go-json/README.md
[style] ~76-~76: Consider a more formal alternative to strengthen your wording.
Context: ...) Benchmarking gave very slow results. It seems that it is assumed that the user will u...
(SEEM_APPEAR)
[style] ~77-~77: You have already used this phrasing in nearby sentences. Consider replacing it to add variety to your writing.
Context: ...user will use the buffer pool properly. Also, development seems to have already stop...
(REP_SENT_START_ALSO)
[grammar] ~298-~298: Ensure spelling is correct
Context: ...s to 3 opcodes ! Reducing the number of opcodees means reducing the number of branches w...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~356-~356: Consider using an alternative to strengthen your wording.
Context: ... based process described above. If you want to know more, please refer to the imple...
(WANT_KEEN)
[style] ~365-~365: Consider a more concise word here.
Context: ...aracter inspection using NUL character In order to decode, you have to traverse the input ...
(IN_ORDER_TO_PREMIUM)
[style] ~514-~514: Consider using a synonym to be more concise.
Context: ... memory usage. ### Others I have done a lot of other optimizations. I will find time t...
(A_LOT_OF)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (28)
- GitHub Check: integration / userns / crun / amd64
- GitHub Check: critest / conmon-rs / crun / amd64
- GitHub Check: integration / conmon-rs / crun / amd64
- GitHub Check: integration / conmon / crun / amd64
- GitHub Check: rpm-build:fedora-43-aarch64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-aarch64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-aarch64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-x86_64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-aarch64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-aarch64:fedora-rawhide
- GitHub Check: rpm-build:centos-stream-9-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-rawhide-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-x86_64:fedora-rawhide
- GitHub Check: rpm-build:fedora-43-aarch64:fedora-rawhide
|
/retest |
|
/unhold |
|
It needs lgtm too |
|
yeah I'm just waiting for the github actions to pass. |
Signed-off-by: Ayato Tokubi <[email protected]>
|
/lgtm |
Migrate from unmaintained json-iterator/go to actively maintained goccy/go-json to fix concurrent map panic (issue #9419).
What type of PR is this?
/kind dependency-change
What this PR does / why we need it:
Fixes #9419
Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?
Summary by CodeRabbit
Dependencies
New Features
Notes
✏️ Tip: You can customize this high-level summary in your review settings.