• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Automatiser la récupération des repos github grace à python et Crontab

Lomanu4 Оффлайн

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,481
Баллы
155
Dans le cadre du développement logiciel ou de la gestion de projets open source, il est fréquent de devoir cloner, mettre à jour ou surveiller régulièrement plusieurs dépôts GitHub. Répéter ces tâches manuellement peut vite devenir fastidieux, surtout lorsqu’il s’agit de projets dynamiques ou collaboratifs. Heureusement, il est possible d'automatiser ces opérations grâce à un script Python couplé à Crontab, l’outil de planification de tâches de Unix/Linux.

Dans cet article, nous allons voir comment créer un script Python capable de cloner automatiquement un dépôt GitHub et utiliser Crontab pour exécuter ce script de manière régulière, sans intervention manuelle. Cette méthode est particulièrement utile pour les développeurs, administrateurs système ou chercheurs souhaitant garder une copie locale à jour de certains projets.

Pourquoi automatiser la récupération de dépôts GitHub ?

Avec la croissance rapide du développement open source et l’essor du travail collaboratif, de nombreux professionnels ont besoin de suivre en temps réel les évolutions de plusieurs projets GitHub. Cette surveillance peut répondre à plusieurs objectifs :

-Veille technologique : suivre des bibliothèques, frameworks ou outils pour rester informé des mises à jour.

-Sauvegarde locale : conserver une copie locale à jour de dépôts importants pour éviter la perte de données ou préparer une analyse hors ligne.

-Automatisation de workflows CI/CD : intégrer la mise à jour de projets tiers dans des pipelines d’intégration continue.

Or, exécuter manuellement git clone ou git pull sur chaque dépôt est une tâche répétitive, sujette à l’oubli et peu évolutive. C’est là qu’intervient l’automatisation grâce à Python pour la logique de gestion des dépôts, et Crontab pour la planification régulière des mises à jour.

Passons à la pratique:
Créons d'abord notre fichier git.py

nano git.py


import os
import subprocess

file_name = "john.sh"
repo_url = "

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

"
destination_dir = "/home/mr-john/Bureau/dossier1"

if not os.path.exists(file_name):
print(f"{file_name} n'existe pas. Téléchargement via Git...")

subprocess.run(["git", "clone", repo_url, destination_dir])

file_path = os.path.join(destination_dir, file_name)
if os.path.exists(file_path):
print(f"{file_name} a été téléchargé avec succès.")
else:
print(f"Erreur : le fichier {file_name} n'a pas été trouvé dans le dépôt.")
else:
print(f"{file_name} existe déjà.")

Passons maintenant à notre cron:

crontab -e


# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command

* * * * * /usr/bin/python3 /home/mr-jofn/exo_git.py >> /tmp/exo_git.log 2>&1

Testons si le fichier .log arrive à recevoir l'activité générée par crontab:
tail -f /temp/exo_git.log

Conclusion


Automatiser la récupération des dépôts GitHub avec Python et Crontab est une solution simple, efficace et puissante pour gagner du temps, éviter les oublis, et garantir que ses ressources locales sont toujours à jour. En combinant un script Python flexible avec la planification offerte par Crontab, on peut facilement surveiller et maintenir une collection de projets GitHub sans effort quotidien.

En somme, cette automatisation est une première brique vers une gestion plus intelligente et proactive des projets open source ou collaboratifs.


Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу