- Add FastAPI application with complete router structure - Implement search, articles, ask, feedback, and health endpoints - Add comprehensive Pydantic schemas for API requests/responses - Include stub service implementations for all business logic - Add full test suite with pytest-asyncio integration - Configure conventional commits enforcement via git hooks - Add project documentation and contribution guidelines - Support both OpenAI and Gemini LLM integration options
1.6 KiB
1.6 KiB
Contributing to News Aggregator API
Commit Message Convention
This project follows Conventional Commits specification.
Format
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting, missing semicolons, etc.)refactor: Code refactoringperf: Performance improvementstest: Adding or updating testsbuild: Build system or dependency changesci: CI configuration changeschore: Maintenance tasksrevert: Reverting previous changes
Examples
feat: add hybrid search endpoint
fix(api): resolve authentication bug
docs: update API documentation
style: fix code formatting
refactor: simplify search service logic
perf: optimize database queries
test: add integration tests for feedback endpoint
build: upgrade fastapi to v0.111
ci: add github actions for testing
chore: update dependencies
revert: remove experimental feature
Rules
- Use lowercase types
- Keep first line under 72 characters
- Use imperative mood ("add" not "added" or "adds")
- Include scope when relevant (e.g.,
fix(api):,feat(db):) - Provide detailed body for complex changes
Development Workflow
- Create feature branch from main
- Make changes with conventional commits
- Run tests:
uv run pytest - Submit pull request
Code Quality
- All Python files must compile without syntax errors
- No trailing whitespace
- Files under 5MB
- Follow existing code style and patterns