Альтернативные способы получения contet-length через GithubApi

Я использую tdqm+urlibчтобы создавать локальную копию гитхаб репозитория, скачивая его как zip. Для правильного отображения процентов загрузки необходим размер файла (header content-length), который не содержится при скачивании архива с GitHub. Решение кажется очевидным, просто каким-то образом получать размер ветки через Github Api, но я не могу найти подходящего метода для этой задачи. код: https://github.com/SPRAVEDLIVO/RatInstaller

import urllib.request
from tqdm import tqdm

# https://stackoverflow.com/questions/15644964/python-progress-bar-and-downloads
def downloadFileWithBar(url, output_path):
    with DownloadProgressBar(unit='B', unit_scale=True,
                             miniters=1, desc=url.split('/')[-1], ascii=True) as t:
        urllib.request.urlretrieve(url, filename=output_path, reporthook=t.update_to)

class DownloadProgressBar(tqdm):
    def update_to(self, b=1, bsize=1, tsize=None):
        if tsize is not None:
            self.total = tsize
        self.update(b * bsize - self.n)
downloadFileWithBar("https://github.com/git/git/archive/master.zip", "master.zip")

Ответы (1 шт):

Автор решения: SPRAVEDLIVO

https://developer.github.com/v3/git/trees/ Проблема решается суммированием параметра size всех файлов, получаемых от запроса к API.

→ Ссылка