Slice 1: scaffolding + propose-to-super-draft vertical
Brings the §1 bot wrapper, the §4 cache (webhook + reconciler), the §5 schema (six numbered migrations), Gitea OAuth + §6 user provisioning, the §7 catalog left pane, and the propose-to-merge vertical: propose modal opens an idea PR against the meta repo, an owner merges from the pending-idea view, the cache picks it up via webhook or reconciler sweep, and the catalog renders the new super-draft. Per §1 the bot is the only Git writer; every commit, branch creation, and PR merge carries the §6.5 On-behalf-of: trailer and an `actions` audit row. Per §4 the cache is never written from a user action — it's webhook+reconciler only. Covered by `backend/tests/test_propose_vertical.py` against an in-process Gitea simulator. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# --- Gitea ---
|
||||
# Base URL of the Gitea instance the app speaks to.
|
||||
GITEA_URL=http://localhost:3000
|
||||
|
||||
# The bot service account that performs every Git operation per §1.
|
||||
# Provision a real Gitea user, generate a personal access token with
|
||||
# repo and admin (or at minimum: repo, write:repository) scopes, and
|
||||
# put the token here. The bot is the only Git writer.
|
||||
GITEA_BOT_USER=rfc-bot
|
||||
GITEA_BOT_TOKEN=
|
||||
|
||||
# The Gitea org or user that owns the meta repo and every RFC repo
|
||||
# the bot will create on graduation.
|
||||
GITEA_ORG=wiggleverse
|
||||
META_REPO=meta
|
||||
|
||||
# --- OAuth (Gitea) ---
|
||||
# In Gitea: Site Administration → Applications → Add OAuth2 Application.
|
||||
# Redirect URI: {APP_URL}/auth/callback
|
||||
OAUTH_CLIENT_ID=
|
||||
OAUTH_CLIENT_SECRET=
|
||||
|
||||
# --- App ---
|
||||
APP_URL=http://localhost:8000
|
||||
SECRET_KEY=change-me-to-a-long-random-string
|
||||
DATABASE_PATH=data/rfc-app.db
|
||||
|
||||
# Per §1: owner zero. The Gitea login that gets the owner role on
|
||||
# first sign-in.
|
||||
OWNER_GITEA_LOGIN=ben
|
||||
|
||||
# Webhook signature secret. Gitea sends X-Gitea-Signature as the
|
||||
# HMAC-SHA256 of the body using this secret. Per §4.1 the webhook is
|
||||
# one of two cache writers; signing keeps spurious writes out.
|
||||
GITEA_WEBHOOK_SECRET=change-me-to-a-shared-secret
|
||||
|
||||
# --- LLM providers (carryover §18) ---
|
||||
# Comma-separated list of provider keys to enable. Per the §19.2
|
||||
# per-RFC-model topic, this is app-wide until that topic lands.
|
||||
ENABLED_MODELS=claude
|
||||
ANTHROPIC_API_KEY=
|
||||
GOOGLE_API_KEY=
|
||||
OPENAI_API_KEY=
|
||||
Reference in New Issue
Block a user