AWS CloudFormation
User Guide (Version )

AWS::CodeStar::GitHubRepository

The AWS::CodeStar::GitHubRepository resource creates a GitHub repository where users can store source code for use with AWS workflows. You must provide a location for the source code ZIP file in the AWS CloudFormation template, so the code can be uploaded to the created repository. You must have created a personal access token in GitHub to provide in the AWS CloudFormation template. AWS uses this token to connect to GitHub on your behalf. For more information about using a GitHub source repository with AWS CodeStar projects, see AWS CodeStar Project Files and Resources.

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::CodeStar::GitHubRepository", "Properties" : { "Code" : Code, "EnableIssues" : Boolean, "IsPrivate" : Boolean, "RepositoryAccessToken" : String, "RepositoryDescription" : String, "RepositoryName" : String, "RepositoryOwner" : String } }

YAML

Type: AWS::CodeStar::GitHubRepository Properties: Code: Code EnableIssues: Boolean IsPrivate: Boolean RepositoryAccessToken: String RepositoryDescription: String RepositoryName: String RepositoryOwner: String

Properties

Code

Information about code to be committed to a repository after it is created in an AWS CloudFormation stack.

Required: No

Type: Code

Update requires: Updates are not supported.

EnableIssues

Indicates whether to enable issues for the GitHub repository. You can use GitHub issues to track information and bugs for your repository.

Required: No

Type: Boolean

Update requires: Updates are not supported.

IsPrivate

Indicates whether the GitHub repository is a private repository. If so, you choose who can see and commit to this repository.

Required: No

Type: Boolean

Update requires: Updates are not supported.

RepositoryAccessToken

The GitHub user's personal access token for the GitHub repository.

Required: Yes

Type: String

Update requires: Updates are not supported.

RepositoryDescription

A comment or description about the new repository. This description is displayed in GitHub after the repository is created.

Required: No

Type: String

Update requires: Updates are not supported.

RepositoryName

The name of the repository you want to create in GitHub with AWS CloudFormation stack creation.

Required: Yes

Type: String

Update requires: Updates are not supported.

RepositoryOwner

The GitHub user name for the owner of the GitHub repository to be created. If this repository should be owned by a GitHub organization, provide its name.

Required: Yes

Type: String

Update requires: Updates are not supported.

Return Values

Ref

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns a string combination of the repository owner and the repository name, such as my-github-account/my-github-repo.

For more information about using the Ref function, see Ref.

Examples

GitHub Repository Resource Configuration

The following example for the AWS::CodeStar::GitHubRepository resource creates a private GitHub repository with issues enabled.

When passing secret parameters, do not enter the value directly into the template. The value is rendered as plain text and is readable. Instead, enter secret parameters using one of the following methods:

  • Pass the value in as a NoEcho parameter. For more information, see Referencing a Parameter in a Template.

  • Store the GitHub token in AWS Secrets Manager and retrieve it through the resource property. The following example shows the token ID as the parameter stored in AWS Secrets Manager with this value: resolve:secretsmanager:your-secret-manager-name:SecretString:your-secret-manager-key.

JSON

{ "MyRepo": { "Type": "AWS::CodeStar::GitHubRepository", "Properties": { "Code": { "S3": { "S3Bucket": "my-bucket", "S3Key": "sourcecode.zip", "ObjectVersion": "1" } }, "EnableIssues": true, "IsPrivate": true, "RepositoryAccessToken": "{{resolve:secretsmanager:your-secret-manager-name:SecretString:your-secret-manager-key}}", "RepositoryDescription": "a description", "RepositoryName": "my-github-repo", "RepositoryOwner": "my-github-account" } } }

YAML

MyRepo: Type: AWS::CodeStar::GitHubRepository Properties: Code: S3: S3Bucket: "my-bucket" S3Key: "sourcecode.zip" ObjectVersion: "1" EnableIssues: true IsPrivate: true RepositoryAccessToken: '{{resolve:secretsmanager:your-secret-manager-name:SecretString:your-secret-manager-key}}' RepositoryDescription: a description RepositoryName: my-github-repo RepositoryOwner: my-github-account