如何恢复意外永久删除的组织默认organization-scoped feed
修复步骤
前置准备
- 账号需具备组织级「Project Collection Administrator」权限,无权限先联系组织管理员开通
- 提前获取Azure DevOps组织名称,组织访问地址格式为
https://dev.azure.com/{组织名} - 生成个人访问令牌(PAT):
- 进入组织设置-个人访问令牌页面,选择新建令牌
- 令牌作用域仅勾选
Packaging (Read, write, & manage),设置合适过期时间后生成,妥善保存生成的PAT值(仅展示一次)
操作流程
所有操作通过REST API执行,无需进入报错的Artifacts页面,本地打开PowerShell执行命令即可。
- 先查询可恢复的已删除feed
将命令内占位符替换为你的实际信息后执行:
$orgName = "你的组织名" $pat = "你生成的PAT" $base64Auth = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(":$($pat)")) $headers = @{Authorization = "Basic $base64Auth"} # 获取所有已删除的feed列表 $deletedFeeds = Invoke-RestMethod -Uri "https://feeds.dev.azure.com/$orgName/_apis/packaging/feeds?includeDeleted=true&api-version=7.1-preview.1" -Method Get -Headers $headers $deletedFeeds.value | Select-Object id, name, isProjectScoped
- 恢复或新建组织级默认feed
- 如果返回结果中存在
isProjectScoped值为false、名称与原默认feed一致的记录(初始默认feed名称通常与组织名相同),复制该条记录的id,执行恢复命令:
$targetFeedId = "查询到的已删除feed的id" Invoke-RestMethod -Uri "https://feeds.dev.azure.com/$orgName/_apis/packaging/feeds/$targetFeedId/restore?api-version=7.1-preview.1" -Method Post -Headers $headers
等待2-5分钟待恢复生效即可,恢复后的feed与初始自动生成的组织级默认feed完全一致。
- 如果查询结果中找不到对应已删除feed,说明已过15天的可恢复窗口,直接执行命令新建组织级feed:
$createBody = @{ name = "默认feed名称,建议与组织名保持一致" isProjectScoped = $false description = "Organization scoped default feed" } | ConvertTo-Json $newFeed = Invoke-RestMethod -Uri "https://feeds.dev.azure.com/$orgName/_apis/packaging/feeds?api-version=7.1-preview.1" -Method Post -Body $createBody -ContentType "application/json" -Headers $headers
- 修复Artifacts入口报错
新建feed完成后,执行命令将该feed设置为组织默认feed,从根源解决入口加载报错问题:
$settingBody = @{ defaultFeedId = $newFeed.id } | ConvertTo-Json Invoke-RestMethod -Uri "https://feeds.dev.azure.com/$orgName/_apis/packaging/settings?api-version=7.1-preview.1" -Method Patch -Body $settingBody -ContentType "application/json" -Headers $headers
等待1分钟左右配置生效,清空浏览器缓存重新登录组织,点击Artifacts即可正常进入,不会再触发报错。
注意事项
- 手动新建的项目范围(project scoped)feed无法解决该报错,Artifacts入口默认加载组织范围默认feed配置,找不到对应组织级feedID就会抛出异常,和项目级feed无关
- 执行命令返回403错误时,优先检查PAT权限配置是否正确,以及当前账号是否属于组织管理员组
- 不要反复刷新报错的Artifacts页面等待自动恢复,删除的feed配置不会自动重建,必须通过API手动恢复或重新绑定默认feed
内容的提问来源于stack exchange,提问作者Nick Locke
相关产品推荐
相关产品推荐

