Skip to content

Интеграция с GitHub

Интеграция с GitHub позволяет:

  • настроить связь с CI-системой GitHub (GitHub Actions):

    • автоматически передавать результаты тестов из workflow GitHub в ТестОпс с помощью allurectl;
    • запускать workflow GitHub из интерфейса ТестОпс через запуск джобы ТестОпс;
    • синхронизировать статус запуска workflow сразу в обеих системах — ТестОпс и GitHub.
  • настроить связь с таск-трекером GitHub (GitHub Issues):

В настроенной интеграции с CI-системой GitHub одна джоба ТестОпс соответствует одному workflow GitHub, а один запуск джобы — одному запуску соответствующего workflow.

Примечание

Чтобы настроить или удалить любую интеграцию ТестОпс с внешней системой, необходима глобальная роль «Администратор» в инстансе ТестОпс и, как правило, права администратора инстанса внешней системы.

Настройка интеграции и подключений с GitHub

Чтобы настроить интеграцию с GitHub:

  1. Настройте связь от ТестОпс к GitHub:

    1. Создайте токен доступа в GitHub.
    2. Подключите интеграцию с GitHub на уровне инстанса ТестОпс.
    3. Добавьте настроенное подключение к GitHub в проект ТестОпс.
  2. Настройте связь от GitHub к ТестОпс:

    1. Создайте API-токен в ТестОпс.
    2. Укажите созданный API-токен из ТестОпс в GitHub.
    3. Измените workflow в GitHub.
    4. Запустите и проверьте workflow в GitHub.
    5. Настройте созданную джобу в ТестОпс.
  3. Параметризируйте джобу в ТестОпс и workflow в GitHub (при необходимости).

Важно

Если вы планируете использовать интеграцию:

  • только с таск-трекером GitHub — достаточно выполнить шаги только по настройке связи от ТестОпс к GitHub;
  • только с CI-системой GitHub — необходимо выполнить все шаги по настройке интеграции;
  • с таск-трекером и CI-системой GitHub одновременно — необходимо выполнить все шаги по настройке интеграции.

1. Настройте связь от ТестОпс к GitHub

1.1. Создайте токен доступа в GitHub

GitHub поддерживает два типа токенов доступа: fine-grained и classic (см. Managing your personal access tokens в документации GitHub). Для интеграции с ТестОпс вы можете использовать любой тип токена.

  1. Перейдите в ваш инстанс GitHub.

  2. Нажмите на ваш аватар и перейдите в раздел Settings.

  3. В сайдбаре слева перейдите в раздел Developer settings.

  4. В сайдбаре слева перейдите в раздел Personal access tokensFine-grained tokens.

  5. Нажмите Generate new token.

  6. Заполните поля:

    • Token name — введите название токена, которое поможет вам распознать интеграцию (например, Токен для ТестОпс).
    • Expiration — введите срок действия токена. После указанной даты интеграция перестанет работать. Чтобы возобновить ее работу, вам нужно будет создать новый токен.
  7. В секции Repository access выберите один из вариантов:

    • All repositories — предоставить токену доступ ко всем репозиториям. Этот вариант подходит, если вы планируете настроить интеграцию для всего инстанса GitHub.
    • Only select repositories — предоставить токену доступ только к определенным репозиториям. В появившемся выпадающем списке выберите репозитории, содержащие workflow или задачи, которые вы планируете использовать.
  8. В секции Permissions нажмите + Add permissions.

  9. В списке доступных разрешений поставьте галочки напротив разрешений:

    • Actions — если планируете использовать интеграцию с CI-системой GitHub;
    • Issues — если планируете использовать интеграцию с таск-трекером GitHub.

    Чтобы закрыть список, нажмите вне его области.

  10. В списке добавленных разрешений для каждого выбранного разрешения (Actions или Issues) укажите уровень доступа Access: Read and write.

  11. Нажмите Generate token.

  12. В открывшемся окне подтверждения повторно нажмите Generate token.

    После обновления страницы вы должны увидеть созданный токен.

  13. Нажмите иконку Копировать рядом с токеном, чтобы скопировать его в буфер обмена.

    Cохраните токен в безопасном месте, он понадобится для подключения интеграции с GitHub в ТестОпс.

