数据连接与集成代码库Administer repositories分支设置

注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

分支设置

本页面将引导您了解在代码库中的各种分支设置:

默认分支

在拥有多个分支的代码库中,可以将一个默认分支配置为基础分支。默认情况下,所有的合并请求和提交都会针对该分支进行,除非另有选择。通常,默认分支是master分支。

您可以通过导航到设置 > 分支 > 默认分支来选择您的代码库的主分支。

合并模式

有几种策略可以用于合并在合并请求中提出的代码更改。在设置选项卡中,您可以选择一种或多种合并模式,以便在合并请求页面中提供给代码作者。

  • 压缩并合并 - 压缩并合并模式将创建一个单一提交到目标分支,包含合并请求引入的所有更改。这将在默认分支上产生更简洁的提交历史。
  • 合并 - 当您在合并请求中使用合并时,分支上创建的所有单独提交将与一个合并提交一起添加到目标分支中。请注意,在目标分支的提交历史中,所有单独的提交将以其原始时间戳显示,表示它们在开发分支上创建的时间。
  • 快速前进合并 - 当从目标分支到您的分支存在直接路径(目标分支上没有其他更改)时,快速前进合并将目标分支推进到开发分支的前面,并合并它们的提交历史。

所有选定的合并模式将在合并请求页面中作为选项出现。如果选择了“压缩并合并”模式,它将作为主要选项出现,其他选定模式将作为菜单中的选项。

保护分支

当有多个作者共同为同一代码库贡献代码,或当代码库支持关键数据资产时,您可以保护您的分支以实现更高的治理水平,并防御意外更改。一个受保护的分支只能通过合并请求进行修改,并且必须满足一组预定义的要求。

默认情况下,只有代码库的所有者可以更改分支保护设置,而所有者和编辑者都可以将合并请求合并到受保护的分支。无论权限如何,所有代码作者都需要遵守受保护分支策略。

您可以在分支设置面板中设置以下要求:

要求 ci/foundry-publish 成功运行

为了发布对数据的更改,持续集成过程ci/foundry-publish必须运行并成功完成。如果您在成功完成之前合并更改,则无法保证更改会生效,因此强烈建议将其作为受保护分支的要求。

要求代码审核

保护关键分支的一个好处是在将代码更改合并到生产环境之前可以获得协作者的审核。任何有权限合并更改的人都可以在合并请求上提交审核(默认情况下:代码库的所有者和编辑者)。

您可以强制执行以下审核策略:

  • 合并前要求没有拒绝 - 如果至少一个审阅者拒绝了代码更改,这将阻止合并请求的合并。
  • 合并前要求至少一个批准 - 这将确保代码在合并更改之前经过审核和批准。

要求特定审阅者

您可以要求特定用户或组的批准才能合并合并请求。为了满足组要求,至少需要一个组成员批准合并请求。请注意,单独的情况下,此策略允许拒绝,只要收到了批准。例如,如果一个组成员拒绝了更改而另一个成员批准了,除非“要求没有拒绝”策略适用,否则批准将优先于拒绝。

警告

要求用户/组批准并授予他们审阅合并请求的权限。请确保所需审阅者也可以访问代码库。

配置高级批准策略

高级合并请求批准策略根据合并请求中修改的文件确定需要审阅的用户和组。在受保护分支的分支设置中,选择编辑,然后选择高级批准策略以开始配置策略。

高级批准策略编辑器。

编辑策略选项卡提供基于表单的编辑器。高级批准策略将规则的逻辑运算符分组,例如ALLANY。选择一个规则以提供元数据,例如规则的名称或描述。打开规则有条件适用,仅在合并请求中修改的文件符合某些正则表达式时应用此规则。例如,在典型的Python变换文件夹结构中,["transforms-python/src/myproject/datasets/.*\\.py"]将匹配数据集文件夹中的所有Python文件。

查看YAML选项卡中,您可以直接修改、复制和粘贴策略的YAML表示。这对于对策略进行批量编辑(例如查找和替换搜索词)很有用。

要求安全批准

要停止在分支上传播安全权限标记,分支必须受保护。一旦在代码库上启用了安全更改,它将自动且不可更改地在合并合并请求之前要求安全检查和批准(如果需要)。阅读更多关于删除继承的权限标记的信息。

取消保护分支

所有者可以从代码库设置中取消保护分支。然而,具有活动安全更改的分支,如停止传播权限标记,在分支没有安全更改之前无法被取消保护。要取消保护具有活动安全更改的分支,应该通过合并请求删除这些更改。然后可以从代码库设置中取消保护该分支。

回退分支

代码库允许您在任何分支上搭建数据集,并查看您的变换对数据的影响。如果您的变换的输入数据集尚未在当前分支上搭建,将尝试从回退分支列表中定位已搭建的版本。除非另有配置,默认分支将自动设置为回退分支。您可以为每个分支设置不同的回退分支,并根据需要设置多个回退分支。

此配置仅适用于在设置它的代码库中进行的搭建和操作。它对其他Foundry应用程序或在代码库外触发的搭建(例如,使用计划搭建)没有影响。