77 lines
2.4 KiB
Python
77 lines
2.4 KiB
Python
from flask import Flask, jsonify, request
|
|
|
|
app = Flask(__name__)
|
|
|
|
# Simulación de /repositories - Obtención de lista de repositorios
|
|
@app.route('/repositories', methods=['GET'])
|
|
def get_repositories():
|
|
# Mock de respuesta exitosa
|
|
return jsonify({
|
|
"repositories": ["repo1", "repo2", "repo3"]
|
|
}), 200
|
|
|
|
# Simulación de /repositories/<repo> - Creación de repositorio
|
|
@app.route('/repositories/<repo>', methods=['PUT'])
|
|
def create_repo(repo):
|
|
# Mock de respuesta de repositorio ya existente
|
|
return jsonify({"status": "Repository already exists"}), 200
|
|
|
|
# Simulación de /repositories/<repo>/sync - Sincronización de repositorio
|
|
@app.route('/repositories/<repo>/sync', methods=['POST'])
|
|
def sync_repo(repo):
|
|
data = request.json
|
|
dest_repo = data["remote_repository"]
|
|
|
|
# Mock de respuesta exitosa
|
|
return jsonify({
|
|
"status": "Started synchronization",
|
|
"repository": repo,
|
|
"destination_repository": dest_repo
|
|
}), 200
|
|
|
|
# Simulación de /repositories/<repo>/backup - Realización de backup
|
|
@app.route('/repositories/<repo>/backup', methods=['POST'])
|
|
def backup_repo(repo):
|
|
data = request.json
|
|
dest_server = data["ssh_server"]
|
|
dest_user = data["ssh_user"]
|
|
dest_file = data["filename"]
|
|
|
|
# Mock de respuesta exitosa
|
|
return jsonify({
|
|
"status": "Started backup",
|
|
"repository": repo,
|
|
"ssh_server": dest_server,
|
|
"ssh_user": dest_user,
|
|
"filename": dest_file
|
|
}), 200
|
|
|
|
# Simulación de /repositories/<repo> - Eliminación de repositorio
|
|
@app.route('/repositories/<repo>', methods=['DELETE'])
|
|
def delete_repo(repo):
|
|
# Mock de respuesta exitosa
|
|
return jsonify({"status": "Repository deleted"}), 200
|
|
|
|
# Simulación de /repositories/<repo>/branches - Obtención de branches del repositorio
|
|
@app.route('/repositories/<repo>/branches', methods=['GET'])
|
|
def get_repository_branches(repo):
|
|
# Mock de respuesta con branches de ejemplo
|
|
return jsonify({
|
|
"branches": ["main", "dev", "feature-xyz"]
|
|
}), 200
|
|
|
|
# Simulación de la verificación de salud del servicio
|
|
@app.route('/health', methods=['GET'])
|
|
def health_check():
|
|
return jsonify({"status": "OK"}), 200
|
|
|
|
# Simulación de la raíz de la API
|
|
@app.route('/', methods=['GET'])
|
|
def home():
|
|
return jsonify({
|
|
"message": "OpenGnsys Git API Mock"
|
|
}), 200
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host='0.0.0.0', port=5001, debug=True)
|