# GitLib The `gitapi.py` is an API for OgGit, written in Python/Flask. It is an HTTP server that receives commands and executes maintenance actions including the creation and deletion of repositories. # Installing Python dependencies The conversion of the code to Python 3 currently requires the packages specified in `requirements.txt`. To install Python dependencies, the `venv` module is used (https://docs.python.org/3/library/venv.html), which installs all dependencies in an environment independent of the system. # Usage ## Older Distributions (18.04) sudo apt install -y python3.8 python3.8-venv python3-venv libarchive-dev python3.8 -m venv venvog . venvog/bin/activate python3.8 -m pip install --upgrade pip pip3 install -r requirements.txt Run with: ./gitapi.py ## Usage **Note:** Run as `opengnsys`, as it manages the images located in `/opt/opengnsys/images`. $ . venvog/bin/activate $ ./gitapi.py # Documentation Python documentation can be generated using a utility like pdoc3 (there are multiple possible alternatives): # Install pdoc3 pip install --user pdoc3 # Generate documentation pdoc3 --force --html opengnsys_git_installer.py # Operation ## Requirements The gitapi is designed to run within an existing opengnsys environment. It should be installed in an ogrepository. ## API Example ### Get list of branches $ curl -L http://localhost:5000/repositories/linux/branches { "branches": [ "master" ] } ### Synchronize with remote repository curl --header "Content-Type: application/json" --data '{"remote_repository":"foobar"}' -X POST -L http://localhost:5000/repositories/linux/sync