配置项目版本控制设置

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

项目设置

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

在这里,您可以访问三个项目设置标签页:

配置

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

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

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

    • 需要先修复错误和警告才能提交:只有在成功运行 LookML 验证器并解决所有错误和警告后,Looker 开发者才能提交更改。这是推荐使用的设置。
    • 只需修复错误即可提交:Looker 开发者只有在成功运行 LookML 验证器并解决所有错误后,才能提交更改。在存在警告的情况下,开发者可以提交更改。虽然不建议使用此选项,但在某些情况下,它还是很有用的,例如,在 Looker 更新后,有效的 LookML 中出现了新警告。
    • 允许提交损坏的代码:无论 LookML 中是否存在错误或警告,Looker 开发者都可以在不运行 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 Production Branch Name 字段指定 Git 代码库中的哪个分支,Looker 应将哪个分支用作 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 提供商的 Web 界面进行审核和批准。或者,开发者也可以改用 Git 操作面板中的部署到生产环境选项,跳过创建拉取请求的步骤,直接将更改部署到生产环境。(如果项目启用了高级部署模式,则部署到生产环境选项不可用。)
  • 需要拉取请求:开发者在其开发分支提交更改后,Looker IDE 中的 Git 按钮会提示开发者打开拉取请求。开发者必须打开拉取请求,才能将其开发分支合并到生产分支中。然后,其他 Looker 开发者可以通过 Git 提供方的 Web 界面审核并批准拉取请求。

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 提供商的接口时,请确保您的开发者未使用排空合并rebase 合并。如需了解详情,请参阅 Git 提供程序界面中的合并选项部分。

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

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

  1. 在项目中,从 Looker IDE 图标菜单中选择设置
  2. 配置标签页的 Git 集成部分中,选择建议拉取请求需要拉取请求
  3. (可选)如果您想在 Git 提供商的界面上设置自动部署 webhook,请复制 webhook 信息并将其粘贴到文本文件中。如果您的项目配置为使用高级部署模式,则可以跳过此步骤。您也可以稍后再决定,然后返回项目设置页面获取 webhook 信息。
  4. 或者,您可以设置 webhook 部署密钥,以对来自 Git 提供方的自动部署 webhook 或高级部署模式 webhook 进行身份验证。如需创建网络钩子密钥,请点击设置网络钩子密钥。复制部署密钥并将其粘贴到文本文件中,以便在将 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 会使高级部署模式的功能失效。

如需在 Git 提供方的界面上添加自动部署网络钩子,请先点击项目的 Looker IDE 图标菜单中的设置图标,前往 Looker 中的项目设置。接下来,从 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 项目设置中,您还可以获取网络钩子部署密钥,对项目与 Git 提供方的 Git 集成进行身份验证。如需了解详情,请参阅配置 Webhook 部署密钥文档页面。

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

  1. 在 GitHub 代码库中,前往项目的代码库设置。
  2. 在您的代码库的设置中,点击 Webhook。点击 Add Webhook 以打开 Add Webhook 窗口。
  3. Payload URL(载荷网址)字段中,粘贴您从 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 实例(例如预演实例)上

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

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

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

    {"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 密钥在终端中运行以下 cURL 命令,而无需使用部署 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 不支持合并合并rebase 合并,因此您的开发者应避免使用这些选项。最佳实践是尽可能为代码库停用这些选项。如需在 GitHub 代码库中停用这些选项,请按以下步骤操作:

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

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

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

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

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