mirror of
https://github.com/yavook/kiwi-simple-metrics.git
synced 2024-11-21 23:32:59 +00:00
Report.push_webhook()
This commit is contained in:
parent
cc45e8d02a
commit
627edab9e9
3 changed files with 17 additions and 17 deletions
|
@ -1,9 +1,6 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import urllib.parse
|
|
||||||
|
|
||||||
import requests
|
|
||||||
|
|
||||||
from . import metrics
|
from . import metrics
|
||||||
from .settings import SETTINGS
|
from .settings import SETTINGS
|
||||||
|
@ -22,14 +19,8 @@ def handle_report() -> None:
|
||||||
if SETTINGS.log.enabled:
|
if SETTINGS.log.enabled:
|
||||||
print(report)
|
print(report)
|
||||||
|
|
||||||
# maybe push this to a webhook
|
# maybe push this to the configured webhook
|
||||||
if (url := SETTINGS.webhook.get_url(failed=report.failed)) is not None:
|
report.push_webhook()
|
||||||
requests.get(
|
|
||||||
url=str(url).format(
|
|
||||||
urllib.parse.quote_plus(report.result)
|
|
||||||
),
|
|
||||||
verify=not SETTINGS.webhook.insecure,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
async def run_metrics() -> None:
|
async def run_metrics() -> None:
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
|
import urllib.parse
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from typing import Any, Callable, Iterator, Self
|
from typing import Any, Callable, Iterator, Self
|
||||||
|
|
||||||
|
import requests
|
||||||
|
|
||||||
from ..settings import SETTINGS, MetricSettings
|
from ..settings import SETTINGS, MetricSettings
|
||||||
|
|
||||||
|
|
||||||
|
@ -112,3 +115,15 @@ class Report:
|
||||||
for report in reports
|
for report in reports
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def push_webhook(self) -> None:
|
||||||
|
if (url := SETTINGS.webhook.url if not self.failed
|
||||||
|
else SETTINGS.webhook.fail) is None:
|
||||||
|
return
|
||||||
|
|
||||||
|
requests.get(
|
||||||
|
url=str(url).format(
|
||||||
|
urllib.parse.quote_plus(self.result)
|
||||||
|
),
|
||||||
|
verify=not SETTINGS.webhook.insecure,
|
||||||
|
)
|
||||||
|
|
|
@ -16,9 +16,3 @@ class WebhookSettings(BaseModel):
|
||||||
|
|
||||||
# allow insecure/self-signed webhook targets
|
# allow insecure/self-signed webhook targets
|
||||||
insecure: bool = False
|
insecure: bool = False
|
||||||
|
|
||||||
def get_url(self, failed: bool) -> AnyUrl | None:
|
|
||||||
if failed:
|
|
||||||
return self.fail
|
|
||||||
|
|
||||||
return self.url
|
|
||||||
|
|
Loading…
Reference in a new issue