配置项目版本控制设置

本页介绍了如何配置项目的元素以与 Git 集成以实现版本控制。

项目设置

如需查看项目设置,请打开项目,然后从 Looker IDE 图标菜单中选择设置图标。

您可以在此处访问三个项目设置标签页:

配置

Projects Settings(项目设置)页面的 Configuration(配置)标签页会打开 Project Configuration(项目配置)页面。在项目配置页面上,您可以配置以下设置:

  • 名称:项目的名称。您可以修改文本,然后点击 Save Project Configuration 按钮,以重命名项目。如需了解详情,请参阅访问和修改项目信息文档页面。
  • Git 正式版分支名称:指定要用作项目开发分支的合并目标的 Git 分支名称。Git 分支必须存在于您的 Git 代码库中。如需了解详情,请参阅本页中的 Git 正式版分支名称部分。

  • 代码质量:确定是否要求开发者在对项目提交任何更改之前,先在项目上成功运行 LookML 验证器代码质量具有以下选项:

    • 需要先修复错误和警告才能提交:只有在成功运行 LookML 验证器并解决所有错误和警告后,Looker 开发者才能提交更改。这是推荐的设置。
    • 只需修复错误即可提交:Looker 开发者只有在成功运行 LookML 验证器并解决所有错误后,才能提交更改。在存在警告的情况下,开发者可以提交更改。虽然不建议使用此选项,但在某些情况下,它还是很有用的,例如,在 Looker 更新后,有效的 LookML 中引入了新警告。
    • 允许提交损坏的代码:Looker 开发者无需运行 LookML 验证器即可提交更改,无论 LookML 中是否存在错误或警告。不建议使用此选项,因为这可能会导致 LookML 无法正常运行或产生错误的结果。

  • 在将此项目部署到生产环境之前,需要通过数据测试:如果 LookML 项目包含一个或多个 test 参数,则此选项会要求开发者在部署任何更改之前运行数据测试。如果数据测试通过,IDE 将允许开发者将更改部署到生产环境。如需了解如何在 LookML 项目中设置数据测试,请参阅 test 参数文档页面。如需了解如何在项目中运行数据测试,请参阅使用版本控制和部署文档页面。默认情况下,系统会为新的 LookML 项目启用在将此项目部署到生产环境之前,需要通过数据测试选项。

  • Git 集成:指定与 Git 提供商的集成级别。如需了解详情,请参阅 Git 集成选项

  • 启用高级部署模式:此设置处于启用状态时,用户可以将任何 SHA、标记或分支部署到生产环境。如需详细了解如何在启用高级部署模式的情况下使用版本控制,请参阅高级部署模式文档页面。

  • Webhook 部署密钥:用于设置身份验证,以便将更改部署到 Looker 实例的生产环境。如需了解详情,请参阅配置 Webhook 部署密钥文档页面。

  • 重置 Git 连接:此按钮会打开配置 Git 窗口,您可以在其中更新 Git 代码库的连接设置

    重置 Git 连接后,主分支的 Git 历史记录将会保留。它还会保留每个 Looker 开发者的个人分支的历史记录,直至他们同步开发模式。如需保留所有分支的历史记录,请参阅迁移到新的 Git 代码库最佳实践页面。

  • 删除项目:此按钮用于删除项目,从 Looker 实例的所有开发环境和生产环境中移除项目中的所有 LookML。

  • Git 摘要此部分显示项目的 Git 配置和当前用户的 Git 分支信息。

Git 正式版分支名称

使用默认的 Looker Git 集成时,所有 Looker 开发者都会将其更改合并到名为 master 的主分支中。您可以使用 Git 正式版分支名称字段指定 Looker 应将 Git 代码库中的哪个分支用作将 Looker 开发者的分支合并到的目标分支。(如需了解默认 Git 工作流程以及适用于高级 Git 实现的其他选项,请参阅使用版本控制和部署文档页面。)

对于现有项目,请考虑在更改 Git 正式版分支名称之前执行以下操作:

  • 请 Looker 项目中的所有开发者提交其更改并将其分支合并到现有生产分支,然后暂停其工作,直到 Git 生产分支名称更新并保存到 Looker 项目配置中。
  • 如果您的项目使用集成的拉取请求,请根据需要最终确定并合并所有未完成的拉取请求。
  • 在 Git 提供方端执行所有必要的准备工作,例如在代码库中创建新分支、重命名现有的默认 Git 分支,或执行任何可能需要的操作来准备分支,以便 Looker 可以将其用作合并目标分支。至少,您必须验证您要使用的分支是否是 Git 代码库中的现有分支。

