git_hook/main.py
2021-01-14 15:14:41 +08:00

30 lines
811 B
Python

import os
from flask import Flask, request, json, jsonify
app = Flask(__name__)
@app.route('/hook', methods=['POST'])
def push_hook():
data = json.loads(request.get_data(as_text=True))
name = data['repository']['name']
clone_url = data['repository']['clone_url']
with open('dest.json', 'r', encoding='utf8') as f:
dest_dict = json.load(f)
dest = os.path.join(dest_dict[name], f'{name}.tar.gz')
download(name, clone_url, dest)
return jsonify({'msg': 'ok'})
def download(name, clone_url, dest):
os.system(f'rm -rf /tmp/{name}')
os.system(f'git clone {clone_url} /tmp/{name}')
os.system(f'cd /tmp && tar -czvf {dest} {name} ')
os.system(f'rm -rf /tmp/{name}')
if __name__ == '__main__':
print(__name__)
app.run(host='0.0.0.0', port=5000)