/ / Github API do pobrania zipballa / tarballa zawierającego pliki LFS - github-api, git-lfs

Github API, aby pobrać zipball / archiwum zawierające pliki LFS - github-api, git-lfs

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 № 1

Git-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).