如何使用 GitLab API 获取合并请求的存储库大小?

问题描述

我似乎无法找到如何使用 GitLab API 获取合并请求的存储库大小。这是 GitLab 合并请求 API 页面https://docs.gitlab.com/ee/api/merge_requests.html

我可以看到,可以通过 Projects API https://docs.gitlab.com/ee/api/projects.html 获取项目的存储库大小,但看不到如何将其应用于分支或合并请求。

(我也想知道提出合并请求的用户的访问级别,但除非我弄错了,访问级别信息仅对存储库管理员可用?)

谢谢

解决方法

没有用于此的 API,因为“项目大小”不是在主分支或主分支中跟踪的文件的大小,而是项目的总大小,包括跟踪的文件,整个 git 历史记录( .git 目录中的所有内容)等。例如,如果您要从 FontAwesome 下载 5k 个图像并将它们提交到您的 git 存储库,然后稍后删除它们,您的项目大小仍会反映它们,因为它们在git 历史。您可以在项目的“项目概览”页面上看到这一点。在项目名称下,您将看到诸如提交数、分支数、标签数之类的内容,然后是两个名为 Files 和 Storage 的属性。 Files 值是 git 为您的主/主分支跟踪的单个文件的原始文件大小。 Storage 是项目的总大小,包括 git 历史、提交消息等。

要获取任何分支中文件的大小,您可以:

#1: check out that branch
git checkout my_feature_branch

# get the file size
du -sh $(pwd)

du 命令(用于磁盘使用)以字节为单位显示给定文件或目录以及每个子目录的磁盘使用情况。 -s 标志告诉 du 仅显示(s)指定目录的总磁盘使用量。 -h 标志告诉 du 以 (h) 人类可读格式(KB、MB、GB、TB 等,而不是字节)给出结果。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...