2016-04-11 7 views
1

Ich erhalte einen Tarball von Github mit der API v3, d. H. https://api.github.com/repos/my-account/my-project/tarball/my-ref.Github API zum Herunterladen eines Zipball/Tarball, die LFS-Dateien enthält

Doch dieses Projekt verwendet Git-LFS für einige Dateien, und das resultierende Archiv enthält nicht die Dateien aber den LFS Link:

version https://git-lfs.github.com/spec/v1 
oid sha256:fc03a2eadf6ac4872de8ad96a865ed05c45c416c5ad40c9efa3c4bcbe5d0dc9e 
size 1284 

Was das ein Archiv kann ich tun, um zu bekommen, das LFS-Verknüpfungen ersetzt durch den tatsächlichen Dateiinhalt?

Antwort

2

Die Git-lfs API zeigt, wie und wo Anfragen zu stellen. In Ihrem Fall, vorausgesetzt, Sie wissen, die OID Sie suchen (in der pointer gespeichert ist) sollten Sie:

POST https://github.com/your-account/your-repo/objects mit so etwas wie:

{ 
    "operation": "download", 
    "objects": [ 
     { 
     "oid": "fc03a2eadf6ac4872de8ad96a865ed05c45c416c5ad40c9efa3c4bcbe5d0dc9e", 
     "size": 1284 
     } 
    ] 
} 

Vielleicht können Sie den size Teil ommit - es ist nicht wirklich angegeben. Sie können auch mehrere OIDs zusammen in der Anfrage batch request

Die Antwort so etwas wie this aussehen und Download-Links zu den Blobs selbst enthalten, wenn sie vorhanden sind oder einige Fehler für jeden von ihnen (die Antwort als Ganzes immer wieder als 200 wenn Sie authentifiziert sind).

+0

Also ich denke, dass ich das Archiv öffnen muss, alle Dateien für die suchen, die wie ein LFS-Zeiger aussehen, und sie durch die heruntergeladenen Dateien ersetzen. Mache ich das richtig? – madprog

+1

So hässlich wie es klingt, denke ich ja, weil es nicht scheint, dass sie über diesen Anwendungsfall nachgedacht haben (oder darüber nachgedacht haben, aber es noch nicht implementiert haben). Was ist Ihr Anwendungsfall? vielleicht ist es besser für dich, das repo zu "klonen" und es dann selbst zu tarnen? – danf

+0

Ich wollte vermeiden, Git auf den Build-Rechnern zu installieren, aber ich denke, dass ich es installieren muss, plus git-lfs. – madprog

Verwandte Themen