Backup CodeCommit repositories to S3
Project description
@cloudcomponents/cdk-codecommit-backup
Backup CodeCommit repositories to S3
Install
TypeScript/JavaScript:
npm i @cloudcomponents/cdk-codecommit-backup
Python:
pip install cloudcomponents.cdk-codecommit-backup
How to use
import { BackupBucket, S3CodeCommitBackup } from '@cloudcomponents/cdk-codecommit-backup';
import { Duration, Stack, StackProps } from 'aws-cdk-lib';
import { Repository } from 'aws-cdk-lib/aws-codecommit';
import { Schedule } from 'aws-cdk-lib/aws-events';
import { SnsTopic } from 'aws-cdk-lib/aws-events-targets';
import { Topic } from 'aws-cdk-lib/aws-sns';
import { EmailSubscription } from 'aws-cdk-lib/aws-sns-subscriptions';
import { Construct } from 'constructs';
export class CodeCommitBackupStack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);
if (typeof process.env.REPOSITORY_NAME === 'undefined') {
throw new Error('environment variable REPOSITORY_NAME undefined');
}
const repository = Repository.fromRepositoryName(this, 'Repository', process.env.REPOSITORY_NAME);
const backupBucket = new BackupBucket(this, 'BackupBuckt', {
retentionPeriod: Duration.days(90),
});
// The following example runs a task every day at 4am
const backup = new S3CodeCommitBackup(this, 'S3CodeCommitBackup', {
backupBucket,
repository,
schedule: Schedule.cron({
minute: '0',
hour: '4',
}),
});
const backupTopic = new Topic(this, 'BackupTopic');
if (process.env.DEVSECOPS_TEAM_EMAIL) {
backupTopic.addSubscription(new EmailSubscription(process.env.DEVSECOPS_TEAM_EMAIL));
}
backup.onBackupStarted('started', {
target: new SnsTopic(backupTopic),
});
backup.onBackupSucceeded('succeeded', {
target: new SnsTopic(backupTopic),
});
backup.onBackupFailed('failed', {
target: new SnsTopic(backupTopic),
});
}
}
API Reference
See API.md.
Example
See more complete examples.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for cloudcomponents.cdk-codecommit-backup-2.0.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 031ce1e577f9c52f6bca3d842ce4286d75a80dd609fd84ad9b953693dc036c64 |
|
MD5 | d8c35d11de9782abaefe8014b5c78622 |
|
BLAKE2b-256 | c7a74082a694deb5fb2e4e95426a7d0a36709c45992270cf4a9901a1260ee058 |
Close
Hashes for cloudcomponents.cdk_codecommit_backup-2.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4643ae13202059ef02d4f7c53dd12af56030c4de14666fdc833ab28c946a7399 |
|
MD5 | eb58a2c48896405b5202b1bfbcf2eb44 |
|
BLAKE2b-256 | 4a2cac8b156321988ee3dcc318660fef76d95f9d4ea88931fa31c5cf2201aeeb |