#!/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