2013-04-23 7 views

Antwort

3

Hier ist, wie ich es tun würde:

  • Verwendung der GitHub API die Repositories (siehe JSON for Plone für ein Beispiel) aufzuzählen. Schleife über das JSON-Ergebnis und mit jedem:
    • Überprüfen Sie das Repository (die git_url URL) mit git clone --bare; nur die Git Info, keine Arbeitskopie. Dies erstellt ein <repository_name>.git> Verzeichnis, sagen plone.event.git, wenn Sie git://github.com/plone/plone.event.git geklont haben.
    • Die Revisionen mit git --git-dir=<git_directory> rev-list HEAD --count zählen; gibt die Zählung an stdout aus, also sollte subprocess.check_output() die Arbeit gut machen.
    • Entfernen Sie die .git Verzeichnis wieder

, dass nur 2 API-Aufrufe erfordert, Sie vermeiden so Rate begrenzt ist; Das Paging durch alle Commits mit der API würde zu viele Anfragen erfordern, um alle Repository-Commits zu zählen, das Auschecken einer leeren Repository-Kopie wäre sowieso schneller.