mirror of
https://github.com/zoriya/cish.git
synced 2025-12-05 23:06:18 +00:00
40 lines
1.0 KiB
Go
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
|
|
}
|