Skip to content

Commit 0dfe5ba

Browse files
committed
Adding additional features (e.g., commit date)
1 parent 04d1eb8 commit 0dfe5ba

File tree

2 files changed

+97
-32
lines changed

2 files changed

+97
-32
lines changed

README.md

Lines changed: 45 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -25,38 +25,51 @@ if __name__ == '__main__':
2525

2626
### Parsed Features
2727

28-
|Columns |Type|Description |
29-
|--------------------|----|-------------------------------------------------------------------------------------------|
30-
|repo_owner |str |Repository Owner |
31-
|repo_name |str |Repository Name |
32-
|sha |str |Target Commit SHA |
33-
|message |str |Associated commit message |
34-
|file_name |str |Name of file altered in patch |
35-
|file_number |int |File number in patch |
36-
|file_extension |str |File extension |
37-
|total_files_changed |int |Number of files changed at commit |
38-
|raw_file_patch |str |The raw patch for the entire file |
39-
|patch_number |int |Patch instance |
40-
|total_patches |int |Total number of patches per file |
41-
|raw_patch_header |str |Header of the patch (@@ -A,X +B,Y @@) |
42-
|raw_patch |str |The raw patch for a single patch |
43-
|original_code |str |The left side (parent commit state) of the git diff in GitHub. Raw code. -'s are stripped. |
44-
|original_line_start |int |Original line start number (@@ -**A**,X +B,Y @@) |
45-
|original_line_length|int |Original line end (@@ -A,**X** +B,Y @@) |
46-
|original_line_end |int |Original_line_start + original_line_length |
47-
|modified_code |str |The right side (target commit state) of the git diff in GitHub. Raw code. +'s are stripped.|
48-
|modified_line_start |int |Modified line start number (@@ -A,X +**B**,Y @@) |
49-
|modified_line_length|int |Modified line end (@@ -A,X +B,**Y** @@) |
50-
|modified_line_end |int |Modified_line_start + modified_line_length |
51-
|additions |int |Added lines count in a patch |
52-
|added_code |str |Raw code added during patch |
53-
|deletions |int |Deleted lines count in a patch |
54-
|deleted_code |str |Raw code deleted during patch |
55-
|changes |int |additions + deletions |
56-
|status |str |GitHub status tag at file level (e.g., modified) |
57-
|total_additions |int |Total lines added for a file |
58-
|total_deletions |int |Total lines deleted for a file |
59-
|total_changes |int |Total lines changed for a file (total_additions + total_deletions)
28+
|Columns |Type |Description |
29+
|-----------------------------|-----|-------------------------------------------------------------------------------------------|
30+
|repo_owner |str |Repository Owner |
31+
|repo_name |str |Repository Name |
32+
|sha |str |Target Commit SHA |
33+
|message |str |Associated commit message |
34+
|file_name |str |Name of file altered in patch |
35+
|file_number |int |File number in patch |
36+
|file_extension |str |File extension |
37+
|total_files_changed |int |Number of files changed at commit |
38+
|raw_file_patch |str |The raw patch for the entire file |
39+
|patch_number |int |Patch instance |
40+
|total_patches |int |Total number of patches per file |
41+
|raw_patch_header |str |Header of the patch (@@ -A,X +B,Y @@) |
42+
|raw_patch |str |The raw patch for a single patch |
43+
|original_code |str |The left side (parent commit state) of the git diff in GitHub. Raw code. -'s are stripped. |
44+
|original_line_start |int |Original line start number (@@ -**A**,X +B,Y @@) |
45+
|original_line_length |int |Original line end (@@ -A,**X** +B,Y @@) |
46+
|original_line_end |int |Original_line_start + original_line_length |
47+
|modified_code |str |The right side (target commit state) of the git diff in GitHub. Raw code. +'s are stripped.|
48+
|modified_line_start |int |Modified line start number (@@ -A,X +**B**,Y @@) |
49+
|modified_line_length |int |Modified line end (@@ -A,X +B,**Y** @@) |
50+
|modified_line_end |int |Modified_line_start + modified_line_length |
51+
|additions |int |Added lines count in a patch |
52+
|added_code |str |Raw code added during patch |
53+
|deletions |int |Deleted lines count in a patch |
54+
|deleted_code |str |Raw code deleted during patch |
55+
|changes |int |additions + deletions |
56+
|status |str |GitHub status tag at file level (e.g., modified) |
57+
|total_additions |int |Total lines added for a file |
58+
|total_deletions |int |Total lines deleted for a file |
59+
|total_changes |int |Total lines changed for a file (total_additions + total_deletions) |
60+
|commit_author_name |str |Author name of commit |
61+
|commit_author_login |str |Author login of commit |
62+
|commit_author_email |str |Author email of commit |
63+
|commit_author_date |str |Author commit date |
64+
|commit_committer_name |str |Committer name of commit |
65+
|commit_committer_login |str |Committer login of commit |
66+
|commit_committer_email |str |Committer email of commit |
67+
|commit_committer_date |str |Committer commit date |
68+
|commit_tree_sha |str |Commit tree SHA |
69+
|commit_tree_url |str |Commit tree URL |
70+
|commit_verification_verified |bool |Boolean verfication status |
71+
|commit_verification_reason |str |Verfication reason |
72+
|parents |list |Parent commit SHAs of target SHA
6073

6174
## Contributing
6275
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

