Files
email-assistant/AGENT.md
T

5.1 KiB
Raw Blame History

AGENT.md — правила работы с репозиторием

Источник истины: GitVerse (gitverse.ru)

  • GitVerse (gitverse.ru) — ИСТОЧНИК ИСТИНЫ (authoritative upstream). Все коммиты и изменения проекта пушатся именно туда.
  • Gitea (gitea.nixg.ru) — ЗЕРКАЛО (mirror). Не источник; используется как вторичная/внутренняя копия. Не пушить в gitea как в основное хранилище. Pull mirror: estorozhenko/email-assistant ← gitverse kpa39l/email-assistant, интервал 12h (создан 2026-09-15).

URL-ы

  • GitVerse (истина, https c токеном): https://kpa39l:<GITVERSE_PAT>@gitverse.ru/kpa39l/email-assistant.git (remote gitverse; токен в /opt/hermes/.hermes/secrets/git-tokens.env — source его, значения не хранить в коде/коммитах)
  • GitVerse API: api.gitverse.ru (переменная GITVERSE_API из git-tokens.env)
  • Gitea (зеркало, https): https://gitea.nixg.ru/hermes/email-assistant.git (текущий remote origin)
  • SSH-ключ gitverse: ~/.ssh/gitverse (алиас Host gitverse.ru в ~/.ssh/config, IdentityFile ~/.ssh/gitverse, IdentitiesOnly yes) — валиден для аутентификации, но push-to-create отключён; для создания репо — API.

Токены (местоположение)

Единый источник — /opt/hermes/.hermes/secrets/git-tokens.env (chmod 600, единственный истинный файл токенов; НЕ коммитится ни в один репозиторий):

Переменная Назначение
GITVERSE_LOGIN логин gitverse (kpa39l, НЕ estorozhenko)
GITVERSE_API база gitverse API (https://api.gitverse.ru)
GITVERSE_PAT PAT gitverse (создан 19 июл 2026, имя hermes-agent)
GITEA_API база gitea API (http://127.0.0.1:3000/api/v1)
GITEA_TOKEN токен gitea (читает/пишет репо, зеркала)

Загрузка: set -a && source /opt/hermes/.hermes/secrets/git-tokens.env && set +a

Прочие токены проекта (НЕ в git-tokens.env):

  • Telegram Bot (уведомления о важных письмах): /opt/vesti/.env → VESTI_BOT_TOKEN (защищён Hermes-секретом — не читать/не обходить; использовать через source в рантайме).
  • TELEGRAM_CHAT_ID (ЛС kpa39l, 281328953): /opt/hermes/email-assistant/.env (gitignored).
  • SSH-ключ gitverse: ~/.ssh/gitverse (алиас Host gitverse.ru в ~/.ssh/config).

⚠️ Токены НЕ хранить в коде/README/коммитах — только в secrets-файле и remote URL git. Если в репозитории случайно закоммичен токен — немедленно отозвать и перевыпустить.

Как пушить

cd /opt/hermes/email-assistant
set -a && source /opt/hermes/.hermes/secrets/git-tokens.env && set +a

# пуш в источник истины (gitverse)
git push gitverse master

# (опционально) обновить зеркало gitea
git push origin master

Создание репозитория на gitverse (если его нет) — через API:

curl -X POST "$GITVERSE_API/user/repos" \
  -H "Authorization: Bearer $GITVERSE_PAT" \
  -H "Accept: application/vnd.gitverse.object+json;version=1" \
  -H "Content-Type: application/json" \
  -d '{"name":"<repo>","description":"<описание>","private":true,"auto_init":false}'

HTTP 201 = создан; 409 = уже существует. auto_init:false — иначе первый push упадёт (non-fast-forward).

Правила работы

  • Перед работой: git fetch + аудит сделанного (git ls-files, git log) — не дублировать чужую/прошлую работу (см. USER.md: пользователь сам коммитит в dedinit.ru; импорт old_content 358d56d).
  • Все правки — в /opt/hermes/email-assistant; за пределами проекта не оставлять артефактов.
  • Внутри проекта не удалять чужие файлы (правило пользователя).
  • Токены НЕ хранить в коде/README/коммитах — только в remote URL git и в /opt/hermes/.hermes/secrets/git-tokens.env.

Статус (2026-09-15): репозиторий kpa39l/email-assistant создан на gitverse (private, id 336792, https://gitverse.ru/kpa39l/email-assistant); remote gitverse добавлен; master запушен (HEAD 39df85b51c). Пуш подтверждён ls-remote. Pull mirror в gitea estorozhenko/email-assistant создан (201, id 54, интервал 12h), HEAD совпадает с gitverse, mirror-sync 200.