matrix-webhook/matrix_webhook/formatters/buildbot.py

42 lines
1.4 KiB
Python
Raw Normal View History

2021-12-01 23:36:57 -05:00
from datetime import datetime
def formatter(data, headers):
"""Pretty-print a buildbot notification."""
buildid = data["buildid"]
buildstate = data["state_string"]
buildlink = data["url"]
reason = data["buildset"]["reason"]
project = data["properties"]["project"][0]
submittime = datetime.fromtimestamp(data["buildset"]["submitted_at"])
# This could use some optimization, but it works for now.
2021-12-01 23:36:57 -05:00
if buildstate == "starting":
try:
data["body"] = (
f"###Buildbot job #{buildid} for {project} - {buildstate}\n\n"
f"{reason}\n\n"
f"**started at** {submittime}\n\n"
f"[view details]({buildlink})"
)
except Exception as error:
print(error)
elif buildstate == "build successful":
try:
data["body"] = (
f"###Buildbot job #{buildid} for {project} - {buildstate}\n\n"
f"**completed at** {datetime.fromtimestamp(data['complete_at'])}\n\n"
f"[view details]({buildlink})"
)
except Exception as error:
print(error)
else:
try:
data["body"] = (
f"###Buildbot job #{buildid} for {project} - {buildstate}\n\n"
f"[view details]({buildlink})"
)
except Exception as error:
print(error)
2021-12-01 23:36:57 -05:00
return data