配置项目版本控制设置

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

项目设置

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

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

配置

项目设置页面的配置标签页会打开项目配置页面。在项目配置页面上,您可以配置以下设置:

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

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

    • 需要先修复错误和警告才能提交:Looker 开发者只有在成功运行 LookML 验证器并解决所有错误和警告后,才能提交更改。这是推荐的设置。
    • 只需修复错误即可提交: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 Production Branch Name 字段指定 Looker 应使用 Git 代码库中的哪个分支作为目标分支,Looker 开发者的分支将合并到该目标分支中。(如需了解默认 Git 工作流以及其他高级 Git 实现方案,请参阅使用版本控制和部署文档页面。)

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

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

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

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

导入凭据

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

分支管理

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

Git 集成选项

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

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

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

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

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

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

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

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

集成项目的拉取请求

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

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

  • 建议使用拉取请求:开发者将更改提交到其开发分支后,Looker IDE 中的 Git 按钮会提示开发者打开拉取请求,以将其开发分支合并到生产分支中。然后,开发者可以从 Git 提供商的网页界面中打开拉取请求,供其他 Looker 开发者查看和批准。或者,开发者也可以使用 Git 操作面板中的部署到正式版选项,跳过创建拉取请求的步骤,直接将更改部署到正式版。(如果项目启用了高级部署模式,则无法使用部署到正式版选项。)
  • 需要拉取请求:开发者将更改提交到其开发分支后,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 提供商的界面时,请确保开发者不使用合并压缩变基合并。如需了解详情,请参阅 Git 提供商界面中的合并选项部分。

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

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

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

现在,每当 Looker 开发者将更改提交到您的项目时,Looker IDE 都会显示打开拉取请求按钮。点击此按钮可直接在 Git 提供商的网站上打开一个新浏览器标签页,其中显示新的拉取请求页面。

将 Looker 项目设置为使用拉取请求后,请执行以下操作之一,以设置如何将提交部署到生产环境:

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

向 Git 提供方添加网络钩子

对于已启用拉取请求的 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 部署密钥文档页面。

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

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

使用部署网络钩子从远程 Git 代码库拉取

如果您的 LookML 项目启用了拉取请求,但部署 webhook 未实现自动化,您有时可能会发现 Looker 生产模式中显示的 LookML 与 Git 代码库主分支上的 LookML 不一致。这可能发生在以下情况:

  • 当代码库启用拉取请求时
  • 当 LookML 在 Looker 开发环境之外(例如:
    • 在 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 菜单中的在 Git 上查看项目选项。

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

  3. 前往合并按钮部分,仅保留允许合并提交选项处于选中状态。停用允许合并压缩允许变基合并选项。

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