fix(qa): render PR, CI, commit, compare, search and timeline payloads #41
No reviewers
Labels
No labels
area/dsh
area/forgejo
experiment
priority/later
priority/next
priority/now
type/bug
type/task
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
dsh-plugins/dsh-gitea!41
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/qa-formatters"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Six output-quality defects from the tester sweep. These tools had no formatters, so the generic array/object fallbacks emitted clipped JSON or a bare
#N.#25 — commits / PR files / compare
gitea_repo_commits:ca4117f Merge pull request #1 (pvlb-dev, 2026-08-06).gitea_pr_files:lib/handlers/formatters.js (+17/-3) [changed].gitea_repo_compare:Compare: N commit(s), M file(s) (ahead/behind)+ file list, orCompare: No changes.#26 — CI
status: one line per run (#76 title [success] branch sha+ URL).jobs: accepts both{jobs}and Forgejo's real{workflow_jobs}envelope;#id name [status/conclusion].run: id/title/state/branch/SHA/URL + job summary.Unrecognised responsefallback for these shapes.#27 — code search
Handler now caps matches globally (
git grep --max-countwas per file) and returns{items,total_count,truncated,limit}. Formatter printspath:line: snippetand… showing N of M matches.#32 — PR analysis
pr_summary: files, +/-, areas, tests, risks, approvals, mergeable.pr_review: verdict, summary, risks, questions.pr_rebase: dry-run plan (head → base, steps, note).pr_policy: “not configured” / violation list.pr_template_check: “complete” / missing sections + risk checklist.#33 — notifications / users / org members
repo — subject [type, reason] (updated).login (name) — url.#34 — issue timeline
Per-type rendering:
added type/task,old → new, milestone title,added @dsh, comment body, reaction — instead of empty colons.RECORD_KEYSgained the fields these formatters need (workflow_jobs,commits,subject,reason,unread,label,old_title,new_title,risks,areas,testFiles,head_branch,ahead_by, …); without thatslimRecorddropped them before rendering.Verification
test/qa-formatters.test.mjs(19 tests).npm test131/131, leak scan clean,node --checkclean.jobsis checked against the fresh run created by this PR’s merge.Closes #25, #26, #27, #32, #33, #34.