Help us learn about your current experience with the documentation. Take the survey.

针对保密问题的合并请求

  • Tier: Free, Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

公共仓库中的合并请求也是公开的,即使你为保密问题创建合并请求也是如此。 为了避免在处理保密问题时泄露机密信息,请在同一命名空间中的私有分支中创建你的合并请求。

角色会从父级组继承。如果你在与原始(公共)仓库相同的命名空间(相同组或子组)中创建私有分支,开发者将在你的分支中获得相同的权限。这种继承确保:

  • 开发者用户拥有查看和解决保密问题所需的权限。
  • 你无需单独授予用户对你分支的访问权限。

了解更多信息,请参阅GitLab 工程师的补丁发布运行手册:为补丁版本准备安全修复

创建保密合并请求

默认情况下,分支是公开的。为了保护你工作的机密性,你必须在同一命名空间中创建分支和合并请求,但要在下游的私有分支中创建。如果你在与公共仓库相同的命名空间中创建私有分支,你的分支将继承上游公共仓库的权限。上游公共仓库具有开发者角色的用户会在你的下游私有分支中继承这些上游权限,无需你进行任何操作。这些用户可以立即将代码推送到你私有分支中的分支,以帮助解决保密问题。

如果你在与上游仓库不同的命名空间中创建私有分支,你的私有分支可能会暴露机密信息。这两个命名空间可能不包含相同的用户。

先决条件:

  • 你拥有公共仓库的所有者或维护者角色,因为你需要这些角色之一来创建子组
  • 你已经分叉了公共仓库。
  • 你的分支具有私有可见性级别

要创建保密合并请求:

  1. 在左侧边栏,选择搜索或转到并找到你的项目。
  2. 选择计划 > 问题,并找到你想要创建合并请求的问题。
  3. 滚动到问题描述下方,选择创建保密合并请求
  4. 选择符合你需求的选项:
    • 要同时创建分支和合并请求,选择创建保密合并请求和分支。你的合并请求将针对你分支的默认分支,而不是公共上游项目的默认分支。
    • 仅创建分支,选择创建分支
  5. 选择要使用的项目。这些项目已启用合并请求,并且你在其中具有开发者角色(或更高)。
  6. 提供分支名称,并选择源(分支或标签)。GitLab 会检查这些分支是否在你的私有分支中可用,因为这两个分支都必须在你选择的分支中可用。
  7. 选择创建

此合并请求针对你的私有分支,而不是公共上游项目。你的分支、合并请求和提交将保留在你的私有分支中。这样可以防止过早地泄露机密信息。

当你满足以下条件时,请从你的分支向上游仓库打开合并请求

  • 你相信问题在你的私有分支中已得到解决。
  • 你准备将保密提交公开。

相关主题