本文档介绍了如何将远程代码库连接到 Dataform 代码库。 关联代码库后,您在 Dataform 开发工作区可以推送到 远程 Git 代码库
您可以通过 HTTPS 或 SSH 连接远程代码库。
下表列出了支持的 Git 提供方和连接 方法:
Git 提供商 | 连接方法 |
---|---|
Azure DevOps 服务 | SSH |
Bitbucket | SSH |
GitHub | SSH 或 HTTPS |
GitLab | SSH 或 HTTPS |
准备工作
- 如果贵组织或项目限制了远程 Git 代码库
dataform.restrictGitRemotes
组织政策后,请确保 先将远程 Git 代码库添加到政策的许可名单中,然后再 创建 Dataform 代码库 您要连接到远程代码库的存储分区。如需了解详情,请参阅 限制远程仓库。 - 选择或 创建一个 Dataform 代码库。 您稍后需要使用它与 默认 Dataform 服务账号。
所需的角色
如需获取将 Dataform 代码库连接到远程 Git 代码库所需的权限,
请让管理员向您授予
针对代码库的 Dataform Admin (roles/dataform.admin
) IAM 角色。
如需详细了解如何授予角色,请参阅管理访问权限。
通过 SSH 连接远程代码库
如需通过 SSH 连接远程代码库,您需要 生成 SSH 密钥和 Secret Manager 密钥。SSH 密钥包括 分别是 SSH 公钥和 SSH 私钥 您需要与您的 Git 提供商共享 SSH 公钥,并创建一个 Secret Manager 密钥与 SSH 私钥。然后,与大家分享秘密 与您的默认 Dataform 服务账号相关联。
Dataform 使用该 Secret 和 SSH 私钥来登录您的 Git 提供商代表开发者提交更改。Dataform 制造商 使用开发者的 Google Cloud 电子邮件地址进行提交
要将远程代码库连接到 使用 SSH 连接到 Dataform 代码库,请按以下步骤操作:
在您的 Git 提供程序中,执行以下操作:
Azure DevOps 服务
Bitbucket
- 在 Bitbucket 中,创建一个 SSH 私钥。
- 上传 SSH 公钥 添加到 Bitbucket 代码库
GitHub
- 在 GitHub 中,创建一个 SSH 私钥。
- 上传 GitHub 公钥 添加到 GitHub 代码库。
GitLab
- 在 GitLab 中,创建一个 SSH 私钥。
- 上传 GitLab SSH 公钥 添加到您的 GitLab 代码库
在 Secret Manager 中,创建 Secret 并将 SSH 私钥设置为 Secret 值。
向默认 Dataform 服务账号授予对 Secret 的访问权限。
您的默认 Dataform 服务账号采用以下格式:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
在 Google Cloud 控制台中,前往 Dataform 页面。
选择要连接的 Dataform 代码库 远程代码库
在代码库页面上,点击 Settings >与 Git 建立连接。
在指向远程仓库的链接窗格的 Remote Git 代码库网址 (Remote Git repository 网址) 字段,请输入远程 Git 的网址 以
.git
结尾。远程 Git 代码库的网址必须位于 以下格式:
- 绝对网址:
ssh://git@{host_name}[:{port}]/{repository_path}
,port
是可选项。 - 类 SCP 网址:
git@{host_name}:{repository_path}
。
- 绝对网址:
在 Default Remote branch name(默认远程分支名称)字段中,输入名称 远程 Git 代码库的主开发分支的一个分支。
在密钥下拉菜单中,为远程 Git 选择您的密钥 存储库
在 SSH 主机公钥值字段中,输入您 Git 提供商。
Azure DevOps 服务
SSH 主机公钥值必须采用
known_hosts
文件格式。 该值必须包含一种算法和一个采用base64
格式(不包含主机名或 IP),并采用以下格式:ALGORITHM BASE64_KEY_VALUE
如需检索 Azure DevOps 服务公共主机密钥,请执行以下操作: 在终端中运行
ssh-keyscan -t rsa ssh.dev.azure.com
命令。Bitbucket
SSH 主机公钥值必须采用
known_hosts
文件格式。 该值必须包含一种算法和一个采用base64
格式(不包含主机名或 IP),并采用以下格式:ALGORITHM BASE64_KEY_VALUE
如需检索 Bitbucket 公共主机密钥,请参阅 配置 SSH。
GitHub
SSH 主机公钥值必须采用
known_hosts
文件格式。 该值必须包含一种算法和一个采用base64
格式(不包含主机名或 IP),并采用以下格式:ALGORITHM BASE64_KEY_VALUE
如需检索 GitHub 主机公钥,请参阅 GitHub 的 SSH 密钥指纹。
GitLab
SSH 主机公钥值必须采用
known_hosts
文件格式。 该值必须包含一种算法和一个采用base64
格式(不包含主机名或 IP),并采用以下格式:ALGORITHM BASE64_KEY_VALUE
如需检索 GitLab 主机公钥,请参阅 SSH
known_hosts
条目。点击关联。
通过 HTTPS 连接远程代码库
要通过 HTTPS 连接远程仓库,您需要创建一个 将 Secret Manager 与个人访问令牌共享,并将 Secret 与您的默认 Dataform 服务账号相关联。
然后,Dataform 使用访问令牌登录您的 Git 提供方 代表开发者提交更改。借助 Dataform, 使用开发者的 Google Cloud 电子邮件地址进行提交
如需通过 HTTPS 将远程仓库连接到 Dataform 仓库,请执行以下操作: 请按以下步骤操作:
在您的 Git 提供程序中,执行以下操作:
GitHub
GitLab
在 GitLab 中,创建一个 GitLab 个人访问令牌。
将令牌命名为
dataform
。GitLab 个人访问令牌必须命名为
dataform
。向 Dataform 授予
api
、read_repository
、 和write_repository
权限。根据需要设置令牌到期时间。
在 Secret Manager 中 创建 Secret 包含远程代码库的个人访问令牌。
向默认 Dataform 服务账号授予对 Secret 的访问权限。
您的默认 Dataform 服务账号采用以下格式:
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com
在 Google Cloud 控制台中,前往 Dataform 页面。
选择要连接的 Dataform 代码库 远程代码库
在代码库页面上,点击 Settings >与 Git 建立连接。
在指向远程仓库的链接窗格的 Remote Git 代码库网址 (Remote Git repository 网址) 字段,请输入远程 Git 的网址 以
.git
结尾。远程 Git 代码库的网址不能包含用户名或密码。
在 Default Remote branch name(默认远程分支名称)字段中,输入名称 远程 Git 代码库的主开发分支的一个分支。
在密钥下拉菜单中,为远程 Git 选择您的密钥 存储库
点击关联。
修改远程代码库连接
修改 Dataform 代码库与远程代码库之间的连接 Git 代码库中,请按以下步骤操作:
在 Google Cloud 控制台中,前往 Dataform 页面。
点击要修改的代码库。
在代码库页面上,点击 Settings >修改 Git 连接。
在指向远程仓库的链接窗格中,修改连接设置。
点击更新。
后续步骤
如需详细了解 Dataform 代码库,请参阅 代码库简介。
如需创建开发工作区,请参阅 创建工作区。
如需了解如何排查远程仓库连接问题,请参阅 排查 Dataform 问题。