diff --git a/AGENT.md b/AGENT.md new file mode 100644 index 0000000..cb0d768 --- /dev/null +++ b/AGENT.md @@ -0,0 +1,61 @@ +# AGENT.md — правила работы с репозиторием + +## Источник истины: GitVerse (gitverse.ru) + +- **GitVerse (gitverse.ru) — ИСТОЧНИК ИСТИНЫ (authoritative upstream).** + Все коммиты и изменения проекта пушатся именно туда. +- **Gitea (gitea.nixg.ru) — ЗЕРКАЛО (mirror).** Не источник; используется + как вторичная/внутренняя копия. Не пушить в gitea как в основное хранилище. + +## URL-ы + +- **GitVerse (истина, https c токеном):** `https://kpa39l:@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. + +## Как пушить + +```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":"","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 (см. project-git-setup). \ No newline at end of file