GitHub爬取/解析工具PyDriller

简介

PyDriller是一个python软件,它可以帮助开发人员轻松提取git的仓库信息,比如commit详细信息,开发人员信息, 修改文件的信息,修改代码的信息以及源码。

官方文档的信息是最详细的,建议直接看官方文档。
官方文档:https://pydriller.readthedocs.io/en/latest/
github地址:https://github.com/ishepard/pydriller
视频教程:https://www.youtube.com/watch?v=7Oui4bP9eN8

准备工作

1、python3.4或者更新的版本。我使用的python3.6.13。
2、安装git。我用的anaconda,所以就在自己创建的虚拟环境中安装git。注意不是在电脑系统中安装git。
直接pip安装:

pip install git

3、安装pydriller。

pip install pydriller

解析commit信息

每一条commit中能解析的值。
hash (str):commit哈希值(每一条commit网址地址中最后的值)
msg (str): commit标题/描述
author (Developer): commit作者
committer (Developer): commit提交人
branches (List[str]):这条commit包含的分支
in_main_branch (Bool): 这条commit是否在main分支
merge (Bool): 这条commit是否是一条merge commit
modified_files (List[ModifiedFile]):这条commit修改的文件名
project_name (str): 项目名
project_path (str): 项目路径
deletions (int): 这条commit删除的代码行数
insertions (int): 这条commit增加的代码行数
lines (int): 增加和删除的代码行数总计
files (int):修改的文件数

遍历仓库中的所有commit:

from pydriller import Repository

repo = 'https://github.com/ishepard/pydriller'
for commit in Repository(repo).traverse_commits():
    print(commit.msg)
    print(commit.hash)
    print(commit.insertions)
    print(commit.deletions)

解析commit中修改代码的文件信息

old_path: 文件原本的路径 (可能为空,如果文件是新增的)
new_path: 文件的新路径 (可能为空,如果文件被删除)
filename: 文件名
change_type: type of the change: can be Added, Deleted, Modified, or Renamed.
diff: 文件被修改的代码
diff_parsed: 以字典形式呈现被修改的代码,字典有两个key:added, deleted
added_lines: 增加的代码行数
deleted_lines: 删除的代码行数
source_code: 这个文件的源码
source_code_before: 修改前的文件源码
methods: 这个文件的所有方法
changed_methods: 所有有修改的方法
nloc: 这个文件的代码行数

遍历所有commit中所有文件的相关信息

from pydriller import Repository

repo = 'https://github.com/ishepard/pydriller'
for commit in Repository(repo).traverse_commits():
    for m_file in commit.modified_files:
        print(m_file.filename)
        print(m_file.old_path)
        print(m_file.added_lines)

run代码后如果长时间没反应建议更换网络再run。我用手机热点才能把代码成功run起来。

(未完)

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值