artifacts-keyring
"Automatically retrieve credentials for Azure Artifacts."
What it is and what it does
artifacts-keyring is a thin wrapper around Microsoft's artifacts-credprovider that extends the Python keyring library to handle authentication with Azure Artifacts feeds. Once installed, it automatically integrates with pip and twine, allowing you to publish packages to or install packages from Azure DevOps-hosted package repositories without manually managing credentials.
The package works by hooking into keyring's credential lookup mechanism, so pip and twine discover and use it automatically. It supports environment variable configuration for non-interactive scenarios and can operate in different deployment contexts, including Docker. The underlying credential provider handles the complexity of Azure authentication; this package simply makes it available to Python's standard packaging tools.
Use it for:
- Publishing internal Python packages to an Azure Artifacts feed using twine without hardcoding credentials.
- Installing private packages from an Azure DevOps feed in CI/CD pipelines with automatic credential discovery.
- Setting up local development environments to consume packages from Azure Artifacts feeds without manual token management.
- Running pip or twine in non-interactive environments (e.g., containers) by configuring ARTIFACTS_KEYRING_NONINTERACTIVE_MODE.
- Integrating Azure Artifacts authentication into existing Python workflows that already use keyring for credential storage.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides automatic credential retrieval for Azure Artifacts feeds, integrating with keyring to enable pip and twine to authenticate with Azure DevOps package repositories.
Yes, if you publish or consume Python packages from Azure Artifacts feeds within Azure DevOps. The package is actively maintained, has no known vulnerabilities, and eliminates manual credential management for pip and twine. Install it only if you actually use Azure Artifacts; it adds no value for other package repositories.
Install
artifacts-keyring on PyPI
pip
pip install artifacts-keyringuv
uv add artifacts-keyringpoetry
poetry add artifacts-keyringInstalling artifacts-keyring
Before you install
Medium install friction due to compiled wheels for multiple Python versions (3.9–3.13) and platforms; if no matching wheel is found, the .NET runtime 8.0.X or later is required. Repository is active with recent commits (2026-08-10) and has been maintained since its initial release in 2019-08-02.
License in practice
Licensed under MIT (permissive), so you may use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install artifacts-keyring
# Then use with pip:
pip install <package_name> --index-url https://pkgs.dev.azure.com/<org>/_packaging/<feed>/pypi/simple
# Or with twine:
twine upload --repository-url https://pkgs.dev.azure.com/<org>/_packaging/<feed>/pypi/upload <dist>
Requires Python 3.9 or higher, pip 19.2 or higher, and twine 1.13.0 or higher. If a platform-specific wheel is unavailable, .NET runtime 8.0.X or later is required.
Verify before relying
- Whether the package works with Azure Artifacts feeds outside of Azure DevOps (e.g., standalone Azure Artifacts instances).
- Performance impact or latency when retrieving credentials from the underlying artifacts-credprovider on first use.
- Compatibility with alternative credential storage backends beyond the default keyring implementation.
Package facts
| License | "MIT" (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 2 — keyring, requests |
| Maintenance | actively maintained — 366 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,293,421/month — #4,099 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: artifacts_keyring-1.0.0-cp310-cp310-macosx_10_15_x86_64.whl; artifacts_keyring-1.0.0-cp310-cp310-macosx_11_0_arm64.whl; artifacts_keyring-1.0.0-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; artifacts_keyring-1.0.0-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; artifacts_keyring-1.0.0-cp310-cp310-win_amd64.whl; artifacts_keyring-1.0.0-cp311-cp311-macosx_10_15_x86_64.whl; artifacts_keyring-1.0.0-cp311-cp311-macosx_11_0_arm64.whl; artifacts_keyring-1.0.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; artifacts_keyring-1.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; artifacts_keyring-1.0.0-cp311-cp311-win_amd64.whl; artifacts_keyring-1.0.0-cp312-cp312-macosx_10_15_x86_64.whl; artifacts_keyring-1.0.0-cp312-cp312-macosx_11_0_arm64.whl; artifacts_keyring-1.0.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; artifacts_keyring-1.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; artifacts_keyring-1.0.0-cp312-cp312-win_amd64.whl; artifacts_keyring-1.0.0-cp313-cp313-macosx_10_15_x86_64.whl; artifacts_keyring-1.0.0-cp313-cp313-macosx_11_0_arm64.whl; artifacts_keyring-1.0.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl; artifacts_keyring-1.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl; artifacts_keyring-1.0.0-cp313-cp313-win_amd64.whl
Tags
More Cryptography packages
Certifi provides Mozilla's curated collection…
copyleft · top 100 on PyPI
cryptographycryptography provides cryptographic recipes and…
permissive · top 100 on PyPI
rsaPure-Python RSA encryption, decryption,…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
azure-identityProvides Microsoft Entra ID token-based…
unclear · top 1,000 on PyPI
PyNaClPyNaCl provides Python bindings to libsodium…
permissive · top 1,000 on PyPI
microsoft-kiota-authentication-azureProvides Azure identity authentication for HTTP…
permissive · top 5,000 on PyPI
keyrings.google-artifactregistry-authA keyring backend that authenticates to Google…
permissive · top 5,000 on PyPI
keyrings.codeartifactProvides AWS CodeArtifact authentication for…
unclear · top 5,000 on PyPI
keyringKeyring provides safe password and credential…
permissive · top 1,000 on PyPI
azure-mgmt-coreProvides ARM-specific extensions to Azure Core…
permissive · top 1,000 on PyPI
azure-keyvault-securitydomainManages security domains for Azure Key Vault…
permissive · top 5,000 on PyPI
keyrings.altProvides alternate keyring backend…
permissive · top 5,000 on PyPI
azure-devopsProvides Python bindings to the Azure DevOps…
permissive · top 5,000 on PyPI
vstsProvides Python bindings to the Azure DevOps…
permissive · top 15,000 on PyPI