2013-05-22 3 views
5

Ich versuche derzeit, durch die (GitHub API) [http://developer.github.com/v3/repos/contents/] zu lesen, um herauszufinden, wie ich kann programmgesteuert alle Versionen einer bestimmten Datei in einem einzelnen Repository abrufen.Verwenden von GitHub API zum Abrufen aller Versionen einer bestimmten Datei

Ich sehe, dass man die Liste der Commits und die aktuelle Version einer einzelnen Datei leicht erhalten kann. Aber gibt es eine Möglichkeit, alle für eine bestimmte Datei relevanten Commits aufzulisten und dann alle Versionen dieser Datei zu durchlaufen?

Antwort

7

Um die Liste der Commits relevant für eine bestimmte Datei zu erhalten, verwenden this API endpoint und geben Sie den path Parameter:

GET https://api.github.com/repos/:owner/:repo/commits?path=FILE_PATH 

Sie werden eine Reihe von Commit Objekte zurück, von denen jede ein sha Attribut hat.

Jetzt, da Sie alle SHA-Festschreibungen haben, können Sie alle verschiedenen Versionen der Datei mit this API endpoint abrufen und den Abfrageparameter ref zum Festlegen der SHA angeben. Also, für jeden SHA begehen, machen Sie eine Anfrage an:

und lesen Sie das content Attribut. Beachten Sie, dass der Inhalt Base64-codiert ist, Sie können aber auch eine Rohversion anfordern, indem Sie das entsprechende AcceptHTTP header festlegen.

+0

Perfekt, danke! – user1027169

Verwandte Themen