30 lines
824 B
Bash
Executable File
30 lines
824 B
Bash
Executable File
#!/usr/bin/env bash
|
|
# Strip Co-Authored-By trailer lines from unpushed commits
|
|
#
|
|
# Usage: ./scripts/strip-coauthor.sh [base-ref]
|
|
# base-ref defaults to origin/main
|
|
|
|
set -euo pipefail
|
|
|
|
BASE="${1:-origin/main}"
|
|
|
|
count=$(git log --grep="Co-Authored-By" --oneline "$BASE..HEAD" | wc -l)
|
|
if [ "$count" -eq 0 ]; then
|
|
echo "No commits with Co-Authored-By found in $BASE..HEAD"
|
|
exit 0
|
|
fi
|
|
|
|
echo "Rewriting $count commit(s) to strip Co-Authored-By lines..."
|
|
|
|
git filter-branch -f --msg-filter '
|
|
sed "/^Co-Authored-By:.*$/d" | sed -e :a -e "/^\n*$/{$d;N;ba;}"
|
|
' "$BASE..HEAD"
|
|
|
|
remaining=$(git log --grep="Co-Authored-By" --oneline "$BASE..HEAD" | wc -l)
|
|
if [ "$remaining" -eq 0 ]; then
|
|
echo "Done. All Co-Authored-By lines removed."
|
|
else
|
|
echo "WARNING: $remaining commit(s) still contain Co-Authored-By lines."
|
|
exit 1
|
|
fi
|