gogmilestone2.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. from flask import Flask, request, jsonify
  2. from auth import login, get_csrf_token
  3. from milestone import get_milestone, append_item_to_identifier
  4. from utils import find_username_id, generate_evoluz_link, find_task_type
  5. app = Flask(__name__)
  6. USERNAME = "setyotontowi"
  7. PASSWORD = "nasipadang"
  8. EVOLUZ_URL = "http://192.168.1.33:5050/apps/team/detail?"
  9. @app.route('/webhook', methods=['POST'])
  10. def handle_webhook():
  11. try:
  12. payload = request.get_json()
  13. if not payload:
  14. return 'Invalid JSON payload', 400
  15. if 'pull_request' in payload:
  16. pr = payload.get('pull_request', {})
  17. pr_title = pr.get('title')
  18. pr_username = pr.get('user').get('username')
  19. pr_branch = pr.get('head_branch')
  20. pr_branch_data = find_task_type(pr_branch)
  21. pr_data = {
  22. 'title': pr_title,
  23. 'username': pr_username.capitalize(),
  24. 'branch': pr_branch,
  25. 'task_type': pr_branch_data.get("task_type"),
  26. 'user_id': find_username_id(pr_username),
  27. 'link_evoluz': generate_evoluz_link(find_username_id(pr_username), pr_branch_data.get("task_id"), EVOLUZ_URL)
  28. }
  29. if update_milestone(pr_data):
  30. print("Milestone updated successfully.")
  31. else:
  32. print("Failed to update milestone.")
  33. return jsonify({'status': 'success'}), 200
  34. except Exception as e:
  35. print(f"Error: {e}")
  36. return 'Internal server error', 500
  37. @app.route('/', methods=['GET'])
  38. def index():
  39. return "Webhook server is running."
  40. if __name__ == '__main__':
  41. if login(USERNAME, PASSWORD):
  42. print("Initial login successful.")
  43. else:
  44. print("Initial login failed.")
  45. app.run(port=4001)