设置和测试 Git 连接

当您创建新项目时,该项目仅存在于开发模式下,以便您在不会影响其他用户的安全环境中开发模型。准备好发布项目后,下一步是配置 Git 连接。

通过为项目配置 Git 连接,您可以将 LookML 部署到生产模式,以便其他用户探索您的数据模型、构建信息中心,以及将 LookML 添加到模型中。如需加快设置速度,请使用裸代码库。为了实现更强大的 Git 集成,请创建自己的 Git 代码库,然后按照本页面中的说明将其关联到您的 Looker 实例。

将 Looker 与 Git 集成

Looker 使用 Git 记录更改并管理文件版本。每个 LookML 项目都对应于一个 Git 代码库。每当用户处于开发模式时,就会位于自己的 Git 分支中。

对于 LookML 源文件管理,您可以使用任何使用 SSH 密钥或 HTTPS 进行身份验证的 Git 提供方来配置 Looker。无论您使用哪个平台,一般步骤都是相同的。在创建 Git 代码库后,本页面以 GitHub 为例,了解如何将 Looker 项目连接到 Git。

如需访问 Git 集成选项,您必须开启开发模式

您可以使用以下协议之一配置 Git 集成:

  • HTTPS:安全超文本传输协议。借助 HTTPS,Looker 可以使用您提供的用户名和密码(或访问令牌)访问您的 Git 代码库,如使用 HTTPS 连接到 Git 中所述。
  • SSH:Secure Shell。借助 SSH,Looker 会使用您通过 Git 提供商网站生成的部署密钥访问您的 Git 代码库,如使用 SSH 连接到 Git 中所述。

使用 HTTPS 连接到 Git

对于配置了 HTTPS 身份验证的 LookML 项目,Looker 会通过您在 Git 提供方中设置的一个或多个用户账号连接到您的 Git 提供方。Looker 使用用户名和密码(或访问令牌)登录 Git 提供商,并代表 LookML 开发者执行 Git 操作。

如果您的 Git 账号使用双重身份验证,您可以前往 Git 提供方并创建访问令牌以用于代替密码。如需了解如何为常见 Git 提供商创建个人访问令牌,请参阅在启用 2FA 的情况下设置 HTTPS git 连接社区帖子。

通过 HTTPS 身份验证,您可以将 LookML 项目配置为在整个项目中使用单个 Git 帐号,也可以将项目配置为使用开发者的个人 Git 帐号来执行其 Git 操作。

对于 GitHub HTTPS 身份验证,请注意以下事项:

  • GitHub 不接受使用账号密码对 github.com 上的 Git 操作进行身份验证。如需了解详情,请参阅 GitHub 的博文。如需使用 HTTPS 将 Looker 项目连接到 GitHub,请使用 GitHub 中的开发者设置创建个人访问令牌。
  • Looker 不支持 GitHub 的精细个人访问令牌。如需使用 HTTPS 将 Looker 项目连接到 GitHub,请在创建个人访问令牌时使用 GitHub 的令牌(传统)选项。

单账号 HTTPS 身份验证

如果您使用单个 Git 帐号设置 LookML 项目,Looker 会使用该 Git 帐号登录您的 Git 提供方,并代表开发者提交更改。Looker 使用开发者的 Looker 用户名进行提交,这样您就可以分辨每项提交是由哪个开发者做出的。您可以在 Git 提供方的界面上查看项目的提交历史记录,也可以在 Looker IDE 的 Git 菜单中选择历史记录选项。如需详细了解 Looker 中的 Git 菜单,请参阅在 Looker 中执行 Git 命令

对于单账号 HTTPS 身份验证,您指定的 Git 用户账号必须拥有 Git 代码库的读写权限。您的 LookML 开发者本身不需要拥有自己的 Git 用户帐号。

使用用户属性进行的多账号 HTTPS 身份验证

如果您使用多个帐号设置您的 LookML 项目,则您的 LookML 项目将使用每个 Looker 开发者的个人 Git 帐号来执行 Git 操作。您还需要配置一个至少具有读取权限的通用 Git 用户帐号,供 Looker 用于拉取文件的正式版。

使用用户属性进行 Git 身份验证需要以下任务和要求:

  • 您的每个 LookML 开发者都必须在 Git 提供商处拥有自己的用户帐号。每个 Git 用户帐号都必须拥有对项目代码库的读写权限。
  • 您的 Looker 管理员必须使用与 Git 用户名和 Git 密码相对应的用户属性(如果 Git 用户帐号采用双重身份验证,则使用访问令牌)设置 Looker 用户帐号。
  • Git 账号密码(或访问令牌)的用户属性必须处于隐藏状态。创建密码或访问令牌属性时,请在隐藏值选项下选择,然后在网域许可名单字段中输入 Git 提供方网址。
  • 必须为每个 Looker 开发者填写 Git 名称和密码(或访问令牌)的用户属性。用户属性可以由 Looker 管理员由 Looker 用户配置。

