设置和测试 Git 连接

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

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

将 Looker 与 Git 集成

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

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

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

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

  • HTTPS:HyperText Transfer Protocol Secure(超文本传输安全协议)。使用 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 提供商处创建访问令牌,以代替密码。请参阅在启用 2FA 的情况下设置 HTTPS Git 连接社区帖子,了解如何为常见的 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 菜单中选择 History 选项来查看。如需详细了解 Looker 中的 Git 菜单,请参阅在 Looker 中执行 Git 命令

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

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

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

若要使用用户属性进行 Git 身份验证,需要完成以下任务并满足以下要求:

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

以下示例显示了“用户属性”管理页面,其中 Looker 管理员为 Git 用户名和用户访问令牌设置了用户属性。

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

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

配置 HTTPS Git 身份验证

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

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

    对于现有 GitHub 代码库(已包含文件的代码库),您可以前往代码库的 Code(代码)标签页,然后选择 Code(代码)按钮,查看 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 网址(代码库网址)字段中,然后选择 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 连接的项目,请选择 Configure Git(配置 Git)按钮。
    • 对于已配置 Git 连接的项目,请选择 Reset Git Connection 按钮。

    重置 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 会在初始设置过程中在 Code(代码)标签页上显示 SSH 网址。请务必选择 SSH 按钮以获取 SSH 网址,然后选择剪贴板图标将其复制到剪贴板。

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

  5. 在 Looker 的配置 Git 页面中,将 Git 代码库的 SSH 网址粘贴到 Repository 网址(代码库网址)字段中,然后选择 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 的 Settings(设置)标签页中,点击 Deploy keys(部署密钥)页面上的 Add deploy key(添加部署密钥)按钮:

    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 连接的项目,请选择 Configure Git(配置 Git)按钮。
    • 对于已配置 Git 连接的项目,请选择 Reset Git Connection 按钮。

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

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

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

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

现在,Git 已为您的 LookML 项目配置完毕。在此处,您可以验证 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. 使用 Configure Git(配置 Git)页面中的 Repository 网址(代码库网址)部分中非空项目的网址,通过 HTTPSSSH 为项目配置 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 操作面板中选择测试 Git 连接来访问 Git 连接测试工具:

然后,Git 连接测试工具会显示其执行的 Git 连接测试步骤:

  1. 检查 git 远程
  2. Git 服务的主机名将解析
  3. 与 Git 服务的网络连接正常运行
  4. 验证授权凭据
  5. 确保凭据允许写入访问权限

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

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

Git 连接测试对话框,其中显示了一系列步骤,步骤旁边带有绿色对勾标记,表示所有步骤均已成功完成。

在以下示例中,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 部署密钥)。