4.4 KiB
last_updated: 2026-08-20T22:50:00Z session_id: publish-mock-reject-3-git-identity-2026-08-20
Next session handoff
Сессия: мок-publish в прогрессе — контракт dryRun работает (npm publish + create-repo
реально прошли), но режект #3 ozon: git push падает Author identity unknown.
Ждём фикс #3.
🔴 БЛОКЕР (режект #3): ozon git identity (письмо 22:45Z)
Симптом: 3-й полный ран ozon (dryRun:false): стадии 8/10 прошли, publish:
- ✅ npm publish
@apilki/ozon-seller@0.1.0→ verdaccio (провереноnpm view→ 0.1.0) - ✅ create-if-missing: репо
apilki/ozon-seller-typescriptсоздано в Gitea (REST POST) - ❌
git pushexit 128:Author identity unknown/unable to auto-detect email address
Root cause: service/publish.js:180 ghPublish: git init && git add && git commit -m "release ${v}" && git push — в команде НЕТ -c user.name=/-c user.email=. Контейнер без git identity → commit падает. Yandex решает (worker/stages/github-distro.js:132): -c user.name=apilki -c user.email=apilki@users.noreply.github.com — этот паттерн и требовать от ozon.
ТЗ в письме: (1) -c user.name=apilki -c user.email=apilki@users.noreply.github.com в git-команду commit; (2) тест на сборку команды (assert -c user.name= в строке — их exec-стаб identity не ловит), идеально — интеграционный с реальным git в tmp; (3) сьют без регрессий; (4) отчёт письмом.
✅ Принято (проверено независимо)
- Фикс #1 (297bc31): dryRun-контракт — плоский
...(payload || {})вместоpayload.data. Проверено: 202/202, e2e dryRun=false→real, dryRun=true→dryRunDiff. - Фикс #2 (5ce9852): prodDeps(root) — readFile/writeFile/removeFile (fs.promises) в deps ОБЕИХ точек (server.js createPublishStage + entrypoint.js cron). e2e больше НЕ подставляет readFile руками (стабы только exec/httpGetFn/httpPostFn/log/warn/recipesVersion). Проверено: 202/202, код в пересобранном контейнере (
...prodDeps({ root })server.js:194,deps: prodDeps({ root: ROOT })entrypoint.js:126). - Yandex: плоский
data.dryRun(publish.js:92), прямые fs.readFileSync, git identity в команде — контракт правильный. Yandex не запускал — жду стабильного полного ozon-цикла.
Артефакты стенда (мок)
- verdaccio:
@apilki/ozon-seller@0.1.0опубликован (мок — ок). - Gitea:
apilki/ozon-seller-typescriptсоздан, пустой (push не прошёл) — после фикса #3 ран до-push'нет его.
Стенд (host-stacks/local/sched-pipelines)
- schedd 0.9.0 healthy. ozon контейнер пересобран (фиксы #1+#2 внутри).
- tasks.json: dryRun:false у ОБОИХ тасок (по GO user'а), schedd рестартнут.
- state.json обновился (sha записан) — следующий ран ozon пойдёт diff-путь, npm версия 0.1.0→0.1.1 (или patch), репо существует → push в существующее.
Мок-publish — ждём фикс #3
Порядок после фикса: пересобрать ozon → ран (diff-путь) → проверить verdaccio (0.1.1?)
- Gitea (содержимое репо) → затем yandex (13 стадий: fetch...publish, githubDistro).
Спроси user'а
- Проверить отчёт ozon по фиксу #3 → GO на продолжение мок-publish.
- VDS-миграция — после пары дней локально.
Не делать
- Не запускать реальные публикации в npmjs/github.com без явного GO.
- Не слать реальные письма unisender — только мок.
- Не патчить код команд — ТЗ через их инбоксы (письма 21:55Z, 22:20Z, 22:45Z).
- Не коммитить в репо команд — только в .admin. Письма на диск (inbox-монитор).