mirror of
https://gitea.com/gitea/tea
synced 2024-11-23 08:22:40 +01:00
9ab36c55fa
### ⚠️ breaking changes ⚠️ - unset timestamps will not be printed as `"0001-01-01 00:00"`, but as empty value `""` - output formats `csv`, `tsv`, `yaml` output timestamps in UTC instead of local time, and adhere to [RFC3339](https://datatracker.ietf.org/doc/html/rfc3339) Co-authored-by: Norwin <git@nroo.de> Co-authored-by: 6543 <6543@obermui.de> Reviewed-on: https://gitea.com/gitea/tea/pulls/470 Reviewed-by: 6543 <6543@obermui.de> Reviewed-by: John Olheiser <john.olheiser@gmail.com> Co-authored-by: Norwin <noerw@noreply.gitea.io> Co-committed-by: Norwin <noerw@noreply.gitea.io>
64 lines
1.3 KiB
Go
64 lines
1.3 KiB
Go
// Copyright 2020 The Gitea Authors. All rights reserved.
|
|
// Use of this source code is governed by a MIT-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package print
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"code.gitea.io/sdk/gitea"
|
|
)
|
|
|
|
// MilestoneDetails print an milestone formatted to stdout
|
|
func MilestoneDetails(milestone *gitea.Milestone) {
|
|
fmt.Printf("%s\n",
|
|
milestone.Title,
|
|
)
|
|
if len(milestone.Description) != 0 {
|
|
fmt.Printf("\n%s\n", milestone.Description)
|
|
}
|
|
if milestone.Deadline != nil && !milestone.Deadline.IsZero() {
|
|
fmt.Printf("\nDeadline: %s\n", FormatTime(*milestone.Deadline, false))
|
|
}
|
|
}
|
|
|
|
// MilestonesList prints a listing of milestones
|
|
func MilestonesList(miles []*gitea.Milestone, output string, state gitea.StateType) {
|
|
headers := []string{
|
|
"Title",
|
|
}
|
|
if state == gitea.StateAll {
|
|
headers = append(headers, "State")
|
|
}
|
|
headers = append(headers,
|
|
"Open/Closed Issues",
|
|
"DueDate",
|
|
)
|
|
|
|
t := table{headers: headers}
|
|
|
|
for _, m := range miles {
|
|
var deadline = ""
|
|
|
|
if m.Deadline != nil && !m.Deadline.IsZero() {
|
|
deadline = FormatTime(*m.Deadline, isMachineReadable(output))
|
|
}
|
|
|
|
item := []string{
|
|
m.Title,
|
|
}
|
|
if state == gitea.StateAll {
|
|
item = append(item, string(m.State))
|
|
}
|
|
item = append(item,
|
|
fmt.Sprintf("%d/%d", m.OpenIssues, m.ClosedIssues),
|
|
deadline,
|
|
)
|
|
t.addRowSlice(item)
|
|
}
|
|
|
|
t.sort(0, true)
|
|
t.print(output)
|
|
}
|