Files
email-assistant/AGENT.md
T

88 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.
Если в репозитории случайно закоммичен токен — немедленно отозвать и перевыпустить.
## Как пушить
```bash
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:
```bash
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 39df85b51cd4263b0b3350e79eeb8926c7a95ec7).
Пуш подтверждён ls-remote. Pull mirror в gitea `estorozhenko/email-assistant` создан
(201, id 54, интервал 12h), HEAD совпадает с gitverse, mirror-sync 200.