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