Ticket #741: Crear repo

Ticket #736: Eliminar repo
ticket-769
Vadim vtroshchinskiy 2024-09-13 09:51:54 +02:00
parent be8979b8bf
commit 9b908e9df4
4 changed files with 41 additions and 4 deletions

View File

@ -2,7 +2,8 @@ from flask import Flask, jsonify
import os.path
import os
import git
import shutil
from opengnsys_git_installer import OpengnsysGitInstaller
repositories_base_path = "/opt/opengnsys/images"
@ -37,12 +38,41 @@ def get_repositories():
"repositories": repos
})
@app.route('/repositories/<repo>', methods=['PUT'])
def create_repo(repo):
repo_path = os.path.join(repositories_base_path, repo + ".git")
if os.path.isdir(repo_path):
return jsonify({"status": "Repository already exists"}), 200
installer = OpengnsysGitInstaller()
installer._init_git_repo(repo + ".git")
return jsonify({"status": "Repository created"}), 201
@app.route('/repositories/<repo>', methods=['DELETE'])
def delete_repo(repo):
repo_path = os.path.join(repositories_base_path, repo + ".git")
if not os.path.isdir(repo_path):
return jsonify({"error": "Repository not found"}), 404
shutil.rmtree(repo_path)
return jsonify({"status": "Repository deleted"}), 200
@app.route('/repositories/<repo>/branches')
def get_repository_branches(repo):
repo_path = os.path.join(repositories_base_path, repo + ".git")
if not os.path.isdir(repo_path):
return jsonify({"error": "Repository not found"}), 404
gitRepo = git.Repo(os.path.join(repositories_base_path, repo + ".git"))
gitRepo = git.Repo(repo_path)
branches = []
for branch in gitRepo.branches:

View File

@ -0,0 +1 @@
../installer/opengnsys_git_installer.py

View File

@ -1,4 +1,5 @@
click==8.0.4
colorterm==0.3
dataclasses==0.8
Flask==2.0.3
gitdb==4.0.9
@ -6,9 +7,12 @@ GitPython==3.1.20
importlib-metadata==4.8.3
itsdangerous==2.0.1
Jinja2==3.0.3
libarchive==0.4.7
MarkupSafe==2.0.1
pkg-resources==0.0.0
nose==1.3.7
pkg_resources==0.0.0
smmap==5.0.0
typing-extensions==4.1.1
termcolor==1.1.0
typing_extensions==4.1.1
Werkzeug==2.0.3
zipp==3.6.0

View File

@ -182,6 +182,8 @@ class OpengnsysGitInstaller:
repo.config_writer().set_value("user", "name", "OpenGnsys").release()
repo.config_writer().set_value("user", "email", "OpenGnsys@opengnsys.com").release()
self._recursive_chown(repo_path, ouid=self.ssh_uid, ogid=self.ssh_gid)
def _add_line_to_file(self, filename, new_line):
"""Agrega una línea a un archivo"""
found = False