From e44dd41306de8d62ab1d381c612aceda76dc8809 Mon Sep 17 00:00:00 2001 From: Azhe Kun Date: Fri, 14 Jun 2024 06:11:18 +0700 Subject: [PATCH] more github webhook event --- .../Services/WebhookService.cs | 50 +++++++++++++++---- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/backend/ZiziBot.Application/Services/WebhookService.cs b/backend/ZiziBot.Application/Services/WebhookService.cs index 12d8a289..6bfe0505 100644 --- a/backend/ZiziBot.Application/Services/WebhookService.cs +++ b/backend/ZiziBot.Application/Services/WebhookService.cs @@ -58,15 +58,15 @@ public async Task> ParseGitHub(WebhookHeader header, s case WebhookEventType.Star: var watcherCount = repository.WatchersCount; + var watchEvent = payload.Deserialize(); htmlMessage - .Bold(action == StarAction.Created ? "⭐️ Starred " : "🌟 Unstarred ") - .Url(repository.HtmlUrl, repository.FullName).Br() - .Bold("Total: ").Code(watcherCount.ToString()).Br(); + .Bold(action == StarAction.Created ? "⭐️ Starred " : "🌟 Unstarred ").Code(watcherCount.ToString()).Br(); break; case WebhookEventType.Status: var statusEvent = payload.Deserialize(); + htmlMessage .Bold("Creator: ").TextBr(sender.Login) .Bold("Status: ").Url(statusEvent.TargetUrl, statusEvent.State.StringValue); @@ -74,18 +74,22 @@ public async Task> ParseGitHub(WebhookHeader header, s case WebhookEventType.DeploymentStatus: var deploymentStatusEvent = payload.Deserialize(); + var deploymentStatus = deploymentStatusEvent!.DeploymentStatus; + htmlMessage - .Bold("Creator: ").TextBr(deploymentStatusEvent.Deployment.Creator.Login) - .Bold("Environment: ").TextBr(deploymentStatusEvent.DeploymentStatus.Environment).Br() - .Bold("Status: ").TextBr(deploymentStatusEvent.DeploymentStatus.State.StringValue); + .Bold("Creator: ").TextBr(deploymentStatus.Creator.Login) + .Bold("Environment: ").TextBr(deploymentStatus.Environment).Br() + .Bold("Status: ").TextBr(deploymentStatus.State.StringValue); break; case WebhookEventType.Deployment: var deploymentEvent = payload.Deserialize(); + var deployment = deploymentEvent!.Deployment; + htmlMessage - .Bold("Creator: ").TextBr(deploymentEvent.Deployment.Creator.Login) - .Bold("Environment: ").TextBr(deploymentEvent.Deployment.Environment).Br() - .Bold("Status: ").TextBr(deploymentEvent.Deployment.Task); + .Bold("Creator: ").TextBr(deployment.Creator.Login) + .Bold("Environment: ").TextBr(deployment.Environment).Br() + .Bold("Status: ").TextBr(deployment.Task); break; case WebhookEventType.WorkflowRun: @@ -100,7 +104,7 @@ public async Task> ParseGitHub(WebhookHeader header, s case WebhookEventType.CheckSuite: var checkSuiteEvent = payload.Deserialize(); - var checkSuite = checkSuiteEvent.CheckSuite; + var checkSuite = checkSuiteEvent!.CheckSuite; htmlMessage .Bold("Name: ").TextBr(checkSuite.App.Name) @@ -110,7 +114,7 @@ public async Task> ParseGitHub(WebhookHeader header, s case WebhookEventType.CheckRun: var checkRunEvent = payload.Deserialize(); - var checkRun = checkRunEvent.CheckRun; + var checkRun = checkRunEvent!.CheckRun; htmlMessage .Bold("Name: ").TextBr(checkRun.App.Name) @@ -118,6 +122,30 @@ public async Task> ParseGitHub(WebhookHeader header, s .Bold("Conclusion: ").TextBr(checkRun.Conclusion.StringValue); break; + case WebhookEventType.DependabotAlert: + var dependabotAlertEvent = payload.Deserialize(); + var dependabotAlert = dependabotAlertEvent!.Alert; + + htmlMessage + .Bold("Status: ").CodeBr(dependabotAlert.State.StringValue) + .Bold("CVE ID: ").CodeBr(dependabotAlert.SecurityAdvisory.CveId) + .Bold("Summary: ").CodeBr(dependabotAlert.SecurityAdvisory.Summary) + .Bold("Severity: ").CodeBr(dependabotAlert.SecurityAdvisory.Severity.StringValue) + .Url(dependabotAlert.HtmlUrl, "Open details"); + break; + + case WebhookEventType.RepositoryVulnerabilityAlert: + var repositoryVulnerabilityAlertEvent = payload.Deserialize(); + var repositoryVulnerabilityAlert = repositoryVulnerabilityAlertEvent!.Alert; + + htmlMessage + .Bold("CVE ID: ").CodeBr(repositoryVulnerabilityAlert.ExternalIdentifier) + .Bold("Package Name: ").CodeBr(repositoryVulnerabilityAlert.AffectedPackageName) + .Bold("Affected Range: ").CodeBr(repositoryVulnerabilityAlert.AffectedRange) + .Bold("Fixed In: ").CodeBr(repositoryVulnerabilityAlert.FixedIn) + .Url(repositoryVulnerabilityAlert.ExternalReference, "Open details"); + break; + default: break; }