我正在使用 python 库 GitPython 来检索两个版本之间更改的所有文件(实际上只有文件数就可以了)。
这是部分代码:
def compare_versions(self, v1, v2, g, repo_name):
#calculating the number of files changed between v1 and v2
try:
repo = g.get_repo(repo_name)
comparison = repo.compare(v1, v2)
changed_files = comparison.files
print("Changed files: ", str(len(changed_files))) # prompts 300 instead of more than 4000
except BaseException as be:
print(f"Base Exception occured for {v1} and {v2} = ", be)
我从这个函数中调用它:
def get_versions_of_repo(self, repo_name):
# Access token or username and password can be used to access a private repository
g = Github(self.access_token, per_page=1000)
print("repo name = ", repo_name)
# Fetch the repository object using the extracted name
try:
repo = g.get_repo(repo_name)
print("repo")
except BaseException as be:
print(be)
# Get all the releases of the repository
releases = repo.get_releases()
print("relases: ", releases)
v1 = "v25.0.5"
v2 = "v26.0.0"
self.compare_versions(v1, v2, g, repo_name)
我只得到文件更改 = 300 但实际上超过 4000 个文件更改,我如何计算所有文件? 有不同的方法吗? 我也试过这个:
#calculating the number of files changed between v1 and v2
compare_url = self.github_api_url+"/repos/nextcloud/server/compare/v26.0.0beta1...v26.0.0"
print(compare_url)
headers = {'Authorization': "Token " + self.access_token}
response = requests.get(compare_url, headers=headers, auth=(self.api_username, self.access_token))
c = response.json()
print(c)
但是再次只检索到 300 个结果。