onefuzz

Notifications via Github Issues

OneFuzz can create or update Github Issues upon creation of crash reports in OneFuzz managed containers.

Nearly every field can be customized using scriban templates. There are multiple python objects provided via the template engine that can be used such that any arbitrary component can be used to flesh out the configuration:

Using these objects allows dynamic configuration. As an example, the repository could be specified directly, or dynamically pulled from the task configuration:

{
  "repository": ""
}

There are additional values that can be used in any template:

Example Config

{
   "config": {
      "auth": {
         "user": "INSERT_YOUR_USERNAME_HERE",
         "personal_access_token": "INSERT_YOUR_PERSONAL_ACCESS_TOKEN_HERE"
      },
      "organization": "contoso",
      "repository": "sample-project",
      "title": " - ",
      "body": "## Files\n\n* input: []()\n* exe: []( )\n* report: []()\n\n## Repro\n\n ``\n\n## Call Stack\n\n```\n```\n\n## ASAN Log\n\n``````",
      "unique_search": {
         "field_match": ["title"],
         "string": ""
      },
      "assignees": [],
      "labels": ["bug", ""],
      "on_duplicate": {
         "comment": "Duplicate found.\n\n* input: []()\n* exe: []( )\n* report: []()",
         "labels": [""],
         "reopen": true
      }
   }
}

For full documentation on the syntax, see GithubIssueTemplate)

Integration

  1. Create a Personal access token.
  2. Update your config to specify your user and personal access token.
  3. Add a notification to your OneFuzz instance.

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

Until the integration is deleted, when a crash report is written to the indicated container, issues will be created and updated based on the reports.

The OneFuzz SDK provides an example tool fake-report.py, which can be used to generate a synthetic crash report to verify the integration is functional.