Какие разрешения GitHub нужны CodePipeline для работы с репозиторием?

Я заметил, что AWS CodeBuild нужны только разрешения только для чтения, чтобы полагаться на репозиторий GitHub. AWS CodePipeline не обошлось без существенных ошибок. Вместо этого репозитории просто не будут отображаться.

Какие разрешения нужны CodePipeline для работы с репозиторием GitHub?


person Mike Biglan MS    schedule 24.01.2017    source источник


Ответы (2)


В качестве альтернативы вы можете предоставить личный токен авторизации, который имеет только общедоступное репо, прочитанное в шаблоне CloudFormation.

Настройте в GitHub и скопируйте личный токен авторизации введите здесь описание изображения < img src="https://i.stack.imgur.com/B93TB.png" alt="введите здесь описание изображения">

Затем в вашем CloudFormation для CodePipeline

### Builds CI/CD pipeline Stages and Actions
Pipeline:
Type: AWS::CodePipeline::Pipeline
Properties:
  ArtifactStore: 
    Type: S3
    Location: !Join ["-", ["byu", !Ref "AWS::AccountId", !Ref "AWS::Region", "code-build-artifacts" ]]
  #RoleArn: !Ref CodePipelineServiceRole
  RoleArn: !Join ["",["arn:aws:iam::", !Ref "AWS::AccountId", ":role/CodePipelineServiceRole"]]
  Stages:
  ### Defines Source repository via params
  - Name: !Join ["-",["Source", !Ref GitHubBranch, !Ref GitHubRepository]]
    Actions:
    - InputArtifacts: []
      Name: Source
      ActionTypeId:
        Category: Source
        Owner: ThirdParty
        Version: '1'
        Provider: GitHub
      OutputArtifacts:
      - Name: MyApp
      Configuration:
        Owner: !Ref GitHubUser
        Repo: !Ref GitHubRepository
        Branch: !Ref GitHubBranch
        OAuthToken: !Ref GitHubToken
      RunOrder: 1

Мы используем !Ref для доступа к параметрам CloudFormation, которые можно передать через cli — это не позволяет нам иметь ключи доступа в коде: O

Parameters:
  GitHubUser:
    Type: String
    Description: GitHub user name or organization name - whichever prepends the repo name
  GitHubRepository:
    Type: String
    Description: GitHub repository name (not url)
  GitHubBranch:
    Type: String
    Description: GitHub repository branch
  GitHubToken:
    Type: String
    Description: GitHub personal-access-token - see 

https://help.github.com/articles/creating-an-access-token-for-command-line-use/

Имя пользователя GitHub — это либо имя пользователя, либо название организации — в зависимости от того, что отображается перед именем вашего репозитория.

Полный пример

person Eric Nord    schedule 02.02.2017
comment
Я бы рекомендовал добавить NoEcho: true к параметру GitHubToken, чтобы он не был виден при описании стека. - person Carl; 02.11.2018

Оказывается, учетная запись GitHub, используемая с AWS CodePipeline, требует полного доступа администратора, чтобы CodePipeline мог ее использовать.

person Mike Biglan MS    schedule 24.01.2017
comment
Make sure the token is configured to have the following GitHub scopes: admin:repo_hook and repo из docs.aws.amazon.com/codepipeline/ последняя/руководство пользователя/ - person RandomQuestion; 25.01.2017