Есть ли на страницах Github встроенный способ доступа и кэширования последней версии API? - PullRequest
7 голосов
/ 14 мая 2019

Изучение Jekyll и хостинг через Github Pages Я пытаюсь выяснить, как получить доступ к последнему выпуску private repo и кэшировать URL-адреса для загрузки на страницу Jekyll. Я знаю, как получить доступ к данным через Github API с помощью токена доступа, используя AJAX:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script language="javascript" type="text/javascript">  

  let USER = "grim"
  let REPO = "foobar"
  let TOKEN = "jsfjksgfjasgdjgsajgasjk"
  $.ajax({
    url: `https://api.github.com/repos/${USER}/${REPO}/releases/latest?access_token=${TOKEN}`,
    jsonp: true,
    method: "GET",
    dataType: "json",
    contentType: 'application/json',
    success: function(res) {
      console.log(res.assets)
    },
    error: function(res) {
      console.log(res)
    }
  })
</script>

В config.yml Я устанавливаю USER, REPO и TOKEN. В моем исследовании я нашел Cache API , но его нет в списке . Используя Github Pages в качестве хоста и закодированный в Jekyll, есть ли способ получить последнюю версию и кэшировать ответ на закрытое хранилище с Jekyll? Если я не могу кешировать API, есть ли способ сохранить URL релиза в сборке Jekyll, чтобы я мог кодировать его для кнопок, чтобы кнопки выполняли функцию загрузки?

Исследование:

1 Ответ

0 голосов
/ 23 мая 2019

Github-страницы НЕ имеют встроенного способа доступа и кэширования последней версии API.Вы, кажется, выбрали javascript для получения данных.Поэтому кэширование ответа затрагивает только одного пользователя, и я полагаю, что это не то, что вам нужно.Что возможно ...

Использование динамических данных

Вы получаете значения / данные в ajax-запросе, поэтому вы можете записать результат в режиме реального времени на нужную страницу.Вы можете сохранить результат в localstorage, чтобы предотвратить любые дополнительные вызовы для этого пользователя.

Использование статических данных

Вы можете добавить ответ JSON в виде статического файла в папку _data.Вы можете сделать это вручную, а затем перебрать данные.

Если ручная работа не является вашей чашкой чая, вы можете автоматизировать получение файла во время сборки Jekyll с помощью плагина.

К сожалению, этот плагин работает только с открытыми файлами JSON (в настоящее время аутентификация недоступна).Возможно, вы захотите добавить аутентификацию самостоятельно, как предлагает автор плагина на своей странице Github.

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

Автоматизация сборки

Из ваших исследований я вижу, что вы также хотите автоматизировать / запланировать процесс сборки.Простой способ сделать это - использовать функцию запланированных сборок на платформе CloudCannon.

...