mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-27 08:44:04 +00:00
feat: keephq notification provider (#4722)
This commit is contained in:
parent
19e8c75c3b
commit
988ba79679
6 changed files with 90 additions and 0 deletions
42
server/notification-providers/keep.js
Normal file
42
server/notification-providers/keep.js
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
const NotificationProvider = require("./notification-provider");
|
||||||
|
const axios = require("axios");
|
||||||
|
|
||||||
|
class Keep extends NotificationProvider {
|
||||||
|
name = "Keep";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritdoc
|
||||||
|
*/
|
||||||
|
async send(notification, msg, monitorJSON = null, heartbeatJSON = null) {
|
||||||
|
const okMsg = "Sent Successfully.";
|
||||||
|
|
||||||
|
try {
|
||||||
|
let data = {
|
||||||
|
heartbeat: heartbeatJSON,
|
||||||
|
monitor: monitorJSON,
|
||||||
|
msg,
|
||||||
|
};
|
||||||
|
let config = {
|
||||||
|
headers: {
|
||||||
|
"x-api-key": notification.webhookAPIKey,
|
||||||
|
"content-type": "application/json",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
let url = notification.webhookURL;
|
||||||
|
|
||||||
|
if (url.endsWith("/")) {
|
||||||
|
url = url.slice(0, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
let webhookURL = url + "/alerts/event/uptimekuma";
|
||||||
|
|
||||||
|
await axios.post(webhookURL, data, config);
|
||||||
|
return okMsg;
|
||||||
|
} catch (error) {
|
||||||
|
this.throwGeneralAxiosError(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = Keep;
|
|
@ -18,6 +18,7 @@ const Gotify = require("./notification-providers/gotify");
|
||||||
const GrafanaOncall = require("./notification-providers/grafana-oncall");
|
const GrafanaOncall = require("./notification-providers/grafana-oncall");
|
||||||
const HomeAssistant = require("./notification-providers/home-assistant");
|
const HomeAssistant = require("./notification-providers/home-assistant");
|
||||||
const HeiiOnCall = require("./notification-providers/heii-oncall");
|
const HeiiOnCall = require("./notification-providers/heii-oncall");
|
||||||
|
const Keep = require("./notification-providers/keep");
|
||||||
const Kook = require("./notification-providers/kook");
|
const Kook = require("./notification-providers/kook");
|
||||||
const Line = require("./notification-providers/line");
|
const Line = require("./notification-providers/line");
|
||||||
const LineNotify = require("./notification-providers/linenotify");
|
const LineNotify = require("./notification-providers/linenotify");
|
||||||
|
@ -95,6 +96,7 @@ class Notification {
|
||||||
new GrafanaOncall(),
|
new GrafanaOncall(),
|
||||||
new HomeAssistant(),
|
new HomeAssistant(),
|
||||||
new HeiiOnCall(),
|
new HeiiOnCall(),
|
||||||
|
new Keep(),
|
||||||
new Kook(),
|
new Kook(),
|
||||||
new Line(),
|
new Line(),
|
||||||
new LineNotify(),
|
new LineNotify(),
|
||||||
|
|
|
@ -123,6 +123,7 @@ export default {
|
||||||
"GrafanaOncall": "Grafana Oncall",
|
"GrafanaOncall": "Grafana Oncall",
|
||||||
"HeiiOnCall": "Heii On-Call",
|
"HeiiOnCall": "Heii On-Call",
|
||||||
"HomeAssistant": "Home Assistant",
|
"HomeAssistant": "Home Assistant",
|
||||||
|
"Keep": "Keep",
|
||||||
"Kook": "Kook",
|
"Kook": "Kook",
|
||||||
"line": "LINE Messenger",
|
"line": "LINE Messenger",
|
||||||
"LineNotify": "LINE Notify",
|
"LineNotify": "LINE Notify",
|
||||||
|
|
42
src/components/notifications/Keep.vue
Normal file
42
src/components/notifications/Keep.vue
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<template>
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="webhook-url" class="form-label">{{ $t("Host URL") }}</label>
|
||||||
|
<input
|
||||||
|
id="webhook-url"
|
||||||
|
v-model="$parent.notification.webhookURL"
|
||||||
|
type="url"
|
||||||
|
pattern="https?://.+"
|
||||||
|
class="form-control"
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
<div class="form-text">
|
||||||
|
<i18n-t tag="p" keypath="Read more:">
|
||||||
|
<a href="https://docs.keephq.dev/providers/documentation/uptimekuma-provider" target="_blank">https://docs.keephq.dev/providers/documentation/uptimekuma-provider</a>
|
||||||
|
</i18n-t>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<label for="webhook-apikey" class="form-label">{{
|
||||||
|
$t("API Key")
|
||||||
|
}}</label>
|
||||||
|
<HiddenInput
|
||||||
|
id="webhook-apikey"
|
||||||
|
v-model="$parent.notification.webhookAPIKey"
|
||||||
|
:required="true"
|
||||||
|
></HiddenInput>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import HiddenInput from "../HiddenInput.vue";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
HiddenInput,
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.$parent.notification.webhookURL ||= "";
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
|
@ -17,6 +17,7 @@ import GrafanaOncall from "./GrafanaOncall.vue";
|
||||||
import GtxMessaging from "./GtxMessaging.vue";
|
import GtxMessaging from "./GtxMessaging.vue";
|
||||||
import HomeAssistant from "./HomeAssistant.vue";
|
import HomeAssistant from "./HomeAssistant.vue";
|
||||||
import HeiiOnCall from "./HeiiOnCall.vue";
|
import HeiiOnCall from "./HeiiOnCall.vue";
|
||||||
|
import Keep from "./Keep.vue";
|
||||||
import Kook from "./Kook.vue";
|
import Kook from "./Kook.vue";
|
||||||
import Line from "./Line.vue";
|
import Line from "./Line.vue";
|
||||||
import LineNotify from "./LineNotify.vue";
|
import LineNotify from "./LineNotify.vue";
|
||||||
|
@ -82,6 +83,7 @@ const NotificationFormList = {
|
||||||
"GrafanaOncall": GrafanaOncall,
|
"GrafanaOncall": GrafanaOncall,
|
||||||
"HomeAssistant": HomeAssistant,
|
"HomeAssistant": HomeAssistant,
|
||||||
"HeiiOnCall": HeiiOnCall,
|
"HeiiOnCall": HeiiOnCall,
|
||||||
|
"Keep": Keep,
|
||||||
"Kook": Kook,
|
"Kook": Kook,
|
||||||
"line": Line,
|
"line": Line,
|
||||||
"LineNotify": LineNotify,
|
"LineNotify": LineNotify,
|
||||||
|
|
|
@ -63,6 +63,7 @@
|
||||||
"Friendly Name": "Friendly Name",
|
"Friendly Name": "Friendly Name",
|
||||||
"URL": "URL",
|
"URL": "URL",
|
||||||
"Hostname": "Hostname",
|
"Hostname": "Hostname",
|
||||||
|
"Host URL": "Host URL",
|
||||||
"locally configured mail transfer agent": "locally configured mail transfer agent",
|
"locally configured mail transfer agent": "locally configured mail transfer agent",
|
||||||
"Either enter the hostname of the server you want to connect to or localhost if you intend to use a locally configured mail transfer agent": "Either enter the hostname of the server you want to connect to or {localhost} if you intend to use a {local_mta}",
|
"Either enter the hostname of the server you want to connect to or localhost if you intend to use a locally configured mail transfer agent": "Either enter the hostname of the server you want to connect to or {localhost} if you intend to use a {local_mta}",
|
||||||
"Port": "Port",
|
"Port": "Port",
|
||||||
|
|
Loading…
Reference in a new issue