Files
the-custodian/tools/push_repo_classifications.sh
tegwick db88a34b3e CUST-WP-0050 follow-up: human review, push tooling, SSH inventory
Add human-review script for 13 high-blast-radius repos, bulk-push helper,
and SSH-based Gitea inventory probe. Update exclusion list with SSH-verified
absent slugs; marki-docx now classified and registered.
2026-06-22 17:59:55 +02:00

45 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
# Push unpushed .repo-classification.yaml commits across local ecosystem repos.
set -euo pipefail
HOME_REPOS="${HOME}"
PUSHED=0
SKIPPED=0
FAILED=0
FAILED_NAMES=()
for dir in "$HOME_REPOS"/*/; do
[ -d "$dir/.git" ] || continue
[ -f "$dir/.repo-classification.yaml" ] || continue
name=$(basename "$dir")
cd "$dir"
if ! git rev-parse --abbrev-ref HEAD >/dev/null 2>&1; then
continue
fi
branch=$(git rev-parse --abbrev-ref HEAD)
ahead=$(git rev-list --count "@{u}..HEAD" 2>/dev/null || echo "no-upstream")
if [ "$ahead" = "no-upstream" ] || [ "$ahead" = "0" ]; then
SKIPPED=$((SKIPPED + 1))
continue
fi
echo "Pushing $name ($branch, $ahead commit(s))..."
if git push origin "$branch" 2>&1; then
PUSHED=$((PUSHED + 1))
else
FAILED=$((FAILED + 1))
FAILED_NAMES+=("$name")
fi
done
echo ""
echo "Summary: pushed=$PUSHED skipped=$SKIPPED failed=$FAILED"
if [ "${#FAILED_NAMES[@]}" -gt 0 ]; then
echo "Failed:"
printf ' %s\n' "${FAILED_NAMES[@]}"
exit 1
fi