Files
testingcodeantrepo/.gitea/workflows/codeant.yml
WDI-Ideas bc80675ddd
All checks were successful
CodeAnt AI Review - Stage 1 / codeant-review (push) Successful in 1m16s
fix: detect merge commits, add API connectivity test in CI
2026-03-30 03:13:13 +05:30

94 lines
3.3 KiB
YAML

name: CodeAnt AI Review - Stage 1
on:
pull_request:
branches: ["main"]
push:
branches: ["main"]
workflow_dispatch:
jobs:
codeant-review:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: "22"
- name: Install CodeAnt CLI
run: npm install -g codeant-cli
- name: Configure CodeAnt Auth
env:
CODEANT_API_TOKEN: ${{ secrets.CODEANT_API_TOKEN }}
run: |
if [ -z "${CODEANT_API_TOKEN}" ]; then
echo "ERROR: CODEANT_API_TOKEN secret is not set in repository settings."
echo "Go to: Settings → Secrets → Add Secret → Name: CODEANT_API_TOKEN"
exit 1
fi
mkdir -p $HOME/.codeant
printf '{"apiKey":"%s","baseUrl":"https://service.codeant.ai"}\n' "$CODEANT_API_TOKEN" > $HOME/.codeant/config.json
echo "Config written (key length: ${#CODEANT_API_TOKEN})"
- name: Verify CodeAnt connectivity
run: |
echo "Base URL: $(codeant get-base-url)"
echo "CLI version: $(codeant --version)"
echo "=== API connectivity test ==="
HTTP_CODE=$(curl -s -o /tmp/api_response.txt -w "%{http_code}" \
-H "Authorization: Bearer ${CODEANT_API_KEY:-}" \
-H "Content-Type: application/json" \
https://service.codeant.ai/health 2>/dev/null || echo "CURL_FAILED")
echo "HTTP status: $HTTP_CODE"
head -c 200 /tmp/api_response.txt || true
env:
CODEANT_API_KEY: ${{ secrets.CODEANT_API_TOKEN }}
- name: Debug Commit Info
run: |
echo "==== EVENT CONTEXT ===="
echo "event_name=${GITHUB_EVENT_NAME}"
echo "base_ref=${GITHUB_BASE_REF}"
echo "ref_name=${GITHUB_REF_NAME}"
echo "==== LAST 3 COMMITS ===="
git log --oneline -n 3
echo "==== FILES IN LAST COMMIT ===="
git show --name-only --pretty="" HEAD
echo "==== IS MERGE COMMIT ===="
PARENTS=$(git log -1 --format="%P" HEAD | wc -w)
echo "Parent count: $PARENTS"
if [ "$PARENTS" -gt 1 ]; then
echo "HEAD is a merge commit"
git log --oneline HEAD~1..HEAD --first-parent || true
fi
- name: Run CodeAnt Review
run: |
if [ "${GITHUB_EVENT_NAME}" = "pull_request" ] && [ -n "${GITHUB_BASE_REF}" ]; then
echo "Running PR review against base branch: ${GITHUB_BASE_REF}"
codeant review --base "${GITHUB_BASE_REF}" 2>&1 | tee review.txt || true
else
# 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 commit: review everything brought in by the merge (HEAD vs first parent)
echo "Merge commit detected - reviewing changes vs HEAD~1"
codeant review --base-commit HEAD~1 2>&1 | tee review.txt || true
else
echo "Regular push - reviewing last commit"
codeant review --last-commit 2>&1 | tee review.txt || true
fi
fi