146 Commits

Author SHA1 Message Date
renovate[bot]
4e63d842a0 chore(deps): update actions/checkout action (v6.0.1 → v6.0.2) (#116)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-24 18:46:56 +02:00
renovate[bot]
c8b456723a chore(deps): update ivuorinen/actions action (v2026.01.20 → v2026.01.21) (#115)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-22 10:07:49 +02:00
renovate[bot]
6cfe5d1dd2 chore(deps): update ivuorinen/actions action (v2026.01.13 → v2026.01.20) (#114)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-21 17:39:50 +02:00
e7ad11395a feat: replace go-sarif with internal SARIF implementation (#113)
* docs: add design for replacing go-sarif with internal implementation

Removes external dependency chain (go-sarif → testify → yaml.v3) by
implementing a minimal internal SARIF package with support for v2.1.0
and v3.0 output formats.

* docs: add implementation plan for replacing go-sarif

11 tasks covering:
- testjson parser with all 7 fields
- internal SARIF model and version registry
- v2.1.0 and v2.2 serializers
- converter refactoring
- CLI with --sarif-version and --pretty flags
- dependency cleanup

* feat(testjson): add parser for go test -json output

Add TestEvent struct with all 7 fields from go test -json and
ParseFile function to parse test output files line by line.

* test(testjson): add tests for all fields, malformed JSON, file not found

* feat(sarif): add internal SARIF data model

* feat(sarif): add version registry (serializers pending)

Add version registry infrastructure for SARIF serialization:
- Version type and constants (2.1.0, 2.2)
- DefaultVersion set to 2.1.0
- Register() function for version-specific serializers
- Serialize() function with pretty-print support
- SupportedVersions() for listing registered versions

Note: TestSupportedVersions will fail until serializers are
registered via init() functions in v21.go and v22.go (Tasks 5/6).

* feat(sarif): add SARIF v2.1.0 serializer

* feat(sarif): add SARIF v2.2 serializer

* test(sarif): add pretty print test

* refactor(converter): use internal sarif and testjson packages

Replace external go-sarif library with internal packages:
- Use internal/sarif for SARIF model and serialization
- Use internal/testjson for Go test JSON parsing
- Add ConvertOptions struct with SARIFVersion and Pretty options
- Remove external github.com/owenrumney/go-sarif/v2 dependency

* feat(cli): add --sarif-version and --pretty flags

* fix(lint): resolve golangci-lint errors

Fix errcheck violation by properly handling f.Close() error return value
and add proper package comments to satisfy revive linter.

* refactor: consolidate SARIF serializers and fix code issues

- Extract shared SARIF types and serialization logic into serialize.go
- Simplify v21.go and v22.go to thin wrappers (107/108 → 12 lines each)
- Add testConvertHelper() to reduce test duplication in converter_test.go
- Remove redundant nested check in converter.go (outer condition already guarantees non-empty)
- Fix LogicalLocations: avoid leading dot when Module is empty, set Kind correctly
- Increase scanner buffer in parser.go from 64KB to 4MB for large JSON lines
- Extract test constants to reduce string literal duplication

* docs: fix SARIF v3.0 references to v2.2

SARIF v3.0 doesn't exist. Update design and implementation docs
to correctly reference v2.1.0 and v2.2 throughout.

* fix: update SARIF 2.2 schema URL and add markdown language identifiers

Update schema URL to point to accessible prerelease location and add
language identifiers to fenced code blocks to resolve MD040 violations.

* chore: add pre-commit config and fix config file formatting

Add pre-commit configuration and fix formatting issues in config files
including trailing whitespace, YAML document markers, and JSON formatting.

* docs: fix markdown linting issues in implementation plan

- Convert bold step markers to proper headings
- Fix line length violations in header section
- Add markdownlint config to allow duplicate sibling headings
- Add ecrc config to exclude plan docs from editorconfig checking

* chore: update MegaLinter configuration

Configure specific linters and add exclusion patterns for test data
and generated files.

* docs: fix filename in design doc (writer.go → serialize.go)

* refactor(tests): fix SonarCloud code quality issues

Extract helper functions to reduce cognitive complexity in TestRun and
consolidate duplicate string literals into shared testutil package.

* docs: add docstrings to exported variables and struct fields

Add documentation comments to reach ~98% docstring coverage:
- cmd/main.go: document build-time variables
- internal/converter.go: document ConvertOptions fields
- internal/sarif/model.go: document Report, Rule, Result, LogicalLocation fields
- internal/testjson/parser.go: document TestEvent fields

* fix(testjson): change FailedBuild field type from string to bool

The go test -json output emits FailedBuild as a boolean, not a string.
This was causing JSON unmarshal errors. Updated the struct field type
and corresponding test assertions.

* chore(ci): mega-linter config tweaks for revive
2026-01-21 02:16:05 +02:00
renovate[bot]
a6e7936fbd chore(deps): update ivuorinen/actions action (v2026.01.12 → v2026.01.13) (#111)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 20:56:11 +00:00
renovate[bot]
cdb7e4f198 chore(deps): update github/codeql-action action (v4.31.9 → v4.31.10) (#110)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 20:28:39 +00:00
renovate[bot]
b03c8edcd4 chore(deps): update actions/setup-go action (v6.1.0 → v6.2.0) (#112)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-15 22:00:16 +02:00
renovate[bot]
0929385b67 chore(deps): update ivuorinen/actions action (v2026.01.09 → v2026.01.12) (#109)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-13 07:13:59 +02:00
renovate[bot]
3834e80db0 chore(deps): update ivuorinen/actions action (v2026.01.07 → v2026.01.09) (#108)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-10 00:03:07 +02:00
renovate[bot]
4cba92a11b chore(deps): update ivuorinen/actions action (v2026.01.06 → v2026.01.07) (#107)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-08 07:48:51 +02:00
renovate[bot]
7052d9e7b6 chore(deps): update ivuorinen/actions action (v2026.01.03 → v2026.01.06) (#106)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-07 16:00:17 +02:00
renovate[bot]
19efb777fb chore(deps): update ivuorinen/actions action (v2026.01.01 → v2026.01.03) (#105)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-04 17:35:33 +02:00
renovate[bot]
56de3cacb6 chore(deps)!: update ivuorinen/actions (v2025.12.31 → v2026.01.01) (#104)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-02 10:23:35 +02:00
renovate[bot]
902b06ca1f chore(deps): update ivuorinen/actions action (v2025.12.30 → v2025.12.31) (#103)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-01-01 15:41:46 +02:00
renovate[bot]
f54a621df9 chore(deps): update ivuorinen/actions action (v2025.12.29 → v2025.12.30) (#102)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-31 10:28:02 +02:00
renovate[bot]
bdd9fb4be2 chore(deps): update ivuorinen/actions action (v2025.12.28 → v2025.12.29) (#101)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-30 08:40:04 +02:00
renovate[bot]
343f0906b9 chore(deps): update ivuorinen/actions action (v2025.12.27 → v2025.12.28) (#100)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-29 21:06:53 +02:00
renovate[bot]
802d80e226 chore(deps): update ivuorinen/actions action (v2025.12.26 → v2025.12.27) (#99)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-28 03:43:50 +02:00
renovate[bot]
c2d80ac483 chore(deps): update ivuorinen/actions action (v2025.12.25 → v2025.12.26) (#98)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-27 09:39:25 +02:00
renovate[bot]
5fe0ee3791 chore(deps): update ivuorinen/actions action (v2025.12.24 → v2025.12.25) (#97)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-26 13:46:34 +02:00
renovate[bot]
65af5beadf chore(deps): update ivuorinen/actions action (v2025.12.23 → v2025.12.24) (#96)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-25 10:18:57 +02:00
renovate[bot]
899295cc77 chore(deps): update ivuorinen/actions action (v2025.12.22 → v2025.12.23) (#95)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-24 12:37:25 +02:00
079e9a698c fix: test workflow permissions 2025-12-23 09:38:20 +02:00
f187521d56 fix: workflow permissions, versions 2025-12-23 09:35:34 +02:00
renovate[bot]
267735a3a0 chore(deps): update ivuorinen/actions action (v2025.12.20 → v2025.12.21) (#94)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-22 08:09:48 +02:00
renovate[bot]
7403e349bf chore(deps): update ivuorinen/actions action (v2025.12.19 → v2025.12.20) (#93)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-21 18:19:41 +02:00
renovate[bot]
7ab6cb29a6 chore(deps): update ivuorinen/actions action (v2025.12.18 → v2025.12.19) (#92)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 12:51:58 +02:00
renovate[bot]
64235d7fa0 chore(deps): update ivuorinen/actions action (v2025.12.17 → v2025.12.18) (#91)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 20:10:26 +02:00
renovate[bot]
7c9c61b12f chore(deps): update ivuorinen/actions action (v2025.12.16 → v2025.12.17) (#90)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-18 09:39:37 +02:00
renovate[bot]
4a6cb690e1 chore(deps): update github/codeql-action action (v4.31.8 → v4.31.9) (#89)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-18 00:01:35 +02:00
renovate[bot]
8d5ae67744 chore(deps): update ivuorinen/actions action (v2025.12.14 → v2025.12.16) (#88)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-17 16:17:34 +02:00
renovate[bot]
b2215536b2 chore(deps): update ivuorinen/actions action (v2025.12.13 → v2025.12.14) (#87)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-15 09:41:14 +02:00
renovate[bot]
e1f60a497a chore(deps): update ivuorinen/actions action (v2025.12.12 → v2025.12.13) (#86)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-14 17:59:56 +02:00
renovate[bot]
cc32ff03a6 chore(deps): update github/codeql-action action (v4.31.7 → v4.31.8) (#85)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-13 16:19:16 +02:00
renovate[bot]
a977d63ee4 chore(deps): update ivuorinen/actions action (v2025.12.11 → v2025.12.12) (#84)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-13 11:08:24 +02:00
renovate[bot]
2503d590af chore(deps): update ivuorinen/actions action (v2025.12.10 → v2025.12.11) (#83)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-12 10:14:43 +02:00
renovate[bot]
b800bb2ef1 chore(deps): update ivuorinen/actions action (v2025.12.08 → v2025.12.10) (#82)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-11 13:44:33 +02:00
renovate[bot]
c5a8f7564e chore(deps): update ivuorinen/actions action (v2025.12.07 → v2025.12.08) (#81)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-09 08:24:13 +02:00
renovate[bot]
3290a06bff chore(deps): update ivuorinen/actions action (v2025.12.06 → v2025.12.07) (#80)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-08 07:43:09 +02:00
renovate[bot]
1e6053867c chore(deps): update ivuorinen/actions action (v2025.12.05 → v2025.12.06) (#79)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-07 12:35:08 +02:00
renovate[bot]
8870814fa8 chore(deps): update github/codeql-action action (v4.31.6 → v4.31.7) (#78)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-07 00:22:09 +02:00
renovate[bot]
ef22d6525f chore(deps): update ivuorinen/actions action (v2025.12.04 → v2025.12.05) (#77)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-06 18:38:48 +02:00
renovate[bot]
2b128fb176 chore(deps): update actions/checkout action (v6.0.0 → v6.0.1) (#73)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 18:11:04 +00:00
renovate[bot]
583efa37ed chore(deps): update ivuorinen/actions action (v2025.12.03 → v2025.12.04) (#76)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-05 16:55:51 +02:00
renovate[bot]
bafa8c3f80 chore(deps): update golangci/golangci-lint-action action (v9.1.0 → v9.2.0) (#74)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-04 16:47:47 +02:00
renovate[bot]
6c7a0c5e68 chore(deps): update ivuorinen/actions action (v2025.12.02 → v2025.12.03) (#75)
* chore(deps): update actions/checkout action (v6.0.0 → v6.0.1)

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

* chore(deps): update ivuorinen/actions action (v2025.12.02 → v2025.12.03)

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

---------

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-04 11:33:27 +02:00
renovate[bot]
c60ab28974 chore(deps): update ivuorinen/actions action (v2025.12.01 → v2025.12.02) (#72)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-03 20:16:30 +02:00
renovate[bot]
2f4afa4294 chore(deps): update github/codeql-action action (v4.31.5 → v4.31.6) (#71)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-02 16:43:26 +02:00
renovate[bot]
d908b0ead7 chore(deps): update ivuorinen/actions action (v2025.11.30 → v2025.12.01) (#70)
Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-02 08:17:13 +02:00
renovate[bot]
fbb0ea4e18 chore(deps)!: update actions/checkout (v5.0.0 → v6.0.0) (#63) 2025-12-01 15:41:02 +02:00