1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/microsoft-onefuzz

Клонировать/Скачать
github.md 4.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 02.06.2025 10:12 63f1f4b

Уведомления через GitHub Issues

OneFuzz может создавать или обновлять GitHub Issues при создании отчетов об ошибках в управляемых OneFuzz контейнерах (containers).

practically каждый поле можно настроить с помощью scriban шаблонов. В шаблонном движке предоставляются несколько объектов Python, которые могут быть использованы для динамической настройки:

Использование этих объектов позволяет динамически настраивать конфигурацию. Например, repository можно указать напрямую или динамически получить из конфигурации задачи:

{
  "repository": "{{ task.tags['repository'] }}"
}

Существуют дополнительные значения, которые могут быть использованы в любом шаблоне:

  • report_url: Это будет ссылка на аутентифицированный URL для загрузки отчета
  • input_url: Это будет ссылка на аутентифицированный URL для загрузки входных данных, вызывающих ошибку
  • target_url: Это будет ссылка на аутентифицированный URL для исполняемого файла цели
  • repro_cmd: Это будет пример команды для запуска живого воспроизведения ошибки
  • report_container: Это будет имя контейнера хранения отчетов
  • report_filename: Это будет относительный путь к отчету внутри контейнера## Пример конфигурацииjson { "config": { "auth": { "user": "ВВЕДИТЕ_ВАШЕ_ИМЯ_ПОЛЬЗОВАТЕЛЯ_ЗДЕСЬ", "personal_access_token": "ВВЕДИТЕ_ВАШ_ЛИЧНЫЙ_ТОКЕН_ДОСТУПА_ЗДЕСЬ" }, "organization": "contoso", "repository": "sample-project", "title": "{{ report.executable }} - {{report.crash_site}}", "body": "## Файлы\n\n* входные данные: [{{ report.input_blob.name }}]({{ input_url }})\n* exe: [{{ report.executable }}]({{ target_url }})\n* отчет: [{{ report_filename }}]({{ report_url }})\n\n## Перепроизводство\n\n `{{ repro_cmd }}`\n\n## Стек вызовов\n\n{{ for item in report.call_stack }}{{ item }}\n{{ end }}\n\n## Журнал ASAN\n\n{{ report.asan_log }}```", "unique_search": { "field_match": ["title"], "string": "{{ report.executable }}" }, "assignees": [], "labels": ["bug", "{{ report.crash_type }}"], "on_duplicate": { "comment": "Найдено дублирование.\n\n* входные данные: [{{ report.input_blob.name }}]({{ input_url }})\n* exe: [{{ report.executable }}]({{ target_url }})\n* отчет: [{{ report_filename }}]({{ report_url }})", "labels": ["{{ report.crash_type }}"], "reopen": true } } }

## Интеграция

1. Создайте [личный токен доступа](https://github.com/settings/tokens).
2. Обновите ваш конфиг для указания вашего пользователя и личного токена доступа.
3. Добавьте уведомление к вашему экземпляру OneFuzz.

    ```
    onefuzz notifications create <CONTAINER> @./config.json
    ```

Пока интеграция не удалена, при записи отчета об ошибке в указанный контейнер,
будут создаваться и обновляться задачи на основе этих отчетов.OneFuzz SDK предоставляет пример инструмента [fake-report.py](../../src/cli/examples/fake-report.py),
который можно использовать для генерации синтетического отчета об ошибках для проверки,
что интеграция работает корректно.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/microsoft-onefuzz.git
git@api.gitlife.ru:oschina-mirror/microsoft-onefuzz.git
oschina-mirror
microsoft-onefuzz
microsoft-onefuzz
main