Files
tgit/.env.example
T
ElebobaandClaude Opus 5.5 65acf3abf1
CI / ruff · mypy · pytest (pull_request) Successful in 39m13s
feat(agent): агент логов — фильтр, LLM-страж, планировщик grep (#18)
- prefilter: правила из config/agent_rules.yaml (длина, команды, shell,
  секреты и системные файлы, prompt injection) — без LLM
- guard: отдельный вызов, JSON {verdict, reason}; невалидный ответ = attack,
  недоступный LLM — «попробуйте позже», а не атака
- planner: только AgentLogQuery (контейнер из белого списка, ≤ 7 д, шаблон
  ≤ 200 без вложенных квантификаторов, лимит ≤ 500); логи в LLM не идут
- бот: «🤖 Спросить агента» → показывает построенный grep и строки;
  атака — вежливый отказ и 🛡 администраторам; квота 30 в сутки
- журнал agent_requests + log_queries (mode=agent)
- при LLM_PROVIDER=mock агент выключен

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-17 15:02:07 +03:00

43 lines
2.4 KiB
Bash

# tgit — пример конфигурации. Скопировать в .env и заполнить: `cp .env.example .env`.
# .env не коммитится. Секреты помечены (secret).
# --- Telegram (#4, #25) ---
TELEGRAM_BOT_TOKEN= # (secret) токен от @BotFather
ADMIN_IDS= # Telegram ID первых администраторов через запятую
LOG_LEVEL=INFO
TELEGRAM_PROXY_URL= # (secret) http://user:pass@host:port или socks5://… — на RF-сервере Telegram недоступен напрямую
# --- База данных ---
POSTGRES_PASSWORD=tgit # (secret на сервере) пароль Postgres в Compose
# DATABASE_URL задаётся в docker-compose.yml; для запуска без Docker:
# DATABASE_URL=postgresql+asyncpg://tgit:tgit@localhost:5432/tgit
# --- SourceCraft (#7, #10) ---
SOURCECRAFT_TOKEN= # (secret) персональный токен API
SOURCECRAFT_UPLOADS_REPO=rogachevegorushka/tgit-uploads
# SOURCECRAFT_RUN_URL_TEMPLATE=https://sourcecraft.dev/{repo}/cicd/runs/{run}
# --- Git: коммиты в репозиторий загрузок (#7, #9) ---
GIT_SSH_KEY_PATH= # путь к приватному deploy-ключу бота (монтируется read-only);
# публичная часть — deploy key с правом записи в tgit-uploads
GIT_SSH_KEY_B64= # (secret) для Docker: тот же ключ в base64 — base64 -w0 ~/.ssh/tgit_bot_ed25519
GIT_UPLOADS_URL=git@ssh.sourcecraft.dev:rogachevegorushka/tgit-uploads.git
# GIT_CLONE_DIR=data/uploads # локальный клон репозитория загрузок (в Docker — volume /data/uploads)
# --- Docker: раздел «Статус» (#14) ---
# В Compose задан сам: http://docker-proxy:2375. Без него (make run) «Статус» отвечает «Docker недоступен».
# DOCKER_URL=
# DOCKER_LABEL=tgit.managed=true
# --- LLM (#17) ---
LLM_PROVIDER=mock # mock | openai_compat; при mock агент логов выключен (#18)
LLM_BASE_URL=
LLM_MODEL=
LLM_API_KEY= # (secret)
# --- Для Claude Code: трекер (не нужно боту) ---
GITEA_URL=https://gitea.24studbank.ru
GITEA_REPO=HSE/tgit
GITEA_USER=
GITEA_TOKEN= # (secret)