fix(gitea): gitea-prs reference wrongly claims milestone is settable on PR create #104
Reference in New Issue
Block a user
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?
Found while opening PR #103 through the
gitea-prsskill.The claim
plugins/gitea/.apm/skills/gitea-prs/references/pull-requests.md:59documentspull_request_write'smilestoneparameter as:The "settable on
create" half is wrong against this Gitea server.Actual behaviour
pull_request_write method: "create"acceptsmilestonewithout error and silently drops it. There is no error, no warning, and no field in the response indicating the parameter was ignored. Confirmed three ways:open_issuescount did not move (12 before the create, 12 after);pull_request_read method: "get"on the new PR returned nomilestonefield at all;issue_read method: "get"on the same number likewise returned nomilestonefield.A follow-up
pull_request_write method: "update"with the identicalmilestone: 6applies it correctly — the read then returns"milestone": "Skills & Agents"and the count moves to 13.Reproduction
PR #103 (
feat(kyberforge): ADR-0020 context contract for skills and agents). Created withlabels: [9, 23]andmilestone: 6in a singlecreatecall. Labels applied; milestone did not. A second call,method: "update"with onlypull_numberandmilestone: 6, applied it.Why this is easy to miss
labelsandmilestoneare adjacent optional parameters on the same write, documented identically, andlabelsdoes apply correctly oncreate. The asymmetry means a caller who verifies the labels landed will reasonably assume the milestone did too. Nothing in the create response contradicts that — the response simply omits themilestonekey, which is indistinguishable from a PR that was never given one.Note the reference file already carries a "Milestone gotcha" callout, but it covers a different problem — that reads return a bare title string rather than an ID. It does not cover the write side.
Fix
Correct
references/pull-requests.mdto state thatmilestoneis honoured only on"update", and that setting a milestone at creation time requires a follow-upupdatecall. The existing "Milestone gotcha" section is the natural home for the addition. Worth checking whether the same drop affectsassignees/reviewersoncreatewhile in there — untested, and the same silent-accept shape would apply.Not blocked by the ADR-0020 gates
The fix touches only
references/pull-requests.md, notSKILL.md.skill-size-check'sfiles:pattern is^plugins/[^/]+/\.apm/skills/[^/]+/SKILL\.md$(verified at.pre-commit-config.yaml:275), so a reference-file edit does not trigger the new description/body gates. Whoever picks this up can fix it directly, without first retrofittinggitea-prsfor #99.