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:
{
"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)
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.