fix(qa): branch defaults, webhook content type and integration wording #40
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!40
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/qa-defaults-integrations"
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
Seven defaults/integration defects from the tester sweep.
#19 —
project_healthfalse “API error”The formatter matched
/pull|pr/iagainst free-text errors, sosecurity: … is unprotectedmatchedpr. Errors are source-prefixed (issues:,pulls:,security:); match those prefixes.#20 —
security_audit/branch_protection_gethard-codedmainAdded
resolveTargetBranch(): explicit branch is verified againstlistBranches(missing →branch not found: …), otherwisegetRepo().default_branchis used, falling back tomainonly when the lookup fails. Applied to get/set/audit and the tool descriptions.#21 —
webhooks createalways failedForgejo requires
config.content_type. The handler now sendsjsonby default, acceptsjson|form|multipart(validated), and requiresurl. Added a webhook formatter (Webhook #1 created (type gitea)., list lines) so the id is visible instead of raw JSON.#22 —
memory_brain_syncadvertisedformatbut rejected itformat(also the default action) now returns an auto-detected, non-persisted fact (persisted:false, synced:false).#29 — incident dry run said “Created”
The formatter branches on
dryRun:Incident Ticket (dry-run): would create "…" with labels […] — pass dry_run:false to file it.plus a body preview; real creation reports#Nand the URL. Also switched the default labels from the upstreamtype/incident/priority/critical/status/readyto housetype/bug/priority/now, resolves ids, and never sends label names to Forgejo.#30 — exact-title duplicate missed with a long body
Duplicate scoring now separates title and body similarity (
max(titleSim, 0.7*titleSim + 0.3*bodySim)), so a 100 % title match is a candidate regardless of body length. Added a readable duplicate formatter.#35 — task-tracker claimed “1 card(s) processed”
The formatter branches on the returned shape:
status_mapprints contract + mapping,convert_cardprints the converted state/label,export_cardsprints the real count,sync_cardthe sync result.Verification
test/qa-defaults.test.mjs(19 tests) covers all seven.npm test111/111, leak scan clean,node --checkclean.Open PRs: 0; audit@master; missing branch → clear error; memoryformatworks; incident dry-run preview; duplicate #5 found; task-tracker mapping/convert/export readable; webhook create →Webhook #1 created (type gitea).→ list → delete →No webhooks.Closes #19, #20, #21, #22, #29, #30, #35.