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);
-
ClassDescriptionCreates a new, empty repository.A fluent builder for
CfnRepository.Information about code to be committed.A builder forCfnRepository.CodePropertyAn implementation forCfnRepository.CodePropertyInformation about a trigger for a repository.A builder forCfnRepository.RepositoryTriggerPropertyAn implementation forCfnRepository.RepositoryTriggerPropertyInformation about the Amazon S3 bucket that contains the code that will be committed to the new repository.A builder forCfnRepository.S3PropertyAn implementation forCfnRepository.S3PropertyProperties for defining aCfnRepository.A builder forCfnRepositoryPropsAn implementation forCfnRepositoryPropsRepresents the contents to initialize the repository with.Represents the structure to pass into the underlying CfnRepository class.A builder forCodeConfigAn implementation forCodeConfigInternal default implementation forIRepository.A proxy class which represents a concrete javascript instance of this type.(experimental) Indicates that this resource can be referenced as a Repository.Internal default implementation forIRepositoryRef.A proxy class which represents a concrete javascript instance of this type.Options for the onCommit() method.A builder forOnCommitOptionsAn implementation forOnCommitOptionsFields of CloudWatch Events that change references.Provides a CodeCommit Repository.A fluent builder forRepository.Repository events that will cause the trigger to run actions in another service.List of event types for AWS CodeCommit.Additional options to pass to the notification rule.A builder forRepositoryNotifyOnOptionsAn implementation forRepositoryNotifyOnOptionsExample:A builder forRepositoryPropsAn implementation forRepositoryPropsA reference to a Repository resource.A builder forRepositoryReferenceAn implementation forRepositoryReferenceCreates for a repository trigger to an SNS topic or Lambda function.A builder forRepositoryTriggerOptionsAn implementation forRepositoryTriggerOptions