"""Formatters for matrix webhook.""" def grafana(data, headers): """Pretty-print a grafana notification.""" text = "" if "title" in data: text = "### " + data["title"] + "\n" if "message" in data: text = text + data["message"] + "\n\n" if "evalMatches" in data: for match in data["evalMatches"]: text = text + "* " + match["metric"] + ": " + str(match["value"]) + "\n" data["body"] = text return data def github(data, headers): """Pretty-print a github notification.""" # TODO: Write nice useful formatters. This is only an example. if headers["X-GitHub-Event"] == "push": pusher, ref, a, b, c = [ data[k] for k in ["pusher", "ref", "after", "before", "compare"] ] pusher = f"[{pusher['name']}](https://github.com/{pusher['name']})" data["body"] = f"@{pusher} pushed on {ref}: [{b} → {a}]({c}):\n\n" for commit in data["commits"]: data["body"] += f"- [{commit['message']}]({commit['url']})\n" else: data["body"] = "notification from github" data["digest"] = headers["X-Hub-Signature-256"].replace("sha256=", "") return data