NathanVaughn / poetry-azure-artifacts-plugin

Poetry plugin to handle Azure Artifacts authentication
https://pypi.org/project/poetry-azure-artifacts-plugin
MIT License
0 stars 0 forks source link
azure-artifacts azure-devops poetry-plugin

Poetry Azure Artifacts Plugin

Ruff pre-commit GitHub license PyPi versions PyPi downloads


This is a Poetry plugin that transparently takes care of authentication with Azure Artifacts feeds. This is heavily based on semgrep/poetry-codeartifact-plugin.

Usage

This plugin requires Python 3.9+ which is a bit less lenient than Poetry itself.

Install this plugin with

poetry self add poetry-azure-artifacts-plugin

or

pipx inject poetry poetry-azure-artifacts-plugin

In your pyproject.toml file, add your Azure Artifacts feed URL as a source.

[[tool.poetry.source]]
name = "ado"
url  = "https://pkgs.dev.azure.com/{organization}/_packaging/{feed}/pypi/simple/"
priority = "primary"

Now, when running poetry install, or poetry lock, Poetry will automatically fetch credentials for your Azure Artifacts feed, utilizing artifacts-keyring. Note: artifacts-keyring requires dotnet to be installed and available in your PATH.

This works by recognizing authentication failures to URLs containing pkgs.dev.azure.com or pkgs.visualstudio.com. If you have an on-premises Azure DevOps server that works with artifacts-keyring, instead make the source name include the text azure-artifacts:

[[tool.poetry.source]]
name = "azure-artifacts-feed"
url  = "https://devops.mydomain.com/{organization}/_packaging/{feed}/pypi/simple/"
priority = "primary"

Development

Use the provided devcontainer or run the following for local development:

# Install uv
# https://docs.astral.sh/uv/getting-started/installation/
uv tool install vscode-task-runner
vtr install