在你决定克隆它之前,有没有办法看看GitHub上的Git存储库有多大?
这似乎是一个非常明显/基本的统计数据,但我根本找不到如何在GitHub上看到它。
在你决定克隆它之前,有没有办法看看GitHub上的Git存储库有多大?
这似乎是一个非常明显/基本的统计数据,但我根本找不到如何在GitHub上看到它。
当前回答
你可以使用Github API
下面是Python示例:
import requests
if __name__ == '__main__':
base_api_url = 'https://api.github.com/repos'
git_repository_url = 'https://github.com/garysieling/wikipedia-categorization.git'
github_username, repository_name = git_repository_url[:-4].split('/')[-2:] # garysieling and wikipedia-categorization
res = requests.get(f'{base_api_url}/{github_username}/{repository_name}')
repository_size = res.json().get('size')
print(repository_size)
其他回答
@larowlan很棒的示例代码。在新的GitHub API V3中,curl语句需要更新。此外,不再需要登录:
curl https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
例如:
curl https://api.github.com/repos/dotnet/roslyn 2> /dev/null | grep size | tr -dc '[:digit:]'
返回931668 (KB),几乎是GB。
私有回购需要身份验证。一种方法是使用GitHub个人访问令牌:
curl -u myusername:$PERSONAL_ACCESS_TOKEN https://api.github.com/repos/$2/$3 2> /dev/null | grep size | tr -dc '[:digit:]'
对于私有存储库,您需要从https://github.com/settings/tokens获取个人访问令牌。
然后使用以下curl命令获取详细信息(用值替换[token], [owner]和[name]):
curl -u git:[token] https://api.github.com/repos/[owner]/[name] 2> /dev/null | grep size
如前所述,大小的单位可以是MB或KB。
如果您拥有存储库,您可以通过打开帐户设置→存储库(https://github.com/settings/repositories)找到确切的大小,存储库的大小显示在其名称旁边。
如果您不拥有存储库,则可以对其进行分叉,然后在同一位置检查。
注意:您可能是拥有多个存储库的组织的所有者,但在组织内的特定存储库中没有角色。默认情况下,即使您在自己拥有的组织中创建了存储库,也不会添加到repo,因此在设置/存储库中看不到该repo。所以把自己添加到存储库设置(https://github.com/org-name/repo-name/settings)中,在https://github.com/settings/repositories中看到它
有点hack:使用下载压缩文件选项,读取文件大小指示,然后取消它。
我不记得以zip格式下载是否有效,但无论如何,现在这样做只下载当前选择的没有历史记录的分支。
我创建了一个bookmarklet脚本来使用NVRM的答案的方法来做到这一点。
要使用它,请创建一个新书签,为其命名,并将此脚本粘贴到URL字段中。在浏览一个回购时点击这个书签会弹出一个提醒,提醒的大小有兆字节和千字节。
javascript:(()=>{let url=new URL(document.location.href);if(url.origin!="https://github.com"){return}if(url.pathname=="/"){return}let p=url.pathname.slice(1,url.pathname.length);let parts=p.split('/');if(parts.length<2){return}let x=[parts[0],parts[1]].join('/');fetch(`https://api.github.com/repos/${x}`).then(r=>r.json()).then((b)=>alert(`${(b['size']/1000).toFixed(2)}mb (${b['size']}kb)`))})()
你可以使用Github API
下面是Python示例:
import requests
if __name__ == '__main__':
base_api_url = 'https://api.github.com/repos'
git_repository_url = 'https://github.com/garysieling/wikipedia-categorization.git'
github_username, repository_name = git_repository_url[:-4].split('/')[-2:] # garysieling and wikipedia-categorization
res = requests.get(f'{base_api_url}/{github_username}/{repository_name}')
repository_size = res.json().get('size')
print(repository_size)