blob: 4b2acc45eed45e2ce892511d358f8752fa22f5a6 [file] [log] [blame]
iomodob23799d2025-07-31 14:08:22 +04001package app
2
3import (
4 "fmt"
5
6 "github.com/iomodo/staff/git"
7)
8
9func (a *App) ProposalApproval(body []byte, signature string) error {
10 // Validate the webhook signature
11 if err := git.ValidateSignature(body, signature, a.config.GitHub.WebhookSecret); err != nil {
12 return fmt.Errorf("invalid webhook signature: %w", err)
13 }
14
15 // Process the webhook payload
16 taskID, err := git.ProcessMergeWebhook(body, signature, a.config.GitHub.WebhookSecret)
17 if err != nil {
18 return fmt.Errorf("Failed to process webhook: %w", err)
19 }
20
21 // Log the successful approval
22 a.logger.Info("Proposal approved via webhook",
23 "task_id", taskID,
24 )
25 return nil
26}