pull_repo.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import git
  2. from git.exc import GitCommandError
  3. import requests
  4. from datetime import datetime
  5. # Konfiguration
  6. REPO_PATH = '/home/pi/solar_collector' # Pfad zum lokalen Git-Repository
  7. GIT_REPO_URL = 'https://g.tbsgl.xyz:443/tsi/solar_collector.git' # SSH URL des Git-Repositories
  8. bot_token = '949332240:AAHNsQEmCW4it86Esa7F5o07XxwrotSM7s8'
  9. chat_id = '-914111351'
  10. def send_telegram_message(bot_token, chat_id, message):
  11. """Sendet eine Nachricht über Telegram."""
  12. bot_url = f'https://api.telegram.org/bot{bot_token}/sendMessage'
  13. payload = {'chat_id': chat_id, 'text': message}
  14. try:
  15. response = requests.post(bot_url, data=payload)
  16. response.raise_for_status()
  17. except requests.exceptions.RequestException as e:
  18. print(f"Fehler beim Senden der Telegram-Nachricht: {e}")
  19. def git_pull(repo_path, repo_url):
  20. """Führt ein git pull im angegebenen Repository aus."""
  21. try:
  22. repo = git.Repo(repo_path)
  23. except git.exc.InvalidGitRepositoryError:
  24. # Falls das Verzeichnis kein Git-Repo ist, klone es
  25. git.Repo.clone_from(repo_url, repo_path)
  26. return "Repository geklont"
  27. current = repo.head.commit
  28. repo.remotes.origin.pull()
  29. new = repo.head.commit
  30. if current != new:
  31. return "Neue Daten erfolgreich ausgerollt"
  32. else:
  33. return "Keine neuen Daten zum Ausrollen"
  34. def main():
  35. message = git_pull(REPO_PATH, GIT_REPO_URL)
  36. send_telegram_message(bot_token, chat_id, message)
  37. if __name__ == "__main__":
  38. main()