В качестве альтернативы вы можете предоставить личный токен авторизации, который имеет только общедоступное репо, прочитанное в шаблоне 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