G. Statistiques de la classe - uha-fr/endyear_2025_gr11_back GitHub Wiki

Chargement de tds.json

charger_tds(tds_path) :

  • Lit la liste d’étudiants : [{ nom, repo_url, deadline|deadlines, token }, …]
  • Retourne (liste_etudiants, token_communs, deadlines_map)

analyser_etudiant(nom, repo_url, token, deadlines_etudiant, poids)

  • Clone dans temp_etudiant__
  • Filtre commits samedi : weekday()==5
  • Compte par TD (YYYY-MM-DD) :
  • commits, ajouts, suppressions, fichiers
  • score_TD selon poids
  • pourcentage par rapport au total de lignes modifiées
  • a_heure si ≤ deadline du TD ou global
  • Totaux => total_commits, total_ajouts, …, score_global
  • GitHub API :
  • Branches, Pull requests (ouverts/fermés/mergés), issues, reviews
  • GitHub Actions runs (total, succès, échecs)

analyser_classe(liste_etudiants, token_communs, deadlines_map, poids)

  • Parcourt chaque étudiant, appelle analyser_etudiant()
  • Agrège les résultats dans un dict { nom: stats }

Détection de patterns globaux Pas encore fait ***

detect_patterns_global(list(repo_urls), snippet_length) :

  • Clone chaque repo (temporaire)
  • Parcourt tous les fichiers, extrait snippets (AST pour Python, regex pour autres)
  • Normalise (indentation, commentaires)
  • Compte occurrences sur l’ensemble
  • Retourne les plus fréquents (ex. Top 5)
⚠️ **GitHub.com Fallback** ⚠️