diff --git a/src/gitea_codex_bot/main.py b/src/gitea_codex_bot/main.py index 070598e..6fd7dc7 100644 --- a/src/gitea_codex_bot/main.py +++ b/src/gitea_codex_bot/main.py @@ -11,10 +11,12 @@ from fastapi import Depends, FastAPI, Header, HTTPException, Request, status from fastapi.exception_handlers import http_exception_handler from fastapi.responses import HTMLResponse from starlette.exceptions import HTTPException as StarletteHTTPException +from sqlalchemy import select from sqlalchemy.orm import Session from gitea_codex_bot.config import Settings, get_settings from gitea_codex_bot.db import get_session +from gitea_codex_bot.models import JobStatus, ReviewJob from gitea_codex_bot.services.commands import parse_command from gitea_codex_bot.services.gitea import GiteaClient from gitea_codex_bot.services.jobs import cooldown_remaining_seconds, enqueue_job, persist_webhook_event @@ -147,6 +149,13 @@ def _load_repo_review_config_for_pr(gitea: GiteaClient, repo: str, pr_number: in return parse_repo_review_config_text(cfg_text, configured=True), head_sha +def _resolve_pr_head_sha(gitea: GiteaClient, repo: str, pr_number: int, fallback: str) -> str: + try: + return gitea.get_pull_request(repo, pr_number).head_sha + except Exception: + return fallback + + def _render_landing_page() -> str: return """ @@ -164,6 +173,8 @@ def _render_landing_page() -> str:
This endpoint powers automated pull request review workflows for Gitea. It validates signed webhook events, queues review jobs, and posts structured feedback back to pull requests.
POST /webhook/gitea