git-remote-s3

raw JSON →
0.3.2 verified Mon Apr 27 auth: no python

A git remote helper for Amazon S3. Enables git push/pull from S3 buckets using S3 URLs. Current version 0.3.2, requires Python >=3.10. Beta stage, infrequent releases.

pip install git-remote-s3
error fatal: repository 's3://mybucket/myrepo.git' not found
cause AWS credentials not configured or insufficient permissions.
fix
Check that AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are set correctly and that the S3 bucket exists.
error fatal: remote error: Unsupported URL protocol
cause Using http or https instead of s3:// scheme.
fix
Use s3://bucket-name/path.git as the remote URL.
error ModuleNotFoundError: No module named 'git_remote_s3'
cause Attempting to import the module in Python code; it's not an importable library.
fix
Do not import in Python. Use as a git remote helper: git clone s3://... or git remote add origin s3://...
gotcha The git remote helper only supports S3 URLs in the format s3://bucket-name/repo-path.git. Using regular http:// or https:// will fail.
fix Use s3:// scheme for remote URLs.
gotcha This tool is a git remote helper, not a standalone Python library. Importing git_remote_s3 directly in Python code is not intended and may not work as expected.
fix Do not import in Python scripts; use via git commands.
gotcha Requires AWS credentials configured. The helper uses boto3, which searches for credentials in order: environment variables, ~/.aws/credentials, IAM roles. Missing credentials cause silent failures.
fix Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables before using git commands.
deprecated Python 3.9 and below are not supported. Requires >=3.10.
fix Upgrade Python to 3.10+.
breaking Version 0.3.0 changed the S3 URL format from s3://bucket/repo to s3://bucket/repo.git. Older versions may fail with repositories not ending in .git.
fix Ensure repository paths end with .git when using version 0.3.0+.

Clone a git repo stored on S3, make changes, and push back.

git clone s3://mybucket/myrepo.git
cd myrepo
# Make changes
# Configure AWS credentials via environment variables or ~/.aws/credentials
# Push back
git push s3://mybucket/myrepo.git master