mirror of
https://gitverse.ru/kpa39l/email-assistant.git
synced 2026-09-29 21:25:10 +00:00
88 lines
5.1 KiB
Markdown
88 lines
5.1 KiB
Markdown
# 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. |