{"meta":{"title":"提高存储库的代码质量分数","intro":"确定并解决构成最大风险的发现，提高存储库的代码质量分数，并防止新债务累积。","product":"安全性和代码质量","breadcrumbs":[{"href":"/zh/code-security","title":"安全性和代码质量"},{"href":"/zh/code-security/tutorials","title":"Tutorials"},{"href":"/zh/code-security/tutorials/improve-code-quality","title":"提高代码质量"},{"href":"/zh/code-security/tutorials/improve-code-quality/raise-your-quality-rating","title":"提高质量分数"}],"documentType":"article"},"body":"# 提高存储库的代码质量分数\n\n确定并解决构成最大风险的发现，提高存储库的代码质量分数，并防止新债务累积。\n\n## 介绍\n\n在本教程中，您将处理默认分支上积压的 Code Quality 调查结果，按风险确定优先级，解决影响最大的调查结果，并将结果传达给利益干系人。 学习内容：\n\n* 如何阅读仪表板并了解分数的含义。\n* 如何确定修复优先级，并决定是应用自动修复、委托给 Copilot云代理，还是忽略某项发现。\n* 如何传达修正工作的影响。\n* 可以采取哪些额外措施来防止积压工作再次增加。\n\n这是一次引导式演练，因此它更注重理解而非速度。 有关生成自动修复或忽略调查结果的基本步骤，请参阅配套操作指南：[修复代码库待办事项中的代码质量问题](/zh/code-security/how-tos/maintain-quality-code/fix-backlog-findings)。\n\n### 在您开始之前\n\n* Code Quality 是在你拥有或维护的存储库上启用的。 请参阅“[启用 GitHub Code Quality](/zh/code-security/how-tos/maintain-quality-code/enable-code-quality)”。\n* 如果您最近启用了 Code Quality，请等待几分钟，以完成默认分支的初始 CodeQL 扫描。\n\n在本教程中，我们将使用一个正在运行的示例：一个存储库，该存储库的仪表板当前显示“**可靠性：差**”和“**可维护性：公平**”的分数，用于代码质量。\n\n## 步骤 1：评估当前分数\n\n1. 请导航到您的存储库中的\\*\\*<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-shield\" aria-label=\"shield\" role=\"img\"><path d=\"M7.467.133a1.748 1.748 0 0 1 1.066 0l5.25 1.68A1.75 1.75 0 0 1 15 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.697 1.697 0 0 1-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 0 1 1.217-1.667Zm.61 1.429a.25.25 0 0 0-.153 0l-5.25 1.68a.25.25 0 0 0-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.196.196 0 0 0 .154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.251.251 0 0 0-.174-.237l-5.25-1.68ZM8.75 4.75v3a.75.75 0 0 1-1.5 0v-3a.75.75 0 0 1 1.5 0ZM9 10.5a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg> Security and quality\\*\\* 选项卡。\n2. 单击以展开 **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code-review\" aria-label=\"code review\" role=\"img\"><path d=\"M1.75 1h12.5c.966 0 1.75.784 1.75 1.75v8.5A1.75 1.75 0 0 1 14.25 13H8.061l-2.574 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25v-8.5C0 1.784.784 1 1.75 1ZM1.5 2.75v8.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-8.5a.25.25 0 0 0-.25-.25H1.75a.25.25 0 0 0-.25.25Zm5.28 1.72a.75.75 0 0 1 0 1.06L5.31 7l1.47 1.47a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018l-2-2a.75.75 0 0 1 0-1.06l2-2a.75.75 0 0 1 1.06 0Zm2.44 0a.75.75 0 0 1 1.06 0l2 2a.75.75 0 0 1 0 1.06l-2 2a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042L10.69 7 9.22 5.53a.75.75 0 0 1 0-1.06Z\"></path></svg>代码质量**，然后单击 **常规发现**。\n\n在这里，你将看到**可靠性和\\*\\*\\*\\*可维护性的**分数。\n\n![常规发现 的“Code Quality”视图中代码质量分数的屏幕截图。](/assets/images/help/code-quality/all-findings-overview-repo.png)\n\n这些分数是根据您默认分支中的发现结果计算得出的：\n\n| Metric          | 定义                                                               | 示例发现                       |\n| --------------- | ---------------------------------------------------------------- | -------------------------- |\n| **Reliability** | 评估代码是否正确、可预测且一致地执行其预期函数。 可靠代码不受 bug 影响，可安全地处理错误，并在正常和边缘情况下按预期运行。 | 性能、并发性、错误处理、正确性的问题         |\n| \\*\\*\\*\\*可维护性    | 评估理解、修改和扩展代码随时间推移是多么容易。 可维护的代码遵循最佳做法，避免不必要的复杂性，并组织方便将来的更改和协作。    | 未使用/死代码、可读性、复杂性、冲突命名、问题分离差 |\n\n每个分数都取决于该指标下当前仍存在的问题中严重级别*最高*的一项。 若要提高分数，您必须清除当前处于最高严重级别的所有发现项。\n\n在我们的示例中，**可靠性**之所以为“差”，是因为仍然存在影响可靠性的**错误**级别发现项。 警告和备注值得解决，但在清除错误之前，它们无法移动分数。\n\n## 步骤 2：按规则读取列表，并专注于影响最大的发现\n\n在 常规发现 视图中，结果按 **规则**分组。 这对于理解很有用，因为具有许多发现的单条规则可能会反映一个重复的编码习惯。 一旦你理解了其中一个问题，就可能更容易理解针对所有此类问题提出的自动修复建议，从而使修复工作更快，并且更便于批量审查。\n\n此外，查找那些会让你的某项评分凑齐某个严重性等级的规则——如果清除某条规则后，影响可靠性的最后一个“错误”也随之消除，你的评分就会立即提高。\n\n在我们的示例中，一条“覆盖的属性”规则在 128 个调查结果中占了 40 个，并且所有这 40 个都是错误级别的调查结果。 清除此项将移除所有影响可靠性的错误级别问题，这样会使我们的评分升至下一档。\n\n## 步骤 3：解决发现问题\n\n选择规则后，决定如何处理每个发现：\n\n| Assessment                               | 建议的操作             | 注释                                                                 |\n| ---------------------------------------- | ----------------- | ------------------------------------------------------------------ |\n| 调查结果是合法的。                                | 单击**生成修复**并打开拉取请求 | 点击 **“生成修复”** 会消耗 AI credits。 您可以将多个自动修复添加到同一分支，以便将修正工作归组到一个拉取请求中。 |\n| 该发现不适用。 例如，这可能出现在遗留代码中、属于有意为之的模式，或者只是误报。 | 单击“ **消除**”。      | 调查结果被视为已解决，并已从打开的调查结果列表中删除。                                        |\n\n在我们的示例中，我们会为 40 个“覆盖的属性”调查结果生成自动修复，并创建一个拉取请求。 由于它们遵循同一种模式，因此修复方法也几乎相同。 CI 检查通过后，我们将合并拉取请求。\n\n## 步骤 4：传达影响\n\n合并修复内容后，返回到“常规发现”视图并截取以下内容：\n\n* **已更改的分数。** 例如， *可靠性：差→公平*。\n* **解锁它所需的条件。** 例如，*所有影响可靠性的错误级别问题现已全部解决*。\n* **公开调查结果的减少。** 例如，*从 128 降至 88*。\n\n在我们的示例中，清除“被覆盖的属性”规则后，可靠性会从 **较差** 提升到 **一般**——这是团队首次可以明确指出的评分提升。\n\n## 这与代码健康状况的其他部分有何关联\n\n如果新的拉取请求引入相同的问题，那么今天解决的每个发现都可能会再次出现。 为防止积压工作再次生成：\n\n* **在默认分支上设置合并阈值** ，以阻止引入新代码质量结果的拉取请求。 请参阅“[为拉取请求设置代码质量阈值](/zh/code-security/how-tos/maintain-quality-code/set-pr-thresholds)”。\n* ```\n            **修复拉取请求中出现的调查结果**。 请参阅“[AUTOTITLE](/code-security/tutorials/improve-code-quality/catch-issues-before-merge)”。\n  ```\n\n## Troubleshooting\n\n* **合并修复后，分数没有移动。** 该指标当前最高严重级别的至少一项调查结果仍然处于打开状态。\n* **扫描尚未重新运行。**               每次向默认分支推送后，Code Quality 扫描都会自动运行。 等待几分钟，直到工作流完成。\n\n## 结束语\n\n在本教程中，您评估了存储库的质量分数，按严重性和规则对积压工作进行了优先级排序，使用自动修复解决了发现的问题，并以分数变动的形式传达了结果。\n\n## 后续步骤\n\n* 通过修复最近更改的文件中的发现，进一步减少技术债务。 请参阅“[修复最近合并文件中的代码质量发现](/zh/code-security/how-tos/maintain-quality-code/fix-findings-in-recent-merges)”。"}