Skip to main content

在企业中实施仓库管理策略

您可以在企业组织内执行仓库管理策略,或允许在每个组织中设置策略。

谁可以使用此功能?

Enterprise owners can enforce policies for repository management in an enterprise.

关于企业中的仓库管理策略

您可以执行策略来控制企业在 GitHub Enterprise Server 上的企业成员如何管理仓库。 您也可以允许组织所有者管理仓库管理策略。 有关详细信息,请参阅“创建和管理存储库”和“组织和团队文档”。

配置新仓库的默认可见性

每次有人在您的企业上创建新仓库时,此人必须选择仓库的可见性。 当您配置企业的默认可见性设置时,需要选择默认可见性。 有关存储库可见性的详细信息,请参阅“关于仓库”。

如果企业所有者不允许成员创建某种类型的仓库,成员将无法创建此类仓库,即使可见性设置默认为此类型。 有关详细信息,请参阅“强制实施用于存储库创建的策略”。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. “策略”下,单击“选项”

  4. 在“默认仓库可见性”下,使用下拉菜单并选择默认可见性。

    警告:如果你在拉取请求或议题评论中添加了图像附件,则任何人都可以查看匿名图像 URL,无需身份验证,即使该拉取请求位于专用存储库中或者启用了专用模式。 要防止对映像进行未经授权的访问,请确保限制对为映像提供服务的系统的网络访问,包括 你的 GitHub Enterprise Server 实例。

强制实施针对基本存储库权限的策略

在企业帐户拥有的所有组织中,你可以为组织成员设置基本存储库权限级别(无、读取、写入或管理),或允许所有者在组织级别管理设置。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. 在“ 策略”下,单击“存储库”。

  4. 在“基本权限”(团队讨论)下,审查有关更改设置的信息。 (可选)若要在更改设置之前查看企业帐户中所有组织的当前配置,请单击“ 查看组织的当前配置”。

    企业设置中某策略的屏幕截图。 用橙色边框突出显示了标记为“查看组织的当前配置”的链接。

  5. 在“基本权限”下,选择下拉菜单并单击一个策略。

执行仓库创建策略

在企业拥有的所有组织中,您可以允许成员创建仓库、将仓库创建限于组织所有者或允许所有者在组织级别管理设置。

如果允许成员在组织中创建存储库,可选择成员可以创建的存储库类型(公共、专用和内部)。

还可以阻止用户创建其用户帐户拥有的存储库。

有关内部存储库的详细信息,请参阅“创建新仓库”。

组织所有者始终可以创建任何类型的仓库,而外部协作者永远不能创建任何类型的仓库。 有关详细信息,请参阅“关于仓库”。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. 在“ 策略”下,单击“存储库”。

  4. 在“Repository creation”下,检查有关更改设置的信息。 (可选)若要在更改设置之前查看企业帐户中所有组织的当前配置,请单击“ 查看组织的当前配置”。

    企业设置中某策略的屏幕截图。 用橙色边框突出显示了标记为“查看组织的当前配置”的链接。

  5. 在“Repository creation(仓库创建)”下,选择一个策略。

  6. 如果你选择“成员可创建存储库”,请选择一个或多个存储库类型。

  7. (可选)要阻止企业成员创建其用户帐户拥有的存储库,请选择“阻止创建用户命名空间存储库”。

实施有关复刻私有或内部仓库的策略

在企业拥有的所有组织中,您可以允许有权访问私有或内部仓库的人员复刻仓库、永远不允许分支私有或内部仓库,或者允许所有者在组织级别管理设置。

具有管理员权限的人员可以设置更精细的分支策略。 有关详细信息,请参阅“管理组织的复刻政策”。

注意:如果你的“存储库创建”策略阻止企业成员创建其用户帐户拥有的存储库,则无论“存储库分支”策略如何,都不会允许成员在其用户帐户中为存储库创建分叉。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. 在“ 策略”下,单击“存储库”。

  4. 在“Repository forking”(仓库复刻)下,审查有关更改设置的信息。 (可选)若要在更改设置之前查看企业帐户中所有组织的当前配置,请单击“ 查看组织的当前配置”。

    企业设置中某策略的屏幕截图。 用橙色边框突出显示了标记为“查看组织的当前配置”的链接。

  5. 在“存储库分支”下,选择下拉菜单并单击一个策略。

  6. 如果启用了分支,请选择允许用户创建存储库分支的策略。

