diff --git a/pkg/cmd/issue/shared/display.go b/pkg/cmd/issue/shared/display.go index ff9b83e1e..b7342fa9d 100644 --- a/pkg/cmd/issue/shared/display.go +++ b/pkg/cmd/issue/shared/display.go @@ -63,7 +63,7 @@ func IssueLabelList(issue api.Issue) string { labelNames := make([]string, 0, len(issue.Labels.Nodes)) for _, label := range issue.Labels.Nodes { - labelNames = append(labelNames, label.Name) + labelNames = append(labelNames, iostreams.RGB(label.Color, label.Name)) } return strings.Join(labelNames, ", ") diff --git a/pkg/cmd/pr/view/view.go b/pkg/cmd/pr/view/view.go index 905f7476d..9b98ef23d 100644 --- a/pkg/cmd/pr/view/view.go +++ b/pkg/cmd/pr/view/view.go @@ -374,7 +374,7 @@ func prLabelList(pr api.PullRequest) string { labelNames := make([]string, 0, len(pr.Labels.Nodes)) for _, label := range pr.Labels.Nodes { - labelNames = append(labelNames, label.Name) + labelNames = append(labelNames, iostreams.RGB(label.Color, label.Name)) } list := strings.Join(labelNames, ", ") diff --git a/pkg/iostreams/color.go b/pkg/iostreams/color.go index 2dedbdbd5..13d6db8e6 100644 --- a/pkg/iostreams/color.go +++ b/pkg/iostreams/color.go @@ -3,6 +3,7 @@ package iostreams import ( "fmt" "os" + "strconv" "strings" "github.com/mgutz/ansi" @@ -202,3 +203,10 @@ func (c *ColorScheme) ColorFromString(s string) func(string) string { return fn } + +func RGB(hex string, x string) string { + r, _ := strconv.ParseInt(hex[0:2], 16, 64) + g, _ := strconv.ParseInt(hex[2:4], 16, 64) + b, _ := strconv.ParseInt(hex[4:6], 16, 64) + return fmt.Sprintf("\033[38;2;%d;%d;%dm%s\033[0m", r, g, b, x) +}