如需更改项目用作开发分支的合并目标的 Git 分支,请执行以下操作:

  1. 从 Looker IDE 图标菜单中选择设置图标,以显示项目设置。默认情况下,系统会打开配置标签页。
  2. Git 生产分支名称字段中,输入您要用作 Looker 项目的生产分支的 Git 分支名称。
  3. 点击 Save Project Configuration 按钮以保存更改。

导入凭据

导入凭据部分中,您可以管理私有远程代码库的身份验证凭据。如需了解详情,请参阅从其他项目导入文件 文档页面。

分支管理

项目设置页面的分支管理标签页中,您可以查看与项目关联的所有 Git 分支。如需了解详情,请参阅使用版本控制和部署文档页面。

Git 集成选项

设置 Git 连接后,Looker 将使用您的 Git 提供程序来管理 LookML 源文件,如使用版本控制和部署文档页面中所述。

如果您是 Looker 管理员,则可以使用项目设置面板的配置标签页上的 Git 集成选项,为 Looker 与 Git 的集成配置其他选项:

  • 关闭:Looker 不会显示指向 Git 提供程序界面的任何外部链接。
  • 显示链接:Looker 会提供指向 Git 提供商界面的外部链接,以便开发者在 Git 提供商界面中查看项目。Looker 还会为每个项目文件提供链接,以便开发者在 Git 提供商的界面上查看文件的历史记录和 Git 归因信息。如需了解这些链接,请参阅将外部链接集成到您的 Git 提供程序部分。
  • 建议使用拉取请求:除了提供指向 Git 提供商界面的外部链接之外,Looker 还会为开发者提供提交拉取请求的选项,以便其他开发者在将更改添加到项目之前先对其进行批准。如需了解如何进行设置,请参阅为项目集成拉取请求部分。
  • 必须提交拉取请求:与建议提交拉取请求相同,但 LookML 开发者必须提交拉取请求才能将更改提交到项目。如需了解如何进行设置,请参阅为项目集成拉取请求部分。

如需保存 Git 集成设置,请点击部署部分下的保存项目配置

如果您启用了任何额外的 Git 集成选项(显示链接建议提交拉取请求必须提交拉取请求),Looker 会提供指向 Git 提供商界面的外部链接。这些外部链接会打开一个新的浏览器标签页,指向您的 Git 服务提供商的网站。

如需查看这些外部链接,开发者必须拥有 Git 提供商账号,并且必须有权访问项目的 Git 代码库。

在每个 LookML 文件的三点状 File Options(文件选项)菜单中,Looker 会提供指向 Git 提供商网站的链接,以便您查看文件、查看文件的 Git 归因信息,以及查看文件的提交历史记录。

Git 操作面板中,您还可以使用 View Project on <Git provider> 选项在 Git 提供商的网站上打开项目文件。

为项目集成拉取请求

使用默认的 Looker Git 集成时,Looker 开发者会将更改提交到开发分支,然后将开发分支合并到生产分支。然后,当您部署到 Looker 环境时,Looker 会使用生产分支上的最新提交。(如需了解默认的 Git 工作流程以及适用于高级 Git 实现的其他选项,请参阅使用版本控制和部署文档页面。)

您可以选择使用建议提交拉取请求必须提交拉取请求选项来设置项目,而不是允许 Looker 开发者将其开发分支合并到 Looker 生产分支:

  • 建议使用拉取请求:开发者将更改提交到其开发分支后,Looker IDE 中的 Git 按钮会提示开发者打开拉取请求,以将其开发分支合并到生产分支。然后,开发者可以打开拉取请求,以便其他 Looker 开发者在 Git 提供商的网页界面中进行审核和批准。或者,开发者也可以改用 Git 操作面板中的部署到生产环境选项,跳过创建拉取请求的步骤,直接将更改部署到生产环境。(如果项目启用了高级部署模式,则部署到生产环境选项不可用。)
  • 需要拉取请求:开发者将更改提交到其开发分支后,Looker IDE 中的 Git 按钮会提示开发者打开拉取请求。开发者必须打开拉取请求,才能将其开发分支合并到生产分支中。然后,其他 Looker 开发者可以通过 Git 提供方的网页界面审核并批准拉取请求。

Looker 支持以下 Git 提供程序的拉取请求集成:

  • GitHub
  • GitLab
  • Bitbucket Cloud
  • Bitbucket Server(以前称为“Stash”)

