Dodanie plików app1.py i app2.py
This commit is contained in:
parent
6a103043a5
commit
f5ff1c6777
10
app1.py
Normal file
10
app1.py
Normal 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
47
app2.py
Normal 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)
|
Loading…
Reference in New Issue
Block a user