diff --git a/command/issue.go b/command/issue.go index 3ba00ad4c..84caf3000 100644 --- a/command/issue.go +++ b/command/issue.go @@ -132,23 +132,7 @@ func issueList(cmd *cobra.Command, args []string) error { } out := cmd.OutOrStdout() - table := utils.NewTablePrinter(out) - for _, issue := range issues { - issueNum := strconv.Itoa(issue.Number) - if table.IsTTY() { - issueNum = "#" + issueNum - } - labels := labelList(issue) - if labels != "" && table.IsTTY() { - labels = fmt.Sprintf("(%s)", labels) - } - table.AddField(issueNum, nil, colorFuncForState(issue.State)) - table.AddField(replaceExcessiveWhitespace(issue.Title), nil, nil) - table.AddField(labels, nil, utils.Gray) - table.EndRow() - } - table.Render() - + printIssues(out, "", len(issues), issues) return nil } @@ -397,21 +381,26 @@ func issueCreate(cmd *cobra.Command, args []string) error { } func printIssues(w io.Writer, prefix string, totalCount int, issues []api.Issue) { + table := utils.NewTablePrinter(w) for _, issue := range issues { - number := utils.Green("#" + strconv.Itoa(issue.Number)) - coloredLabels := labelList(issue) - if coloredLabels != "" { - coloredLabels = utils.Gray(fmt.Sprintf(" (%s)", coloredLabels)) + issueNum := strconv.Itoa(issue.Number) + if table.IsTTY() { + issueNum = "#" + issueNum + } + issueNum = prefix + issueNum + labels := labelList(issue) + if labels != "" && table.IsTTY() { + labels = fmt.Sprintf("(%s)", labels) } - now := time.Now() ago := now.Sub(issue.UpdatedAt) - - fmt.Fprintf(w, "%s%s %s%s %s\n", prefix, number, - text.Truncate(70, replaceExcessiveWhitespace(issue.Title)), - coloredLabels, - utils.Gray(utils.FuzzyAgo(ago))) + table.AddField(issueNum, nil, colorFuncForState(issue.State)) + table.AddField(text.Truncate(70, replaceExcessiveWhitespace(issue.Title)), nil, nil) + table.AddField(labels, nil, utils.Gray) + table.AddField(utils.FuzzyAgo(ago), nil, utils.Gray) + table.EndRow() } + table.Render() remaining := totalCount - len(issues) if remaining > 0 { fmt.Fprintf(w, utils.Gray("%sAnd %d more\n"), prefix, remaining) diff --git a/command/issue_test.go b/command/issue_test.go index c09de2c62..6ce1158c1 100644 --- a/command/issue_test.go +++ b/command/issue_test.go @@ -27,10 +27,10 @@ func TestIssueStatus(t *testing.T) { } expectedIssues := []*regexp.Regexp{ - regexp.MustCompile(`#8.*carrots`), - regexp.MustCompile(`#9.*squash`), - regexp.MustCompile(`#10.*broccoli`), - regexp.MustCompile(`#11.*swiss chard`), + regexp.MustCompile(`(?m)8.*carrots.*about.*ago`), + regexp.MustCompile(`(?m)9.*squash.*about.*ago`), + regexp.MustCompile(`(?m)10.*broccoli.*about.*ago`), + regexp.MustCompile(`(?m)11.*swiss chard.*about.*ago`), } for _, r := range expectedIssues {