Files
cish/api/github/webhook.go
2025-08-24 00:52:28 +02:00

40 lines
1.0 KiB
Go

package github
import (
"log"
"github.com/ren3gadem4rm0t/github-hook-types-go"
)
// handleGitHubEvent processes GitHub webhook events
func HandleEvent(event *github.WebhookEvent) error {
log.Printf("Received %s event (Delivery ID: %s)\n", event.Type, event.DeliveryID)
// Type switch to handle different event types
switch event.Type {
case github.PushEvent:
payload := event.Payload.(*github.PushPayload)
log.Printf("Push to %s by %s",
payload.Repository.ContentsURL,
payload.PusherPerson.Name)
repo := Repository{
Name: payload.Repository.FullName,
CloneURL: payload.Repository.CloneURL,
InstallationID: payload.Installation.ID,
}
repo.Clone(1, ".pem", payload.Ref)
// getJobsFromRepository()
case github.PullRequestEvent:
payload := event.Payload.(*github.PullRequestPayload)
log.Printf("Pull request in repo %s by %s",
payload.Repository.FullName,
payload.Sender.Login)
default:
log.Printf("Received unhandled event type: %s", event.Type)
}
return nil
}