oggit/api
Vadim vtroshchinskiy c3c613fdea Update documentation 2024-12-31 01:08:13 +01:00
..
README-en.md Update documentation 2024-12-31 01:08:13 +01:00
README.md Update READMEs 2024-12-12 13:22:47 +01:00
gitapi.py Initial forgejo install 2024-10-29 12:21:44 +01:00
opengnsys_git_installer.py Ticket #741: Crear repo 2024-09-13 09:51:54 +02:00
requirements-3.13.txt Ticket #808: Initial implementation 2024-10-29 12:21:44 +01:00
requirements.txt Use Paramiko and Gitpython for backups 2024-09-16 17:40:34 +02:00

README.md

Git API

La gitapi.py es una API para OgGit, escrita en Python/Flask.

Es un servidor HTTP que recibe comandos y ejecuta acciones de mantenimiento incluyendo la creación y eliminación de repositorios.

Instalación de dependencias para python

La conversion del código a Python 3 requiere actualmente los paquetes especificados en requirements.txt

Para instalar dependencias de python se usa el modulo venv (https://docs.python.org/3/library/venv.html) que instala todas las dependencias en un entorno independiente del sistema.

Uso

Distribuciones antiguas (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

Ejecutar con:

./gitapi.py

Uso

Nota: Ejecutar como opengnsys, ya que gestiona las imágenes que se encuentran en /opt/opengnsys/images.

$ . venvog/bin/activate
$ ./gitapi.py

Documentación

Se puede generar documentación de Python con una utilidad como pdoc3 (hay multiples alternativas posibles):

# Instalar pdoc3
pip install --user pdoc3

# Generar documentación
pdoc3 --force --html opengnsys_git_installer.py

Funcionamiento

Requisitos

La gitapi esta diseñada para funcionar dentro de un entorno opengnsys existente. Se debe instalar en un ogrepository.

Ejemplo de API

Obtener lista de ramas

$ curl -L http://localhost:5000/repositories/linux/branches
{
    "branches": [
        "master"
    ]
}

Sincronizar con repositorio remoto

curl --header "Content-Type: application/json" --data  '{"remote_repository":"foobar"}' -X POST -L http://localhost:5000/repositories/linux/sync