执行邀请 协作者参与仓库的策略

在你的企业拥有的所有组织中,你可以允许成员邀请协作者到存储库、限制对组织所有者的邀请、限制对企业所有者的邀请、或允许组织所有者管理组织级别的设置。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. 在“ 策略”下,单击“存储库”。

  4. 在“仓库 邀请”下,请查看有关更改设置的信息。 (可选)若要在更改设置之前查看企业帐户中所有组织的当前配置,请单击“ 查看组织的当前配置”。

    企业设置中某策略的屏幕截图。 用橙色边框突出显示了标记为“查看组织的当前配置”的链接。

  5. 在“存储库邀请”下,选择下拉菜单并单击一个策略。

对默认分支名称实施策略

在企业拥有的所有组织中,您可以为成员创建的任何新仓库设置默认分支名称。 您可以选择在所有组织中强制实施默认分支名称,或允许个别组织设置不同的名称。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. 在“ 策略”下,单击“存储库”。

  4. 在“默认分支名称”下,输入新存储库应使用的默认分支名称。

  5. (可选)要对企业中的所有组织强制实施默认分支名称,请选择“在整个企业中实施”。

  6. 单击“更新”。

执行更改仓库可见性的策略

在您的企业拥有的所有组织中,您可以允许具有管理员权限的成员更改仓库的可见性、将仓库可见性更改限制为组织所有者或允许所有者在组织级别管理设置。 当您阻止成员更改仓库可见性时,只有企业所有者可以更改仓库的可见性。

如果企业所有者仅允许组织所有者创建仓库,则成员将无法更改仓库可见性。 如果企业所有者只允许私有仓库成员创建私有仓库,则成员只能将仓库的可见性更改为私有。 有关详细信息,请参阅“强制实施用于存储库创建的策略”。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. 在“ 策略”下,单击“存储库”。

  4. 在“Repository visibility change”下,检查有关更改设置的信息。 (可选)若要在更改设置之前查看企业帐户中所有组织的当前配置,请单击“ 查看组织的当前配置”。

    企业设置中某策略的屏幕截图。 用橙色边框突出显示了标记为“查看组织的当前配置”的链接。

  5. 在“存储库可见性更改”下,选择下拉菜单并单击一个策略。

执行仓库删除和转移的策略

在您的企业拥有的所有组织中,您可以允许具有管理员权限的成员删除或转让仓库、将仓库删除和转让限制为组织所有者或允许所有者在组织级别管理设置。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. 在“ 策略”下,单击“存储库”。

  4. 在“Repository deletion and transfer”下,检查有关更改设置的信息。 (可选)若要在更改设置之前查看企业帐户中所有组织的当前配置,请单击“ 查看组织的当前配置”。

    企业设置中某策略的屏幕截图。 用橙色边框突出显示了标记为“查看组织的当前配置”的链接。

  5. 在“存储库删除和转移”下,选择下拉菜单并单击策略。

执行删除议题的策略

在您的企业拥有的所有组织中,您可以允许具有管理员权限的成员删除仓库中的议题、将议题删除限制为组织所有者或允许所有者在组织级别管理设置。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. 在“存储库策略”选项卡中的“存储库问题删除”下,查看有关更改设置的信息。 (可选)若要在更改设置之前查看企业帐户中所有组织的当前配置,请单击“ 查看组织的当前配置”。

    企业设置中某策略的屏幕截图。 用橙色边框突出显示了标记为“查看组织的当前配置”的链接。

  4. 在“存储库问题删除”下,选择下拉菜单并单击一个策略。

执行 Git 推送限制策略

要使仓库大小保持可管理并防止发生性能问题,可以为企业中的仓库配置文件大小限制。

默认情况下,强制执行仓库上传限制时,无法添加或上传超过 100 MB 的文件。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. “策略”下,单击“选项”

  4. 在“Repository upload limit”下,使用下拉菜单,然后单击最大对象大小。

  5. (可选)要对企业中的所有存储库强制实施最大上传限制,请选择“对所有存储库强制实施”

    “存储库上传限制”策略部分的屏幕截图。 “对所有存储库强制实施”复选框以橙色轮廓突出显示。

