Подключение к 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 считает своими.