AWS::CodeGuruReviewer::RepositoryAssociation
This resource configures how Amazon CodeGuru Reviewer retrieves the source code to be reviewed. You can use an AWS CloudFormation template to create an association with the following repository types:
-
AWS CodeCommit - For more information, see Create an AWS CodeCommit repository association in the Amazon CodeGuru Reviewer User Guide.
-
Bitbucket - For more information, see Create a Bitbucket repository association in the Amazon CodeGuru Reviewer User Guide.
-
GitHub Enterprise Server - For more information, see Create a GitHub Enterprise Server repository association in the Amazon CodeGuru Reviewer User Guide.
-
S3Bucket - For more information, see Create code reviews with GitHub Actions in the Amazon CodeGuru Reviewer User Guide.
Note
You cannot use a CloudFormation template to create an association with a GitHub repository.
Syntax
To declare this entity in your AWS CloudFormation template, use the following syntax:
JSON
{ "Type" : "AWS::CodeGuruReviewer::RepositoryAssociation", "Properties" : { "BucketName" :
String
, "ConnectionArn" :String
, "Name" :String
, "Owner" :String
, "Tags" :[ Tag, ... ]
, "Type" :String
} }
YAML
Type: AWS::CodeGuruReviewer::RepositoryAssociation Properties: BucketName:
String
ConnectionArn:String
Name:String
Owner:String
Tags:- Tag
Type:String
Properties
BucketName
-
The name of the bucket. This is required for your S3Bucket repository. The name must start with the prefix
codeguru-reviewer-*
.Required: No
Type: String
Pattern:
^\S(.*\S)?$
Minimum:
3
Maximum:
63
Update requires: Replacement
ConnectionArn
-
The Amazon Resource Name (ARN) of an AWS CodeStar Connections connection. Its format is
arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id
. For more information, see Connection in the AWS CodeStar Connections API Reference.ConnectionArn
must be specified for Bitbucket and GitHub Enterprise Server repositories. It has no effect if it is specified for an AWS CodeCommit repository.Required: No
Type: String
Pattern:
arn:aws(-[\w]+)*:.+:.+:[0-9]{12}:.+
Minimum:
0
Maximum:
256
Update requires: Replacement
Name
-
The name of the repository.
Required: Yes
Type: String
Pattern:
^\S[\w.-]*$
Minimum:
1
Maximum:
100
Update requires: Replacement
Owner
-
The owner of the repository. For a GitHub Enterprise Server or Bitbucket repository, this is the username for the account that owns the repository.
Owner
must be specified for Bitbucket and GitHub Enterprise Server repositories. It has no effect if it is specified for an AWS CodeCommit repository.Required: No
Type: String
Pattern:
^\S(.*\S)?$
Minimum:
1
Maximum:
100
Update requires: Replacement
-
An array of key-value pairs used to tag an associated repository. A tag is a custom attribute label with two parts:
-
A tag key (for example,
CostCenter
,Environment
,Project
, orSecret
). Tag keys are case sensitive. -
An optional field known as a tag value (for example,
111122223333
,Production
, or a team name). Omitting the tag value is the same as using an empty string. Like tag keys, tag values are case sensitive.
Required: No
Type: Array of Tag
Maximum:
50
Update requires: Replacement
-
Type
-
The type of repository that contains the source code to be reviewed. The valid values are:
-
CodeCommit
-
Bitbucket
-
GitHubEnterpriseServer
-
S3Bucket
Required: Yes
Type: String
Allowed values:
CodeCommit | Bitbucket | GitHubEnterpriseServer | S3Bucket
Update requires: Replacement
-
Return values
Ref
When the logical ID of this resource is provided to the Ref
intrinsic function,
Ref
returns the Amazon Resource Name (ARN) of the AWS CodeGuru Reviewer
RepositoryAssociation
,
such as arn:aws:codeguru-reviewer:region:123456789012:association/universally-unique-identifier
.
For more information about using the Ref
function, see
Ref.
Fn::GetAtt
Fn::GetAtt
returns a value for a specified attribute of this type. The following is the available sample return values.
For more information about using Fn::GetAtt
, see
Fn::GetAtt.
AssociationArn
-
The Amazon Resource Name (ARN) of the
RepositoryAssociation
object. You can retrieve this ARN by callingListRepositories
.
Examples
- Create an AWS CodeCommit repository association using an existing CodeCommit repository
- Create an AWS CodeCommit repository association with a new CodeCommit repository
- Create a Bitbucket repository association
- Create a GitHub Enterprise Server repository association
- Create a repository association with tags
Create an AWS CodeCommit repository association using an existing CodeCommit repository
The following example creates an Amazon CodeGuru Reviewer repository association using an existing
AWS CodeCommit repository named MyRepository
.
YAML
Resources: MyRepositoryAssociation: Type: AWS::CodeGuruReviewer::RepositoryAssociation Properties: Name: MyRepository Type: CodeCommit
JSON
{ "Resources": { "MyRepositoryAssociation": { "Type": "AWS::CodeGuruReviewer::RepositoryAssociation", "Properties": { "Name": "MyRepository", "Type": "CodeCommit" } } } }
Create an AWS CodeCommit repository association with a new CodeCommit repository
The following example creates an AWS CodeCommit repository named MyRepositoryName
. Next, it creates an Amazon
CodeGuru Reviewer repository association using the CodeCommit repository. The DependsOn
property in the
RepositoryAssociation
specifies the CodeCommit repository. This is because the repository association
can be created only after the CodeCommit repository is created.
YAML
Resources: MyRepository: Type: AWS::CodeCommit::Repository Properties: RepositoryName: MyRepositoryName MyRepositoryAssociation: Type: AWS::CodeGuruReviewer::RepositoryAssociation Properties: Name: MyRepositoryName Type: CodeCommit
JSON
{ "Resources": { "MyRepository": { "Type": "AWS::CodeCommit::Repository", "Properties": { "RepositoryName": "MyRepositoryName" } }, "MyRepositoryAssociation": { "Type": "AWS::CodeGuruReviewer::RepositoryAssociation", "Properties": { "Name": "MyRepositoryName", "Type": "CodeCommit" } } } }
Create a Bitbucket repository association
The following example creates an Amazon CodeGuru Reviewer repository association using a Bitbucket repository.
YAML
Resources: MyRepositoryAssociation: Type: AWS::CodeGuruReviewer::RepositoryAssociation Properties: Name: MyBitbucketRepoName Type: Bitbucket ConnectionArn: arn:aws:codestar-connections:us-west-2:123456789012:connection/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee Owner: MyOwnerName
JSON
{ "Resources": { "MyRepositoryAssociation": { "Type": "AWS::CodeGuruReviewer::RepositoryAssociation", "Properties": { "Name": "MyBitbucketRepoName", "Type": "Bitbucket", "ConnectionArn": "arn:aws:codestar-connections:us-west-2:123456789012:connection/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "Owner": "MyOwnerName" } } } }
Create a GitHub Enterprise Server repository association
The following example creates an Amazon CodeGuru Reviewer repository association using a GitHub Enterprise Server repository.
YAML
Resources: MyRepositoryAssociation: Type: AWS::CodeGuruReviewer::RepositoryAssociation Properties: Name: MyGitHubEnterpriseRepoName Type: GitHubEnterpriseServer ConnectionArn: arn:aws:codestar-connections:us-west-2:123456789012:connection/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee Owner: MyOwnerName
JSON
{ "Resources": { "MyRepositoryAssociation": { "Type": "AWS::CodeGuruReviewer::RepositoryAssociation", "Properties": { "Name": "MyGitHubEnterpriseRepoName", "Type": "GitHubEnterpriseServer", "ConnectionArn": "arn:aws:codestar-connections:us-west-2:123456789012:connection/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "Owner": "MyOwnerName" } } } }
Create a repository association with tags
The following example creates an Amazon CodeGuru Reviewer repository association that has two tags. The repository is an AWS CodeCommit repository.
Use the Tags
property the same way to add tags when you create a BitBucket or GitHub Enterprise repository association.
YAML
Resources: MyRepositoryAssociation: Type: AWS::CodeGuruReviewer::RepositoryAssociation Properties: Name: MyRepository Type: CodeCommit Tags: - Key: tag1-key Value: tag1-value - Key: tag2-key Value: tag2-value
JSON
{ "Resources": { "MyRepositoryAssociation": { "Type": "AWS::CodeGuruReviewer::RepositoryAssociation", "Properties": { "Name": "MyRepository", "Type": "CodeCommit", "Tags": [ { "Key": "tag1-key", "Value": "tag1-value" }, { "Key": "tag2-key", "Value": "tag2-value" } ] } } } }