Skip to content

feat: Ф0 поддержки Cloud — тип развёртывания и уважение Retry-After#54

Merged
YuriyEnshin merged 1 commit into
masterfrom
feat/cloud-phase0
Jul 2, 2026
Merged

feat: Ф0 поддержки Cloud — тип развёртывания и уважение Retry-After#54
YuriyEnshin merged 1 commit into
masterfrom
feat/cloud-phase0

Conversation

@YuriyEnshin

Copy link
Copy Markdown
Owner

Что сделано

Подготовительная фаза (Ф0) плана поддержки Confluence Cloud — без изменения поведения для on-prem пользователей.

Тип развёртывания (DeploymentType)

  • Новый DeploymentTypeResolver: явный --auth-type onprem|cloud приоритетен и валидируется (опечатка теперь даёт понятную ошибку вместо тихого игнорирования), без него тип автоопределяется по хосту --base-url (*.atlassian.netcloud).
  • В DI (ServiceCollectionExtensions) появилась точка выбора реализации IConfluenceApiClient: Cloud-клиент (v2) подключится сюда в Ф1. Пока при Cloud выводится предупреждение и используется v1-клиент.
  • config show показывает эффективный режим: cloud (auto-detected) / bogus (invalid: expected onprem|cloud).

Рейт-лимиты (подготовка к Cloud 429)

  • RetryingHttpHandler учитывает Retry-After (delta-seconds и HTTP-date; потолок ожидания 60 с, чтобы вызов MCP-инструмента не выглядел зависшим).
  • POST повторяется при 429: rate limiter отклоняет запрос до обработки, побочные эффекты (создание страницы, заливка вложения) не дублируются. При 5xx и сетевых ошибках POST по-прежнему не повторяется.

Документация

  • CHANGELOG и README — RU + EN синхронно.

Тесты

427 тестов зелёные (добавлены DeploymentTypeResolverTests и кейсы POST-429 / Retry-After). Смоук config show проверен вручную для трёх случаев (cloud-URL, onprem-URL, опечатка).

Часть плана: Ф0 → R1 (Cloud read-only) → R2 (запись) → R3 (вложения + канонизация).

🤖 Generated with Claude Code

- DeploymentType (onprem|cloud): явный --auth-type валидируется (опечатка —
  понятная ошибка), иначе автоопределение по хосту *.atlassian.net; точка
  выбора реализации клиента в DI (пока v1-клиент с предупреждением для Cloud)
- config show показывает эффективный режим: cloud (auto-detected) / подсказка
  при недопустимом значении
- RetryingHttpHandler: ожидание из заголовка Retry-After (429/503, потолок
  60 с), повтор POST при 429 — rate limiter отклоняет запрос до обработки,
  дублирование побочных эффектов исключено
- тесты (427 зелёные), CHANGELOG и README (RU+EN)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@YuriyEnshin
YuriyEnshin merged commit 9ec583f into master Jul 2, 2026
1 check passed
@YuriyEnshin
YuriyEnshin deleted the feat/cloud-phase0 branch July 2, 2026 17:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant