779ba6db59
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>
44 lines
1.4 KiB
Bash
44 lines
1.4 KiB
Bash
# --- 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=
|