

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 支持的 SARIF 属性
<a name="test.sarif"></a>

静态分析结果交换格式 (SARIF) 是一种输出文件格式，可用于 Amazon 的软件组成分析 (SCA) 和静态分析报告。 CodeCatalyst下面的示例显示了如何在静态分析报告中手动配置 SARIF：

```
Reports:
MySAReport:
Format: SARIFSA
IncludePaths:
    - output/sa_report.json
SuccessCriteria:
    StaticAnalysisFinding:
    Number: 25
    Severity: HIGH
```

CodeCatalyst 支持以下 SARIF 属性，这些属性可用于优化分析结果在报告中的显示方式。

**Topics**
+ [`sarifLog` 对象](#test.sarif.sarifLog)
+ [`run` 对象](#test.sarif.run)
+ [`toolComponent` 对象](#test.sarif.toolComponent)
+ [`reportingDescriptor` 对象](#test.sarif.reportingDescriptor)
+ [`result` 对象](#test.sarif.result)
+ [`location` 对象](#test.sarif.location)
+ [`physicalLocation` 对象](#test.sarif.physicalLocation)
+ [`logicalLocation` 对象](#test.sarif.logicalLocation)
+ [`fix` 对象](#test.sarif.fix)

## `sarifLog` 对象
<a name="test.sarif.sarifLog"></a>


| Name | 必需 | 描述 | 
| --- | --- | --- | 
| `$schema` | 是 | 版本 [2.1.0](https://json.schemastore.org/sarif-2.1.0.json) 的 SARIF JSON 架构的 URI。 | 
| `version` | 是 | CodeCatalyst 仅支持 SARIF 版本 2.1.0。 | 
| `runs[]` | 是 | SARIF 文件包含一个或多个运行组成的数组，每个运行代表分析工具的一次运行。 | 

## `run` 对象
<a name="test.sarif.run"></a>


| Name | 必需 | 描述 | 
| --- | --- | --- | 
| `tool.driver` | 是 | 描述分析工具的 `toolComponent` 对象。 | 
| `tool.name` | 否 | 表示用于执行分析的工具名称的属性。 | 
| `results[]` | 是 | 上显示的分析工具的结果 CodeCatalyst。 | 

## `toolComponent` 对象
<a name="test.sarif.toolComponent"></a>


| Name | 必需 | 描述 | 
| --- | --- | --- | 
| `name` | 是 | 分析工具的名称。 | 
| `properties.artifactScanned` | 否 | 工具分析的构件总数。 | 
| `rules[]` | 是 | 代表规则的 `reportingDescriptor` 对象数组。根据这些规则，分析工具会发现所分析代码中存在的问题。 | 

## `reportingDescriptor` 对象
<a name="test.sarif.reportingDescriptor"></a>


| Name | 必需 | 描述 | 
| --- | --- | --- | 
| `id` | 是 | 用于引用调查发现的规则的唯一标识符。<br />最大长度：1024 个字符 | 
| `name` | 否 | 规则的显示名称。<br />最大长度：1024 个字符 | 
| `shortDescription.text` | 否 | 规则的简短描述。<br />最大长度：3000 个字符 | 
| `fullDescription.text` | 否 | 规则的完整描述。<br />最大长度：3000 个字符 | 
| `helpUri` | 否 | 可以本地化的字符串，包含规则主要文档的绝对 URI。<br />最大长度：3000 个字符 | 
| `properties.unscore` | 否 | 表示扫描调查发现是否已评分的标志。 | 
| `properties.score.severity` | 否 | 一组固定的字符串，用于指定调查发现的严重程度。<br />最大长度：1024 个字符 | 
| `properties.cvssv3_baseSeverity` | 否 | [Common Vulnerability Scoring System v3.1](https://www.first.org/cvss/v3.1/specification-document) 的定性严重性评级。 | 
| `properties.cvssv3_baseScore` | 否 | CVSS v3 基本分值范围为 [0.0 - 10.0](https://nvd.nist.gov/vuln-metrics/cvss)。 | 
| `properties.cvssv2_severity` | 否 | 如果 CVSS v3 的值不可用，则会 CodeCatalyst 搜索 CVSS v2 值。 | 
| `properties.cvssv2_score` | 否 | CVSS v2 基本分值范围为 [0.0 - 10.0](https://nvd.nist.gov/vuln-metrics/cvss)。 | 
| `properties.severity` | 否 | 一组固定的字符串，用于指定调查发现的严重程度。<br />最大长度：1024 个字符 | 
| `defaultConfiguration.level` | 否 | 规则的默认严重性。 | 

## `result` 对象
<a name="test.sarif.result"></a>


| Name | 必需 | 描述 | 
| --- | --- | --- | 
| `ruleId` | 是 | 用于引用调查发现的规则的唯一标识符。<br />最大长度：1024 个字符 | 
| `ruleIndex` | 是 | 工具组件 `rules[]` 中相关规则的索引。 | 
| `message.text` | 是 | 一条消息，描述结果并显示每个调查发现的消息。<br />最大长度：3000 个字符 | 
| `rank` | 否 | 一个介于 0.0 到 100.0（含）之间的值，表示结果的优先级或重要性。0.0 表示最低优先级，100.0 表示最高优先级。 | 
| `level` | 否 | 结果的严重性。<br />最大长度：1024 个字符 | 
| `properties.unscore` | 否 | 表示扫描调查发现是否已评分的标志。 | 
| `properties.score.severity` | 否 | 一组固定的字符串，用于指定调查发现的严重程度。<br />最大长度：1024 个字符 | 
| `properties.cvssv3_baseSeverity` | 否 | [Common Vulnerability Scoring System v3.1](https://www.first.org/cvss/v3.1/specification-document) 的定性严重性评级。 | 
| `properties.cvssv3_baseScore` | 否 | CVSS v3 基本分值范围为 [0.0 - 10.0](https://nvd.nist.gov/vuln-metrics/cvss)。 | 
| `properties.cvssv2_severity` | 否 | 如果 CVSS v3 的值不可用，则会 CodeCatalyst 搜索 CVSS v2 值。 | 
| `properties.cvssv2_score` | 否 | CVSS v2 基本分值范围为 [0.0 - 10.0](https://nvd.nist.gov/vuln-metrics/cvss)。 | 
| `properties.severity` | 否 | 一组固定的字符串，用于指定调查发现的严重程度。<br />最大长度：1024 个字符 | 
| `locations[]` | 是 | 检测到结果的位置集。除非只能通过在每个指定位置进行更改来纠正问题，否则只能包括一个位置。 CodeCatalyst 使用位置数组中的第一个值来注释结果。<br />`location` 对象的最大数量：10 | 
| `relatedLocations[]` | 否 | 调查发现中参考的其它位置列表。<br />`location` 对象的最大数量：50 | 
| `fixes[]` | 否 | 代表扫描工具提供的建议的`fix`对象数组。 CodeCatalyst 使用数`fixes`组中的第一个建议。 | 

## `location` 对象
<a name="test.sarif.location"></a>


| Name | 必需 | 描述 | 
| --- | --- | --- | 
| `physicalLocation` | 是 | 标识构件和区域。 | 
| `logicalLocations[]` | 否 | 用名称描述的一组位置，不提及构件。 | 

## `physicalLocation` 对象
<a name="test.sarif.physicalLocation"></a>


| Name | 必需 | 描述 | 
| --- | --- | --- | 
| `artifactLocation.uri` | 是 | 表示构件位置的 URI，通常是存储库中的文件或在构建过程中生成的文件。 | 
| `fileLocation.uri` | 否 | 表示文件位置的回退 URI。如果 `artifactLocation.uri` 返回空，则使用此项。 | 
| `region.startLine` | 是 | 区域中第一个字符的行号。 | 
| `region.startColumn` | 是 | 区域中第一个字符的列号。 | 
| `region.endLine` | 是 | 区域中最后一个字符的行号。 | 
| `region.endColumn` | 是 | 区域中最后一个字符的列号。 | 

## `logicalLocation` 对象
<a name="test.sarif.logicalLocation"></a>


| Name | 必需 | 说明 | 
| --- | --- | --- | 
| `fullyQualifiedName` | 否 | 描述结果位置的其它信息。<br />最大长度：1024 个字符 | 

## `fix` 对象
<a name="test.sarif.fix"></a>


| Name | 必需 | 说明 | 
| --- | --- | --- | 
| `description.text` | 否 | 显示每个调查发现的建议的消息。<br />最大长度：3000 个字符 | 
| `artifactChanges.[0].artifactLocation.uri` | 否 | 表示需要更新的构件位置的 URI。 | 