我想使用Github API for Python来获取每个存储库并检查对存储库的最后更改。
import git
from git import Repo
from github import Github
repos = []
g = Github('Dextron12', 'password')
for repo in g.get_user().get_repos():
repos.append(str(repo))
#check for last commit to repository HERE
这将所有存储库都保存在我的帐户上,但是我希望能够对每个存储库进行最后一次更改,并且我想要这样的结果:
13:46:45
我也不介意现在还是12小时。
答案 0 :(得分:1)
根据文档,您可以获得的最大信息是提交的SHA和提交日期:
https://pygithub.readthedocs.io/en/latest/examples/Commit.html#
以您的示例为例:
g = Github("usar", "pass")
for repo in g.get_user().get_repos():
master = repo.get_branch("master")
sha_com = master.commit
commit = repo.get_commit(sha=sha_com)
print(commit.commit.author.date)
答案 1 :(得分:1)
from github import Github
from datetime import datetime
repos = {}
g = Github('username', 'password')
for repo in g.get_user().get_repos():
master = repo.get_branch('master')
sha_com = master.commit
sha_com = str(sha_com).split('Commit(sha="')
sha_com = sha_com[1].split('")')
sha_com = sha_com[0]
commit = repo.get_commit(sha_com)
#get repository name
repo = str(repo).split('Repository(full_name="Dextron12/')
repo = repo[1].split('")')
#CONVERT DATETIME OBJECT TO STRING
timeObj = commit.commit.author.date
timeStamp = timeObj.strftime("%d-%b-%Y (%H:%M:%S)")
#ADD REPOSITORY NAME AND TIMESTAMP TO repos DICTIONARY
repos[repo[0]] = timeStamp
print(repos)
我使用Damian Lattenero建议的方法获得了时间戳。测试他的代码后,我得到一个AssertationError,这是因为sha_commit
返回的是Commit =(“ sha”)而不是“ sha”。因此,我从sha_com
中删除了括号并提交,将其全部留给了sha,然后我没有收到该错误,它可以正常工作。然后,我使用datetime将时间戳转换为字符串并将其保存到字典中