Skip to content

Latest commit

 

History

History
115 lines (85 loc) · 4.59 KB

File metadata and controls

115 lines (85 loc) · 4.59 KB

Changelog

All notable changes to this project are documented here. The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.4.0 — 2026-07-07

Added

  • support multiple named coverage categories per project (9491d66)

Changed

  • Add ScanCode license scanning workflow (a174f0c)
  • "Claude Code Review workflow" (f4d9b9d)
  • "Claude PR Assistant workflow" (33f8378)

Fixed

  • distinguish per-category PR checks and correct D1 database binding (502e3e4)

0.3.0 — 2026-07-05

Added

  • add automated release workflows (#46) (67d8bff)

Fixed

  • create the release commit via GitHub's GraphQL API (#48) (69d7121)
  • use the last CCN average in multi-file lizard XML reports (bc3dbbf)
  • bump fast-xml-parser to v5 and fix ambient-env test gap in report action (16d03de)

0.2.0 — 2026-07-02

Consumer-generated reports (breaking change)

The reporting Action moved from "the Action runs the tool" to "the consumer runs the tool, the Action reads the file." You now run your tests, coverage tools, and (optionally) complexity/duplication tools yourself; the Action parses the report they produce and reports the numbers.

Coverage formats are auto-detected by content: LCOV, Cobertura XML, JaCoCo XML, and the native Go coverage profile (go test -coverprofile). go is parsed directly — never converted. coverage-path is optional; when unset, the Action probes documented default paths and uses the first hit (an explicit path always wins). See docs/generating-coverage-reports.md.

⚠️ Breaking changes — read before upgrading

  • (a) The Action no longer runs your tests or coverage tools. It previously detected the language and ran go tool cover, coverage.py, Istanbul, etc. Now you must produce the coverage report yourself before the Action step. The coverage-report-go / coverage-report-python / coverage-report-js inputs are removed; use coverage-path (or rely on auto-detection).
  • (b) jscpd is no longer auto-installed. Duplication silently disappears for consumers who relied on the Action installing jscpd — unless you add a jscpd step yourself, or set max-duplication (which now fails loudly when no jscpd report is found, rather than skipping). The same fail-when-configured rule applies to max-complexity.
  • (c) The bundle moved: dist/run.jsdist/index.js. The action entry is now a node20 action (main: dist/index.js) instead of a composite step that invoked collect.sh. collect.sh and test/collect-parsers.sh are removed.

Before

# The Action detected the language, ran the tools, and auto-installed jscpd.
- uses: CoverageTracker/coverage-tracker/.github/actions/report@v0.1.2
  with:
    worker-url: https://coverage-tracker.example.com
    coverage-report-js: coverage/coverage-summary.json
    max-duplication: '5'

After

# You run the tools; the Action reads the report (auto-detected).
- run: npm test -- --coverage # writes coverage/lcov.info
- run: npx jscpd . --reporters json --output ./jscpd-report # only if you want duplication
- uses: CoverageTracker/coverage-tracker/.github/actions/report@v0.2.0
  with:
    worker-url: https://coverage-tracker.example.com
    # coverage-path is auto-detected; complexity/duplication are optional
    max-duplication: '5' # now requires a jscpd report

Added

  • Content-based coverage format sniffer supporting LCOV, Cobertura, JaCoCo, and the Go coverage profile.
  • Optional complexity reports (Radon JSON, gocyclo text, Lizard XML) and jscpd duplication reports, resolved via explicit *-path inputs or default-path probing. JaCoCo coverage reports derive cyclomatic complexity for free.
  • New inputs: coverage-path, coverage-tool (Cobertura only), complexity-path, duplication-path, github-token.
  • fast-xml-parser as the single bundled XML dependency.

Changed

  • action.yml is now a node20 action (main: dist/index.js).
  • src/run.ts is now a pure helper module (threshold/summary/Check-Run logic); orchestration lives in the new src/index.ts.

Removed

  • collect.sh and its inline parsers; test/collect-parsers.sh.
  • coverage-report-go / coverage-report-python / coverage-report-js inputs.
  • dist/run.js (replaced by dist/index.js).