func (mr *MetaReport) Report(vars []string) (string, error) {
	if len(vars) <= 0 {
		return "", fmt.Errorf("at least one item should be reported")
	}
	m := make([]meta, 0, len(vars))
	for _, v := range vars {
		key, val, err := mr.breakOnEqual(v)
		logrus.Debugf("breaking string %s on '=' produces key %s value %s\n", v, key, val)
		if err != nil {
			return "", err
		}
		n := meta{key, val}
		m = append(m, n)
	}
	logrus.Debug("validating there're no values not in the allowlist")
	err := mr.validate(m)
	if err != nil {
		return "", err
	}
	logrus.Debug("generating template")
	report, err := mr.tpl(m)
	if err != nil {
		return "", err
	}
	return report, nil
}
Report generates a markdown report
package cireport
import (
	"bytes"
	"fmt"
	"strings"
	"text/template"
	"github.com/sirupsen/logrus"
)
type MetaReport struct {
	allowlist map[string]bool
}
func NewMetaReport(allowlist []string) (*MetaReport, error) {
	if len(allowlist) <= 0 {
		return nil, fmt.Errorf("at least one item should be allowed")
	}
	a := make(map[string]bool)
	for _, v := range allowlist {
		a[v] = true
	}
	return &MetaReport{
		allowlist: a,
	}, nil
}
type meta struct {
	Key string
	Val string
}