From 09b3fcf8616d6830fd0f22179d91b864b217daf1 Mon Sep 17 00:00:00 2001 From: WDI-Ideas Date: Mon, 30 Mar 2026 03:37:53 +0530 Subject: [PATCH] ci: run sequential CodeAnt review for merge pushes on main --- .gitea/workflows/codeant.yml | 31 ++++++++++++++++++++++++++++--- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/codeant.yml b/.gitea/workflows/codeant.yml index 2c8d668..44f57a8 100644 --- a/.gitea/workflows/codeant.yml +++ b/.gitea/workflows/codeant.yml @@ -133,9 +133,34 @@ EOF # For push to main: check if HEAD is a merge commit PARENTS=$(git log -1 --format="%P" HEAD | wc -w) if [ "$PARENTS" -gt 1 ]; then - # Merge commits often include very large diffs and are already reviewed on pull_request. - echo "Merge commit detected on push; skipping review here." - echo "PR workflow run is the source of truth for full review." | tee review.txt + echo "Merge commit detected on push; reviewing files introduced by merge (vs HEAD~1)." + CHANGED_FILES=$(git diff --name-only HEAD~1...HEAD | grep '^.gitea/workflows/src/' | grep -v '^.gitea/workflows/codeant.yml' || true) + + if [ -z "${CHANGED_FILES}" ]; then + echo "No source files changed in merge commit scope." | tee review.txt + exit 0 + fi + + FAILED=0 + : > review.txt + while IFS= read -r file; do + [ -z "$file" ] && continue + echo "--- Reviewing merged file: $file ---" | tee -a review.txt + codeant review --base-commit HEAD~1 --include "$file" --exclude "${REVIEW_EXCLUDES}" 2>&1 | tee -a review.txt || true + + if grep -q "Unexpected token '<'\|HTTP error 403" review.txt; then + FAILED=1 + echo "Transient API failure detected for $file; continuing to next file." | tee -a review.txt + fi + + sleep 12 + done <