设置和测试 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:安全外壳。借助 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. 选择 Configure Git(配置 Git)或 Reset Git Connection(重置 Git 连接)按钮以打开 Configure Git(配置 Git)页面。

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

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

    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. 选择继续设置按钮。

现在,Git 已为您的 LookML 项目配置完毕。在此处,您可以验证 LookML,然后创建初始提交并部署到正式版,以便在正式版模式下使用您的项目。您还可以:

使用 SSH 连接到 Git

使用 SSH 身份验证时,您需要为 Git 提供方创建部署密钥。Looker 会生成 SSH 密钥对,并在界面中显示公钥,如第 4 步所示。Looker 使用该部署密钥登录您的 Git 提供商,代表 Looker 开发者提交更改。Looker 会使用开发者的 Looker 用户名进行提交,以便您了解每项提交操作是由哪位开发者完成的。您可以在 Git 提供商的界面上查看项目的提交历史记录,也可以从 Looker IDE 的 Git 菜单中选择 History 选项来查看。如需详细了解 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”按钮,现有项目将显示“重置 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
    • Phabricatorssh://username@example.com/diffusion/MYCALLSIGN/<repository-name>.git

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

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

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

    您可以将包含自定义或非标准 Git 端口的网址与 Looker 搭配使用,只需将非标准端口号添加到 Git 网址即可。例如:ssh://git@corporate.git.server.com:22/myorganization/myproject.git

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

  6. Looker 会检测您的 Git 提供程序,并显示您的代码库的部署密钥。(如果 Looker 未能成功检测到您的 Git 提供程序,系统会提示您从下拉菜单中进行选择。)将部署密钥复制到剪贴板,然后选择 Deploy Key settings for your repository(代码库的部署密钥设置)链接,打开 GitHub 代码库的 Deploy keys(部署密钥)页面。

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

    GitHub 会显示部署密钥/添加新密钥页面。

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

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

  10. 选择允许写入选项。

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

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

  13. 返回 Looker 窗口,然后在 Configure Git(配置 Git)页面中,选择 Test and Finalize Setup(测试并完成设置)。

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

现在,Git 已为您的 LookML 项目配置完毕。在此处,您可以验证 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. 选择 Blank Project(空白项目)作为起点,创建新的 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 按钮将显示文本 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 连接测试对话框,其中显示了成功和失败步骤的列表。“验证授权凭据”步骤下的错误为“无法远程进行身份验证(Looker 部署密钥)。