Одно из моих репозиториев в codecommit пытается извлечь из другого моего репозитория codecommit.
Внутри первого репо package.json есть зависимость:
"dependencies": {
"repo-2": "git+https://git-codecommit.eu-west-1.amazonaws.com/v1/repos/repo-2.git#TAG"
}
Моя сборка кода выдает ошибку при попытке npm install
(сборка кода использует nodejs12):
npm ERR! Command failed: git clone --mirror -q https://git-codecommit.eu-west-1.amazonaws.com/v1/repos/repo-2.git
/root/.npm/_cacache/tmp/git-clone-3d2bf4b6/.git
npm ERR! warning: templates not found in /tmp/pacote-git-template-tmp/git-clone-7cae5b66
npm ERR!
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-01-26T11_58_45_260Z-debug.log
Я убедился, что в моей политике указаны правильные разрешения:
- Sid: CodeCommitRepoAccess
Effect: Allow
Action:
- codecommit:GetRepository
- codecommit:GitPull
- codecommit:GetFolder
Resource:
- arn:aws:codecommit:eu-west-1:*
- Sid: CodeCommitListRepos
Effect: Allow
Action:
- codecommit:ListRepositories
Resource: "*"
И я добавил помощника git-credential в buildspec.yaml:
env:
git-credential-helper: yes
Я действительно не понимаю, почему это не удается, и сообщение об ошибке не дает мне никаких идей о том, что нужно исправить. Возможно, у меня пропущены какие-то разрешения в политике? - но поскольку это не ошибка 403, я не уверен. Я могу npm install
локально на своей машине без проблем.
РЕДАКТИРОВАТЬ: Чтобы быть более понятным, я пытаюсь построить из репо-1, которое имеет зависимости от репо-2 и репо-3. Кроме того, репо-2 также зависит от репо-3. Я попытался запустить npm install
без вложенного частного репозитория (удалил его из package.json в качестве теста), но сборка все равно не удалась.
ОБНОВЛЕНИЕ: я добавил строку git ls-remote -h -t https://git-codecommit.eu-west-1.amazonaws.com/v1/repos/repo-2.git
в свою спецификацию сборки, и это правильно возвращает ветки / теги в репо-2, поэтому разрешения выглядят нормально.