/
kochenov
/
uni
Обзор
Документация
Войти
/
kochenov
/
uni
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
scripts/log_git.sh
52 строки
2 KB
Dmitry Kochenov
Initial commit: UMP base structure
16 июл 2026, 21:14
16 июл 2026, 21:14
86b4d0e
Код
Авторство
О чём код?
#!/usr/bin/env bash # log_git.sh — обёртка над git с авто-логированием в _meta/agent.log (аудит v21). # # Использование: # scripts/log_git.sh <git args...> # scripts/log_git.sh commit -F _meta/commit-msg-1.0.txt # scripts/log_git.sh push origin feature/step-1.0 # # Логирует в JSONL-формат _meta/agent.log через scripts/agent_log.py: # {timestamp, type:"commit", message:"git <args>", details:{exit_code, branch, ...}} # # Аудит v21: проблема #4 — логи недостаточно подробные. set -uo pipefail # Базовый путь проекта SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BASE="$(cd "$SCRIPT_DIR/.." && pwd)" LOG_SCRIPT="$BASE/scripts/agent_log.py" # Шаг (из STEP_STATE.md, если есть) extract_step() { local step_state="$BASE/STEP_STATE.md" if [ -f "$step_state" ]; then grep '^CURRENT_STEP:' "$step_state" 2>/dev/null | head -1 | sed 's/.*: *//' | tr -d ' ' || echo '' fi } STEP="${STEP:-$(extract_step)}" # Ветка BRANCH="$(git -C "$BASE" branch --show-current 2>/dev/null || echo '')" # Полная команда FULL_CMD="git $*" # Выполнить git git -C "$BASE" "$@" EXIT_CODE=$? # Логировать (даже при ошибке) if [ -f "$LOG_SCRIPT" ]; then MSG="$FULL_CMD (branch=$BRANCH, exit=$EXIT_CODE)" if [ $EXIT_CODE -eq 0 ]; then uv run python3 "$LOG_SCRIPT" add "$MSG" --type commit --step "$STEP" \ --details "exit=$EXIT_CODE,branch=$BRANCH" 2>/dev/null || true else uv run python3 "$LOG_SCRIPT" add "GIT FAIL: $MSG" --type error --step "$STEP" \ --details "exit=$EXIT_CODE,branch=$BRANCH" 2>/dev/null || true fi fi exit $EXIT_CODE