Исключить scripts/ из репозитория — в репе только код
ci / build-test (push) Canceled after 0s

Правило владельца: ничего, не относящегося к коду, не пушим. scripts/
(сборка/тесты/бэкапы/кодмоды) сняты с трекинга и закрыты .gitignore — файлы
остаются только локально. CI-workflow переписан inline: сборка 5 sln, тесты,
скан уязвимых NuGet-пакетов, сборка и линтер фронта — без внешних скриптов.
README и код-стайл приведены к новой реальности.
This commit is contained in:
Rustam Khalimov
2026-09-11 23:46:31 +03:00
parent e61b744028
commit 72d199cc76
20 changed files with 54 additions and 1974 deletions
+2 -3
View File
@@ -268,9 +268,8 @@
## 13. Автоматизация
- **Исправление существующего кода** (идемпотентные скрипты в `scripts/`):
- `fix_summary_blocks.py --check | --apply` — приводит `<summary>` к блочному виду (§5).
- `fix_private_docs.py --check | --preview | --apply` — понижает XML-док с private/internal до `//` (§5).
- **Служебные скрипты (codemod'ы, скрипты сборки/тестов/бэкапов) в репозиторий не входят** —
правило владельца: в репе только код. Актуальные копии живут локально, вне кода.
- **Проверка на новом коде**: правила `<summary>`-блока и «комментарии только на public» проверяемы
статически; задел — линтер (по аналогии с `scripts/i18n-lint.mjs`) и/или анализаторы Roslyn/StyleCop в
`Directory.Build.props`.
+8
View File
@@ -32,6 +32,14 @@
> Сборка 5 sln 0/0; тесты: core **1340/1340**, telegram **130/130**, ai **52/52**, ml **38/38**, storage **9/9** — зелёные.
> Детали — `docs/spec/Код-стайл-аудит-2026-09-11.md`, §2.
>
> **2026-09-11 (ночь) — Gitea-контур.** Репозиторий запушен (`gitea.khomegeneric.keenetic.pro/rust/Deal`),
> ~4000 спам-пользователей вычищено, регистрация закрыта владельцем. CI перенесён в
> `.gitea/workflows/ci.yml`; первый прогон поймал и закрыл кроссплатформенный баг
> (`ModelPool` валидировал tenant-id через `GetInvalidFileNameChars` — на Linux пропускал `\`);
> валидация заменена на явный белый список. **`scripts/` исключён из репозитория** (правило владельца:
> в репе только код) — скрипты сборки/тестов/бэкапов/кодмоды живут только локально; CI-workflow
> переписан inline. Раннер для CI — на сервере рядом с Gitea (пакет `deploy/gitea-runner/`).
>
> **2026-09-11 (поздний вечер) — явные реализации интерфейсов (вариант A, решение владельца).** Правило
> владельца: классы напрямую не вызываем (исключения — DTO, хелперы, экстеншены), тесты — через
> интерфейсы, моки — NSubstitute, маркерные классы не используем. Сделано: 161 член в 30 прод-файлах