Преодоление ограничения скорости GitHub API из публичного проекта? - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть публичный репозиторий, который выполняет роль Ansible.Эта Ansible-роль использует GitHub API для получения самой последней версии для данного репозитория.Я использую эти метаданные, чтобы затем впоследствии загрузить бинарный файл последней версии для данного проекта.

К сожалению, я использую ограничение скорости GitHub API при выполнении моих тестов в Travis и иногда на моей локальной машине.Поскольку это публичный проект, какие у меня есть варианты преодоления этого ограничения скорости?

I может использовать какую-то секретную систему управления в Ansible или раскрыть значение через переменные среды Travis, но есть ли стандартная практика для таких сценариев для открытого кода?

1 Ответ

0 голосов
/ 22 февраля 2019

Неаутентифицированные запросы получают только 60 / час.Аутентифицированные запросы получают 5000 / час.

Для аутентификации генерирует личный токен доступа API для использования проектом.Поместите его в зашифрованную переменную среды Travis или каким-либо другим способом для хранения зашифрованных секретов (например, Rails встроил зашифрованные учетные данные . Используйте этот токен для доступа к API.

Создайте отдельную учетную запись Github для проекта и используйте для этого токен API. Это позволяет избежать совместного использования ограничения скорости с кем-либо еще.

Используйте команды Git для локального клона, где это возможно. Например, есливы хотите найти коммит вместо того, чтобы делать это через API , клонировать репозиторий и использовать обычные команды Git. Кэшируйте клоны и git fetch периодически, чтобы поддерживать их актуальность.

Наконец, используйте условные запросы . Они используют заголовки HTTP, чтобы вы могли безопасно использовать кэшированные запросы. Они не учитываются в вашем ограничении скорости. У хорошей библиотеки аутентификации Github должна быть опция для кэширования.

...