设置和测试 Git 连接

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

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

将 Looker 与 Git 集成

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

对于 LookML 源文件管理,Looker 可以配置为使用任何通过 SSH 密钥或 HTTPS 进行身份验证的 Git 提供商。无论您使用哪个平台,常规步骤都是相同的。此页面以 GitHub 为例,说明如何在创建 Git 代码库后将 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 提供商处创建访问令牌,以代替密码。请参阅设置启用 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 菜单中选择历史记录选项。如需详细了解 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 会在初始设置过程中向您显示网址。请务必在代码标签页上选择 HTTPS 按钮,以便获取 HTTPS 网址,然后选择将网址复制到剪贴板图标,将其复制到剪贴板。

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

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

  3. 项目配置页面的配置标签页中,找到配置 Git 按钮(适用于新项目)或重置 Git 连接按钮(适用于之前已连接到 Git 的现有项目)。

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

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

  5. 在 Looker 的配置 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. 项目配置页面中,执行以下任一操作以打开 Configure Git 页面:

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

    重置 Git 连接会保留主分支的 Git 历史记录。此外,在 Looker 开发者拉取、合并和部署个人分支后,该功能还会保留相应分支的历史记录。如需保留所有分支的历史记录,请参阅迁移到新的 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 网址粘贴到代码库网址字段中,然后选择继续

    如果网址使用自定义或非标准 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 代码库,Looker 会在 Looker 服务器上创建一个本地 Git 代码库,并开始记录该代码库的 Git 历史记录,而不是连接到远程 Git 提供商上的代码库。如果您尚未创建要连接的远程 Git 代码库,或者想要快速完成设置以便其他人可以从您的 LookML 中受益,那么配置裸代码库会很有用。例如,当您在生成模型的过程中创建新项目时,系统会自动为该项目配置一个裸仓库。

如果您配置的项目使用裸 Git 代码库,则稍后可以从项目的项目设置页面重置项目的 Git 连接,并使用 HTTPSSSH 创建与远程 Git 提供商的连接。

请注意裸代码库的以下限制:

  • 配置了裸代码库的项目不支持 Git 集成选项,例如创建拉取请求和显示指向 Git 代码库的链接。
  • 创建裸代码库后,您无法再创建同名的裸代码库。如需了解详情,请参阅相关社区文章:Error - "Project already Exists" for bare repo(错误 - 裸仓库的“项目已存在”)。

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

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

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

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

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

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

    创建 Git 代码库后,Looker 会显示一个已创建裸代码库对话框。

现在,您已为 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 项目。空白项目是起点,因为该项目将填充来自现有代码库(而非数据库架构或 SQL 查询)的 LookML 对象。
  2. 使用 Configure Git 页面上 Repository 网址 部分中非空项目的网址,通过 HTTPSSSH 为项目配置 Git。
  3. 为项目配置 Git 后,从 Git 操作面板从生产环境拉取
  4. 从生产环境拉取后,选择部署到生产环境

您对项目中的 LookML 所做的更改不会影响原始代码库,而是会保存在代码库的本地版本中。

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

如果您要设置一个 Git 工作流,以便在多个实例中使用一个代码库,请参阅社区帖子:Git workflow using one repository across multiple instances — development, staging, and production(Git 工作流:在多个实例中使用一个代码库 - 开发、预演和生产)。

测试 Git 连接

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

如果 Looker 无法连接到您的 Git 代码库,Git 按钮会显示“测试 Git 连接”文本,提示您排查连接问题。

您还可以通过在 Git 操作面板中选择 Test Git Connection 来访问 Git 连接测试工具:

然后,Git 连接测试工具会显示其测试 Git 连接所采取的步骤:

  1. 检查 git remote
  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 部署密钥)进行身份验证”。