Обращение к GitHub API без библиотеки github-api#82
Conversation
Переводит GitHubReleaseClient на java.net.http.HttpClient и встроенный минимальный JSON-парсер (RFC 8259) вместо org.kohsuke:github-api. Из рантайм-замкнутости уходят github-api, jackson-databind/core/annotations (~4 МБ) — остаются только slf4j-api, commons-compress, semver4j и jspecify, что упрощает встраивание в OSGi (EDT) и убирает конфликт версий Jackson. Поведение сохранено: стабильный канал берётся из releases/latest (404 = нет подходящих релизов), pre-release — первый не-draft из списка releases с дочитыванием страниц. Ассеты читаются из того же ответа, так что вместо двух обращений к API выполняется одно. Добавлен конструктор с внешним HttpClient (настройка прокси, тесты). Fixes #81 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WwLcL3YofsPmKBJpcDoVor
|
Warning Review limit reached
Next review available in: 6 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (6)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|



Переводит
GitHubReleaseClientсorg.kohsuke:github-apiнаjava.net.http.HttpClientсо встроенным минимальным JSON-парсером (RFC 8259) — без клиентских библиотек GitHub и внешних JSON-библиотек.Closes #81
Что изменилось
GitHubReleaseClient— переписан наjava.net.http.HttpClient:GET /releases/latest(404 трактуется как «нет подходящих релизов», как раньшеnullу github-api);GET /releases(newest-first) с дочитыванием следующих страниц на случай токена с push-доступом, которому видны драфты;Accept: application/vnd.github+json,X-GitHub-Api-Version,User-Agent,Authorization: Bearerпри непустом токене;GitHubReleaseClient(token, httpClient)— для настройки прокси и тестов.Json— новый пакетный класс: минимальный рекурсивный парсер полного синтаксиса RFC 8259 (экранирование строк,\uXXXX, числа, вложенные структуры). Некорректный JSON даётIOException— тот же контракт, что у сетевых ошибок.build.gradle.kts— удалена зависимостьorg.kohsuke:github-api:1.330.Эффект для рантайм-замкнутости
Из classpath уходят
github-apiиjackson-databind/core/annotations(~4 МБ). Остаются толькоslf4j-api,commons-compress(+codec/io/lang3),semver4j,jspecify:Это упрощает встраивание в OSGi-бандл (1C:EDT) и убирает конфликт версий Jackson 2.20 ↔ 2.12 из target-платформы EDT.
Тесты
18 новых тестов:
JsonTest(парсер, включая ~20 некорректных образцов) иGitHubReleaseClientTest(оба канала, пагинация по драфтам, заголовки, 403/404, битый JSON, восстановление interrupt-флага). Все прежние тесты загрузчика проходят без изменений — поведениеBslLanguageServerDownloaderне затронуто.🤖 Generated with Claude Code
https://claude.ai/code/session_01WwLcL3YofsPmKBJpcDoVor
Generated by Claude Code