1. 概述
Azure DevOps Repository 是一款用于版本控制的工具,用于管理文件变更。在日常使用中,有时会因为误操作删除仓库,而 Azure DevOps 的界面中并没有类似“回收站”的显式入口来恢复仓库。
本文将介绍如何通过 Azure DevOps REST API 结合 Azure CLI 和 Postman 发起请求,查找并恢复被删除的仓库。
2. 在 Azure DevOps 中生成 Token
要调用 Azure DevOps 的 REST API,我们需要一个 Personal Access Token(PAT)进行身份认证。操作步骤如下:
- 登录 Azure DevOps Portal
- 点击右上角用户头像 ➡️ User settings ➡️ Personal access tokens
- 点击 New Token 创建一个新的 Token
在弹出窗口中填写 Token 名称、组织(Organization)、有效期,并勾选 Full access 权限:
生成后立即复制 Token 并妥善保存:
⚠️ 注意:Token 只显示一次,关闭窗口后无法再次查看,建议及时保存。
3. 使用 Azure CLI 恢复仓库
3.1 登录 Azure DevOps
在命令行中使用以下命令登录 Azure DevOps(替换 {organization}
为你的组织名):
az devops login --organization https://dev.azure.com/{organization}/
系统会提示你输入刚才生成的 Token。
3.2 获取被删除的仓库列表
执行如下命令获取指定项目下的所有被删除仓库:
az devops invoke \
--area git \
--resource recycleBinRepositories \
--route-parameters "project={project}" \
--http-method GET \
--api-version 7.1-preview
示例输出如下:
{
"continuation_token": null,
"count": 1,
"value": [
{
"deletedDate": "2024-08-15T10:00:19.707Z",
"id": "9328c878-d5c0-443a-9821-8666eddffcd8",
"name": "deleted-repository"
}
]
}
✅ 重点:记录下目标仓库的 id
字段。
3.3 构造恢复请求体
创建一个 payload.json
文件,内容如下:
{
"deleted": false
}
3.4 执行恢复操作
使用如下命令发起恢复请求(替换 {project}
和 {repositoryId}
):
az devops invoke \
--area git \
--resource recycleBinRepositories \
--route-parameters "project={project}" "repositoryId={repositoryId}" \
--http-method PATCH \
--in-file payload.json \
--api-version 7.1-preview
如果返回的 state
字段为 wellFormed
,说明恢复成功。
4. 使用 Postman 恢复仓库
4.1 获取被删除仓库列表
打开 Postman,新建一个 GET 请求:
https://dev.azure.com/{organization}/{project}/_apis/git/deletedrepositories?api-version=5.1-preview.1
设置 Authentication 为 Basic Auth,用户名留空,密码填写你的 PAT:
返回的 JSON 数据中包含被删除仓库的 name
和 id
。
4.2 执行恢复请求
新建一个 PATCH 请求:
https://dev.azure.com/{organization}/{project}/_apis/git/recycleBin/repositories/{repositoryId}?api-version=5.1-preview.1
设置 Authentication 同上,Body 设置为 raw JSON,内容如下:
{
"deleted": false
}
发送请求后,仓库将被恢复:
✅ 建议:恢复完成后,建议及时 撤销(Revoke)该 Token,避免安全风险。
5. 总结
本文介绍了两种恢复 Azure DevOps 被删除仓库的方法:
方法 | 工具 | 说明 |
---|---|---|
CLI | Azure CLI | 适合脚本化操作,自动化恢复 |
GUI | Postman | 适合调试、快速恢复 |
关键步骤包括:
- ✅ 创建具有 Full 权限的 PAT
- ✅ 获取被删除仓库的 ID
- ✅ 构造 JSON 请求体并调用 REST API
- ✅ 恢复后及时撤销 Token
⚠️ 踩坑提醒:
- Token 生成后只显示一次,务必及时保存
- 请求 URL 中的
api-version
版本号要匹配 - 如果返回
403 Forbidden
,请检查 Token 权限是否为 Full Access
通过本文方法,你可以在没有图形界面“回收站”的情况下,安全、有效地恢复被误删的 Azure DevOps 仓库。