[GEMINI-HARDEN-04] Build an authenticated webhook runner instead of a print-only payload parser #436

Open
opened 2026-04-09 14:32:39 +00:00 by Timmy · 0 comments
Owner

Parent epic: #432

Why
scripts/gitea_webhook_handler.py is not yet a real webhook execution path. Today it parses a payload file, prints inferred event information, and leaves the high-risk parts as comments/examples.

Before this becomes live automation, we need an authenticated, allowlisted bridge that is safe under adversarial input and aligned with repo policy.

Acceptance criteria

  • Verify Gitea webhook secret/signature before any action.
  • Event, repo, branch, and action allowlists are explicit and config-driven.
  • No direct git pull, shell execution, or fleet mutation is triggered from untrusted payload fields.
  • Logging captures accepted/rejected events and is replay-safe/idempotent.
  • Local test fixtures cover push, PR, issue, invalid-signature, and unknown-event paths.
  • Deployment/ops notes explicitly align this work with #288.

Related

Parent epic: #432 Why `scripts/gitea_webhook_handler.py` is not yet a real webhook execution path. Today it parses a payload file, prints inferred event information, and leaves the high-risk parts as comments/examples. Before this becomes live automation, we need an authenticated, allowlisted bridge that is safe under adversarial input and aligned with repo policy. Acceptance criteria - Verify Gitea webhook secret/signature before any action. - Event, repo, branch, and action allowlists are explicit and config-driven. - No direct `git pull`, shell execution, or fleet mutation is triggered from untrusted payload fields. - Logging captures accepted/rejected events and is replay-safe/idempotent. - Local test fixtures cover push, PR, issue, invalid-signature, and unknown-event paths. - Deployment/ops notes explicitly align this work with #288. Related - #432 - #288 - PR #418
Timmy added the enhancement label 2026-04-09 14:32:39 +00:00
bezalel was assigned by Timmy 2026-04-09 15:00:34 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Timmy_Foundation/timmy-config#436