配置项目版本控制设置

本页面介绍了如何配置项目元素,以便与 Git 集成以进行版本控制。

项目设置

您必须是 Looker 管理员,才能更改项目设置页面上的选项。非管理员的 Looker 开发者可以查看项目设置页面,但无法更改其中的选项。

Project Settings 页面包含项目的配置选项。如需查看此页面,请打开您的项目,然后从 Looker IDE 图标菜单中选择设置图标。

从这里,您可以访问三个部分:

配置

项目设置页面的配置标签页中,您可以配置以下设置:

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

  • 代码质量:确定是否需要开发者在对项目进行任何更改之前对项目成功运行 LookML 验证程序Code Quality 具有以下选项:

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

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

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

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

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

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

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

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

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

Git 生产分支名称

通过默认的 Looker Git 集成,所有 Looker 开发者都会将其更改合并到一个名为 main 的分支中。您可以使用 Git Production Branch Name 字段来指定 Looker 应将 Git 代码库中的哪个分支用作将 Looker 开发者分支合并到的目标分支。(有关默认 Git 工作流和高级 Git 实现的其他选项,请参阅使用版本控制和部署文档页面。)

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

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

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

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

导入凭据

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

分支管理

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

Git 集成选项

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

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

  • 关闭:Looker 不会显示指向 Git 提供方界面的任何外部链接。
  • 显示链接:Looker 将提供指向 Git 提供方界面的外部链接,以便开发者在 Git 提供方的界面中查看项目。Looker 还将提供每个项目文件的链接,以便开发者在 Git 提供方的界面上查看文件的历史记录和 Git 过失信息。请参阅将外部链接集成到您的 Git 提供商部分,了解这些链接。
  • 推荐的拉取请求:除了提供指向 Git 提供商界面的外部链接之外,Looker 还将为开发者提供提交拉取请求的选项,以便其他开发者可以批准更改,然后再将其添加到项目中。如需了解如何进行此设置,请参阅为项目集成拉取请求部分。
  • 必需的拉取请求 (Pull Requests Required):此选项与推荐的拉取请求相同,不同之处在于您的 LookML 开发者必须打开拉取请求以提交对项目的更改。如需了解如何进行此设置,请参阅为项目集成拉取请求部分。

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

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

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

在每个 LookML 文件的三点状文件选项菜单中,Looker 会提供指向 Git 提供商网站的链接,以便用户查看相应文件、该文件的 Git blame 信息以及该文件的提交历史记录。

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

为项目集成拉取请求

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

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

  • 推荐的拉取请求:开发者在其开发分支提交更改后,Looker IDE 中的 Git 按钮会提示开发者打开一个拉取请求,以将其开发分支合并到生产分支。然后,该开发者可以打开拉取请求,让其他 Looker 开发者通过 Git 提供商的网页界面进行审核和批准。或者,开发者可以改用 Git Actions 面板中的 Deploy to Production(部署到生产环境)选项,从而跳过创建拉取请求并将更改部署到生产环境。(如果项目启用了高级部署模式,则部署到生产环境选项不可用。)
  • 需要拉取请求:开发者在其开发分支提交更改后,Looker IDE 中的 Git 按钮会提示开发者打开拉取请求。开发者必须创建拉取请求,将其开发分支合并到生产分支。然后,其他 Looker 开发者可以通过 Git 提供商的网页界面审核并批准拉取请求。

Looker 支持为以下 Git 提供商集成拉取请求:

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

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

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

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

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

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

  • 借助 Git 拉取请求,您可以将预演实例用于 Looker,从而创建预演实例和生产实例,并在预演实例上启用拉取请求。所有开发和代码审核均可在预演环境中完成,而审核过的代码随后可部署到生产实例。要进行此设置,请参阅 Git 工作流“跨多个实例使用一个代码库 - 开发、预演和生产环境”社区帖子。

  • Looker 使用合并提交合并方法,将 Looker 开发者分支中的更改合并到生产分支。使用 Git 提供商的接口时,请确保您的开发者未使用排空合并rebase 合并。如需了解详情,请参阅 Git 提供程序界面中的合并选项部分。

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

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

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

现在,每当 Looker 开发者提交对项目的更改时,Looker IDE 就会显示 Open Pull Request(打开拉取请求)按钮。点击此按钮会打开一个新的浏览器标签页,直接跳转到 Git 提供商网站上的新拉取请求页面。

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

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

将 webhook 添加到 Git 提供商

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

如果您的项目配置为使用高级部署模式,在大多数情况下,建议您不要设置自动部署网络钩子。通过高级部署模式,您可以选择要部署的提交和分支,因此在大多数情况下,设置自动部署 webhook 会使高级部署模式的功能失效。

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

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 项目设置中,您还可以获取网络钩子部署密钥,对项目与 Git 提供方的 Git 集成进行身份验证。如需了解详情,请参阅配置 webhook 部署密钥文档页面。

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

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

使用部署 webhook 从远程 Git 代码库进行拉取

为 LookML 项目启用拉取请求,并且部署网络钩子不是自动后,您可能偶尔会发现在 Looker 生产模式下看到的 LookML 与 Git 代码库主分支上的 LookML 不一致。这可能发生在以下情况:

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

您可以使用部署网络钩子将 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,您还可以使用 webhook 密钥在终端中运行以下 c网址 命令。请务必替换以下字段:

  • <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 提供程序的界面可能会显示其他合并选项,例如压缩并合并Rebase 并合并

Looker 不支持合并合并rebase 合并,因此您的开发者应避免使用这些选项。如果可能,最佳做法是为您的代码库停用这些选项。如需在 GitHub 代码库中停用这些选项,请按以下步骤操作:

  1. 导航到 Settings 标签页,以访问 GitHub 上的项目的代码库设置。

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

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

  3. 转到合并按钮部分,仅选中允许合并提交选项。停用允许合并合并允许执行 rebase 合并选项。

停用合并选项后,当开发者合并代码库中的分支时,GitHub 中将不再提供这些选项。