forgejo-ai-pr-review/scripts/generate-diff.sh
2026-03-14 21:43:56 +02:00

26 lines
874 B
Bash

#!/usr/bin/env bash
# Required env vars: (none)
# Optional env vars: PREV_SHA (if set, generates an incremental diff from that commit)
set -euo pipefail
git fetch origin main --depth=100
if [ -n "${PREV_SHA:-}" ] && git cat-file -e "${PREV_SHA}^{commit}" 2>/dev/null; then
echo "Generating incremental diff from ${PREV_SHA} to HEAD"
git diff "${PREV_SHA}...HEAD" > pr.diff
echo "incremental=true" >> "$GITHUB_OUTPUT"
else
echo "Generating full diff from origin/main to HEAD"
git diff origin/main...HEAD > pr.diff
echo "incremental=false" >> "$GITHUB_OUTPUT"
fi
DIFF_SIZE=$(wc -c < pr.diff)
echo "Diff size: ${DIFF_SIZE} bytes"
if [ "$DIFF_SIZE" -gt 12288 ]; then
head -c 12288 pr.diff > pr_truncated.diff
printf '\n\n[... diff truncated due to size ...]' >> pr_truncated.diff
mv pr_truncated.diff pr.diff
echo "truncated=true" >> "$GITHUB_OUTPUT"
fi