1.2. Подключите интеграцию с GitHub на уровне инстанса ТестОпс

  1. Перейдите в ваш инстанс ТестОпс.

  2. Перейдите в раздел АдминистрированиеИнтеграции.

  3. Нажмите Добавить интеграцию.

  4. В списке доступных интеграций выберите GitHub.

  5. Заполните поля:

    • Название подключения — введите название, которое поможет вам распознать интеграцию (например, GitHub production).

    • Endpoint — введите базовый URL-адрес GitHub:

      • Для github.com используйте https://github.com.
      • Для GitHub Enterprise Server используйте URL-адрес вашего инстанса GitHub.
    • Endpoint для вызовов API — введите URL-адрес GitHub API:

      • Для github.com убедитесь, что указано https://api.github.com.
      • Для GitHub Enterprise Server используйте ⟨URL-адрес вашего инстанса GitHub⟩/api/v3.
    • Тип учетных данных — нажмите на выпадающий список и выберите тип учетных данных GitHub, который будет поддерживать интеграция:

      • Все (глобальные и проектные) — интеграция может работать как с глобальными, так и с проектными учетными данными;
      • Только глобальные — интеграция может работать только с глобальными учетными данными;
      • Только проектные — интеграция может работать только с проектными учетными данными.

      Примечание

      Подробнее о поддерживаемых типах учетных данных см. Интеграции с внешними системами → Глобальные и проектные учетные данные

  6. Если вы используете GitHub Enterprise Server с самоподписанным SSL-сертификатом, уберите галочку напротив Проверка SSL-сертификата.

  7. Если вы планируете использовать интеграцию с таск-трекером GitHub, в секции Репозитории добавьте репозитории GitHub, в которых находятся нужные задачи:

    1. Нажмите + Добавить.
    2. В поле Владелец репозитория введите имя владельца репозитория.
    3. В поле Название репозитория введите название репозитория.
    Пример

    Например, для репозитория github.com/torvalds/linux значение поля Владелец репозитория будет torvalds, а значение поля Название репозиторияlinux.

  8. Если интеграция может работать с глобальными учетными данными GitHub, в секции Глобальные учетные данные введите токен доступа GitHub, который вы сохранили на шаге 1.1.

  9. Нажмите Добавить подключение.

В разделе АдминистрированиеИнтеграции появится интеграция с GitHub с одним автоматически созданным подключением.

1.3. Добавьте настроенное подключение к GitHub в проект ТестОпс

Чтобы добавить настроенное подключение к GitHub в нужный проект ТестОпс, воспользуйтесь одним из способов:

  1. В ТестОпс перейдите в раздел АдминистрированиеИнтеграции.

  2. В списке настроенных интеграций найдите и откройте интеграцию с GitHub.

  3. В списке настроенных подключений найдите и откройте ваше подключение к GitHub.

  4. Нажмите Добавить в проект.

  5. В списке доступных проектов выберите нужный проект ТестОпс.

  6. Если интеграция может работать и с глобальными, и с проектными учетными данными GitHub, в поле Тип учетных данных нажмите на выпадающий список и выберите вариант, который будет использоваться в проекте:

    • Проектные — использовать проектные учетные данные для подключения к GitHub;
    • Глобальные — использовать глобальные учетные данные для подключения к GitHub.
  7. Если интеграция будет работать с проектными учетными данными GitHub, в секции Проектные учетные данные введите токен доступа GitHub, который вы сохранили на шаге 1.1.

  8. Нажмите Добавить в проект.

2. Настройте связь от GitHub к ТестОпс

Выполните шаги ниже, если вы планируете запускать workflow GitHub из интерфейса ТестОпс и автоматически синхронизировать результаты тестов.

