push фильтрован по main (мерж МР триггерит прогон), pull_request —
opened/synchronize/reopened (новые коммиты в ветку МР перезапускают прогон).
Обычные коммиты в ветки без МР больше не запускают CI.
concurrency group по ref + cancel-in-progress: свежий коммит в ветку МР
(или мерж в main) отменяет ещё не закончившийся предыдущий прогон.
Завершённые прогоны не затрагиваются.
Хелпер Support/TestSettingsStore: словарь настроек, GetAsync/GetAllAsync/SetAsync/
RemoveAsync читают состояние на момент вызова (GetAllAsync — ленивый, ключ для
снапшот-сервисов). DI получает .Store, тесты сохраняют Preload/GetStoredJson.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
#1
Что сделано
FakeAuthStore→TestAuthStore(NSubstitute), обновлены 15 потребителей.FakePipelineStore→ существующийTestPipelineStore, обновлены 7 потребителей; добавлен сценарийthrowOnListдля теста сбоя чтения очереди.FakeKanjStore→TestKanjStore(NSubstitute, 43 методаICardStore), обновлён 21 потребитель; добавлен сценарийthrowOnDueRemindersдля тестов сбоя выборки напоминаний.FakeFileStorage,FakeDiscoveryStore,FakeOperatorAuthStore,FakeTenantRepository,FakeTenantStore,FakeTokenUsageEventStore).see crefна удалённый фейк вDiscoveryBanGuard.Проверки
Затрагивает только тест-проекты core/telegram/ai; прод-код и фронт не трогались.