lbliii/Kida Report
Render CI reports from structured data using kida templates as GitHub step summaries and PR comments.
View on GitHubTrust Signals
- Scorecard Score
- not yet scored
- Maintenance Recency
- Activelast commit Jul 10, 2026
- License
- MIT
Pinned Snippet
uses: lbliii/kida@2479177568a5f9e3b0208db9dccb749a50081d22 # v0.11.0tags can be moved; commit SHAs can't. why a SHA?
Inputs
| name | description | required | default |
|---|---|---|---|
| template | Built-in template name or path to a custom template file. Built-ins: pytest, coverage, ruff, ty, jest, gotest, sarif, release-notes, release-notes-compact, release-notes-detailed, release-notes-terminal, code-review, pr-summary, deploy-preview, dependency-review, security-scan, copilot-instructions. | yes | — |
| data | Path to a data file (JSON, JUnit XML, etc.) or "auto" to collect data from the GitHub API (only for data-format: github-prs). | yes | — |
| data-format | Format of the data file (json, junit-xml, sarif, lcov, github-prs). github-prs collects merged pull requests between two git refs via the GitHub API and produces JSON for release-notes templates. | no | json |
| post-to | Where to post the rendered report. Comma-separated list of targets: step-summary, pr-comment, release, release-asset, slack, changelog. | no | step-summary |
| base-ref | Base git ref for github-prs collection (tag, branch, or SHA). When omitted, auto-detects the previous tag. | no | "" |
| head-ref | Head git ref for github-prs collection. Default: current ref. | no | "" |
| release-tag | Tag name for the GitHub Release when post-to includes "release" or "release-asset". Required for those targets. | no | "" |
| asset-name | Filename for the release asset when post-to includes "release-asset". Default: "release-notes.md". | no | release-notes.md |
| slack-webhook | Slack incoming webhook URL for post-to: slack. The rendered report is sent as the message text. | no | "" |
| changelog-path | Path to the CHANGELOG.md file for post-to: changelog. The rendered content is prepended under the [Unreleased] heading. | no | CHANGELOG.md |
| render-mode | Kida rendering mode: markdown (default), terminal, html. Terminal mode enables ANSI colors and terminal filters. | no | markdown |
| comment-header | Header text used to identify the PR comment for updates. When posting to pr-comment, existing comments with this header are replaced instead of creating duplicates. Defaults to the template name. | no | "" |
| token | GitHub token for posting PR comments. Only needed when post-to includes pr-comment. Ignored when app-id is provided. | no | ${{ github.token }} |
| app-id | GitHub App ID for posting PR comments with a branded identity. When provided (along with app-private-key), a short-lived token is generated automatically and used instead of the token input. | no | "" |
| app-private-key | Private key (PEM) for the GitHub App. Required when app-id is set. | no | "" |
| python-version | Python version to use (3.14+). Set to "skip" to skip Python setup. | no | 3.14 |
| install | Whether to install kida via pip. Set to "false" if kida is already available. | no | true |
| kida-command | Command to invoke kida (e.g., "uv run kida" for local dev). Default: "kida". | no | kida |
| fail-under | Optional numeric threshold. If the data contains a top-level percent_covered (coverage) or a computed pass rate (junit-xml) below this value, the step fails. Ignored when empty. | no | "" |
| comment-mode | How to handle existing PR comments with the same header. "replace" overwrites the comment (default). "append" adds a new section below the existing content, useful for combining multiple reports into one comment. | no | replace |
| context | Optional JSON string with extra template variables merged into the data context. Example: '{"changed_files": ["src/foo.py", "src/bar.py"]}' | no | "" |
Outputs
| name | description |
|---|---|
| report | The rendered markdown report content |
| comment-id | The ID of the created/updated PR comment (if post-to includes pr-comment) |
| data-file | Path to the collected data JSON (github-prs only). Reuse in subsequent steps. |