2.1. Создайте API-токен в ТестОпс

  1. В ТестОпс нажмите на ваш аватар и перейдите в раздел API-токены.

  2. Нажмите + Токен.

  3. Введите название токена, которое поможет вам распознать интеграцию (например, Токен для GitHub).

  4. Нажмите Создать.

    ТестОпс сгенерирует токен и отобразит его в модальном окне.

  5. Нажмите иконку Копировать, чтобы скопировать токен в буфер обмена.

    Cохраните токен в безопасном месте, он понадобится для настройки интеграции в GitHub.

  6. Нажмите Готово.

2.2. Укажите токен в GitHub

  1. Перейдите в ваш инстанс GitHub.

  2. Откройте репозиторий, для которого вы настраиваете интеграцию.

  3. Перейдите на вкладку Settings.

  4. В сайдбаре слева перейдите в раздел Secrets and variablesActions.

  5. Нажмите New repository secret.

  6. Заполните поля:

    • Name — введите ALLURE_TOKEN.
    • Secret — введите API-токен, который вы сохранили на шаге 2.1.
  7. Нажмите Add secret.

2.3. Измените workflow в GitHub

Примечание

Измените каждый workflow, который запускает тесты и участвует в интеграции.

  1. В GitHub откройте репозиторий, для которого вы настраиваете интеграцию.

  2. Перейдите в директорию .github/workflows.

  3. Откройте файл вашего workflow в формате YAML.

  4. В блоке workflow_dispatchinputs добавьте параметры:

    • ALLURE_JOB_RUN_ID,
    • ALLURE_USERNAME.

    Важно

    Для обоих параметров укажите свойство required со значением false. Это означает, что параметры можно оставить пустыми при запуске workflow в GitHub, но они должны быть обязательно определены. Без этих параметров запуск workflow со стороны ТестОпс не будет работать и вы получите ошибку 422. Подробнее см. Устранение неполадок.

  5. Добавьте или расширьте блок env. Он должен включать переменные со значениями:

    • ALLURE_ENDPOINTURL-адрес инстанса ТестОпс.

    • ALLURE_PROJECT_IDID проекта ТестОпс.

    • ALLURE_TOKEN${{ secrets.ALLURE_TOKEN }}.

    • ALLURE_JOB_RUN_ID${{ github.event.inputs.ALLURE_JOB_RUN_ID }}.

    • ALLURE_RESULTSпуть к директории с результатами тестов (например, build/allure-results).

      Если в вашем репозитории несколько директорий с результатами тестов, вы можете разделить их запятыми или использовать шаблон с подстановочными символами (например, modules/*/build/allure-results).

  6. Перед командой запуска тестов добавьте шаг, загружающий allurectl.

    Совет

    Рекомендуем использовать готовый GitHub Action allure-framework/setup-allurectl@v1.

    Вариант загрузки и настройки allurectl без использования GitHub Action описан в примерах ниже.

  7. Оберните команду, которая запускает тесты, в команду allurectl watch.

    Если ваш инстанс ТестОпс использует самоподписанный SSL-сертификат, используйте вместо этого команду allurectl --insecure watch.

  8. Сохраните изменения в файле.

Пример изменения workflow

Предположим, вы работаете с Java-проектом, в котором файл workflow выглядит следующим образом:

yaml
name: Run tests

on:
  push:

jobs:
  all-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Set up JDK
        uses: actions/setup-java@v3
        with:
          distribution: oracle
          java-version: 17

      - name: Build with Gradle
        run: ./gradlew clean test

Чтобы настроить интеграцию с ТестОпс, вам необходимо изменить файл по примеру ниже:

yaml
name: Run tests

on:
  push:
  workflow_dispatch:
    inputs:
      ALLURE_JOB_RUN_ID:
        description: "TestOps service parameter. Leave blank"
        required: false
      ALLURE_USERNAME:
        description: "TestOps service parameter. Leave blank"
        required: false

env:
  ALLURE_ENDPOINT: https://testops.example.com
  ALLURE_PROJECT_ID: 1
  ALLURE_TOKEN: ${{ secrets.ALLURE_TOKEN }}
  ALLURE_JOB_RUN_ID: ${{ github.event.inputs.ALLURE_JOB_RUN_ID }}
  ALLURE_RESULTS: "build/allure-results"

jobs:
  all-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Set up JDK
        uses: actions/setup-java@v3
        with:
          distribution: oracle
          java-version: 17

      - name: Install allurectl
        uses: allure-framework/setup-allurectl@v1

      - name: Build with Gradle
        run: allurectl watch -- ./gradlew clean test

2.4. Запустите и проверьте workflow в GitHub

  1. В GitHub откройте репозиторий, для которого вы настраиваете интеграцию.

  2. Перейдите к запуску workflow, инициированному последним коммитом.

    Примечание

    Если у вас отключен автоматический запуск workflow после коммитов, выполните запуск вручную.

  3. Дождитесь, когда завершится выполнение workflow.

  4. В деталях выполнения workflow нажмите на джобу, которая запускает тесты.

  5. Ближе к концу лога джобы найдите ссылку на запуск в ТестОпс (например, Report link: https://testops.example.com/jobrun/23).

  6. Перейдите по ссылке в ТестОпс и откройте карточку результата одного из тестов.

  7. В левом нижнем углу в секции Из запуска джобы найдите ссылку на workflow GitHub.

  8. Перейдите по ссылке в GitHub, чтобы убедиться, что она работает корректно.

2.5. Настройте джобу в ТестОпс

  1. Перейдите в ваш проект ТестОпс.

  2. Перейдите в раздел Джобы.

    В списке будет отображаться новая джоба, автоматически добавленная во время запуска на шаге 2.4.

  3. Напротив добавленной джобы нажмите Настроить.

  4. Заполните поля:

    • Название — введите название, которое поможет вам распознать джобу.
    • Сервер сборки — нажмите на выпадающий список и выберите название подключения к GitHub, которое вы добавили на шаге 1.2.
    • Джоба может быть использована для запуска тестов — поставьте галочку, чтобы пользователи могли запускать джобу из ТестОпс.
  5. Нажмите Отправить.

3. Параметризируйте джобу в ТестОпс и workflow в GitHub

GitHub использует блок inputs в файле в формате YAML для передачи параметров в контекст workflow. Чтобы параметризировать workflow, необходимо добавить нужные параметры в этот блок и затем указать их в блоке env. Это позволит использовать указанные параметры как переменные окружения в тестах.

ТестОпс поддерживает эту функциональную возможность через Окружение, которое позволяет задавать параметры для новых джоб ТестОпс и просматривать параметры из workflow, запущенных со стороны GitHub. В ТестОпс передается весь контекст workflow, который может использоваться для связывания данных окружения с результатами тестов.

3.1. Укажите параметры в workflow GitHub

Примечание

Измените каждый workflow, который запускает тесты и участвует в интеграции.

  1. В GitHub откройте репозиторий, для которого вы настраиваете интеграцию.

  2. Перейдите в директорию .github/workflows.

  3. Откройте файл вашего workflow в формате YAML.

  4. Добавьте параметры для запуска workflow, их описания и значения по умолчанию в блок inputs.

    Пример
    yaml
    name: Run tests
    
    on:
      workflow_dispatch:
        inputs:
          <...>
          TESTS_BROWSER:
            description: "Browser to use for tests"
            required: true
            default: "chrome"
          PRODUCT_VERSION:
            description: "Product version"
            required: true
            default: "1.23"
  5. Укажите эти же значения в блоке env для передачи информации в ваши тесты через переменные окружения.

    Пример
    yaml
    env:
      <...>
      TESTS_BROWSER: ${{ github.event.inputs.TESTS_BROWSER }}
      PRODUCT_VERSION: ${{ github.event.inputs.PRODUCT_VERSION }}

Эти переменные окружения, как и остальные, будут отправлены в ТестОпс с помощью allurectl вместе с контекстом сборки.

3.2. Добавьте глобальные переменные окружения в ТестОпс

Перед тем как использовать значения переменных окружения из workflow GitHub, создайте глобальные переменные окружения на уровне инстанса ТестОпс, которые будут хранить эти данные:

  1. Перейдите в ваш инстанс ТестОпс.

  2. Перейдите в раздел АдминистрированиеОкружение.

  3. Для каждой переменной, которую вы хотите добавить:

    1. Нажмите + Создать.
    2. Введите глобальное название переменной.
    3. Нажмите Отправить.

    Названия переменных окружения добавляются в разделе «Администрирование».

    Важно

    Обязательно создайте глобальную переменную окружения Branch, так как она необходима для работы ТестОпс с API GitHub. Без нее запуск workflow из интерфейса ТестОпс будет невозможен.

3.3. Сопоставьте переменные окружения workflow с глобальными переменными окружения в ТестОпс

  1. Перейдите в ваш проект ТестОпс.

  2. Перейдите в раздел НастройкиОкружение.

  3. Для каждой переменной, которую вы хотите использовать:

    1. Нажмите + Создать, если переменной нет в списке. Если переменная уже существует, напротив ее названия нажмите иконку Редактировать.
    2. В поле Ключ введите название переменной в GitHub из шага 3.1.
    3. В поле Переменная окружения нажмите на выпадающий список и выберите глобальное название переменной в ТестОпс из шага 3.2.
    4. Нажмите Отправить.

    Сопоставление переменных окружения GitHub и ТестОпс находится в настройках проекта.

3.4. Добавьте параметры в джобу ТестОпс

  1. В ТестОпс перейдите в раздел Джобы.

  2. Напротив джобы, которую вы хотите параметризировать, нажмите Настроить.

  3. Для каждой переменной, которую вы хотите добавить, в секции Параметры нажмите Добавить и заполните поля:

    • Название — введите название переменной в GitHub из шага 3.1.

    • Значение — введите значение по умолчанию, которое должно использоваться, если не указано другое значение для конкретного запуска.

      Примечание

      Обратите внимание, что рекомендуется устанавливать одинаковые значения по умолчанию как в ТестОпс, так и в GitHub. В таком случае запуск workflow получит одно и то же окружение независимо от источника запуска.

      Подробнее о настройке джобы см. Джобы → Параметры джобы.

    • Переменная окружения — нажмите на выпадающий список и выберите глобальное название переменной в ТестОпс из шага 3.2.

    В окне можно указать несколько переменных окружения.

  4. Нажмите Отправить.

3.5. Запустите workflow через ТестОпс

На предыдущих шагах вы настроили джобу в ТестОпс, указав все параметры, которые нужно передавать в workflow GitHub. Эти параметры будут использоваться при запуске workflow из интерфейса ТестОпс.

Параметры указаны рядом с названием джобы.

Чтобы выполнить тесты в определенном окружении:

  1. Создайте запуск в интерфейсе ТестОпс любым из доступных способов (подробнее см. Запуски → Создание запуска для тестовых прогонов, инициированных из ТестОпс).

  2. В окне создания запуска в секции Окружение нажмите Добавить.

    ТестОпс добавит параметры джобы в форму и заполнит их значениями по умолчанию.

    Значения параметров можно ввести или выбрать из списка.

  3. При необходимости измените указанные значения параметров.

    Если вам нужно запустить workflow несколько раз с разным окружением, создайте новые наборы переменных окружения. В этом случае ТестОпс отправит запрос в GitHub на выполнение нескольких workflow с различными параметрами.

  4. Нажмите Отправить.

Примеры настроенных workflow GitHub

Как упоминалось выше, allurectl можно добавить в workflow двумя способами:

  • Через GitHub Action allure-framework/setup-allurectl@v1, который:

    1. Скачает allurectl.
    2. Создаст параметры на основе контекста workflow или данных, полученных от ТестОпс.
    3. Настроит параметры, необходимые для загрузки результатов тестов.
  • Через скрипт внутри workflow (если GitHub Action недоступен или ограничен), который:

    1. Скачает allurectl.
    2. Создаст необходимые параметры на основе контекста workflow.

Ниже приведены примеры простых workflow GitHub с использованием GitHub Action allure-framework/setup-allurectl@v1 и скрипта внутри workflow. В них используется pytest и показаны все элементы, необходимые для корректной передачи результатов тестов из GitHub в ТестОпс и запуска workflow из интерфейса ТестОпс.

yaml
name: run-and-upload-to-testops

on:
  workflow_dispatch:
    inputs:
      TESTS_ENDPOINT:
        description: "System under test"
        required: true
        default: https://system.under.test
      TESTS_BROWSER:
        description: "Browser to be used in tests"
        required: true
        default: chrome
      ALLURE_JOB_RUN_ID:
        description: "TestOps service parameter. Leave blank"
        required: false
      ALLURE_USERNAME:
        description: "TestOps service parameter. Leave blank"
        required: false

env:
  ALLURE_RESULTS: "allure-results"
  ALLURE_JOB_RUN_ID: ${{ github.event.inputs.ALLURE_JOB_RUN_ID }}

jobs:
  all-tests:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v4
        with:
          python-version: '3.11'
      - name: Install dependencies for pytest and allure framework integration
        run: |
          python -m pip install --upgrade pip
          pip install allure-pytest pytest
      - name: install and configure allurectl using GH Action
        uses: allure-framework/setup-allurectl@v1
        with:
          allure-endpoint: https://testops.example.com
          allure-token: ${{ secrets.ALLURE_TOKEN }}
          allure-project-id: 9999
      - name: Run pytest tests
        run: |
          allurectl watch -- pytest ./test --alluredir=${ALLURE_RESULTS} --capture=no || true
        env:
          TESTS_ENDPOINT: ${{ github.event.inputs.TESTS_ENDPOINT }}
          TESTS_BROWSER: ${{ github.event.inputs.TESTS_BROWSER }}
          GITHUB_TESTS_BRANCH: ${{ github.ref_name }}

Удаление подключений и интеграции с GitHub

Вы можете удалить подключение к интеграции с GitHub двумя способами — на уровне отдельного проекта (через настройки проекта) или на уровне всего инстанса ТестОпс (через раздел Администрирование).

Удаление подключения на уровне проекта

Важно

Последствия удаления всех подключений из интеграции с GitHub на уровне проекта:

  • Подключения к интеграции с GitHub перестанут отображаться в списке подключений проекта, но продолжат работать в других проектах инстанса, в которых они были добавлены, и сохранятся в разделе АдминистрированиеИнтеграции.

  • Интеграция с GitHub перестанет отображаться в списке интеграций проекта, но сохранится в разделе АдминистрированиеИнтеграции.

  • Связь с инстансом GitHub будет удалена из джоб ТестОпс, которые относятся к интеграции и находятся в этом проекте:

    • Иконки для запуска и обновления этих джоб в разделе Джобы останутся активными.
    • ТестОпс не сможет запустить тесты из проекта на стороне GitHub. После закрытия запуска результаты этих тестов получат статус «Неизвестный».
    • Результаты запусков тестов из GitHub не будут отправляться в проект ТестОпс.
  • Все связи с задачами GitHub, которые относятся к интеграции, будут сохранены в сущностях ТестОпс, но вы не сможете создавать новые связи для этого проекта.

Чтобы удалить подключение на уровне проекта:

  1. Перейдите в ваш проект ТестОпс.
  2. Перейдите в раздел НастройкиИнтеграции.
  3. В списке настроенных интеграций найдите и откройте интеграцию с GitHub.
  4. Напротив нужного подключения к GitHub нажмите УдалитьДа, удалить.

Подключение перестанет работать в вашем проекте.

Удаление подключения на уровне инстанса

Важно

Последствия удаления всех подключений из интеграции с GitHub на уровне инстанса:

  • Подключения и интеграция с GitHub будут полностью удалены.

  • Связь с инстансом GitHub будет удалена из всех джоб ТестОпс, которые относятся к интеграции:

    • Иконки для запуска и обновления этих джоб в разделе Джобы станут неактивными.
    • Результаты запусков тестов из GitHub не будут отправляться в инстанс ТестОпс.
  • Все связи с задачами GitHub, которые относятся к интеграции, будут удалены из сущностей ТестОпс. Это действие необратимо — восстановить удаленные ссылки будет невозможно.

Чтобы удалить подключение на уровне инстанса:

  1. В ТестОпс перейдите в раздел АдминистрированиеИнтеграции.
  2. В списке настроенных интеграций найдите и откройте интеграцию с GitHub.
  3. В списке настроенных подключений откройте карточку нужного подключения и напротив названия каждого проекта нажмите Удалить из проектаДа, удалить.
  4. Нажмите Назад в интеграцию, чтобы вернуться к списку подключений.
  5. Напротив нужного подключения к GitHub нажмите УдалитьДа, удалить.

Подключение перестанет работать во всех проектах инстанса.

Устранение неполадок

Ошибка 422 при запуске workflow GitHub через интерфейс ТестОпс

Обычно ошибка 422 возникает при попытке запустить GitHub workflow, использующий workflow_dispatch, если параметры, определенные в блоке workflow_dispatchinputs, не совпадают с параметрами, передаваемыми из джобы ТестОпс.

Как упоминалось выше, чтобы ТестОпс мог запускать workflow GitHub, в блоке inputs должны быть указаны два обязательных параметра:

  • ALLURE_JOB_RUN_ID,
  • ALLURE_USERNAME.

Оба параметра должны иметь свойство required со значением false. На стороне ТестОпс эти параметры устанавливаются автоматически, без участия пользователя, поэтому их не нужно указывать в параметрах джобы ТестОпс.

Если логика вашего workflow GitHub требует дополнительных обязательных данных (например, название браузера или название системы для тестирования), эти параметры должны быть настроены в ТестОпс как параметры конфигурации джобы.

Пример конфигурации workflow с обязательными параметрами

Предположим, вы работаете с Java-проектом, в котором файл workflow выглядит следующим образом:

yaml
name: Integration of TestOps with GitHub
on:
  workflow_dispatch:
    inputs:
      ALLURE_JOB_RUN_ID:
        description: "TestOps service parameter. Leave blank."
        required: false
      ALLURE_USERNAME:
        description: "TestOps service parameter. Leave blank"
        required: false
      TEST_BROWSER:
        description: "Browser for tests"
        required: true
        default: chrome
      TEST_ENDPOINT:
        description: "System under test"
        required: false
        default: https://staging.system.under.test

В этом случае в ТестОпс в настройках джобы должны быть указаны два обязательных параметра:

  1. TEST_BROWSER — обязателен, так как в workflow_dispatch определен свойством required со значением true.
  2. Branch — обязателен, несмотря на то, что не указан явно в блоке inputs. Этот параметр связан с переменной окружения Branch в GitHub (в обоих случаях используется заглавная буква B), а его значение требуется для работы API GitHub (используется в параметре ref).

Параметр TEST_ENDPOINT в настройках джобы ТестОпс может быть добавлен опционально, так как в workflow_dispatch определен свойством required со значением false.

Примеры поведения GitHub при попытке запустить настроенную джобу:

Результат запускаКонфигурация джобы в ТестОпс
Будет работать корректно.
Все параметры присутствуют в workflow_dispatchinputs
В окне конфигурации джобы указаны все обязательные параметры.
Будет работать корректно.
Присутствует параметр TEST_BROWSER, обязательный в workflow_dispatchinputs
В окне конфигурации джобы указаны все обязательные параметры.
Не будет работать, ошибка 422.
Параметр RELEASE_ID отсутствует в workflow_dispatchinputs
В окне конфигурации джобы указан параметр, отсутствующий в inputs.
Не будет работать, ошибка 422.
Отсутствует параметр TEST_BROWSER, обязательный в workflow_dispatchinputs
В окне конфигурации джобы отсутствует обязательный параметр «TEST_BROWSER».

Чтобы исправить ошибку 422, синхронизируйте параметры джобы ТестОпс с параметрами workflow GitHub, указанными в workflow_dispatchinputs.

Logo © 2026 Все права защищены. Сайт принадлежит компании ООО «Инструменты тестирования»