强制实施在存储库中显示成员名称的策略

在企业拥有的所有组织中,可以允许成员在公共和内部存储库的问题和拉取请求中查看评论作者的配置文件名称及其用户名。

问题注释的屏幕截图。 标题显示“一分钟前 ashtom (Thomas Dohmke) 添加注释”,其中“(Thomas Dohmke)”以深橙色突出显示。

注意:当对企业中的所有存储库强制实施此策略时,它将替代专用存储库的组织设置。 有关详细信息,请参阅“管理组织中成员名称的显示”。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. “策略”下,单击“选项”

  4. 在“允许成员在公共和内部存储库中查看评论作者的配置文件名称”下,选择下拉菜单并单击一个策略。

  5. (可选)要强制显示企业中所有存储库的配置文件名称,请选择“对实例上的所有存储库强制实施”。

    “允许成员在公共和内部存储库中查看评论作者的个人资料名称”策略部分的屏幕截图。 “对所有存储库强制实施”复选框以橙色轮廓突出显示。

为仓库之间的拉取请求配置合并冲突编辑器

要求用户在其计算机上本地解决合并冲突可以避免用户因疏忽而从分叉写入到上游仓库。

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. “策略”下,单击“选项”

  4. 在“存储库之间的拉取请求的冲突编辑器”下,使用下拉菜单,然后单击“已禁用”。

配置强制推送

每个仓库从拥有该仓库的用户帐户或组织的设置继承默认强制推送设置。 每个组织和用户帐户都会从企业的强制推送设置继承默认强制推送设置。 如果您更改企业的强制推送设置,此策略适用于任何用户或组织拥有的所有仓库。

阻止强制推送到所有仓库

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. “策略”下,单击“选项”

  4. 在“强制推送”下,选择下拉菜单,然后单击“允许”、“阻止”或“阻止强制推送到默认分支” 。

  5. (可选)要替代组织和存储库级别的强制推送设置,请选择“对所有存储库强制实施”。

阻止特定仓库的强制推送

注意:每个存储库自动从拥有它的组织或用户继承默认设置。 如果仓库所有者已在其所有仓库上强制执行设置,则您不能覆盖默认设置。

  1. http(s)://HOSTNAME/login 上登录 你的 GitHub Enterprise Server 实例。
  2. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击
  3. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。
  4. 在“搜索用户、组织、团队、存储库、Gist 和应用程序”下的文本字段中键入存储库的名称。 然后在字段右侧单击“搜索”。 “站点管理员”设置的“搜索”页的屏幕截图。 用于搜索存储库的按钮(标记为“搜索”)以橙色轮廓突出显示。
  5. 在“搜索结果 - 存储库”下,单击存储库的名称。
  6. 在页面右上角,单击 “管理员”。用户或存储库的“站点管理员”页标题的屏幕截图。 “管理员”选项卡以橙色轮廓突出显示。
  7. 在“推送和拉取”下的“强制推送”右侧,选择下拉菜单,然后单击“阻止”或“阻止强制推送到默认分支” 。

阻止对用户帐户或组织拥有的仓库进行强制推送

仓库从它们所属的用户帐户或组织继承强制推送设置。 反过来,用户帐户和组织从企业的强制推送设置继承其强制推送设置。

您可以通过配置用户帐户或组织的设置来覆盖默认的继承设置。

  1. http(s)://HOSTNAME/login 上登录 你的 GitHub Enterprise Server 实例。

  2. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击

  3. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

  4. 在“搜索用户、组织、团队、存储库、Gist 和应用程序”下的文本字段中键入用户或组织的名称。 然后在字段右侧单击“搜索”。 “站点管理员”设置的“搜索”页的屏幕截图。 用于搜索用户和组织的按钮(标记为“搜索”)以橙色轮廓突出显示。

  5. 在搜索结果中,单击用户或组织的名称。 “帐户”搜索结果的屏幕截图。 在匹配项列表中,“user1”以橙色边框突出显示。

  6. 在页面右上角,单击 “管理员”。用户或存储库的“站点管理员”页标题的屏幕截图。 “管理员”选项卡以橙色轮廓突出显示。

  7. 在“强制推送”部分的“存储库默认设置”下,选择一个策略。

    • 要阻止对所有分支进行强制推送,请选择“阻止”。
    • 要仅阻止对默认分支进行强制推送,请选择“阻止强制推送到默认分支”。
  8. (可选)要替代特定于存储库的设置,请选择“对所有存储库强制实施”。 注意,这不会替代企业范围的策略。

    “存储库默认设置”策略部分的屏幕截图。 “对所有存储库强制实施”复选框以橙色轮廓突出显示。

