Azure Artifacts에서 저장된 npm 패키지 대량 삭제
Azure DevOps REST API를 사용하여 Azure Artifacts 피드에서 모든 npm 패키지를 일괄 삭제하는 Powershell 스크립트를 만들었습니다. 패키지에 대한 전체 권한이 있는 PAT(Personal Access Token)를 생성하고 스크립트 코드에 붙여넣어야 합니다. 조직 이름과 피드 ID도 추가해야 합니다.
함께 제공되는 버전이 있는 패키지가 많은 경우 스크립트를 여러 번 실행해야 합니다. 한 번에 검색할 수 있는 저장된 패키지 버전의 수에는 제한이 있습니다.
스크립트가 작동하는 방식은 저장된 npm 패키지의 모든 버전을 검색하고 버전을 반복하고 삭제하는 것입니다. Azure Artifacts에서 패키지(npm 또는 NuGet)를 삭제하려면 특정 패키지 버전을 삭제해야 합니다. 패키지 버전을 검색하는 URL을 변경하여 패키지의 특정 버전만 삭제하려는 경우 스크립트를 수정할 수 있습니다.
다음은 스크립트입니다. 로컬 컴퓨터에서 실행하십시오.
<# Azure DevOps REST API #>
$url1 = 'https://feeds.dev.azure.com/{organization}/_apis/packaging/Feeds/{feed_id}/packages?protocolType=npm&includeAllVersions=true&api-version=7.1-preview.1'
$Token = '{Personal_Access_Token}'
if ($Token -eq "") {
Write-Host 'PAT not set'
exit 1
}
$AzureAuthHeader1 = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "", $Token)))
$headers1 = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers1.Add("Authorization", ("Basic {0}" -f $AzureAuthHeader1))
$headers1.Add("Content-Type", "application/json")
$response1 = Invoke-RestMethod -Uri $url1 -Method GET -Headers $headers1
$packages = $response1.value
<# Loops through returned npm package versions and deletes them #>
Foreach ($i in $packages)
{
$packageName = $i.name
Write-Host $i.name -BackgroundColor cyan
$allversions = $i.versions
Foreach ($v in $allversions) {
$packageVersion = $v.version
$url2 = 'https://pkgs.dev.azure.com/{organization}/_apis/packaging/feeds/{feed_id}/npm/{0}/versions/{1}?api-version=7.1-preview.1' -f $packageName, $packageVersion
$AzureAuthHeader2 = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "", $Token)))
$headers2 = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers2.Add("Authorization", ("Basic {0}" -f $AzureAuthHeader2))
$headers2.Add("Content-Type", "application/json")
$response2 = Invoke-RestMethod -Uri $url2 -Method DELETE -Headers $headers2
Write-Host 'deleted' + $response2.value
}
}
GitHub Gist link .
Reference
이 문제에 관하여(Azure Artifacts에서 저장된 npm 패키지 대량 삭제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mdailey77/bulk-delete-stored-npm-packages-from-azure-artifacts-3879텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)