fix(prs): gitea_merge_readiness reports "NOT ready to merge" for an already-merged PR #38
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#38
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Symptom
gitea_merge_readiness(andgitea_auto_merge's preview) reportsNOT ready to mergefor a pull request that is already merged, listing approval/CI checks that no longer matter. Operators cannot tell "blocked" from "already done".Repro
Observed vs expected
(Merged)marker (the formatter has one, but the handler never setsmerged).PR #18 is already merged; no merge needed(with the merge commit/date if available), and the check list either omitted or labelled as historical.Root cause
lib/merge-readiness.js(used by both tools) computes checks from the PR/CI APIs without short-circuiting onpr.merged/pr.merged_at. The formatter (lib/handlers/formatters.js) only appends(Merged)whendata.mergedis set, which never happens.Proposed fix
Fetch the PR first; if
merged/merged_atis set, return{merged:true, number, mergedAt, url}and let bothmerge_readinessandauto_mergereport "already merged" without running merge checks. Tests for merged/open/blocked PRs.Acceptance: the Repro says "already merged"; an open blocked PR still lists the failing checks.
Duplicate check
Searched
merge/readiness(state all) — no existing issue; #23 is thepr_getrendering bug.Layer
dsh-gitea plugin/tool.
Fixed in
234cbd4(PR #39).checkMergeReadinessshort-circuits onpr.merged/merged_atand returns{merged:true, alreadyMerged:true, mergedAt, url}without running merge checks;autoMergeIfReadyreturns the same and never callsmergePullfor a merged PR. The formatter printsPR #18 is already merged at 2026-10-23T22:56:06Z; no merge needed. (url).Live:
gitea_merge_readiness {number:18}→ the already-merged line, noNOT ready, no check list.Tests:
test/pr-semantics.test.mjs.