src/patchparser/github_parser.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,19 @@ def __init__(self, repo_owner: str, repo_name: bool, sha: str) -> object:
4747
self.total_file_additions = None
4848
self.total_file_deletions = None
4949
self.total_file_changes = None
50+
self.commit_author_name = None
51+
self.commit_author_login = None
52+
self.commit_author_email = None
53+
self.commit_author_date = None
54+
self.commit_committer_name = None
55+
self.commit_committer_login = None
56+
self.commit_committer_email = None
57+
self.commit_committer_date = None
58+
self.commit_tree_sha = None
59+
self.commit_tree_url = None
60+
self.commit_verification_verified = None
61+
self.commit_verification_reason = None
62+
self.parents = None
5063

5164

5265
def parse_commit_info(commit_info: list, parsed_commit: CommitParse) -> list:
@@ -159,6 +172,19 @@ def parse_commit_info(commit_info: list, parsed_commit: CommitParse) -> list:
159172
temp_parsed_commit.total_file_additions = total_file_additions
160173
temp_parsed_commit.total_file_deletions = total_file_deletions
161174
temp_parsed_commit.total_file_changes = total_file_changes
175+
temp_parsed_commit.commit_author_name = parsed_commit.commit_author_name
176+
temp_parsed_commit.commit_author_login = parsed_commit.commit_author_login
177+
temp_parsed_commit.commit_author_email = parsed_commit.commit_author_email
178+
temp_parsed_commit.commit_author_date = parsed_commit.commit_author_date
179+
temp_parsed_commit.commit_committer_name = parsed_commit.commit_committer_name
180+
temp_parsed_commit.commit_committer_login = parsed_commit.commit_committer_login
181+
temp_parsed_commit.commit_committer_email = parsed_commit.commit_committer_email
182+
temp_parsed_commit.commit_committer_date = parsed_commit.commit_committer_date
183+
temp_parsed_commit.commit_tree_sha = parsed_commit.commit_tree_sha
184+
temp_parsed_commit.commit_tree_url = parsed_commit.commit_tree_url
185+
temp_parsed_commit.commit_verification_verified = parsed_commit.commit_verification_verified
186+
temp_parsed_commit.commit_verification_reason = parsed_commit.commit_verification_reason
187+
temp_parsed_commit.parents = parsed_commit.parents
162188

163189
"""Append the class as a dictionary to the data list"""
164190
data.append(temp_parsed_commit.__dict__)
@@ -178,6 +204,19 @@ def parse_commit_info(commit_info: list, parsed_commit: CommitParse) -> list:
178204
temp_parsed_commit.total_file_additions = total_file_additions
179205
temp_parsed_commit.total_file_deletions = total_file_deletions
180206
temp_parsed_commit.total_file_changes = total_file_changes
207+
temp_parsed_commit.commit_author_name = parsed_commit.commit_author_name
208+
temp_parsed_commit.commit_author_login = parsed_commit.commit_author_login
209+
temp_parsed_commit.commit_author_email = parsed_commit.commit_author_email
210+
temp_parsed_commit.commit_author_date = parsed_commit.commit_author_date
211+
temp_parsed_commit.commit_committer_name = parsed_commit.commit_committer_name
212+
temp_parsed_commit.commit_committer_login = parsed_commit.commit_committer_login
213+
temp_parsed_commit.commit_committer_email = parsed_commit.commit_committer_email
214+
temp_parsed_commit.commit_committer_date = parsed_commit.commit_committer_date
215+
temp_parsed_commit.commit_tree_sha = parsed_commit.commit_tree_sha
216+
temp_parsed_commit.commit_tree_url = parsed_commit.commit_tree_url
217+
temp_parsed_commit.commit_verification_verified = parsed_commit.commit_verification_verified
218+
temp_parsed_commit.commit_verification_reason = parsed_commit.commit_verification_reason
219+
temp_parsed_commit.parents = parsed_commit.parents
181220

182221
"""Append the class as a dictionary to the data list"""
183222
data.append(temp_parsed_commit.__dict__)
@@ -274,6 +313,19 @@ def commit(repo_owner: str, repo_name: str, sha: str, verbose=False) -> list:
274313

275314
"""Add commit message"""
276315
parsed_commit.message = commit_info["commit"]["message"]
316+
parsed_commit.commit_author_name = commit_info["commit"]["author"]["name"]
317+
parsed_commit.commit_author_login = commit_info["author"]["login"]
318+
parsed_commit.commit_author_email = commit_info["commit"]["author"]["email"]
319+
parsed_commit.commit_author_date = commit_info["commit"]["author"]["date"]
320+
parsed_commit.commit_committer_name = commit_info["commit"]["committer"]["name"]
321+
parsed_commit.commit_committer_login = commit_info["committer"]["login"]
322+
parsed_commit.commit_committer_email = commit_info["commit"]["committer"]["email"]
323+
parsed_commit.commit_committer_date = commit_info["commit"]["committer"]["date"]
324+
parsed_commit.commit_tree_sha = commit_info["commit"]["tree"]["sha"]
325+
parsed_commit.commit_tree_url = commit_info["commit"]["tree"]["url"]
326+
parsed_commit.commit_verification_verified = commit_info["commit"]["verification"]["verified"]
327+
parsed_commit.commit_verification_reason = commit_info["commit"]["verification"]["reason"]
328+
parsed_commit.parents = [z["sha"] for z in commit_info["parents"]]
277329

278330
"""Parse the files"""
279331
parsed_files = parse_commit_info(commit_info["files"], parsed_commit)

0 commit comments

Comments
 (0)