Ticket: Bootstrap westside-ops Forgejo repo
Ticket: Bootstrap westside-ops Forgejo repo
Story:
Architecture:
Labels:
Blocks: streamlit_admin.py implementation, Woodpecker pipeline, k8s overlay (all need the repo to exist)
Blocked by: Streamlit spike ticket
story-westside-ops-spreadsheet-accessArchitecture:
arch-deployment-westside-ops (sibling repo decision)Labels:
story:spreadsheet-access,arch:streamlit-app,type:infra,track:devops,scope:plannedBlocks: 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-opsviamcp__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-opsexists (reachable viamcp__forgejo__get_repo) - [ ]
~/westside-opscloned locally with remoteoriginpointing 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-localserves the stub onlocalhost: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.