diff --git a/docker/Dockerfile b/docker/Dockerfile index 6bb578c..c9c3f5c 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,6 +2,11 @@ FROM python:3.11 WORKDIR /app +# Install system dependencies including git +RUN apt-get update && apt-get install -y --no-install-recommends \ + git \ + && rm -rf /var/lib/apt/lists/* + # Install Python dependencies COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt diff --git a/prs/routes/api.py b/prs/routes/api.py index b38b16d..9231121 100644 --- a/prs/routes/api.py +++ b/prs/routes/api.py @@ -19,9 +19,19 @@ ) from fastapi.responses import HTMLResponse, RedirectResponse, Response from prs.configs import BASE_URL, PORT, READIUM_HOST_PORT +import subprocess router = APIRouter() +def get_git_revision_short_hash(): + try: + return subprocess.check_output( + ["git", "rev-parse", "--short", "HEAD"], + cwd=None + ).decode("ascii").strip() + except Exception: + return None + def ia_get_epub_filepath(item_id): if '$' in item_id: item_id, filepath = item_id.replace('$', '/').split('/', 1) @@ -53,7 +63,9 @@ def prs_uri(request: Request): @router.get('/', status_code=status.HTTP_200_OK) async def apis(request: Request): + version = get_git_revision_short_hash() return { + "version": version, f"{prs_uri(request)}/api": { "description": "List all APIs", },