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.CodeProperty
An implementation forCfnRepository.CodeProperty
Information about a trigger for a repository.A builder forCfnRepository.RepositoryTriggerProperty
An implementation forCfnRepository.RepositoryTriggerProperty
Information about the Amazon S3 bucket that contains the code that will be committed to the new repository.A builder forCfnRepository.S3Property
An implementation forCfnRepository.S3Property
Properties for defining aCfnRepository
.A builder forCfnRepositoryProps
An implementation forCfnRepositoryProps
Represents the contents to initialize the repository with.Represents the structure to pass into the underlying CfnRepository class.A builder forCodeConfig
An implementation forCodeConfig
Internal default implementation forIRepository
.A proxy class which represents a concrete javascript instance of this type.Options for the onCommit() method.A builder forOnCommitOptions
An implementation forOnCommitOptions
Fields 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 forRepositoryNotifyOnOptions
An implementation forRepositoryNotifyOnOptions
Example:A builder forRepositoryProps
An implementation forRepositoryProps
Creates for a repository trigger to an SNS topic or Lambda function.A builder forRepositoryTriggerOptions
An implementation forRepositoryTriggerOptions