The update-badges workflow only refreshed pylint and pyright. Add a
coverage step that runs the unit suite under coverage.py, extracts the
TOTAL percentage, and updates a new coverage badge in the README.
Also trigger the workflow on .coveragerc changes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NkwFXLFff9PYPy4wgVBJp9
The old patterns required a trailing ] that badge markdown doesn't have,
so sed never matched and the README was never updated. Switch to matching
only the /badge/tool-... URL segment, which is stable and unambiguous.
Also encode / as %2F in the pylint score for a valid shields.io URL.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Capture full output with || true instead of pipefail-sensitive | tail -1
- Use lookbehind for pylint score to avoid matching "previous run" value
- Use lookahead for pyright error count to search full output not just last line
- Remove hardcoded fallback values that masked parse failures
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Badges should reflect the current score even when there are lint/type
errors, not abort the job entirely.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Zero-indented lines in the commit message body broke the block scalar,
preventing Gitea from parsing the file at all.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Runs on push to main when Python files change
- Can be manually triggered via workflow_dispatch
- Executes pylint and pyright to extract quality scores
- Updates README.md badges with current metrics
- Auto-commits changes with [skip ci] to prevent loops
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
The Gitea Actions runner doesn't have access to pip cache storage,
causing 'reserveCache failed: connect ETIMEDOUT' errors.
Removed cache configuration from both:
- .gitea/workflows/lint.yml
- .gitea/workflows/update-badges.yml
Pip will download dependencies fresh on each run, which is acceptable
for CI workflows and avoids the timeout errors.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Created update-badges.yml Gitea Actions workflow that:
- Runs on push to main when Python files change
- Executes pylint and pyright
- Extracts quality scores from tool output
- Updates README.md badges with current scores
- Auto-commits changes with [skip ci] to avoid loop
This keeps the quality badges in README.md in sync with
actual code quality metrics automatically.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>