AWS Codepipeline Github Webhook未通过cloudformation注册

时间:2019-05-09 21:53:44

标签: amazon-web-services aws-codepipeline github-webhook

我试图通过使用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并创建了完整的代码管道服务。

下面是我为了解错误原因所做的测试摘要。

  1. 代码管道用户界面。组织Github回购。它要求登录github。使用我的管理员凭据登录=>成功创建了Webhook和服务。
  2. Cloudformation。组织Github回购。已启用repoadmin:repo_hook的来自管理员凭证的OAuth令牌。 =>排除上面的错误
  3. Cloudformation。个人Github回购。启用了repoadmin: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令牌需要更多特权。有人对此有类似的经验吗?任何建议都值得赞赏

1 个答案:

答案 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