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