diff --git a/command/issue.go b/command/issue.go index 2b85efc75..fd6e23d7f 100644 --- a/command/issue.go +++ b/command/issue.go @@ -148,7 +148,7 @@ func issueList(cmd *cobra.Command, args []string) error { if labels != "" && table.IsTTY() { labels = fmt.Sprintf("(%s)", labels) } - table.AddField(issueNum, nil, colorFuncForState(issue.State)) + table.AddField(issueNum, nil, utils.ColorFuncForState(issue.State)) table.AddField(replaceExcessiveWhitespace(issue.Title), nil, nil) table.AddField(labels, nil, utils.Gray) table.EndRow() diff --git a/command/pr.go b/command/pr.go index e1c8e796b..161f21263 100644 --- a/command/pr.go +++ b/command/pr.go @@ -232,20 +232,7 @@ func colorFuncForPR(pr api.PullRequest) func(string) string { if pr.State == "OPEN" && pr.IsDraft { return utils.Gray } else { - return colorFuncForState(pr.State) - } -} - -func colorFuncForState(state string) func(string) string { - switch state { - case "OPEN": - return utils.Green - case "CLOSED": - return utils.Red - case "MERGED": - return utils.Magenta - default: - return nil + return utils.ColorFuncForState(pr.State) } } diff --git a/utils/utils.go b/utils/utils.go index 065c4988e..3d157beb5 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -57,3 +57,17 @@ func FuzzyAgo(ago time.Duration) string { func Spinner() *spinner.Spinner { return spinner.New(spinner.CharSets[11], 400*time.Millisecond) } + +// ColorFuncForState returns a color function for a PR/Issue state +func ColorFuncForState(state string) func(string) string { + switch state { + case "OPEN": + return Green + case "CLOSED": + return Red + case "MERGED": + return Magenta + default: + return nil + } +}