以下示例展示了用户属性管理页面,在该页面中,Looker 管理员已经为 Git 用户名和用户访问令牌设置了用户属性。

“用户属性管理”页面上的表格,显示字符串类型的用户属性 github_token 和 github_username。

以下示例展示了 Looker 用户的账号页面,在该页面中,用户已将其 Git 凭据输入用户属性字段。

配置 HTTPS Git 身份验证

如需使用 HTTPS Git 身份验证配置 LookML 项目,请按以下步骤操作:

  1. 获取 Git 代码库的 HTTPS 网址。对于 GitHub,对于新代码库(尚未包含任何文件的代码库),GitHub 会在初始设置中显示该网址。务必选择代码标签页上的 HTTPS 按钮,以获取 HTTPS 网址,然后选择将网址复制到剪贴板图标以将其复制到剪贴板。

    对于现有 GitHub 代码库(已包含文件的代码库),您可以转到代码库的代码标签页并选择代码按钮,以查看 HTTPS 网址。请务必选择 HTTPS 链接。您可以选择将网址复制到剪贴板图标,将 HTTPS 网址复制到剪贴板。

  2. 导航到您的 LookML 项目,然后从导航栏中选择设置图标。

  3. 项目配置页面的配置标签页上,点击配置 Git 按钮(针对新项目)或重置 Git 连接按钮(针对之前已连接到 Git 的现有项目)。

  4. 选择配置 Git重置 Git 连接按钮,以打开配置 Git 页面。

    重置 Git 连接将保留主分支的 Git 历史记录。此外,当 Looker 开发者的个人分支执行拉取、合并和部署后,还会保留其个人分支的历史记录。如需保留所有分支的历史记录,请参阅迁移到新的 Git 代码库最佳实践页面。

  5. 在 Looker 的 Configure Git(配置 Git)页面中,将 Git 代码库的 HTTPS 网址粘贴到代码库网址字段中,然后选择继续

    Looker 将检测您的 Git 提供方,并使用有关您的 Git 代码库的信息更新窗口。

    如果 Looker 未成功检测到您的 Git 提供商,会要求您从下拉列表中选择。

  6. 选择您的 Git 登录选项:

  7. 用户名密码/个人访问令牌字段中,输入您的 LookML 项目将用于访问 Git 的凭据。无论您的 Git 登录设置如何,此都是必需的:

    • 如果您选择使用单一的固定用户名和密码/个人访问令牌组合,那么这就是您的 Looker 实例将用于所有 Git 操作的 Git 用户名和密码(或访问令牌)。此 Git 用户帐号必须具有对您的 Git 代码库的读写权限。
    • 如果您选择使用用户属性作为用户名和密码/个人访问令牌,则这是您的 Looker 实例将用于拉取代码库的正式版的 Git 用户名和密码(或访问令牌)。此 Git 用户帐号必须至少具有对您的 Git 代码库的读取权限。

    如果您的 Git 账号使用双重身份验证,或者您正在使用 GitHub(需要个人访问令牌而非密码),您可以前往 Git 提供方并创建用于代替密码的访问令牌。请转到在启用 2FA 的情况下设置 HTTPS git 连接 社区帖子,了解如何为常见 Git 提供商创建个人访问令牌。

  8. 如果您选择使用用户属性作为用户名和密码/个人访问令牌,Looker 会在开发模式凭据部分中显示用户名用户属性个人访问令牌用户属性下拉菜单。使用下拉菜单为个人开发者的 Git 凭据选择用户属性

    (Looker 用户可以在账号页面上修改用户属性字段的值,Looker 管理员可以在用户管理页面上修改用户的用户属性值)。

  9. 选择继续设置按钮。

现已为您的 LookML 项目配置了 Git。在这里,您可以验证 LookML,然后创建初始提交内容并部署到生产环境,使您的项目可在生产模式下使用。您还可以:

使用 SSH 连接到 Git

借助 SSH 身份验证,您可以为 Git 提供商创建部署密钥。Looker 会生成 SSH 密钥对并在界面中显示公钥,如第 4 步所示。Looker 使用该部署密钥登录您的 Git 提供商,代表 Looker 开发者提交更改。Looker 使用开发者的 Looker 用户名提交内容,以便您了解每项提交内容是由哪个开发者做出的。您可以在 Git 提供方的界面上查看项目的提交历史记录,也可以在 Looker IDE 的 Git 菜单中选择历史记录选项。如需详细了解 Looker 中的 Git 菜单,请参阅在 Looker 中执行 Git 命令

