Odzyskuję tarball z Githuba przy użyciu API v3, tj. https://api.github.com/repos/my-account/my-project/tarball/my-ref
.
Jednak ten projekt używa Git-LFS dla niektórych plików, a wynikowe archiwum nie zawiera plików, ale łącze LFS:
version https://git-lfs.github.com/spec/v1
oid sha256:fc03a2eadf6ac4872de8ad96a865ed05c45c416c5ad40c9efa3c4bcbe5d0dc9e
size 1284
Co mogę zrobić, aby uzyskać archiwum z linkami LFS zastąpionymi rzeczywistą zawartością pliku?
Odpowiedzi:
2 dla odpowiedzi № 1Git-lfs API pokazuje, jak i gdzie wysyłać żądania. W twoim przypadku, zakładając, że znasz OID
szukasz (jest przechowywany w wskaźnik) powinieneś:
POST https://github.com/your-account/your-repo/objects
z czymś takim jak:
{
"operation": "download",
"objects": [
{
"oid": "fc03a2eadf6ac4872de8ad96a865ed05c45c416c5ad40c9efa3c4bcbe5d0dc9e",
"size": 1284
}
]
}
Może możesz anulować size
część - nie jest naprawdę określona. Możesz także poprosić o kilka OIDs
razem w żądanie partii
Odpowiedź będzie wyglądać podobnie to i będzie zawierał linki do pobierania do obiektów typu blob, jeśli istnieją lub wystąpił błąd dla każdego z nich (odpowiedź jako całość zawsze zwraca się jako 200, jeśli jesteś uwierzytelniony).