blob: 165f33618cf0a1d2ca5312dbd528b64a0cffcea6 [file] [log] [blame]
package app
import (
"fmt"
"github.com/iomodo/staff/git"
)
func (a *App) ProposalApproval(body []byte, signature string) error {
// Validate the webhook signature
if err := git.ValidateSignature(body, signature, a.config.GitHub.WebhookSecret); err != nil {
return fmt.Errorf("invalid webhook signature: %w", err)
}
// Process the webhook payload
taskID, err := git.ProcessMergeWebhook(body, signature, a.config.GitHub.WebhookSecret)
if err != nil {
return fmt.Errorf("failed to process webhook: %w", err)
}
// Log the successful approval
a.logger.Info("Proposal approved via webhook",
"task_id", taskID,
)
return nil
}