如需使用 SSH Git 身份验证配置 LookML 项目,请按以下步骤操作:

  1. 打开项目创建新的 LookML 项目
  2. 在项目中,从左侧图标菜单中选择设置图标,打开项目配置页面。
  3. Project Configuration 页面中,执行以下任一操作以打开 Configure Git 页面:

    • 对于没有 Git 连接的项目,请选择配置 Git 按钮。
    • 对于已配置 Git 连接的项目,请选择重置 Git 连接按钮。

    重置 Git 连接将保留主分支的 Git 历史记录。此外,当 Looker 开发者的个人分支执行拉取、合并和部署后,还会保留其个人分支的历史记录。如需保留所有分支的历史记录,请参阅迁移到新的 Git 代码库最佳实践页面。

    显示从“Project Settings”页面到“Configure Git”页面进度的图表。新项目将显示“配置 Git”按钮,现有项目将显示“重置 Git Connect”按钮,但这两个按钮均指向“配置 Git”页面。

  4. 获取 Git 代码库的 SSH 网址。下面是常见 Git 提供程序的格式:

    • GitHub:git@github.com:<organization-name>/<repository-name>.git
    • GitHub Enterprise:git@example.com:<organization-name>/<repository-name>.git
    • Cloud Source Repositoriesssh://username@example.com@source.developers.google.com:2022/p/<project-id>/r/<repository-name>
    • GitLab:git@gitlab.com:<organization-name>/<repository-name>.git
    • Bitbucketgit@bitbucket.org:<organization-name>/<repository-name>.git
    • 设备ssh://username@example.com/diffusion/MYCALLSIGN/<repository-name>.git

    对于 GitHub,对于新代码库(不包含任何文件的代码库),GitHub 会在初始设置过程中,在代码标签页上显示 SSH 网址。请务必选择 SSH 按钮以获取 SSH 网址,然后选择剪贴板图标以将其复制到剪贴板。

    对于现有 GitHub 代码库(已包含文件的代码库),您可以转到代码库的代码标签页并选择代码按钮,以查看 SSH 网址。请务必选择使用 SSH 链接。您可以选择剪贴板图标以复制到剪贴板。

  5. 在 Looker 的 Configure Git(配置 Git)页面中,将 Git 代码库的 SSH 网址粘贴到 Repository 网址(代码库网址)字段中,然后选择继续

    通过将非标准端口号添加到 Git 网址,您可以将具有自定义或非标准 Git 端口的网址用于 Looker。例如:ssh://git@corporate.git.server.com:22/myorganization/myproject.git

    您必须添加 ssh:// 才能使其正常运行。

  6. Looker 将检测您的 Git 提供方并显示代码库的部署密钥。(如果 Looker 未成功检测到您的 Git 提供商,会提示您从下拉列表中选择)。将部署密钥复制到剪贴板,然后选择部署代码库的密钥设置链接,打开 GitHub 代码库的 GitHub 部署密钥页面。

  7. 在 GitHub 设置标签页中的部署密钥页面上,选择添加部署密钥按钮:

    GitHub 将显示部署密钥 / 新增页面。

  8. 为部署密钥添加标题。名称并不重要,但您可能需要添加“Looker”和项目名称,以便日后进行跟踪。

  9. 粘贴您从 Looker 中复制的部署密钥。

  10. 选择允许写入选项。

  11. 选择添加密钥按钮。(此时,您的 Git 提供商可能会提示您输入密码。如果是,请输入密码,然后选择确认密码)。

  12. GitHub 将显示已为您的代码库添加的所有部署密钥。

  13. 返回 Looker 窗口,在配置 Git 页面中,选择测试并完成设置

您可以在此处再次尝试设置部署密钥,或者选择跳过测试并完成设置以保留当前设置。

现已为您的 LookML 项目配置了 Git。在这里,您可以验证 LookML,然后创建初始提交内容并部署到生产环境,使您的项目可在生产模式下使用。您还可以:

配置裸 Git 代码库

如果您尚未创建远程 Git 代码库,或者您只是想快速完成设置,以便他人从您的 LookML 中受益,则可以配置裸 Git 代码库。配置裸 Git 代码库会在 Looker 实例上创建本地 Git 代码库,而不是连接到远程代码库。

当您选择创建裸代码库的选项时,Looker 会在您的 Looker 服务器上创建该代码库,并启动该代码库的 Git 历史记录。