以下是有关将拉取请求与 Looker 搭配使用的一些其他说明:

  • 如需打开拉取请求,开发者必须拥有 Git 提供商的账号,并且必须有权访问项目的 Git 代码库。

  • 如果您的实例上启用了 IP 许可名单功能,那么若要将拉取请求与任何 LookML 项目集成,您需要将 Git 提供程序发出出站请求的 IP 地址范围添加到许可名单中。例如,当前的 GitHub IP 地址列在 GitHub 更新日志中。IP 地址可能会发生变化,并且对于其他 Git 提供商而言也会有所不同。

  • 如果您已启用高级部署模式,则无需在使用集成的拉取请求设置项目部分中配置 webhook,因为高级部署模式会将合并和部署功能分开。

  • 如果 Looker 开发者发出了您想还原的拉取请求,请参阅如何通过 GitHub 还原 Looker 中的拉取请求社区帖子,了解详情。

  • 借助 Git 拉取请求,您可以为 Looker 使用暂存实例,这样您就可以拥有暂存实例和生产实例,并在暂存实例上启用拉取请求。所有开发和代码审核都可以在预演环境中完成,然后将经过审核的代码部署到生产实例。如需进行设置,请参阅在多个实例中使用一个代码库的 Git 工作流 - 开发、预演和生产环境社区帖子。

  • Looker 使用合并提交方法将 Looker 开发者分支中的更改合并到生产分支。使用 Git 提供商的接口时,请确保开发者不会使用压缩合并重新基准合并。如需了解详情,请参阅 Git 提供程序界面中的合并选项部分。

使用集成的拉取请求设置项目

如需使用 Git 拉取请求设置 Looker 项目,请执行以下操作:

  1. 在项目中,从 Looker IDE 图标菜单中选择设置
  2. 配置标签页的 Git 集成部分中,选择建议提交拉取请求必须提交拉取请求
  3. (可选)如果您想在 Git 提供商的界面上设置自动部署 webhook,请复制 webhook 信息并将其粘贴到文本文件中。如果您的项目配置为使用高级部署模式,则可以跳过此步骤。您也可以稍后再决定,然后返回项目设置页面获取 webhook 信息。
  4. 您可以视需要设置 webhook 部署 Secret,以对来自 Git 提供商的自动部署 webhook 或高级部署模式 webhook 进行身份验证。如需创建 Webhook Secret,请点击设置 Webhook Secret。复制部署 Secret,并将其粘贴到文本文件中,以便在将 Webhook 添加到 Git 提供商的界面时使用。您也可以稍后再决定,然后返回项目设置页面添加部署密钥。如需了解详情,请参阅配置 Webhook 部署密钥文档页面。
  5. 点击 Save Project Configuration(保存项目配置)。

现在,每当 Looker 开发者向您的项目提交更改时,Looker IDE 都会显示 Open Pull Request 按钮。该按钮会在新的浏览器标签页中直接打开 Git 提供商网站上的新拉取请求页面。

将 Looker 项目设置为使用拉取请求后,请执行以下任一操作,以设置提交内容部署到生产环境的方式:

  • 如需自动部署合并到生产分支的最新提交,请使用 Git 提供商的界面添加 webhook,如本页面下一部分所述。
  • 如需手动指定要部署的分支或提交,请启用高级部署模式。如需了解如何启用和管理高级部署模式,请参阅高级部署模式文档页面。

向 Git 提供方添加 webhook

对于启用了拉取请求的 Looker 项目,您可以在 Git 提供商的界面上设置部署 webhook。每当您在 Git 提供商的界面上合并拉取请求时,此 Webhook 都会触发 Looker 部署来自生产分支的最新提交。

在大多数情况下,如果您的项目配置为使用高级部署模式,则无需设置自动部署 webhook。借助高级部署模式,您可以选择要部署的提交和分支,因此在大多数情况下,设置自动部署 webhook 会使高级部署模式的功能失效。

如需在 Git 提供商的界面上添加自动部署 webhook,请先在 Looker 中点击项目的 Looker IDE 图标菜单中的设置图标,前往项目设置。接下来,从 Git 集成部分复制该 Webhook。

该网络钩子的格式为 <instance_url>/webhooks/projects/<project_name>/deploy

<instance_url> 替换为 Looker 实例的网址。例如,如果您的 Looker 实例网址为 example.looker.com,项目名称为 e_faa,则该 webhook 将如下所示:

https://example.looker.com/webhooks/projects/e_faa/deploy

您还可以在 Looker 项目设置中获取 webhook 部署 Secret,以对项目与 Git 提供商的 Git 集成进行身份验证。如需了解详情,请参阅配置 Webhook 部署密钥文档页面。

