Skip to content

OSS-ready Runner API: split secrets, repo allowlist, dogfood CI - #5

Merged
botirkhaltaev merged 5 commits into
mainfrom
e2e-dogfood
Aug 10, 2026
Merged

OSS-ready Runner API: split secrets, repo allowlist, dogfood CI#5
botirkhaltaev merged 5 commits into
mainfrom
e2e-dogfood

Conversation

@botirkhaltaev

@botirkhaltaev botirkhaltaev commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Breaking API: github_secret + webhook_secret, required repositories allowlist, cache=False default; Jobs never mount WEBHOOK_SECRET
  • Webhook harden: admit on cancel, require X-GitHub-Delivery, bind delivery object_id before reclaim, explicit app= on create
  • Dogfood: App runner-modal-ci-app with min_containers=0; CI runs on self-hosted (self-hosted/modal/ci) for pull requests and pushes to main
  • Docs/packaging: SECURITY.md, CONTRIBUTING.md, CHANGELOG, README/AGENTS updates; .cursor/ gitignored

Test plan

  • Unit tests (ruff/ty/pytest) on the branch
  • Deployed runner-modal-ci-app and /health returns ci
  • GitHub webhook retargeted to the new Server URL
  • PR CI goes green on self-hosted Modal runners
  • Spot-check examples against modal-projects/runner-modal

…hooks.

Separate github/webhook Secrets so Jobs never see WEBHOOK_SECRET, require
repositories admission, bind delivery object ids before reclaim, and move CI
to ubuntu-latest with security/docs packaging.
Use self-hosted labels on pull_request/push, deploy example as
runner-modal-ci-app with min_containers=0, drop the throwaway e2e
workflow, and inline create-time validation helpers.
@botirkhaltaev
botirkhaltaev merged commit d14514d into main Aug 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant