Рубрики
Без рубрики

Распространение пакетов Pypi с использованием токенов API в Travesci

Индекс пакета Pypi является одним из инструментов, которые заставляет Python настолько мощным, только с простой командой … Теги с Python, Pypi, учебником, Трэвисом.

Pypi Индекс пакета является одним из инструментов, которые сделают Python Настолько мощный, с простой командой Вы получаете доступ к тысячам прохладных библиотек, готовые вам использовать в вашем проекте.

Писать Python Пакеты и развертывание их в Pypi это один из способов обмена библиотеками в сообщество с открытым исходным кодом. Для начинающих, отправляющих пакет на Pypi Это не легкая задача, но сообщество усердно работает, за то, чтобы сделать этот процесс более проще, вы можете прочитать больше о упаковке, после официального Руководство по упаковке Python Отказ

В этом посте я собираюсь пропустить некоторые вещи/шаги по упаковке и направлять вас через процесс использования новейших API токены особенность в Pypi Для вашей постоянной интеграции и развертывания (CI/CD).

Для этого мы будем использовать Pypi Test Экземпляр, который является лучшим вариантом для выполнения начального теста в ваших пакетах, таких как: тестирование, если документы рендерируют правильно, или если классификаторы В вашем setup.py правильные, например.

Использование TRAVIS CI.

Трэвис CI Может автоматически отпустить ваш Python Пакеты в Пипи После успешной сборки. Для минимальной конфигурации вы можете использовать следующий код в вашем .travis.yml файл:

deploy:
  provider: pypi
  user: "Your username"
  password: "Your password"

Однако, как вы можете заметить, это выставит ваш Pypi пароль миру, и это плохая идея. В каком TRAVIS рекомендуется зашифровать пароль или сохранить учетные данные, как переменные среды TRAVIS, вы можете прочитать больше об этом на Travis Deployment Docs .

Получить токены Pypi

Итак, первое, что нужно сделать, пойти в https://test.pypi.org/ и создать учетную запись (если у вас нет ни одного) или войдите, после этого нам понадобятся наши API токен Отказ Как его получить? Перейти к себе Pypi Настройки учетной записи и выберите «Добавить токен API». Когда вы создаете токен API, вы выбираете свой объем: вы можете создать токен, который можно использовать для загрузки во все проекты, которые вы поддерживаете или владеете, или вы можете ограничить свой объем на один проект.

Как использовать токены

Токены API обеспечивают альтернативный способ (вместо имени пользователя и пароля) для аутентификации при загрузке пакетов в Pypi Отказ

Эти токены API могут быть использованы только для загрузки пакетов для PYPI, а не вообще в систему, поскольку вор, который копирует токен, также не получит возможность удалить проект, удалять старые выбросы или добавлять/удаленные сотрудники.

Как вы можете видеть на следующем скриншоте, я успешно развернул первую версию демонстрационного проекта на PYPI:

Теперь нам нужно включить Трэвис Для этого проекта, так что перейдите к https://travis-ci.org/account/repositories и включить это, после этого мы должны изменить следующие вещи в нашу .travis.yml файл:

  • Установите имя пользователя на __Token__ Отказ
  • Установите пароль в значение токена, включая Pypi- префикс.

Для получения дополнительной дополнительной безопасности мы собираемся хранить токен как переменную среды, перейдите в https://travis-ci.org/ //Настройки А теперь наша .travis.yml Файл будет выглядеть так:

deploy:
  provider: pypi
  user: __token__
  password: $TEST_PYPI_TOKEN
  server: https://test.pypi.org/legacy/
  distributions: "sdist bdist_wheel"
  on:
    branch: staging
    condition: $TRAVIS_PYTHON_VERSION = "3.6"

И теперь каждый раз, когда мы нажимаем код на Постановка ветвь, Трэвис запустит автоматическое развертывание к Pypi экземпляр теста. Сделайте небольшие изменения в кодовой базе и измените setup.py Номер версии, затем нажмите на Постановка ветвь, Трэвис запустит сборку, и если все работает, развертывает новую версию в Пипи .

Мы можем проверить журналы сборки, чтобы посмотреть, правильно ли начался процесс развертывания:

И Voilà, на линии 271. Мы видим, что процесс развертывания начался, если вы расширите строку, вы можете увидеть следующие журналы:

Это означает, что наша новая версия была загружена правильно, и теперь мы видим ее доступной в Pypi , автоматически развернут с Трэвис Использование новых токенов API:

Вывод

Это большой шаг вперед для индекса пакета Python, увеличивая безопасность с новыми множественными функциями и уменьшая все характеристики, на которые упорно работать, для Python Сообщество, благодаря Упаковочная рабочая группа и грант от Открытый технологический фонд Отказ

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

И это все! Отсюда вы можете автоматизировать процесс выпуска новых версий пакета, поэтому давайте пойдем, опубликовать что-то в Пипи 🐍.

Спасибо @Darwing1210 и @guadamzjj Для просмотра этого документа.

С ❤️ от 🇳🇮.

Оригинал: “https://dev.to/oscarmcm/distributing-pypi-packages-using-api-tokens-in-travisci-1n9i”