配置匿名 Git 读取访问

警告:

  • Git 协议未经身份验证且未加密。 攻击者可以拦截使用此协议通过连接传输的存储库数据。
  • 如果启用匿名 Git 读取访问,你将对此功能的所有访问和使用负责。 GitHub 对功能的任何非预期访问、安全风险或误用概不负责。
  • 使用此功能不得违反 GitHub 的许可,包括对 你的 GitHub Enterprise Server 实例 用户许可数的限制。

如果已为 你的 GitHub Enterprise Server 实例 启用专用模式,则可以允许存储库管理员启用对公共存储库的匿名 Git 读取访问权限。

启用匿名 Git 读取允许用户在企业上为自定义工具绕过身份验证。 当你或存储库管理员为存储库启用此权限设置时,未经过身份验证的 Git 操作(和具有 GitHub Enterprise Server 的网络访问权限的任何人)将获得存储库的读取权限(无需身份验证)。

默认会禁用匿名 Git 读取访问权限。

如有必要,您可以通过锁定仓库的访问设置,阻止仓库管理员更改企业上仓库的匿名 Git 访问设置。 在您锁定仓库的 Git 读取权限设置后,只有站点管理员可以更改设置。

要查看启用了匿名 Git 读取权限的仓库,请在站点管理仪表板中过滤仓库列表。

注意:

  • 不能更改复刻仓库的 Git 读取访问设置,因为它们的访问设置默认继承自根仓库。
  • 如果公共仓库变成私人,则匿名 Git 读取访问权限将对该仓库及其复刻自动禁用。
  • 如果使用匿名身份验证的仓库包含 Git LFS 资产,它将无法下载 Git LFS 资产,因为它们仍然需要身份验证。 强烈建议不要对包含 Git LFS 资产的仓库启用匿名 Git 读取访问。

设置所有仓库的匿名 Git 读取访问

  1. 在 GitHub Enterprise Server 的右上角,单击你的个人资料照片,然后单击“企业设置”****。

    单击 GitHub Enterprise Server 上的个人资料照片时显示的下拉菜单的屏幕截图。 “企业设置”选项以深橙色边框突出显示。

  2. 在企业帐户边栏中,单击“ 策略”。

  3. “策略”下,单击“选项”

  4. 在“匿名 Git 读取权限”下,使用下拉菜单,并单击“已启用”。

  5. 或者,如果要阻止存储库管理员为实例上的所有存储库更改匿名 Git 读取权限设置,请选择“阻止存储库管理员更改匿名 Git 读取权限”。

设置特定仓库的匿名 Git 读取访问

  1. 在 GitHub Enterprise Server 上的管理帐户中,在任一页面的右上角,单击

  2. 如果你尚未在“站点管理员”页上,请在左上角单击“站点管理员”。

  3. 在“搜索用户、组织、团队、存储库、Gist 和应用程序”下的文本字段中键入存储库的名称。 然后在字段右侧单击“搜索”。 “站点管理员”设置的“搜索”页的屏幕截图。 用于搜索存储库的按钮(标记为“搜索”)以橙色轮廓突出显示。

  4. 在“搜索结果 - 存储库”下,单击存储库的名称。

  5. 在页面右上角,单击 “管理员”。用户或存储库的“站点管理员”页标题的屏幕截图。 “管理员”选项卡以橙色轮廓突出显示。

  6. 在“危险区域”下的“启用匿名 Git 读取权限”旁边,单击“启用”。

    存储库站点管理设置的“危险区域”部分的屏幕截图。 在“启用匿名 Git 读取访问”的右侧,“启用”按钮以橙色轮廓突出显示。

  7. 查看更改。 要进行确认,请单击“是,启用匿名 Git 读取访问”。

  8. (可选)要阻止存储库管理员更改此存储库的设置,请选择“阻止存储库管理员禁用匿名 Git 读取访问”。