"""README.md репозитория для задач, где описание — только ссылка на git.
GET /api/repo-readme?url=... — селф-хостед git-системы поддерживаются
эвристикой (пробуем известные пути к сырому README: API github/gitlab/gitea,
raw-пути web-интерфейсов). Не нашли — 404, фронт оставляет описание как было.
"""
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)