我正在尝试设置AWS CodePipeline,并使用cloudformation使用github作为源。GitHub存储库归组织所有,我已经访问了它。
我能够创建Webhook,并通过Codepipeline UI成功创建了整个服务。但是,当我尝试通过云形式文档做同样的事情时,它会返回错误
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"}]
我两次都使用了相同的凭据(在Codepipeline UI中的云形式和实际登录弹出窗口中的oauth token(,但是当我通过云形式完成时,它失败了。
我怀疑我的云形式文档是问题。但是,当我创建自己的存储库时,CloudFormation成功创建Webhook并创建了完整的CodePipeline服务。
以下是我为了解在哪里出错的测试摘要。
- codepipeline UI。组织GitHub仓库。它要求登录GitHub。使用我的管理员凭据=>成功创建了Webhook和Services。
- 云形式。组织GitHub仓库。使用
repo
和admin:repo_hook
启用了Admin凭据的OAuth令牌。=>在上面发出错误 - 云形式。个人github存储库。使用
repo
和admin:repo_hook
启用了Admin凭据的OAuth令牌=>成功创建了Webhook和Services
以下是我创建Webhook的云形式文档的一部分。
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令牌需要更多的特权。有人对此有类似的经验吗?任何建议都非常感谢
即使我正面临同一问题,通过查看CodePipeline UI Configuration的存储库,我使用了
{
"Configuration": {
"Owner": "myUserName",
"Repo": "orgname/repository-name",
}
}
因此,CloudFormation正在检查不存在的存储库Myusername/orgname/repository-name。
遵循以下解决方案后得到解决:
{
"Configuration": {
"Owner": "orgname",
"Repo": "repository-name",
}
}
私有回购 -> ownername:yourusername
组织repo -> ownername:OrganisationName