2.1 KiB
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'sgitea-issueproperty stores the issue number. - Bootstrap/repeat script:
scripts/gitea-bootstrap.sh(labels + milestones + seed issues).
Rules
- One issue = one demoable outcome; acceptance criteria copied from the task note.
- Branch per issue:
sprint-N/slugorfeat/slug; squash-merge intomain. - Commit messages: Conventional Commits in English (
feat(preview): add kitty graphics support) — every commit is a micro English exercise. - An issue is closed only when its acceptance criteria are demoable.
- 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 teston push. - Everything set up via API/
teais documented indocs/workflows/so it can be re-created from scratch (the setup commands are in the sprint-0 task note).