Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: peaklabs-dev <122374094+peaklabs-dev@users.noreply.github.com>
Co-authored-by: Aditya Tripathi <aditya@climactic.co>
This commit is contained in:
Andras Bacsai
2026-11-06 14:25:02 +01:00
committed by GitHub
co-authored by Claude Opus 5.5 peaklabs-dev Aditya Tripathi
parent b7dc2e435b
commit 033f0c84da
581 changed files with 58626 additions and 2456 deletions
@@ -10,6 +10,7 @@ use App\Models\SlackNotificationSettings;
use App\Models\Team;
use App\Models\TelegramNotificationSettings;
use App\Models\WebhookNotificationSettings;
use App\Rules\SafeSmtpHost;
use App\Rules\SafeWebhookUrl;
use App\Rules\ValidHostname;
use Illuminate\Database\Eloquent\Model;
@@ -33,7 +34,7 @@ class NotificationsController extends Controller
'smtp_from_address' => 'sometimes|nullable|email',
'smtp_from_name' => 'sometimes|nullable|string|max:255',
'smtp_recipients' => 'sometimes|nullable|string|max:1000',
'smtp_host' => 'sometimes|nullable|string|max:255',
'smtp_host' => ['sometimes', 'nullable', 'string', 'max:255', new SafeSmtpHost],
'smtp_port' => 'sometimes|nullable|integer|min:1|max:65535',
'smtp_encryption' => 'sometimes|nullable|string|in:starttls,tls,none',
'smtp_username' => 'sometimes|nullable|string|max:255',
@@ -42,6 +43,8 @@ class NotificationsController extends Controller
'smtp_ehlo_domain' => ['sometimes', 'nullable', 'string', 'max:255', new ValidHostname],
'resend_enabled' => 'sometimes|boolean',
'resend_api_key' => 'sometimes|nullable|string|max:255',
'resend_from_address' => 'sometimes|nullable|email',
'resend_from_name' => 'sometimes|nullable|string|max:255',
'use_instance_email_settings' => 'sometimes|boolean',
'deployment_success_email_notifications' => 'sometimes|boolean',
'deployment_failure_email_notifications' => 'sometimes|boolean',
@@ -59,6 +62,7 @@ class NotificationsController extends Controller
'server_unreachable_email_notifications' => 'sometimes|boolean',
'server_patch_email_notifications' => 'sometimes|boolean',
'traefik_outdated_email_notifications' => 'sometimes|boolean',
'image_vulnerabilities_email_notifications' => 'sometimes|boolean',
],
],
'discord' => [
@@ -81,6 +85,7 @@ class NotificationsController extends Controller
'server_unreachable_discord_notifications' => 'sometimes|boolean',
'server_patch_discord_notifications' => 'sometimes|boolean',
'traefik_outdated_discord_notifications' => 'sometimes|boolean',
'image_vulnerabilities_discord_notifications' => 'sometimes|boolean',
'discord_ping_enabled' => 'sometimes|boolean',
],
],
@@ -104,6 +109,7 @@ class NotificationsController extends Controller
'server_unreachable_slack_notifications' => 'sometimes|boolean',
'server_patch_slack_notifications' => 'sometimes|boolean',
'traefik_outdated_slack_notifications' => 'sometimes|boolean',
'image_vulnerabilities_slack_notifications' => 'sometimes|boolean',
],
],
'telegram' => [
@@ -127,6 +133,7 @@ class NotificationsController extends Controller
'server_unreachable_telegram_notifications' => 'sometimes|boolean',
'server_patch_telegram_notifications' => 'sometimes|boolean',
'traefik_outdated_telegram_notifications' => 'sometimes|boolean',
'image_vulnerabilities_telegram_notifications' => 'sometimes|boolean',
'telegram_notifications_deployment_success_thread_id' => 'sometimes|nullable|string|max:255',
'telegram_notifications_deployment_failure_thread_id' => 'sometimes|nullable|string|max:255',
'telegram_notifications_status_change_thread_id' => 'sometimes|nullable|string|max:255',
@@ -142,6 +149,7 @@ class NotificationsController extends Controller
'telegram_notifications_server_unreachable_thread_id' => 'sometimes|nullable|string|max:255',
'telegram_notifications_server_patch_thread_id' => 'sometimes|nullable|string|max:255',
'telegram_notifications_traefik_outdated_thread_id' => 'sometimes|nullable|string|max:255',
'telegram_notifications_image_vulnerabilities_thread_id' => 'sometimes|nullable|string|max:255',
],
],
'pushover' => [
@@ -165,6 +173,7 @@ class NotificationsController extends Controller
'server_unreachable_pushover_notifications' => 'sometimes|boolean',
'server_patch_pushover_notifications' => 'sometimes|boolean',
'traefik_outdated_pushover_notifications' => 'sometimes|boolean',
'image_vulnerabilities_pushover_notifications' => 'sometimes|boolean',
],
],
'webhook' => [
@@ -187,6 +196,7 @@ class NotificationsController extends Controller
'server_unreachable_webhook_notifications' => 'sometimes|boolean',
'server_patch_webhook_notifications' => 'sometimes|boolean',
'traefik_outdated_webhook_notifications' => 'sometimes|boolean',
'image_vulnerabilities_webhook_notifications' => 'sometimes|boolean',
],
],
default => throw new \InvalidArgumentException("Unknown notification channel [{$channel}]."),