Ticket: Bootstrap westside-ops Forgejo repo

ticket-westside-ops-repo-bootstrap Doc

active backlog westside-ops ticket

Ticket: Bootstrap westside-ops Forgejo repo

Story: story-westside-ops-spreadsheet-access
Architecture: arch-deployment-westside-ops (sibling repo decision)
Labels: story:spreadsheet-access,arch:streamlit-app,type:infra,track:devops,scope:planned
Blocks: streamlit_admin.py implementation, Woodpecker pipeline, k8s overlay (all need the repo to exist)
Blocked by: Streamlit spike ticket

Purpose

Create the new Forgejo repo forgejo_admin/westside-ops and commit the skeleton: directory layout, Dockerfile, requirements.txt, empty streamlit_admin.py, skeleton .woodpecker.yaml, k8s/ directory, README. This ticket is pure scaffolding — no logic, no deployment. Downstream tickets fill in the pieces.

Scope

  • Create Forgejo repo forgejo_admin/westside-ops via mcp__forgejo__create_repo (public: false, auto-init: false)
  • Clone locally to ~/westside-ops/
  • Commit the skeleton below on branch main
  • Push to Forgejo
  • Register the repo in Woodpecker UI (so the pipeline auto-triggers on push — happens in the pipeline ticket, not here)

Skeleton layout

Dockerfile

requirements.txt

Stub streamlit_admin.py

Acceptance Criteria

  • [ ] Forgejo repo forgejo_admin/westside-ops exists (reachable via mcp__forgejo__get_repo)
  • [ ] ~/westside-ops cloned locally with remote origin pointing at Forgejo
  • [ ] The skeleton files above are all present and committed on main
  • [ ] docker build -t westside-ops-local . succeeds locally (proves the Dockerfile works)
  • [ ] docker run --rm -p 8501:8501 westside-ops-local serves the stub on localhost:8501
  • [ ] README links to the three architecture notes and the user story note by slug

Files touched

All new files in a new repo. No other repos touched.

Rollback

Delete the Forgejo repo (via API or UI) and remove ~/westside-ops. No cluster state, no CI state.

Out of scope

  • Real streamlit_admin.py logic — that's ticket-westside-ops-streamlit-app
  • Real .woodpecker.yaml — that's ticket-westside-ops-woodpecker-pipeline
  • k8s manifests — that's ticket-westside-ops-k8s-overlay
  • Harbor project creation — that happens automatically when pal-e-services is applied in the services-entry ticket

Dependencies

Streamlit spike ticket must pass veto gate first.