parent
be8979b8bf
commit
9b908e9df4
|
@ -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:
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../installer/opengnsys_git_installer.py
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue