Files
viexp/docs/workflows/gitea-workflow.md
T

2.1 KiB

Gitea workflow

The project is tracked at https://git.v-port.ru/vaskes/viexp (Gitea 1.26.2). CLI access: tea (logged in as vaskes); API access with the saved token.

Verified capabilities (2026-10-17)

Feature Via API? Notes
Labels ✅ 11 labels created (type/*, priority/*, lang/english)
Milestones ✅ 13 sprint milestones with due dates
Issues ✅ labels by ID, not by name (POST /repos/vaskes/viexp/issues)
Project board (kanban) ❌ endpoint missing in Gitea 1.26.2 — create once via web UI
Actions CI ✅ .gitea/workflows/ci.yml (repo has has_actions: true)

Organization

  • Project board ("viexp development", created manually in the web UI): columns Backlog → In Progress → Review → Done; sprints are tracked by milestones.
  • Milestones = sprints: Sprint 0 — Setup & deconstruction … Sprint 12 — Release & docs (one 20-hour sprint ≈ one month at ~45 min/day). Due dates are targets, not deadlines.
  • Labels: type/bug|feature|docs|research|chore|spike, priority/P0…P3, lang/english.
  • Issues are created from task notes (docs/tasks/) and sprint definitions-of-done; the task note's gitea-issue property stores the issue number.
  • Bootstrap/repeat script: scripts/gitea-bootstrap.sh (labels + milestones + seed issues).

Rules

  1. One issue = one demoable outcome; acceptance criteria copied from the task note.
  2. Branch per issue: sprint-N/slug or feat/slug; squash-merge into main.
  3. Commit messages: Conventional Commits in English (feat(preview): add kitty graphics support) — every commit is a micro English exercise.
  4. An issue is closed only when its acceptance criteria are demoable.
  5. Sprint retro (from the sprint note) is posted as a comment on the milestone's closing issue.

Automation notes

  • Gitea Actions can run cargo fmt --check && cargo clippy -- -D warnings && cargo test on push.
  • Everything set up via API/tea is documented in docs/workflows/ so it can be re-created from scratch (the setup commands are in the sprint-0 task note).