如何检查 Azure DevOps 上存储库的大小?

问题描述 投票:0回答:3

我想检查远程存储库的大小,而不将其下载到本地磁盘。 GitLab 自动显示存储库的大小,包括 Git 文件和 Git LFS 文件的细分。这在 Azure DevOps 上也可行吗?

我在网上搜索了解决方案,找到的唯一解决方案是将存储库下载到本地磁盘并运行“git count-objects -vH”命令。

azure-devops repository size
3个回答
1
投票

此外,您可以尝试其余API:https://learn.microsoft.com/en-us/rest/api/azure/devops/git/repositories/list?view=azure-devops-rest-7.1&tabs= HTTP

size - 整数 - 存储库的压缩大小(字节)。

举个例子:

enter image description here


1
投票

要通过 git clone 以编程方式获取未压缩文件的大小,我们可以使用以下方法 -

下面的 azure DevOps Rest api 仅向我们提供压缩后的大小,而不是存储库的完整扩展大小。 https://learn.microsoft.com/en-us/rest/api/azure/devops/git/repositories/list?view=azure-devops-rest-7.1&tabs=HTTP

enter image description here

要计算在 git lfs 中跟踪的文件的大小以及在 git lfs 上未跟踪的文件的大小,我们可以使用以下方法。 我们可以使用完全递归和元数据内容来运行项目列表 api。

https://learn.microsoft.com/en-us/rest/api/azure/devops/git/items/list?view=azure-devops-rest-7.2&tabs=HTTP

enter image description here

GET https://dev.azure.com/ {组织}/{项目}/_apis/git/repositories/ {repositoryId}/items?recursionLevel=Full&includeContentMetadata=true&api-version=7.2-preview.1

这将为我们提供所有 blob 对象 ID 和树对象 ID 的完整列表。

enter image description here

为了获取 LFS 文件的完整解压缩大小,我们可以使用以下 API 调用 –

https://learn.microsoft.com/en-us/rest/api/azure/devops/git/blobs/get-blob?view=azure-devops-rest-7.0&tabs=HTTP

获取https://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/blobs/ {sha1}?$format=octetstream&api-version=7.0

在 SHA 中,我们将放置从项目列表 REST API 获取的 LFS 文件的对象 ID。

enter image description here

对于 LFS 中未跟踪的文件。我们可以使用相同的 API 将 json 格式代替八位字节。

GEThttps://dev.azure.com/{organization}/{project}/_apis/git/repositories/{repositoryId}/blobs/{sha1}?$format=json&api-version=7.0

enter image description here

没有可以触发的单个 API 的现成解决方案可以为您提供 git 存储库中所有文件(包括 LFS 文件)的未压缩文件大小。考虑到我们不想通过克隆来获取相同的信息,您必须利用上述其余 API 创建一个客户脚本,该脚本会迭代对象以获取文件到文件的大小。


0
投票

az CLI工具的azure-devops扩展包括一个方便的函数,用于调用Shamrai Aleksander的答案中提到的API,处理诸如获取身份验证令牌之类的事情:

$ az repos show --org https://dev.azure.com/YOUR-ORG --project YOUR-PROJECT --repository YOUR-REPO

{
  "name": "YOUR-REPO",
  "size": 123456,
  // ...
}

如果您尚未安装扩展程序,则在您第一次尝试运行上述命令时,系统应该会提示您安装它。

© www.soinside.com 2019 - 2024. All rights reserved.