fix(api): keep milestone due date when it is omitted in edit request (#39869) (#39921)

Backport https://github.com/go-gitea/gitea/pull/39869

`PATCH /repos/{owner}/{repo}/milestones/{id}` always overwrote the due
date with `due_on`, so a request that only changed other fields, such as
`{"state": "closed"}`, silently removed it.

The due date is now kept when `due_on` is omitted, and `"due_on": null`
or `"due_on": ""` remove it.

Only the milestone fix is backported. The issue and pull request
deadline changes of https://github.com/go-gitea/gitea/pull/39869 build
on https://github.com/go-gitea/gitea/pull/38677, which isn't on v28.
This commit is contained in:
Shudhanshu Singh authored and GitHub committed 2026-10-21 17:59:21 +02:00
1 parent 193c676946
commit bc3e228e78
8 files changed
+97 -7

No files matched your search

+4 -1
View File
@@ -219,7 +219,10 @@ func EditMilestone(ctx *context.APIContext) {
if form.Description != nil {
milestone.Content = *form.Description
}
milestone.DeadlineUnix, _ = common.ParseAPIDeadlineToEndOfDay(form.Deadline)
if _, err := common.ApplyAPIDeadlineTimestamp(&milestone.DeadlineUnix, form.Deadline, nil); err != nil {
ctx.APIErrorAuto(err)
return
}
oldIsClosed := milestone.IsClosed
if form.State != nil {