Как мне клонировать репозиторий из репозиториев исходного кода в Compute Engine, чтобы вручную извлекать его при необходимости - PullRequest
0 голосов
/ 18 мая 2018

На моем локальном macOS следующая команда работала нормально:

$ gcloud source repos clone myrepo --project=myproject

(хотя я не уверен, что это сработало не потому, что ранее я следовал процедуре ~/.gitcookies)

Но когдаЯ делаю это на CE:

$ gcloud source repos clone myrepo --project=myproject
ERROR: (gcloud.source.repos.clone) PERMISSION_DENIED: Request had insufficient authentication scopes.

$ gcloud source repos list
ERROR: (gcloud.source.repos.list) User [<digits>-compute@developer.gserviceaccount.com] does not have permission to access project [<myproject>] (or it may not exist): Request had insufficient authentication scopes.

$ gcloud auth list
                  Credentialed Accounts
ACTIVE  ACCOUNT
*       <digits>-compute@developer.gserviceaccount.com

Во вкладке IAM я вижу, что эта служебная учетная запись имеет «Редактор доступа ко всем ресурсам», но это не помогает.Даже если я добавлю роли Источник Репозиторий Чтение + Запись.

UPD: также я не могу найти роль .clone на вкладке Роли:

enter image description here

$ gcloud help source repos

COMMANDS
    COMMAND is one of the following:

     clone
        Clone a cloud source repository.
     create
        Create a cloud source repository.
     delete
        Delete a cloud source repository.
     describe
        Describe a cloud source repository.
     get-iam-policy
        Get the IAM policy for the named cloud source repository.
     list
        List the repositories the currently active project.
     set-iam-policy
        Set the IAM policy for the named repository.

Но, вероятно, он включен в .get и так Reader, что я уже пробовал:

enter image description here

UPD2:sudo /usr/local/share/google/google-cloud-sdk/bin/gcloud components update не помогло.

Единственные два варианта, которые я представляю себе сейчас, это либо редактировать

enter image description here

(этоединственное, что я нашел в Интернете, похоже, что это решение, но эта запись в блоге написана на каком-то восточном языке, поэтому я не уверен), но для этого потребуется остановка виртуальной машины, что недопустимо.

Илисоздать другую учетную запись службы, но я не уверен, что переключение ее в gcloud CLI не нарушит работу других приложений на этом компьютере.Или, может быть, я смогу использовать его только один раз при клонировании репо, и оно останется с ним?

1 Ответ

0 голосов
/ 18 мая 2018

Если вы используете служебную учетную запись экземпляра Google Compute Engine, как вы можете прочитать здесь [1], вам нужно предоставить области доступа к репозиториям Cloud Source репозиториям Полное или Чтение / Запись. Для этого вы должны остановить экземпляр.

Если вы не хотите останавливать экземпляр, вы можете создать новую учетную запись службы и использовать следующую команду для активации учетной записи службы:

$ gcloud auth activit-service-account --key-file = [KEY.JSON]

и этот, чтобы начать использовать новую учетную запись службы с помощью инструмента gcloud:

$ gcloud init

Если вы используете редактор ролей в этой новой учетной записи службы, возникает известная проблема, поскольку у редактора ролей нет разрешения source.repos.create.

Роли $ gcloud iam описывают роли / редактор | grep "source.repos"

  • source.repos.get
  • source.repos.getIamPolicy
  • source.repos.list
  • source.repos.update

В качестве обходного пути для создания облачных исходных репозиториев вам потребуется роль: "role / source.admin", которую вы можете прочитать здесь [2]: "Предоставляет разрешения на создание, обновление, удаление, список , клонировать, извлекать и просматривать репозитории. Также предоставляет разрешения на чтение и изменение политик IAM. "

Здесь [3] вы можете отслеживать статус этой проблемы, но помните, что нет ETA или гарантии, которая будет исправлена.

[1] https://cloud.google.com/compute/docs/access/service-accounts#accesscopesiam

[2] https://cloud.google.com/iam/docs/understanding-roles#source_repository_roles

[3] https://issuetracker.google.com/80329938

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...