70 lines
1.7 KiB
Markdown
70 lines
1.7 KiB
Markdown
# 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
|
|
|