将Google Cloud Source Repositories与服务帐户配合使用

时间:2015-08-18 13:26:28

标签: google-cloud-platform service-accounts gcloud-cli google-cloud-source-repos

是否可以自动方式访问Google Cloud Source Repository,即使用service account从GCE实例访问?

我在文档中看到的唯一身份验证方法是使用gcloud auth login命令,该命令将验证我的个人用户访问存储库,而不是我运行命令的计算机。

5 个答案:

答案 0 :(得分:6)

运行GCE vms

gcloud source repos clone default ~/my_repo

应自动运行,无需额外的身份验证步骤,因为它将使用VMs服务帐户。

如果您在其他计算机上运行,​​可以从https://console.cloud.google.com服务帐户.json密钥文件下载并使用

激活它
gcloud auth activate-service-account --key-file KEY_FILE

然后运行上面的克隆命令。

答案 1 :(得分:3)

如果您希望使用git进行克隆而不是通过gcloud进行克隆,则可以运行:

git config --global credential.helper gcloud.sh

...然后这将有效:

git clone https://source.developers.google.com/p/$PROJECT/r/$REPO

答案 2 :(得分:2)

万一像我这样的人试图将其作为Dockerfile的一部分,经过一段时间的努力,我只能设法使其工作:

RUN gcloud auth activate-service-account --key-file KEY_FILE ; \
    gcloud source repos clone default ~/my_repo

如您所见,使其成为同一RUN命令的一部分是关键,否则它将不断失败

ERROR: (gcloud.source.repos.clone) You do not currently have an active account selected.

答案 3 :(得分:1)

  1. 允许访问实例的“Cloud Source Repositories”Cloud API。您应该在Admin console
  2. 中创建或编辑实例时执行此操作
  3. 从实例内部的shell中,执行gcloud source repos clone <repo_name_in_cloud_source> <target_path_to_clone_into>

答案 4 :(得分:0)

如果您在GCE上运行,请利用需要较少代码行的新身份验证方法。

创建VM实例时,在&#34; Access&amp;安全,&#34;设置&#34;云平台&#34;到&#34;已启用。&#34;

然后验证码就这么简单:

file:///

请参阅 https://developers.google.com/identity/protocols/application-default-credentials