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.
This commit is contained in:
45
tools/push_repo_classifications.sh
Executable file
45
tools/push_repo_classifications.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user