From d9e7dce4e610d7b22335dd27316ba5092c2ea7e8 Mon Sep 17 00:00:00 2001 From: Space-Banane Date: Fri, 22 May 2026 23:48:24 +0200 Subject: [PATCH] Fixed a few stupid mistakes --- src/gitea_codex_bot/main.py | 126 +++++++++++++++++++++- src/gitea_codex_bot/services/gitea.py | 10 ++ src/gitea_codex_bot/services/jobs.py | 32 ++++++ src/gitea_codex_bot/workers/dispatcher.py | 77 +++++++++---- tests/test_dispatcher.py | 39 ++----- tests/test_main_pages.py | 105 ++++++++++++++++++ tests/test_webhook.py | 41 +++++++ 7 files changed, 379 insertions(+), 51 deletions(-) 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.

+ + Webhook: POST /webhook/gitea
@@ -179,6 +190,8 @@ def _render_landing_page() -> str: