Python-based Git Server
Project description
Overview
A git server implementation written in python.
Based off the amazing work by Stewart Park in this gist: https://gist.github.com/stewartpark/1b079dc0481c6213def9.
The app makes any git repository lying below the search_paths
available for git clone
via HTTP using basic authentication.
Application defaults can be overridden by specifying a configuration file.
Review etc/config.yaml for a sample data structure.
Installation
- Install from pypi.org:
pip install btgitserver
- Install directly from git repo:
pip install git+http://www.github.com/berttejeda/bert.gt-server.git
Usage
To get usage information and help: git-server -h
Clone paths
There are two routes accepted by the script:
- '/example/'
- '/'
All resolve to the same underlying repository path.
This effectively allows you to mock organizational structures.
TODO: Define additional routes dynamically as opposed to hard-coding.
Usage Examples
Quick test:
- Create a test repo:
mkdir -p /tmp/repos/test
cd /tmp/repos/test
git init .
touch test_file.txt
git add .
git commit -m 'Initial Commit'
git-server -r /tmp/repos
Note: The --repo-search-paths/-r
cli option allows specifying
multiple, space-delimitted search paths, e.g. git-server -r /tmp/repos /tmp/repos2
- Launch the standalone git server
git-server
You should see output similar to:
Running on http://0.0.0.0:5000/
- On client-side:
Try cloning the repo you just created via the supported routes:
e.g.
git clone http://127.0.0.1:5000/test.git
git clone http://127.0.0.1:5000/example/test.git
Project details
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
Hashes for btgitserver-1.0.5-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b1701cb0eac9e90b2f2895eed9f4e8ff825c8f587a4fbdc90ca7261efd8e747 |
|
MD5 | 2e00218c225b15a613e981cdb53d3d43 |
|
BLAKE2b-256 | c444e0c930e958f60ac5180c18ec5c8132520a899f4bf0573c0c7b1cfe353b45 |