Подключение к CI
GitVerse
Готовый файл с вашими значениями и образом текущего выпуска — на странице проекта «Подключение».
Файл .gitverse/workflows/code-inspect.yaml
name: Code Inspect
on:
pull_request:
types: [opened, synchronize, reopened]
jobs:
code-inspect:
# Только PR из этого же репозитория: PR из форка мог бы подменить workflow и вывести секреты.
if: ${{ gitverse.event.pull_request.head.repo.full_name == gitverse.repository }}
runs-on: ubuntu-latest
continue-on-error: true
steps:
- uses: actions/checkout@v5
- uses: docker://<реестр>/runner:<версия>@sha256:<digest>
env:
CINS_BASE_URL: https://codeinspect.ru
CINS_PROJECT_KEY: ${{ secrets.CINS_PROJECT_KEY }}
GIT_PROVIDER: gitverse
GIT_BASE_URL: https://gitverse.ru
GIT_PROJECT_ID: <владелец>/<репозиторий>
GIT_PROVIDER_TOKEN: ${{ secrets.GIT_PROVIDER_TOKEN }}
LLM_API_BASE_URL: <адрес API модели>
LLM_MODEL_NAME: <модель>
LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
with:
entrypoint: /bin/sh
args: -c "REPO_PATH=\"$PWD\" codeinspect review --mr ${{ gitverse.event.pull_request.number }}"
На странице «Подключение» в файле ещё закреплён по SHA коммита actions/checkout и запуски одного PR выстроены в
очередь (concurrency) — берите файл оттуда.
Почему так
- Checkout и ревью — разными шагами. Раннер GitVerse запускает
actions/checkoutчерезnodeвнутри образа job'а, а в образе Code Inspect его нет: checkout идёт в образе раннера, ревью — шагомdocker://с той же рабочей копией. - Номер PR передаётся аргументом
--mrиз контекста события: переменной CI GitVerse его не даёт. - Токен бота — секретом. Токен job'а (
gitverse.token) не годится: он действует от имени автора события, и ревью публиковалось бы от него. - Секреты — «Настройки» → «Секреты и переменные», секреты репозитория (какие).
Повтор ревью
На GitVerse комментарий /review засчитывается только от автора PR — список ролей платформа не отдаёт. И только если
токен Runner'а принадлежит отдельной учётной записи: команды владельца токена Runner считает своими.