Package software.amazon.awscdk.services.codecommit


package software.amazon.awscdk.services.codecommit

AWS CodeCommit Construct Library

AWS CodeCommit is a version control service that enables you to privately store and manage Git repositories in the AWS cloud.

For further information on CodeCommit, see the AWS CodeCommit documentation.

To add a CodeCommit Repository to your stack:

 Repository repo = Repository.Builder.create(this, "Repository")
         .repositoryName("MyRepositoryName")
         .description("Some description.")
         .build();
 

Use the repositoryCloneUrlHttp, repositoryCloneUrlSsh or repositoryCloneUrlGrc property to clone your repository.

To add an Amazon SNS trigger to your repository:

 Repository repo;
 
 
 // trigger is established for all repository actions on all branches by default.
 repo.notify("arn:aws:sns:*:123456789012:my_topic");
 

Add initial commit

It is possible to initialize the Repository via the Code class. It provides methods for loading code from a directory, .zip file and from a pre-created CDK Asset.

Example:

 Repository repo = Repository.Builder.create(this, "Repository")
         .repositoryName("MyRepositoryName")
         .code(Code.fromDirectory(join(__dirname, "directory/"), "develop"))
         .build();
 

Use a customer managed key

CodeCommit repositories are automatically encrypted with an AWS managed key. To use a customer managed key, specify the kmsKey property.

For more information, see AWS Key Management Service and encryption for AWS CodeCommit repositories.

 import software.amazon.awscdk.services.kms.*;
 
 IKey kmsKey;
 
 
 Repository repo = Repository.Builder.create(this, "Repository")
         .repositoryName("MyRepositoryName")
         .kmsKey(kmsKey)
         .build();
 

Events

CodeCommit repositories emit Amazon CloudWatch events for certain activities. Use the repo.onXxx methods to define rules that trigger on these events and invoke targets as a result:

 import software.amazon.awscdk.services.sns.*;
 import software.amazon.awscdk.services.events.targets.*;
 
 Repository repo;
 PipelineProject project;
 Topic myTopic;
 
 
 // starts a CodeBuild project when a commit is pushed to the "main" branch of the repo
 repo.onCommit("CommitToMain", OnCommitOptions.builder()
         .target(new CodeBuildProject(project))
         .branches(List.of("main"))
         .build());
 
 // publishes a message to an Amazon SNS topic when a comment is made on a pull request
 Rule rule = repo.onCommentOnPullRequest("CommentOnPullRequest", OnEventOptions.builder()
         .target(new SnsTopic(myTopic))
         .build());
 

CodeStar Notifications

To define CodeStar Notification rules for Repositories, use one of the notifyOnXxx() methods. They are very similar to onXxx() methods for CloudWatch events:

 import software.amazon.awscdk.services.chatbot.*;
 
 Repository repository;
 
 SlackChannelConfiguration target = SlackChannelConfiguration.Builder.create(this, "MySlackChannel")
         .slackChannelConfigurationName("YOUR_CHANNEL_NAME")
         .slackWorkspaceId("YOUR_SLACK_WORKSPACE_ID")
         .slackChannelId("YOUR_SLACK_CHANNEL_ID")
         .build();
 INotificationRule rule = repository.notifyOnPullRequestCreated("NotifyOnPullRequestCreated", target);