Как вручную выполнить `git ls-remote` с помощью http-клиента

Я хочу запрашивать последнюю удаленную фиксацию HEAD для более чем 10000 https git-репозиториев каждый час. В основном это x10000:

      remote=https://github.com/torvalds/linux
git ls-remote $remote HEAD | awk '{print $1}'

Большинство, но не все удаленные устройства находятся на одном сервере (github.com). Я не хочу использовать API github, потому что некоторых репозиториев нет на github, а у API есть ограничения.

Следовательно, я хочу использовать удаленный протокол git https, но я бы предпочел реализовать это с помощью (lib)curlвместо gitчтобы получить больше контроля над настройками https и, надеюсь, выполнять запросы параллельно по одному и тому же соединению.

Где я могу найти дополнительную информацию о том, что такое HTTP-запрос? git ls-remoteделает под капотом (используя «умный» протокол git), чтобы я мог выполнить тот же вызов с libcurl?

Я просмотрел спецификацию протоколов передачи HTTP и документы в Git-Internals-Transfer-Protocols , но это очень общий и не вдается в подробности ls-remote.

0 ответов

Другие вопросы по тегам