

亚马逊 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`  |  是  |  用于引用调查发现的规则的唯一标识符。 最大长度：1024 个字符  | 
|  `name`  |  否  |  规则的显示名称。 最大长度：1024 个字符  | 
|  `shortDescription.text`  |  否  |  规则的简短描述。 最大长度：3000 个字符  | 
|  `fullDescription.text`  |  否  |  规则的完整描述。 最大长度：3000 个字符  | 
|  `helpUri`  |  否  |  可以本地化的字符串，包含规则主要文档的绝对 URI。 最大长度：3000 个字符  | 
|  `properties.unscore`  |  否  |  表示扫描调查发现是否已评分的标志。  | 
|  `properties.score.severity`  |  否  |  一组固定的字符串，用于指定调查发现的严重程度。 最大长度：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`  |  否  |  一组固定的字符串，用于指定调查发现的严重程度。 最大长度：1024 个字符  | 
|  `defaultConfiguration.level`  |  否  |  规则的默认严重性。  | 

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


| Name | 必需 | 描述 | 
| --- | --- | --- | 
|  `ruleId`  |  是  |  用于引用调查发现的规则的唯一标识符。 最大长度：1024 个字符  | 
|  `ruleIndex`  |  是  |  工具组件 `rules[]` 中相关规则的索引。  | 
|  `message.text`  |  是  |  一条消息，描述结果并显示每个调查发现的消息。 最大长度：3000 个字符  | 
|  `rank`  |  否  |  一个介于 0.0 到 100.0（含）之间的值，表示结果的优先级或重要性。0.0 表示最低优先级，100.0 表示最高优先级。  | 
|  `level`  |  否  |  结果的严重性。 最大长度：1024 个字符  | 
|  `properties.unscore`  |  否  |  表示扫描调查发现是否已评分的标志。  | 
|  `properties.score.severity`  |  否  |  一组固定的字符串，用于指定调查发现的严重程度。 最大长度：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`  |  否  |  一组固定的字符串，用于指定调查发现的严重程度。 最大长度：1024 个字符  | 
|  `locations[]`  |  是  |  检测到结果的位置集。除非只能通过在每个指定位置进行更改来纠正问题，否则只能包括一个位置。 CodeCatalyst 使用位置数组中的第一个值来注释结果。 `location` 对象的最大数量：10  | 
|  `relatedLocations[]`  |  否  |  调查发现中参考的其它位置列表。 `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`  |  否  |  描述结果位置的其它信息。 最大长度：1024 个字符  | 

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


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