Настройка Code Review в self-hosted
Настройте воркеры Code Review, GitHub App, GitLab и Gitea/Forgejo в self-hosted Skitflow.
В self-hosted Code Review веб-сервис принимает callback-запросы и вебхуки, а отдельный воркер выполняет ревью и задачи Code Intelligence. Оба сервиса должны использовать общие основную базу данных, Redis и учётные данные Code Review.
Включение воркера
Для новой установки через скрипт запустите install.sh с
SKITFLOW_CODE_REVIEW_ENABLED=1. Скрипт развернёт отдельный сервис
skitflow-code-review-worker, но не настроит провайдеров и не включит флаги
организации.
Задайте на воркере SKITFLOW_CODE_REVIEW_WORKER_ENABLED=true. Если переменная
отсутствует или имеет другое значение, запросы будут попадать в очередь, но
ревью не запустятся. Не меняйте без миграции SKITFLOW_QUEUE_PREFIX; значение
по умолчанию — skitflow.
Укажите стабильный публичный HTTPS-адрес в BETTER_AUTH_URL (SITE_URL
используется как резервный) и убедитесь, что провайдеры могут отправлять на него
вебхуки. После смены учётных данных перезапустите веб-сервис и воркер.
Сетевая политика PAT-провайдеров
GitLab и Gitea/Forgejo используют заданные оператором базовые URL и токены. Исходящие запросы управляются переменными:
| Переменная | Self-hosted по умолчанию | Поведение |
|---|---|---|
GIT_PROVIDER_OUTBOUND_POLICY | off | off разрешает приватные, loopback, link-local и служебные адреса. strict блокирует их. Неизвестное значение молча заменяется дефолтом развёртывания (off в self-hosted, strict в cloud). |
GIT_PROVIDER_REQUIRE_HTTPS | false | Значение true отклоняет базовые URL с http://. |
Диалоги GitLab и Gitea всегда предупреждают об http://: токен передаётся без
шифрования в каждом запросе. HTTP остаётся доступен, если это разрешено
развёртыванием. Тело ответа провайдера не попадает в клиентскую ошибку;
подробности удалённого хоста смотрите в серверных логах.
Сохраняйте self-hosted-дефолты только для намеренного доступа к приватным
провайдерам. Используйте HTTPS и strict, если пользователи не должны иметь
доступ к приватной сети control plane.
GitHub App
Создайте отдельный GitHub App для Code Review. Не используйте OAuth-приложение источников развёртывания.
- Укажите домашнюю страницу Skitflow, Setup URL
<SKITFLOW_ORIGIN>/api/code-review/github/callbackи Webhook URL<SKITFLOW_ORIGIN>/api/code-review/github/webhook. - Выдайте read-only права Metadata и Contents, а также read/write права
Pull requests и Issues. Также выдайте read/write право Checks —
Skitflow создаёт и обновляет check run
skitflow-reviewдля каждого pull request; без этого права check run просто не создаётся, а ревью всё равно выполняются. - Подпишитесь на события Pull request, Installation, Installation repositories, Push, Issue comment и Pull request review comment. Push-события запускают переиндексацию Code Intelligence при изменении default branch; два события с комментариями запускают команды бота прямо в PR (например, повторный запуск ревью или объяснение находки через комментарий).
- Настройте на веб-сервисе и воркере:
SKITFLOW_CODE_REVIEW_GITHUB_APP_ID="123456"
SKITFLOW_CODE_REVIEW_GITHUB_APP_SLUG="my-skitflow-code-review"
SKITFLOW_CODE_REVIEW_GITHUB_PRIVATE_KEY="-----BEGIN RSA PRIVATE KEY-----\\n...\\n-----END RSA PRIVATE KEY-----"
SKITFLOW_CODE_REVIEW_GITHUB_BOT_LOGIN="my-skitflow-code-review[bot]"
SKITFLOW_CODE_REVIEW_GITHUB_WEBHOOK_SECRET="<отдельный-случайный-секрет>"
SKITFLOW_CODE_REVIEW_GITHUB_STATE_SECRET="<другой-случайный-секрет>"
SKITFLOW_CODE_REVIEW_WORKER_ENABLED=trueИспользуйте независимые стойкие секреты для вебхука и state. После перезапуска
включите code_review.enabled и code_review.github в Dashboard → Settings →
Code Review → Feature availability. Установите App, синхронизируйте
репозитории, свяжите репозиторий с проектом и запустите ревью недрафтового PR.
GitLab
- Создайте PAT отдельного bot-аккаунта с правом
api. - Включите
code_review.enabledиcode_review.gitlab. - Нажмите Connect GitLab на странице Code Review проекта и укажите URL инстанса, PAT и необязательный путь группы.
- Включайте Skip TLS verification только для исключительного self-signed инстанса, когда нельзя настроить доверенный CA.
- Синхронизируйте репозитории и включите Code Review для нужных проектов.
Skitflow создаёт групповой вебхук для подключения группы или отдельные вебхуки
проектов для membership-подключения. Не создавайте пересекающиеся group- и
membership-подключения одного инстанса. GitLab не отправляет событие
ready_for_review: перевод merge request из draft в ready не запускает ревью,
пока вы не запустите его вручную или не отправите новый коммит.
Gitea и Forgejo
Создайте токен отдельного bot-аккаунта с read/write scopes для репозиториев и
организации. Включите code_review.enabled и code_review.gitea, нажмите
Connect Gitea, укажите базовый URL, токен и необязательную организацию, затем
синхронизируйте репозитории. Применяются те же правила HTTP-предупреждения,
исключения TLS, исходящей политики и очистки клиентских ошибок.
Проверка установки
Откройте или обновите недрафтовый pull/merge request либо нажмите Run review.
Убедитесь, что запуск вышел из состояния queued и провайдер получил итог или
inline-комментарии. Если запуск остаётся в очереди, проверьте точное значение
true у переключателя воркера и доступ воркера к Redis. При ошибках подключения
смотрите серверные логи: тело удалённой ошибки намеренно не показывается в UI.
Настройка concurrency, миграции очередей, метрик, бюджетов, retention и хранилища артефактов описана в разделе Масштабирование и лимиты Code Review.
Code Intelligence
Контекстный слой Code Review, который индексирует default branch репозитория и ищет по нему семантически, чтобы дать review контекст всей кодовой базы.
Масштабирование и лимиты Code Review
Масштабирование self-hosted Code Review workers и настройка concurrency, budgets, metrics, retention и encrypted artifact storage.