我正在尝试设置AWS CodePipeline并使用CloudFormation将GitHub作为源。 GitHub存储库由组织拥有,我具有管理员访问权限。
我已成功创建了Webhook,并通过CodePipeline UI成功创建了整个服务。但是,当我尝试通过CloudFormation文档执行同样的操作时,它返回错误:
无法在GitHub上注册Webhook。错误原因:未找到 [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并创建完整的CodePipeline服务。
以下是我进行测试以了解何处出错的摘要:
- CodePipeline UI。 组织GitHub Repo。 要求登录GitHub。 使用我的管理员凭据登录=> 成功创建Webhook和服务。
- CloudFormation。 组织GitHub Repo。 使用启用了“repo”和“admin:repo_hook”的管理员凭据的OAuth令牌。=> 出现上述错误。
- CloudFormation。 个人GitHub Repo。 使用启用了“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令牌需要更高的权限。有人有类似的经验吗?任何建议都将不胜感激。