Azure Artifacts Package Automation
Package a Python script and upload it to an Azure Artifacts Python feed without leaving VS Code.
This extension guides you through the full workflow: selecting a script, entering package details, building the package, uploading it to Azure Artifacts, and showing the install command your team can use.
What this extension does
- Lets you pick the domain package your script belongs to (
vision-kit, plotting-kit, data-kit, or common-kit)
- Adds your script as a named module inside the correct package in the monorepo structure
- Automatically bumps version for existing packages (patch/minor/major)
- Creates the full standard package layout the first time and updates it safely on subsequent runs
- Installs required Python packaging tools when needed
- Updates
~/.pypirc with the repository and username for the selected feed
- Builds the package with
python -m build
- Uploads the package with
python -m twine upload
- Optionally stores your PAT securely in VS Code Secret Storage for reuse
Before you start
Make sure you have:
- VS Code installed
- Python available on your machine
- Access to an Azure Artifacts Python feed
- A Personal Access Token (PAT) that can upload packages to that feed
How to use
- Open the Command Palette.
- Run
Azure Artifacts: Package And Upload Python Tool.
- Select the domain package your script belongs to.
- Select the Python script file you want to add.
- Enter the requested details when prompted.
- Point the extension at your monorepo root (the folder that contains the
packages/ folder).
- Wait while the extension places the module, builds the package, and uploads it.
- Copy the generated
pip install command shown at the end.
During the guided flow, the extension asks for:
- Domain package — choose from
vision-kit, plotting-kit, data-kit, or common-kit
- Python script — the file you want to add as a module
- Module name — defaults to the script filename stem; must be lowercase with underscores
- Version handling:
- Existing package: auto bump selection (
patch/minor/major)
- New package: starts at
0.1.0
- Azure Artifacts feed name
- Azure Artifacts repository upload URL
- Azure Artifacts username
- PAT
- Short module description
- Monorepo root folder — the folder that contains the
packages/ directory
- Python executable to use
What happens during packaging
After you provide the inputs, the extension:
- Ensures
build, wheel, and twine are available for the selected Python executable.
- Updates
~/.pypirc with the selected feed settings.
- Places your script as
<module_name>.py inside packages/<package>/src/<package>/.
- Creates
__init__.py, pyproject.toml, README.md, and CHANGELOG.md the first time only — safe to run again when adding more modules.
- Updates
VERSION_MODULE_INDEX.md with the current version, module name, description, and timestamp.
- Builds both source and wheel distributions.
- Uploads the result to your Azure Artifacts feed.
The generated layout follows the standard monorepo structure:
packages/
vision_kit/
src/
vision_kit/
__init__.py
your_module.py
tests/
pyproject.toml
README.md
CHANGELOG.md
PAT handling
- Your PAT is never written to
~/.pypirc.
- The upload step passes the PAT through the environment only for the upload process.
- You can save the PAT securely in VS Code Secret Storage and reuse it later.
- If you save more than one PAT, you can clear them later from the command palette.
Commands
Azure Artifacts: Package And Upload Python Tool
Azure Artifacts: Clear Saved PATs
Install
Install from the VS Code Marketplace:
- Open the Extensions view in VS Code.
- Search for
Azure Artifacts Package Automation.
- Select the extension and click Install.
CLI install:
code --install-extension Ajayakumar-Vijayakumar.azure-artifacts-package-automation