如需使用裸 Git 代码库配置 LookML 项目,请执行以下操作:

  1. 打开项目创建新的 LookML 项目
  2. 在项目中,从左侧图标菜单中选择设置图标,打开项目配置页面。
  3. Project Configuration 页面中,执行以下任一操作以打开 Configure Git 页面:

    • 对于没有 Git 连接的项目,请选择配置 Git 按钮。
    • 对于已配置 Git 连接的项目,请选择重置 Git 连接按钮。

    重置 Git 连接将保留主分支的 Git 历史记录。此外,在每个 Looker 开发者的个人分支拉取、合并并部署后,该分支的历史记录还会得到保留。如需保留所有分支的历史记录,请参阅迁移到新的 Git 代码库最佳实践页面。

  4. 选择配置 Git 页面底部的改为设置裸代码库

  5. 配置 Bare Git 代码库对话框中,选择创建代码库

    Git 代码库创建后,Looker 会显示一个 Bare Repository Created 对话框。

现已为您的 LookML 项目配置了 Git。在这里,您可以验证 LookML,然后创建初始提交内容并部署到生产环境,使您的项目可在生产模式下使用。您还可以:

对于配置了裸代码库的项目,如果您想将项目连接到 Git 提供方,随后可以使用重置 Git 连接(请参阅使用 HTTPSSSH 的流程)。但是,请勿连接到已有 Git 历史记录的 Git 代码库。如果您已使用裸代码库设置了 LookML 项目,Looker 会在您的 Looker 服务器上创建一个代码库,并启动该代码库的 Git 历史记录。如果您随后将 LookML 项目连接到具有 Git 历史记录的 Git 代码库,Looker 将无法协调这两个 Git 历史记录,您也将无法执行任何 Git 操作。

将新的 LookML 项目连接到非空 Git 代码库

配置 Git 以进行版本控制是创建新 LookML 项目的关键步骤。通常,每个项目都应该有自己的代码库。但是,在以下情况下,您可能需要使用包含现有 LookML 的 Git 代码库配置项目:

  • 在实例之间迁移现有 LookML 项目时
  • 从损坏或已失效的 LookML 项目中恢复代码以便在新项目中使用时

本部分介绍了使用现有的非空 Git 代码库配置新的 LookML 项目以进一步进行 LookML 开发的最佳实践。

  1. 选择空白项目作为起点,创建新的 LookML 项目。首先,空白项目,因为其中填充的是现有仓库中的 LookML 对象,而不是数据库架构或 SQL 查询中的对象。
  2. 使用 HTTPSSSH 为您的项目配置 Git,方法是使用配置 Git 页面的代码库网址部分中的非空项目的网址。
  3. 为项目配置 Git 后,请从 Git 操作面板中从生产环境中提取数据
  4. 从生产环境拉取后,选择部署到生产环境

您在项目中对 LookML 所做的更改不会影响原始代码库;这些更改将保存在代码库的本地版本中。

如果您想将特定公共代码库用作空白 LookML 项目的基础,但没有该代码库的写入权限,请按照创建新的 LookML 项目文档页面的克隆公共 Git 代码库部分中所述的说明操作。

如果您要在多个实例中使用一个代码库来设置 Git 工作流,请参阅有关在多个实例(开发、预演和生产环境)中使用一个代码库的 Git 工作流上的社区帖子,以获取更多信息。

测试您的 Git 连接

Looker 提供 Git 连接测试来验证您的 Git 连接。Git 连接测试会验证您是否设置了正确的 Git 网址,以及 Looker 能否访问 Git 主机。Git 连接测试还会验证您是否提供了有效的 Git 部署密钥,以及部署密钥是否具有对您的 Git 代码库的写入权限。

如果 Looker 无法连接到您的 Git 代码库,Git 按钮将显示测试 Git 连接 (Test Git Connection),以提示您对连接进行问题排查。

您也可以在 Git 操作面板中选择 Test Git Connection,以访问 Git 连接测试工具:

Git 连接测试工具随后会显示测试 Git 连接所执行的步骤:

  1. 检查 Git 远程仓库
  2. Git 服务的主机名将解析
  3. Git 服务的网络可正常运行
  4. 验证授权凭据
  5. 确保凭据允许写入

如果某个步骤成功,Looker 会在该步骤左侧显示一个绿色对勾标记。如果某个步骤不成功,Looker 会在该步骤左侧显示一个红色对勾标记,还会显示错误消息。

以下示例展示了成功的测试:

“Git Connection Test”对话框,其中显示了一个步骤列表,旁边有绿色对勾标记,表示所有步骤都已成功完成。

在以下示例中,Git 代码库中没有为 Looker 连接配置的部署密钥。前三个步骤左侧的绿色对勾标记表示这些步骤已成功执行:

  • Examine git remote
  • Host name for git service will resolve
  • Networking to the git service is operational

最后两个步骤左侧的红色对勾标记表示这些步骤失败了:

  • Verify authorization credentials
  • Ensure credentials allow write access

显示成功和失败步骤列表的“Git Connection Test”对话框。“验证授权凭据”步骤下的错误为“无法远程进行身份验证(Looker 部署密钥)。