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