Add pdm package manager support

PDM is a modern Python package manager using pyproject.toml (PEP 621).
Uses the same MITM-only proxy approach as poetry/uv/pipx — all malware
detection and minimum package age enforcement happens at the proxy layer
by intercepting PyPI requests.
This commit is contained in:
Chris Ingram 2026-04-06 13:01:42 +01:00
parent 3f47ae890c
commit 1eb4fe05fd
13 changed files with 448 additions and 3 deletions

View file

@ -102,6 +102,12 @@ export const knownAikidoTools = [
ecoSystem: ECOSYSTEM_PY,
internalPackageManagerName: "pipx",
},
{
tool: "pdm",
aikidoCommand: "aikido-pdm",
ecoSystem: ECOSYSTEM_PY,
internalPackageManagerName: "pdm",
},
// When adding a new tool here, also update the documentation for the new tool in the README.md
];

View file

@ -69,6 +69,10 @@ function pipx
wrapSafeChainCommand "pipx" $argv
end
function pdm
wrapSafeChainCommand "pdm" $argv
end
function printSafeChainWarning
set original_cmd $argv[1]

View file

@ -65,6 +65,10 @@ function pipx() {
wrapSafeChainCommand "pipx" "$@"
}
function pdm() {
wrapSafeChainCommand "pdm" "$@"
}
function printSafeChainWarning() {
# \033[43;30m is used to set the background color to yellow and text color to black
# \033[0m is used to reset the text formatting

View file

@ -70,6 +70,10 @@ function pipx {
Invoke-WrappedCommand "pipx" $args $MyInvocation.Line $MyInvocation.OffsetInLine
}
function pdm {
Invoke-WrappedCommand "pdm" $args $MyInvocation.Line $MyInvocation.OffsetInLine
}
function Write-SafeChainWarning {
param([string]$Command)