我正在尝试使用 cloudformation 设置 AWS 代码管道并使用 github 作为源。github 存储库归一个组织所有,我拥有对其的管理员访问权限。
我能够创建 webhook 并通过 codepipeline 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 并创建了完整的代码管道服务。
以下是我为了解哪里出了问题所做的测试摘要。
- 代码管道用户界面。组织 Github 回购。它要求登录github。使用我的管理员凭据登录 => 成功创建了 webhook 和服务。
- 云形成。组织 Github 回购。使用管理员凭据中的 OAuth 令牌
repo
并admin:repo_hook
启用。=>上面给出了错误 - 云形成。个人 Github 回购。使用管理员凭据中的 Oauth 令牌
repo
并admin:repo_hook
启用 => 成功创建了 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 令牌需要更多权限。有没有人有类似的经验?非常感谢任何建议