Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mirror a Git repository directly to AWS CodeCommit

I want to create a backup of one of my Git repositories and save it to AWS CodeCommit. I don't want to include the use of my local machine. Can anyone tell me how can I do it directly or through AWS Lambda?

like image 500
Prakshi Yadav Avatar asked Jul 04 '17 06:07

Prakshi Yadav


2 Answers

I just started searching for the answer to this very question. Before I post some of my preliminary data have you found a solution to this?

Here is what I have found so far:

  • BitBucket

    https://github.com/ef-labs/stash-hook-mirror

  • GitHub

    https://github.com/gitbucket/gitbucket/issues/833

    https://help.github.com/articles/about-webhooks/

  • JGit

    https://fancybeans.com/2012/08/24/how-to-use-s3-as-a-private-git-repository/

  • Gitlab

    How to create a Gitlab webhook to update a mirror repo on Github? especially the part here

I successfully used the mirror feature to automatically pull a GitHub Repository into GitLab using the mirror feature offered by GitLab.com.

I also found https://github.com/lambci/lambci which is serverless CI and looks promising.

I believe the answer lies in a combination of AWS SNS Topic monitoring of Webhooks (GitLab and others) and pass the response to Lambda which spins up an instance which has either git or jgit to run the command, look through the LambCI Repository for details.

The only problem with this solution is that the AWS Lambda instance will clone the mirrored repository to its local storage and then push to AWS Code Commit and this will be repeated each time an instance gets started so for LARGE repositories or VERY ACTIVE repositories this may not be a good idea and you would be better off spinning up a nano EC2 instance with a CRON job to mirror the repository to AWS Code Commit.

like image 61
Joey H Avatar answered Sep 17 '22 05:09

Joey H


AWS Quickstart provide a solution that copies your repo to s3 using lambda and webhooks.

This solution could quite easily be modified to copy to CodeCommit rather than s3.

enter image description here

like image 43
Stephen Avatar answered Sep 20 '22 05:09

Stephen