| 80 | } |
| 81 | |
| 82 | func (r *renderer) summaryTable(m *ChainloopMetadata, predicate chainloop.NormalizablePredicate) (string, error) { |
| 83 | tw := table.NewWriter() |
| 84 | tw.SetStyle(table.StyleLight) |
| 85 | |
| 86 | if m == nil || m.Workflow == nil { |
| 87 | return "", fmt.Errorf("workflow metadata is missing") |
| 88 | } |
| 89 | |
| 90 | if predicate == nil { |
| 91 | return "", fmt.Errorf("predicate is nil") |
| 92 | } |
| 93 | |
| 94 | tw.SetTitle("Workflow") |
| 95 | tw.AppendRow(table.Row{"ID", m.Workflow.ID}) |
| 96 | tw.AppendRow(table.Row{"Name", m.Workflow.Name}) |
| 97 | tw.AppendRow(table.Row{"Team", m.Workflow.Team}) |
| 98 | tw.AppendRow(table.Row{"Project", m.Workflow.Project}) |
| 99 | tw.AppendSeparator() |
| 100 | |
| 101 | wr := m.WorkflowRun |
| 102 | if wr == nil { |
| 103 | return "", fmt.Errorf("workflow run metadata is missing") |
| 104 | } |
| 105 | |
| 106 | tw.AppendRow(table.Row{"Workflow Run"}) |
| 107 | tw.AppendSeparator() |
| 108 | tw.AppendRow(table.Row{"ID", wr.ID}) |
| 109 | tw.AppendRow(table.Row{"Attestation", wr.AttestationDigest}) |
| 110 | tw.AppendRow(table.Row{"Started At", wr.StartedAt.Format(time.RFC822)}) |
| 111 | tw.AppendRow(table.Row{"Finished At", wr.FinishedAt.Format(time.RFC822)}) |
| 112 | tw.AppendRow(table.Row{"State", wr.State}) |
| 113 | tw.AppendRow(table.Row{"Runner Link", wr.RunURL}) |
| 114 | if annotations := predicate.GetAnnotations(); len(annotations) > 0 { |
| 115 | keys := make([]string, 0, len(annotations)) |
| 116 | for k := range annotations { |
| 117 | keys = append(keys, k) |
| 118 | } |
| 119 | sort.Strings(keys) |
| 120 | |
| 121 | tw.AppendRow(table.Row{"Annotations", "------"}) |
| 122 | for _, k := range keys { |
| 123 | tw.AppendRow(table.Row{"", fmt.Sprintf("%s: %s", k, annotations[k])}) |
| 124 | } |
| 125 | } |
| 126 | |
| 127 | var result = r.render(tw) |
| 128 | |
| 129 | // Materials |
| 130 | materials := predicate.GetMaterials() |
| 131 | if len(materials) > 0 { |
| 132 | mt := table.NewWriter() |
| 133 | mt.SetStyle(table.StyleLight) |
| 134 | |
| 135 | mt.SetTitle("Materials") |
| 136 | for _, m := range materials { |
| 137 | mt.AppendRow(table.Row{"Name", m.Name}) |
| 138 | mt.AppendRow(table.Row{"Type", m.Type}) |
| 139 | var value string |