小文件不包含整個測試套件或其固定裝置。這是需要大部分空間的。
$ du -sh __tests__
26M __tests__
這是因爲這兩個大文件都或多或少地包裝了庫本身進行下載,而發行包是一個內置的神器僅包含發行代碼。它由scripts/build-dist.sh生產。它不包含任何測試,因爲在(已經測試過的)版本發行版中不需要這些測試。
如果你想從Github使用API獲取這個,應該這樣的工作。
#!/usr/bin/env python3
import json
import requests
import shutil
headers = {'Accept': 'application/vnd.github.v3+json'}
author_name = "yarnpkg"
repo_name = "yarn"
tag_name = "v0.23.4"
download_path = "/tmp/{}-{}.tar.gz".format(repo_name, tag_name)
# To get latest release, sub in this URL instead:
# /repos/:owner/:repo/releases/latest
r = requests.get(
"https://api.github.com/repos/{}/{}/releases/tags/{}".format(
author_name,
repo_name,
tag_name,
),
headers=headers)
if r.status_code == 200:
json_response = r.json()
for asset in json_response["assets"]:
if asset["name"] == "{}-{}.tar.gz".format(repo_name, tag_name):
download_url = asset["browser_download_url"]
print("Downloading to {}".format(download_path))
r2 = requests.get(download_url, stream=True)
with open(download_path, "wb") as out_file:
shutil.copyfileobj(r2.raw, out_file)
print("Download complete.")
else:
print('ERROR: GitHub response code {} unexpected.'.format(
r.status_code
))
您可以在GitHub API documentation閱讀更多關於這一點。
我想你可以使用git數據API來獲取repo的全部內容......但是在這一點上使用git clone可能更容易一些?
下載檔案,解壓縮,比較其內容。 – axiac