RESTful API server for managing git repositories with multi-user support, built with Flask and gitpython. Follows application factory pattern with blueprints.
A RESTful API to manage server-side content within git SCM repositories, supporting multi-user namespaced access.
This project provides a Flask-based REST API for git repository operations with:
**Stack:**
**Project Structure:**
```
src/ # Application source code
tests/ # Test suite
```
**Data Storage:**
1. **Always activate Python environment first:**
```sh
source .venv/bin/activate
```
2. **Use `uv run` prefix for all environment-specific commands:**
```sh
uv run pytest
uv run ruff check .
uv run python src/app.py
```
```sh
source .venv/bin/activate
uv run pytest
uv run behave
cd src
uv run pytest
```
**Linting:**
```sh
uv run ruff check .
```
**Code Style:**
```sh
cd src
uv run pytest
uv run ruff check .
uv run python app.py
```
1. **Create feature plan** documenting:
- Technologies used
- Storage requirements
- API endpoints
- Testing strategy
2. **Update active technologies** list in development guidelines
3. **Write tests first:**
- Unit tests with pytest
- BDD scenarios with Behave
4. **Implement using:**
- Blueprints for new route groups
- Pydantic models for request/response validation
- gitpython for git operations
5. **Lint and test:**
```sh
uv run ruff check .
uv run pytest
uv run behave
```
**Production Stack:**
All dependency management through `uv`:
```sh
uv add package-name
uv sync
uv run <command>
```
❌ **Don't run commands without `uv run`:**
```sh
pytest # Wrong - may use wrong environment
```
✅ **Always use `uv run`:**
```sh
uv run pytest # Correct - uses project environment
```
❌ **Don't forget to activate environment:**
```sh
python app.py # Wrong - environment not active
```
✅ **Activate first:**
```sh
source .venv/bin/activate
uv run python app.py # Correct
```
---
**Auto-generated from feature plans. Maintain consistency when adding new features or technologies.**
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/git-rest-api-development/raw