artifactContent object
Certain properties in this document represent the contents of portions of artifacts external to the log file,
for example, artifacts that were scanned by an analysis tool. SARIF represents such content with an artifactContent
object.
Depending on the circumstances, the SARIF log file might need to represent this content as readable text, raw bytes, or both.
Example
{
"$schema": "https://json.schemastore.org/sarif-2.1.0.json",
"version": "2.1.0",
"runs": [
{
"tool": {
"driver": {
"name": "CodeScanner",
"semanticVersion": "1.1.2-beta.12",
"informationUri": "https://codeScanner.dev"
}
},
"results": [
{
"message": {
"text": "..."
},
"ruleId": "CA1001",
"fixes": [
{
"artifactChanges": [
{
"artifactLocation": {
"uri": "src/a.c"
},
"replacements": [
{
"deletedRegion": {
"startLine": 1,
"startColumn": 1,
"endLine": 1
},
"insertedContent": {
"text": "// "
}
}
]
}
]
}
]
}
]
}
]
}
How to generate
See full examples/fix.php
script into repository.
[!NOTE] Since release 1.5.0, you may use fluent builders API as alternative. See full
examples/builder/fix.php
script into repository.
<?php declare(strict_types=1);
use Bartlett\Sarif\Definition\ArtifactChange;
use Bartlett\Sarif\Definition\ArtifactContent;
use Bartlett\Sarif\Definition\ArtifactLocation;
use Bartlett\Sarif\Definition\Region;
use Bartlett\Sarif\Definition\Replacement;
$artifactLocation = new ArtifactLocation();
$artifactLocation->setUri('src/a.c');
$replacement = new Replacement(new Region(1, 1, 1));
$insertedContent = new ArtifactContent();
$insertedContent->setText('// ');
$replacement->setInsertedContent($insertedContent);
$artifactChange = new ArtifactChange($artifactLocation, [$replacement]);