在我的管道中(使用 bitbucket 和 CodePipeline),我解决了在我的 bitbucket 存储库(>设置)中创建一个 ssh 密钥,将其导入到我的 AWS 帐户上的用户,具有正确的权限(见下文),并编写这个 bitbucket-pipelines .yml 文件:
image: atlassian/default-image:3
pipelines:
tags:
'*':
- step:
script:
- echo "Host git-codecommit.*.amazonaws.com" >> ~/.ssh/config
- echo "User <ssh-user-id>" >> ~/.ssh/config
- git remote add codecommit ssh://<ssh-repo-uri>
- git push codecommit ${BITBUCKET_TAG}
- git push codecommit HEAD:master
我什至提交 HEAD:master 因为 CodeBuild 的源代码仅来自分支(在本例中为 master)而不是来自全部git 标签。
用户权限:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"codecommit:ListRepositoriesForApprovalRuleTemplate",
"codecommit:CreateApprovalRuleTemplate",
"codecommit:UpdateApprovalRuleTemplateName",
"codecommit:GetApprovalRuleTemplate",
"codecommit:ListApprovalRuleTemplates",
"codecommit:DeleteApprovalRuleTemplate",
"codecommit:ListRepositories",
"codecommit:UpdateApprovalRuleTemplateContent",
"codecommit:UpdateApprovalRuleTemplateDescription"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "codecommit:*",
"Resource": "arn:aws:codecommit:<region>:<account-id>:<codecommit-repo-name>"
}
]
}