Я пытаюсь установить кодовую линию 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.
Ниже приведена сводка тестов, которые я провел, чтобы понять, где это пошло не так.
- Кодовый интерфейс UI. Организация Github Repo. Он попросил войти в GitHub. Войдите в систему с помощью моей учетной записи администратора => успешно созданный веб-крючок и службы.
- CloudFormation. Организация Github Repo. Использовал маркер OAuth от учетных данных администратора с включенными
repo
и admin:repo_hook
. => Ошибка выдачи выше
- CloudFormation. Персональный Github Repo. Использован токен Oauth из учетных данных администратора с включенными
repo
и admin:repo_hook
=> успешно созданный веб-крючок и службы
Ниже приведена часть документа облачной информации, где я создаю 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 требует больше привилегий. У кого-нибудь есть подобный опыт с этим? Любое предложение высоко ценится