{"meta":{"title":"在合并拉取请求之前修复代码质量问题","intro":"在质量问题到达默认分支之前进行捕获，并使用 Copilot自动修复 和 Copilot云代理 进行修复。","product":"安全性和代码质量","breadcrumbs":[{"href":"/zh/enterprise-cloud@latest/code-security","title":"安全性和代码质量"},{"href":"/zh/enterprise-cloud@latest/code-security/tutorials","title":"Tutorials"},{"href":"/zh/enterprise-cloud@latest/code-security/tutorials/improve-code-quality","title":"提高代码质量"},{"href":"/zh/enterprise-cloud@latest/code-security/tutorials/improve-code-quality/fix-findings-in-prs","title":"修复 PR 中的调查结果"}],"documentType":"article"},"body":"# 在合并拉取请求之前修复代码质量问题\n\n在质量问题到达默认分支之前进行捕获，并使用 Copilot自动修复 和 Copilot云代理 进行修复。\n\n> \\[!NOTE]\n> GitHub Code Quality 当前正处于 公共预览版 阶段，并可能会发生变化。\n> 在 公共预览版期间，Code Quality 不会计费，尽管 Code Quality 扫描将使用 GitHub Actions 分钟。\n\n## 介绍\n\n本教程介绍如何在 GitHub Code Quality 上处理拉取请求，以识别出更改可能无意中引入的代码质量问题，以及如何利用 Copilot自动修复 和 Copilot云代理 来解决代码质量问题中的发现。\n\n### 提前捕获问题的好处\n\n尽早捕获代码质量问题使团队的代码库保持状态。\nGitHub Code Quality 对代码进行检查：\n\n* **可靠性**：例如，逻辑错误、不安全的错误处理或可能导致应用崩溃或行为不可预知的争用条件。 通过尽早解决此类问题，使软件更可靠且更可依赖。\n* **可维护性**：例如，重复的代码、过于复杂的逻辑、未使用的变量或违反编码最佳做法。 解决这些问题可使代码更简洁、更易于阅读，因此将来的更改速度更快且风险更低。\n\n## 1.了解GitHub Code Quality在拉取请求中如何工作\n\n打开拉取请求时，GitHub Code Quality 使用 CodeQL 自动扫描您的更改，以发现质量问题，例如上面描述的问题。\n\n扫描 CodeQL 的结果将作为拉取请求上的注释报告，由 `github-code-quality[bot]`留下。 每个注释对应于在您的更改中检测到的特定代码质量问题，并附带建议的自动修复。\n\n注释按严重性（**错误**、 **警告**、 **注意**）进行标记，因此可以看到哪些发现最关键。\n\n## 2.根据严重性确定修复的优先级\n\n扫描注释，并首先识别具有最高严重级别（“错误”）的发现。\n\n如果没有“错误”发现，请查找下一个严重性级别的发现（“警告”），等等。\n\n高严重性发现表明更严重的代码质量问题，这些问题更有可能在代码库中引入可靠性或可维护性问题。 通过解决高严重性发现，你正在执行最有影响力的工作来维护团队代码的质量。\n\n> \\[!NOTE]\n> 如果拉取请求包含\\*\\*\\*\\* 特定严重性级别或更高级别的发现，存储库管理员可能已设置代码质量门，该入口Code Quality对拉取请求进行合并。 请参阅“[解决拉取请求中的阻塞](/zh/enterprise-cloud@latest/code-security/code-quality/how-tos/unblock-your-pr)”。\n\n## 3. 利用 Copilot自动修复 或 Copilot云代理 修复发现\n\n### Copilot自动修复\n\n对拉取请求讨论的注释包括建议的 **自动修复** ，你可以直接将其提交到你的拉取请求。 仔细检查建议的自动修复，从逻辑、安全性和样式方面进行评估，然后单击 **提交建议**。\n\n无需Copilot许可证来应用这些建议。\n\n### Copilot云代理\n\n或者，如果你有 Copilot 许可证，则可以将修正工作委托给 Copilot云代理。 对提到 `@Copilot` 的拉取请求进行评论，并请求 Copilot 修复检测到的问题。\n\n![显示调用 Copilot 云智能体的 PR 注释的屏幕截图。](/assets/images/help/code-quality/invoke-cloud-agent.png)\n\n```\n          Copilot 使用眼睛表情符号 (👀) 响应你的批注，启动新的代理会话，并打开具有必要修复的拉取请求。\n```\n\n可以跟踪 Copilot云代理'工作：\n\n* 在拉取请求中，摘要会随着工作推进而更新。\n* 使用[智能体页](https://github.com/copilot/agents?ref_product=copilot\\&ref_type=engagement\\&ref_style=text)或会话日志，请参阅 [跟踪 GitHub Copilot 的会话](/zh/enterprise-cloud@latest/copilot/how-tos/use-copilot-agents/cloud-agent/track-copilot-sessions)。\n\n你需要一个Copilot许可证来调用Copilot云代理。 <br> <a href=\"https://github.com/features/copilot/plans?ref_product=copilot&ref_type=purchase&ref_style=button\" target=\"_blank\" class=\"btn btn-primary mt-3 mr-3 no-underline\"> <span>注册 Copilot</span><svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-link-external\" aria-label=\"link external icon\" role=\"img\"><path d=\"M3.75 2h3.5a.75.75 0 0 1 0 1.5h-3.5a.25.25 0 0 0-.25.25v8.5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-3.5a.75.75 0 0 1 1.5 0v3.5A1.75 1.75 0 0 1 12.25 14h-8.5A1.75 1.75 0 0 1 2 12.25v-8.5C2 2.784 2.784 2 3.75 2Zm6.854-1h4.146a.25.25 0 0 1 .25.25v4.146a.25.25 0 0 1-.427.177L13.03 4.03 9.28 7.78a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042l3.75-3.75-1.543-1.543A.25.25 0 0 1 10.604 1Z\"></path></svg></a>\n\n## 4. 消除无关的发现\n\n如果在代码库的上下文中不相关或不可执行，则可以忽略该检测结果。 常见驳回发现的原因包括：\n\n* 该发现位于不再维护的旧代码中。\n* 团队的编码标准中有一个为众所知的例外。\n* 这是一个误报，不会构成真正的质量风险。\n\n消除不相关的警报可使质量检查专注于有意义的问题。\n\n## 5. 推送更改并等待扫描结果。\n\n修复或驳回调查结果后，将更改推送到与拉取请求关联的分支。\nGitHub Code Quality 将自动重新扫描您的更改并相应地更新拉取请求上的评论。\n\n## 6.检查存储库的代码质量分级\n\n具有写入访问权限的任何人都可以查看存储库的总体代码质量分级，该分级汇总了代码在默认分支中的可靠性和可维护性的状态。\n\n若要查看存储库的评级，请导航到 **<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** 存储库的选项卡，在边栏中展开 **<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## 后续步骤\n\n* 解决默认分支中的代码质量发现问题，并了解存储库的可靠性和可维护性评级。 请参阅“[提高存储库代码的质量](/zh/enterprise-cloud@latest/code-security/code-quality/tutorials/improve-your-codebase)”。\n* 在<c1>社区讨论</c1>中提供关于<c0>的反馈。"}