8

是否可以以自动方式访问Google Cloud Source Repository ,即使用服务帐户从 GCE 实例访问?

我在文档中看到的唯一身份验证方法是使用gcloud auth login命令,它将验证我的个人用户以访问 repo,而不是我正在运行命令的机器。

4

5 回答 5

7

在 GCE 虚拟机上运行

gcloud source repos clone default ~/my_repo

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

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

gcloud auth activate-service-account --key-file KEY_FILE

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

于 2016-03-31T16:57:34.627 回答
6

如果你想用 克隆git而不是通过 运行gcloud,你可以运行:

git config --global credential.helper gcloud.sh

...然后这将起作用:

git clone https://source.developers.google.com/p/$PROJECT/r/$REPO
于 2017-04-13T22:16:18.603 回答
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.
于 2018-12-19T23:40:39.530 回答
1
  1. 为实例启用对“Cloud Source Repositories”云 API 的访问。您应该在管理控制台中创建或编辑实例时执行此操作
  2. 从实例内部的外壳,执行gcloud source repos clone <repo_name_in_cloud_source> <target_path_to_clone_into>
于 2017-07-05T20:49:16.287 回答
0

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

创建 VM 实例时,在“访问和安全”下,将“云平台”设置为“启用”。

那么验证码就是这么简单:

from oauth2client.client import GoogleCredentials
credentials = GoogleCredentials.get_application_default()
http = credentials.authorize(httplib2.Http())

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

于 2015-08-19T19:42:49.653 回答