Skip to main content

使用 GitHub UI 中的推送保护

了解 secret scanning 在更改中检测到机密时取消阻止提交的选项。

谁可以使用此功能?

具有管理员角色的存储库所有者、组织所有者、安全管理员和用户

关于 GitHub UI 中的推送保护

当你从 GitHub UI 上传、创建、或编辑文件时,推送保护会通过阻止包含受支持的机密的提交来防止你意外将机密提交到存储库。

如果尝试上传包含支持的机密的文件,GitHub 也会阻止提交。

Note

Web UI 中文件上传的推送保护目前为 公共预览版,可能会有变动。

应该:

GitHub 在 Web UI 中一次只显示一个检测到的秘密。 如果存储库中已检测到特定机密并且警报已存在,则 GitHub 不会阻止该机密。

组织所有者可以提供在阻止推送时显示的自定义链接。 此自定义链接可以包含特定于组织的资源和建议。 例如,自定义链接可以指向自述文件,其中包含有关组织的机密保管库、向哪些团队和个人呈报问或是组织对于处理机密和重写提交历史记录的已批准策略的信息。

解决被阻止的提交

使用 Web UI 尝试将受支持的机密提交到受推送保护保护的存储库时,GitHub 将阻止提交。

你将看到一个对话框,其中包含有关机密位置的信息,以及允许推送机密的选项。 机密还会在文件中加下划线,以便可以轻松找到它。

若要解决 Web UI 中被阻止的提交,需要从文件中删除机密。 删除机密后,即可提交更改。

Note

若要了解如何解决命令行上被阻止的推送,请参阅“从命令行使用推送保护”。

绕过推送保护

如果 GitHub 阻止了你认为可以安全提交的机密,则你或许能够通过指定允许机密的原因来绕过阻止。

允许推送机密时,将在“安全性”选项卡中创建警报。如果指定机密为误报或仅在测试中使用,则 GitHub 会关闭警报,且不会发送通知。 如果指定机密是真实的并且稍后将修复它,GitHub 会将安全警报保持打开状态,并向提交的作者以及存储库管理员发送通知。 有关详细信息,请参阅“管理来自机密扫描的警报”。

当参与者绕过机密的推送保护块时,GitHub 还会向选择接收电子邮件通知的组织所有者、安全管理员和存储库管理员发送电子邮件警报。

  1. 在 GitHub 阻止提交时出现的对话框中,查看机密的名称和位置。

  2. 选择最能描述为何应该能够推送机密的选项。

    • 如果机密仅在测试中使用,并且不会构成任何威胁,请单击“它在测试中使用”。
    • 如果检测到的字符串不是机密,请单击“它是误报”。
    • 如果机密是真实的,但你打算稍后修复它,请单击“稍后修复”。

    注意: 如果存储库启用了秘密扫描,则需要指定绕过推送保护的原因。

    当推送到未启用机密扫描的_公共_存储库时,由于_用户的推送保护_(默认情况下,用户帐户处于启用状态),仍然可以防止意外推送机密。

    通过用户的推送保护,如果公共存储库的推送包含受支持的机密,GitHub 将自动阻止这些推送,但无需指定允许该机密的原因,并且 GitHub 也不会生成警报。 有关详细信息,请参阅“用户的推送保护”。

  3. 单击“允许机密”。

如果看不到绕过阻止的选项,则存储库管理员或组织所有者已针对推送保护配置了更严格的控制。 相反,应从提交中删除机密,或提交“绕过特权”的请求以推送阻止的机密。 有关详细信息,请参阅“请求绕过特权”。

请求绕过特权

如果提交已被推送保护阻止,则可以请求可绕过阻止的权限。 请求将发送给一组指定的审阅者,他们将批准或拒绝该请求。

请求会在 7 天后过期。

  1. 在 GitHub 阻止提交时出现的对话框中,查看机密的名称和位置。
  2. 单击“启动请求”****。 请求将在新标签页中打开1. 在“或请求绕过特权”下,添加注释。 例如,可以解释为什么你认为推送机密是安全的,或者提供有关绕过阻止的请求的上下文。
  3. 单击“提交请求”。
  4. 查看电子邮件通知以获取对请求的响应。

审查完你的请求后,你将收到一封电子邮件,通知你该决定。

如果请求被批准,则可以将包含机密的更改提交到文件中。 将来也可以提交包含相同机密的任何更改。

如果请求被拒绝,则需要从文件中删除机密,才能提交更改。

延伸阅读