Чем codeload.github.com отличается от api.github.com? - PullRequest
3 голосов
/ 12 февраля 2020

Я просматривал репозиторий next. js и заметил эту функцию, которая загружает и извлекает шаблон из GitHub с помощью tar:

export async function downloadAndExtractExample(
  root: string,
  name: string
): Promise<void> {
  return await promisePipe(
    got.stream('https://codeload.github.com/zeit/next.js/tar.gz/canary'),
    tar.extract({ cwd: root, strip: 3 }, [`next.js-canary/examples/${name}`])
  )
}

Я искал в StackOverflow и я нашел только это:

Это тема, объясняющая, как вы можете извлечь tar.gz из GitHub, но нет никакого упоминания о поддомене «кодовая нагрузка». Чем он отличается от "API"?

1 Ответ

3 голосов
/ 13 февраля 2020

GitHub API предоставляет лучший способ получить URL для загрузки архива. Когда вы делаете запрос GET на этот URL, он перенаправляет вас на URL codeload.github.com. codeload - это служба, которая предоставляет архивы для загрузки и находится в собственном домене для целей кэширования.

Хотя можно напрямую использовать URL-адрес кодовой загрузки, обычно требуется использовать URL-адрес API, поскольку он обрабатывает такие вещи, как аутентификация более изящно, и URL кодовой нагрузки для частных репозиториев, как правило, эфемерны.

...