Files
portal/docs/superpowers/specs/2026-06-16-gitea-backup-push-main.md
T

2.4 KiB

Зеркалирование main в Gitea-бэкап

GitHub-origin (CoralMinister/lidpotok) заблокирован (account suspend), push туда возвращает 403. Чтобы локальная история main (включая свежий коммит регенерации larastan baseline 317125e3) имела внешнюю резервную копию, она зеркалируется в самостоятельный Gitea-сервер бэкапа в Yandex Cloud. Это операция резервного копирования: прод не затрагивается, рабочее дерево не меняется.

Цель

Доставить текущий main в Gitea-репозиторий бэкапа liderra/portal (https://111.88.252.149.nip.io) так, чтобы удалённая ветка main указывала на локальный HEAD. Push — обычный fast-forward (Gitea-main был на более раннем коммите, локальный — его потомок), без перезаписи истории (--force запрещён).

D1. Контракт зеркалирующего push

Команда — одиночный git push локального main в Gitea по HTTPS. Push обязан быть fast-forward: если Gitea отвергает как non-fast-forward, операция останавливается без форсирования (история бэкапа не перезаписывается). Затрагивается только удалённая ссылка main в Gitea; локальные коммиты, рабочее дерево, прод liderra.ru и GitHub-origin не изменяются. Аутентификация — учётной записью Gitea владельца.

D2. Критерий приёмки

Push завершается успешно: Gitea сообщает обновление ссылки main до локального HEAD (317125e3 или новее). Отказ по аутентификации или non-fast-forward — это не выполнение критерия, а сигнал остановиться и показать вывод владельцу.

[
  {
    "id": "pricing-anchor",
    "kind": "EXTRACTED",
    "ref": "tools/cost-pricing.mjs",
    "anchor": "export const PRICING = Object.freeze("
  }
]