我试图通过使用cloudformation设置AWS代码管道并使用github作为源。 github存储库由一个组织所有,我对此拥有管理员访问权限。
我能够创建Webhook,并通过代码管道UI成功创建了整个服务。但是当我尝试通过Cloudformation Document做同样的事情时,它返回错误
Webhook could not be registered with GitHub. Error cause: Not found [StatusCode: 404, Body: {"message":"Not Found","documentation_url":"https://developer.github.com/v3/repos/hooks/#create-a-hook"}]
我两次都使用了相同的凭据(cloudformation中的OAuth令牌和codepipeline UI中的实际登录弹出窗口),但是当我通过Cloudformation进行操作时,它失败了。
我怀疑我的cloudformation文档是问题所在。但是当我创建自己的存储库时,cloudformation成功创建了webhook并创建了完整的代码管道服务。
下面是我为了解错误原因所做的测试摘要。
repo
和admin:repo_hook
的来自管理员凭证的OAuth令牌。 =>排除上面的错误repo
和admin:repo_hook
的管理员凭据中使用的Oauth令牌=>成功创建了Webhook和服务以下是我创建Webhook的cloudformation文档的一部分。
AppPipelineWebhook:
Type: 'AWS::CodePipeline::Webhook'
Properties:
Authentication: GITHUB_HMAC
AuthenticationConfiguration:
SecretToken: !Ref GitHubSecret
Filters:
- JsonPath: $.ref
MatchEquals: 'refs/heads/{Branch}'
TargetPipeline: !Ref cfSSMAutomationDev
TargetAction: SourceAction
Name: AppPipelineWebhook
TargetPipelineVersion: !GetAtt cfSSMAutomationDev.Version
RegisterWithThirdParty: true
所以我不确定是什么问题。我怀疑OAuth令牌需要更多特权。有人对此有类似的经验吗?任何建议都值得赞赏
答案 0 :(得分:5)
即使我也遇到了同样的问题,通过查看我使用的代码管道UI配置的存储库
{
"Configuration": {
"Owner": "myUserName",
"Repo": "orgname/repository-name",
}
}
所以cloudformation正在检查不存在的存储库myUserName / orgname / repository-name。
按照以下解决方案解决了
{
"Configuration": {
"Owner": "orgname",
"Repo": "repository-name",
}
}
私人仓库-> ownerName:YourUserName
组织回购-> ownerName:OrganisationName