PyPI API Tokens

Aug 06, 2019

Sí, el titulo no miente, PyPI ahora ofrece tokens para cargar nuestras librerías al registro, y si alguna vez intentaste automatizar este proceso usando algún servicio de CI/CD como Travis es muy probable que no te sientas tan cómodo compartiendo tus contraseñas y que esta sea la mejor noticia.

En los últimos meses, se han agregado diferentes métodos de seguridad para el inicio de sesión como: autenticación de dos factores (2FA) y el soporte de contraseña única (TOTP) basada en tiempo a fines de mayo y soporte de dispositivo de seguridad física a mediados de junio. Más de 1600 usuarios han comenzado a usar dispositivos de seguridad física o aplicaciones TOTP para proteger mejor sus cuentas, durante la semana pasada, más del 7.8% de los inicios de sesión en PyPI.org han sido protegidos por 2FA, frente al 3% en el mes de junio (Fuente: http://pyfound.blogspot.com).

Pues bien, la mas reciente mejora hacia PyPI, es que ahora podemos usar API tokens para cargar nuestros paquetes, tanto al registro principal, como al de registro de pruebas.

NOTA esta nueva funcionalidad aun esta en fase de pruebas, que tú puedes ayudar a probar.

Como funciona?

Primero tienes que ir a tu cuenta de PyPI, y en el apartado de "Account settings", casi al final se encuentra una sección, para agregar un nuevo API token:

PyPI Tokens

Y selecciona la opción "Add API token", una vez seleccionado, en la siguiente pagina veras el formulario para crear un nuevo token:

Nuevo token

Aquí puedes elegir el alcance de tu nuevo token: puedes crear un token que puede cargar a todos los proyectos que mantienes o posees, o puedes limitar su alcance a un solo proyecto.

Nuevo token

Una vez creado el token, recuerda guardarlo, por que sera la única vez que lo puedas ver; en la pantalla de administración de tokens puedes ver cuándo se crearon y utilizaron por última vez cada uno, puedes revocar un token sin revocar otros, y sin tener que cambiar tu contraseña en PyPI o en los archivos de configuración.

PyPI Tokens

Y listo, ahora puedes usar los tokens para cargar de forma automatizada tus paquetes al registro; en el proximo post, explicare como usar los tokens con tu servicio de CI/CD.

Puedes leer el post original en el blog de la Python Software Foundation.