"""README.md репозитория для задачи, где описание — только ссылка на git.
GET /api/repo-readme?url=... — селф-хостед git-системы поддерживаются
эвристикой (пробуем известные пути к сырому README: API github/gitlab/gitea,
raw-пути web-интерфейсов). Не нашли — 404, фронт оставляет описание как было.
У проекта это снято (0.67): там репозиторий — отдельное поле, а README тянет
привязанный к проекту `/api/projects/{id}/readme` (api/projects.py).
"""
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from app.dependencies import UserIdDep
from app.services import readme
router = APIRouter(prefix="/api/repo-readme", tags=["repo-readme"])
class RepoReadmeOut(BaseModel):
content: str
@router.get("", response_model=RepoReadmeOut)
async def get_repo_readme(url: str, user_id: UserIdDep) -> RepoReadmeOut:
content = await readme.fetch_readme(url)
if content is None:
raise HTTPException(status_code=404, detail="README.md not found")
return RepoReadmeOut(content=content)