mirror of
https://github.com/go-gitea/gitea.git
synced 2026-10-22 11:03:57 +09:00
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.
63 lines
2.1 KiB
Go
63 lines
2.1 KiB
Go
// Copyright 2016 The Gogs Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package structs
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gitea.dev/modules/optional"
|
|
)
|
|
|
|
// Milestone milestone is a collection of issues on one repository
|
|
type Milestone struct {
|
|
// ID is the unique identifier for the milestone
|
|
ID int64 `json:"id"`
|
|
// Title is the title of the milestone
|
|
Title string `json:"title"`
|
|
// Description provides details about the milestone
|
|
Description string `json:"description"`
|
|
// State indicates if the milestone is open or closed
|
|
State StateType `json:"state"`
|
|
// OpenIssues is the number of open issues in this milestone
|
|
OpenIssues int `json:"open_issues"`
|
|
// ClosedIssues is the number of closed issues in this milestone
|
|
ClosedIssues int `json:"closed_issues"`
|
|
// swagger:strfmt date-time
|
|
Created time.Time `json:"created_at"`
|
|
// swagger:strfmt date-time
|
|
Updated *time.Time `json:"updated_at"`
|
|
// swagger:strfmt date-time
|
|
Closed *time.Time `json:"closed_at"`
|
|
// swagger:strfmt date-time
|
|
Deadline *time.Time `json:"due_on"`
|
|
}
|
|
|
|
// CreateMilestoneOption options for creating a milestone
|
|
type CreateMilestoneOption struct {
|
|
// Title is the title of the new milestone
|
|
Title string `json:"title"`
|
|
// Description provides details about the milestone
|
|
Description string `json:"description"`
|
|
// swagger:strfmt date-time
|
|
// Deadline is the due date for the milestone
|
|
Deadline *time.Time `json:"due_on"`
|
|
// enum: ["open","closed"]
|
|
// State indicates the initial state of the milestone
|
|
State string `json:"state"`
|
|
}
|
|
|
|
// EditMilestoneOption options for editing a milestone
|
|
type EditMilestoneOption struct {
|
|
// Title is the updated title of the milestone
|
|
Title string `json:"title"`
|
|
// Description provides updated details about the milestone
|
|
Description *string `json:"description"`
|
|
// State indicates the updated state of the milestone
|
|
// enum: ["open","closed"]
|
|
State *string `json:"state"`
|
|
// Deadline is the due date for the milestone, use null or empty string to remove the deadline
|
|
// swagger:strfmt date-time
|
|
Deadline optional.Option[*string] `json:"due_on,omitzero"`
|
|
}
|