设置和测试 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 密码相对应的用户属性设置 Looker 用户帐号(如果 Git 用户帐号具有双重身份验证,则必须使用访问令牌)。
  • Git 帐号密码(或访问令牌)的用户属性必须隐藏。创建密码或访问令牌属性时,请在隐藏值选项下选择,然后在网域许可名单字段中输入 Git 提供商网址。
  • 必须为每个 Looker 开发者填写 Git 名称和密码(或访问令牌)的用户属性。用户属性可以由 Looker 管理员配置,也可以由 Looker 用户配置。

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

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

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

配置 HTTPS Git 身份验证

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

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

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

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

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

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

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

  5. 在 Looker Configure Git 页面中,将 Git 代码库的 HTTPS 网址粘贴到 Repository 网址 字段中,然后选择 Continue

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

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

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

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

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

    如果您的 Git 帐号使用双重身份验证,或者您使用的是 GitHub(需要个人访问令牌而非密码),则可以前往 Git 提供方并创建要使用的访问令牌(而不是密码)。如需了解如何为常见 Git 提供商创建个人访问令牌,请参阅设置已启用 2FA 的 HTTPS 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 命令

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

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

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

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

    显示从“项目设置”页面到“配置 Git”页面的进度的示意图。新项目会显示“Configure Git”按钮,现有项目会显示“Reset Git Connect”按钮,但这两个按钮均指向“Configure 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 Configure Git 页面中,将 Git 代码库的 SSH 网址粘贴到 Repository 网址 字段中,然后选择 Continue

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

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

  6. Looker 将检测您的 Git 提供商并显示您的代码库的部署密钥。(如果 Looker 未成功检测到您的 Git 提供方,则会提示您从下拉列表中选择 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. 在项目中,从左侧的图标菜单中选择 Settings 图标,以打开 Project Configuration 页面。
  3. 项目配置页面中,执行以下操作之一以打开配置 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 Remote
  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”对话框,其中显示了成功和失败的步骤列表。“验证授权凭据”步骤下有一个错误,内容为“ Cannot AUTH to Remote(Looker 部署密钥)”。