AWS Codepipeline Github Webhook не регистрируется из-за облачной информации

Я пытаюсь установить кодовую линию AWS и использовать github в качестве источника с помощью облачной информации. Репозиторий github принадлежит организации, и у меня есть к нему доступ администратора.

Я смог создать webhook и успешно создать весь сервис через интерфейс codepipeline. Но когда я пытаюсь сделать то же самое через 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"}]

Я использовал одни и те же учетные данные оба раза (токен OAuth в облачной информации и фактические всплывающие окна входа в пользовательский интерфейс codepipeline), но когда я сделал это через Cloudformation, это не удалось.

Я подозревал, что мой документ облачной информации был проблемой. Но когда я создаю свой собственный репозиторий, cloudformation успешно создает webhook и создает полный сервис codepipeline.

Ниже приводится краткое описание тестов, которые я сделал, чтобы понять, где это пошло не так.

  1. Интерфейс Codepipeline. Организация Github Repo. Он попросил войти в GitHub. Войдите в систему с помощью моей учетной записи администратора => успешно созданные веб-крючок и службы.
  2. CloudFormation. Организация Github Repo. Используется токен OAuth от учетных данных администратора с repo а также admin:repo_hook включен. => Выдал ошибку выше
  3. CloudFormation. Персональный Github Repo. Используется токен Oauth от учетных данных администратора с repo а также admin:repo_hook enabled => успешно созданный webhook и сервисы

Ниже приведена часть документа облачной информации, где я создаю 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 требует больше привилегий. У кого-нибудь есть подобный опыт с этим? Любое предложение высоко ценится

1 ответ

Решение

Даже я столкнулся с той же проблемой, увидев репозиторий конфигурации пользовательского интерфейса codepipeline, который я использовал

{
  "Configuration": {
    "Owner": "myUserName",
    "Repo": "orgname/repository-name",
  }
}

поэтому облачная информация проверяла хранилище myUserName/orgname/repository-name, которого не было.

Это было решено после следующего решения:

{
  "Configuration": {
    "Owner": "orgname",
    "Repo": "repository-name",
  }
}

частное репо -> ownerName: YourUserName
организация репо -> имя_хозяина: имя_организации

Другие вопросы по тегам