Dodanie plików app1.py i app2.py

This commit is contained in:
unknown 2023-06-17 01:02:35 +02:00
parent 6a103043a5
commit f5ff1c6777
2 changed files with 57 additions and 0 deletions

10
app1.py Normal file
View File

@ -0,0 +1,10 @@
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)

47
app2.py Normal file
View File

@ -0,0 +1,47 @@
from flask import Flask, request, abort, jsonify, make_response
import hmac
import hashlib
import subprocess
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def handle_webhook():
# Sprawdzanie podpisu HMAC
secret = "123" # Zastąp swoim własnym tajnym kluczem
signature = request.headers.get('X-Hub-Signature')
if not is_valid_signature(request.data, secret, signature):
abort(400) # Nieprawidłowy podpis HMAC, zakończ żądanie
# Sprawdzanie typu zdarzenia
event_type = request.headers.get('X-GitHub-Event')
if event_type != 'push':
return make_response(jsonify({'message': 'Nieobsługiwane zdarzenie'}), 200)
# Pobieranie informacji o zmianach
payload = request.json
repository = payload['repository']['name']
ref = payload['ref']
# Sprawdzanie, czy zmiany dotyczą odpowiedniego repozytorium i gałęzi
if repository != 'Myapp' or ref != 'refs/heads/master':
return make_response(jsonify({'message': 'Ignorowanie niepasujących zmian'}), 200)
# Wywołanie restartu innej aplikacji
restart_application()
return make_response(jsonify({'message': 'Restartowanie aplikacji...'}), 200)
def is_valid_signature(data, secret, signature):
# Generowanie podpisu HMAC
expected_signature = 'sha1=' + hmac.new(secret.encode('utf-8'), data, hashlib.sha1).hexdigest()
# Porównywanie podpisu z otrzymanym w nagłówku
return hmac.compare_digest(signature, expected_signature)
def restart_application():
# Logika restartu innej aplikacji
# Możesz dostosować ten kod do własnych potrzeb, np. używając poleceń systemowych lub bibliotek zarządzających procesami
subprocess.run(["systemctl", "restart", "nazwa_twojej_aplikacji"])
if __name__ == '__main__':
app.run(debug=True)