Commit 5784513
committed
feat(api): Add comprehensive REST API for Project Boards
Implements complete REST API for Gitea's Project Board feature with
10 new endpoints enabling programmatic project management.
Features:
- Project CRUD operations (create, read, update, delete, list)
- Column management (create, update, delete, list)
- Issue assignment and movement between columns
- State filtering (open/closed/all)
- Pagination support
- Comprehensive permission checks
- Full Swagger/OpenAPI documentation
API Endpoints:
- GET /repos/{owner}/{repo}/projects
- POST /repos/{owner}/{repo}/projects
- GET /repos/{owner}/{repo}/projects/{id}
- PATCH /repos/{owner}/{repo}/projects/{id}
- DELETE /repos/{owner}/{repo}/projects/{id}
- GET /repos/{owner}/{repo}/projects/{id}/columns
- POST /repos/{owner}/{repo}/projects/{id}/columns
- PATCH /repos/{owner}/{repo}/projects/columns/{id}
- DELETE /repos/{owner}/{repo}/projects/columns/{id}
- POST /repos/{owner}/{repo}/projects/columns/{id}/issues
Implementation follows Gitea's standard patterns:
- Router → Service → Model architecture
- Proper access control with token scopes
- Comprehensive error handling
- Full test coverage with 11 test functions
Files changed:
- routers/api/v1/repo/project.go (new, 710 lines)
- modules/structs/project.go (new, 139 lines)
- services/convert/project.go (new, 92 lines)
- models/project/issue.go (+61 lines for AddIssueToColumn)
- routers/api/v1/api.go (+17 lines for route registration)
- tests/integration/api_repo_project_test.go (new, 604 lines)
- docs/API_PROJECT_BOARD.md (new, comprehensive documentation)
No breaking changes. No migration required.1 parent ed977d9 commit 5784513
File tree
7 files changed
+2470
-0
lines changed- docs
- models/project
- modules/structs
- routers/api/v1
- repo
- services/convert
- tests/integration
7 files changed
+2470
-0
lines changed
0 commit comments