获得网络钩子网址和部署 webhook 密钥后,您可以将它们输入 Git 提供商的界面中。如果您的 Git 提供程序是 GitHub,请按以下步骤操作:

  1. 在 GitHub 代码库中,前往项目的代码库设置。
  2. 在代码库的设置中,点击 Webhooks。点击 Add Webhook 以打开 Add Webhook 窗口。
  3. Payload 网址(载荷网址)字段中,粘贴您从 Looker 的 Git 集成部分复制的 webhook 信息。
  4. 您可以选择添加 webhook 部署 Secret,以对项目与 Git 提供商的 Git 集成进行身份验证。从 LookML 项目的项目设置中复制部署密钥,然后将该密钥粘贴到 Git 提供程序界面的 Secret 字段中。如需了解详情,请参阅配置 Webhook 部署密钥文档页面。
  5. 您希望哪些事件触发此 Webhook?字段中,选择仅推送事件选项。
  6. 点击 Add webhook

使用部署 webhook 从远程 Git 代码库拉取内容

为 LookML 项目启用拉取请求后,如果部署 Webhook 未自动化,您可能会偶尔发现 Looker 正式版模式下显示的 LookML 与 Git 代码库主分支上的 LookML 不一致。在以下情况下可能会发生这种情况:

  • 为代码库启用拉取请求时
  • 在 Looker 开发环境之外修改了 LookML,例如:
    • 在 Git 代码库本身中
    • 在其他 Looker 实例(例如预演版实例)上

您可以使用部署 webhook 将 Looker 生产分支同步到代码库的主分支:

  1. 打开一个新的浏览器标签页,然后输入以下网址,将 <instance_url> 替换为 Looker 实例网址,并将 <project_name> 替换为 LookML 项目的名称:

    <instance_url>/webhooks/projects/<project name>/deploy
    
  2. 运行部署网络钩子网址后,空白网页会显示一条成功消息,如下所示:

    {"operations":[{"error":false,"error_code":0,"command":"Checkout Branch #\u003cLooker::GitBranch:0x5798672b\u003e","node_id":728,"results":["Success"]},{"error":false,"error_code":0,"command":"jgit revert_repo","node_id":728,"results":["Success"]}],"new_head":"05f772af48709fc2799fefe408e3fdd895a63284","old_head":"77412cad9fd7ed3eed1627afa201fdf7dcb97dd1"}
    

现在,Looker 中的生产模式已更新,以反映您的远程 Git 主分支。您的个人开发者分支和共享分支不受影响。

从包含部署密钥的远程 Git 代码库拉取 Webhook

如果您的 LookML 项目还需要 webhook 部署密钥才能将更改从主分支推送到生产分支,那么当您使用上一部分使用部署 webhook 从远程 Git 代码库拉取中所述的方法将生产分支与代码库的主分支同步时,您会收到以下错误之一:

{"error":"Uh oh! Something went wrong."}

或:

{"error":"Not found."}

您可以使用 webhook 密钥在终端中运行以下 c网址 命令,而无需使用部署 webhook。请务必替换以下字段:

  • <instance_URL> 替换为您的 Looker 实例网址。
  • <deploy_secret> 替换为项目的部署密钥。
  • <project_name> 替换为您的 LookML 项目的名称。
curl -i -X POST -H "X-Looker-Deploy-Secret:<deploy_secret>" https://<instance_url>/webhooks/projects/<project_name>/deploy

例如,如果您要将 Brettcase 实例上 ecommerce_project 的生产分支与代码库的主分支同步,请执行以下操作:

curl -i -X POST -H "X-Looker-Deploy-Secret:123123123secretgoeshere123123123" https://brettcase.looker.com/webhooks/projects/ecommerce_project/deploy

Git 提供程序界面中的合并选项

如果您的 Looker 项目与拉取请求集成,开发者可以使用 Git 提供商的界面提交拉取请求,并将更改合并到生产分支。

Looker 支持使用合并提交方法将开发分支中的更改合并到生产分支。不过,您的 Git 提供商的界面可能会显示其他合并选项,例如压缩并合并重基并合并

Looker 不支持压缩合并重新基准合并,因此开发者应避免使用这些选项。最佳实践是尽可能为代码库停用这些选项。如需在 GitHub 代码库中停用这些选项,请按以下步骤操作:

  1. 前往设置标签页,访问 GitHub 上项目的代码库设置。

    提示:对于配置了 Git 集成的项目,您可以使用 Looker 中项目的 Git 菜单中的 View Project on Git(在 Git 上查看项目)选项。

  2. 在代码库的设置中,点击导航菜单中的选项

  3. 前往“合并”按钮部分,仅选中允许合并提交选项。停用 Allow squash merging(允许压缩合并)和 Allow rebase merging(允许重新基准合并)选项。

停用合并选项后,当开发者在代码库中合并分支时,这些选项将无法在 GitHub 中使用。