5.1 KiB
AGENT.md — правила работы с репозиторием
Источник истины: GitVerse (gitverse.ru)
- GitVerse (gitverse.ru) — ИСТОЧНИК ИСТИНЫ (authoritative upstream). Все коммиты и изменения проекта пушатся именно туда.
- Gitea (gitea.nixg.ru) — ЗЕРКАЛО (mirror). Не источник; используется
как вторичная/внутренняя копия. Не пушить в gitea как в основное хранилище.
Pull mirror:
estorozhenko/email-assistant← gitversekpa39l/email-assistant, интервал 12h (создан 2026-09-15).
URL-ы
- GitVerse (истина, https c токеном):
https://kpa39l:<GITVERSE_PAT>@gitverse.ru/kpa39l/email-assistant.git(remotegitverse; токен в/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(текущий remoteorigin) - 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.