From 4721a8d02c8d9e8a1b84093bc135a4ca1932dcfe Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 03:12:34 -0700 Subject: [PATCH 01/12] Still working on the python side, having to rewrite it because I accidently deleted it --- patchpirate.py | 116 +++++++++---------------------------------- patchpirate_copy.py | 118 ++++++++++++++++++++++++++++++++++++++++++++ test.py | 46 +++++++++++++++++ 3 files changed, 186 insertions(+), 94 deletions(-) create mode 100644 patchpirate_copy.py create mode 100644 test.py diff --git a/patchpirate.py b/patchpirate.py index bbbfba1..b99820d 100644 --- a/patchpirate.py +++ b/patchpirate.py @@ -1,7 +1,8 @@ -import requests -from halo import Halo -from colorama import Fore, init -from datetime import datetime +from colorama import Fore, init # Copywrite (c) 2013-2025, Jonathan Hartley (https://github.com/tartley) +from halo import Halo # Copywrite (c) 2016-2025, Singh +import patchpirate # Copywrite (c) 2025, Gratonic (https://github.com/Gratonic) +import json +import os # Initialize colorama with auto reset init(autoreset=True) @@ -9,7 +10,6 @@ # Initialize loading indicator working_indicator = Halo(text=f'Searching user commits...', spinner='pong') - # program banner banner = r""" ______ _ ______ _ @@ -19,100 +19,28 @@ | | / ___ | | |( (___| | | | | | | | / ___ | | |_| ____| |_| \_____| \__)____)_| |_|_| |_|_| \_____| \__)_____) - BY: ┳┓ ┏┓┓ ┏┓ ┏┓• ┏┓┓ - ┣┫┏┓┃┫┃┏ ┫┏┓┃┃┓┓┏ ┫┃ - ┻┛┛ ┗┛┛┗┗┛┛┗┣┛┗┛┗┗┛┗ Version: 1.0.0 + BY: ┳┓ ┏┓┓ ┏┓ ┏┓• ┏┓┓ ┏┓ • + ┣┫┏┓┃┫┃┏ ┫┏┓┃┃┓┓┏ ┫┃ ┃┓┏┓┏┓╋┏┓┏┓┓┏ + ┻┛┛ ┗┛┛┗┗┛┛┗┣┛┗┛┗┗┛┗ and ┗┛┛ ┗┻┗┗┛┛┗┗┗ Version: 1.0.1 ----------------------------------------------------------------- """ -# Display program banner at top +# display program banner at top of the terminal print(f"{Fore.RED}{banner}") -# Optionally use a personal access token for higher rate limits -GITHUB_TOKEN = input(f"{Fore.YELLOW}Enter GitHub Personal Access Token (or press Enter to skip): ").strip() -HEADERS = {'Authorization': f'token {GITHUB_TOKEN}'} if GITHUB_TOKEN else {} - -# Fetch all commits authored by the user across their repositories -def get_user_commits(username): - commits = [] - repos = [] - - page = 1 - while True: - url = f"https://api.github.com/users/{username}/repos?page={page}&per_page=100" - response = requests.get(url, headers=HEADERS) - if response.status_code == 403: - handle_rate_limit(response) - elif response.status_code != 200: - raise Exception(f"Error fetching repos: {response.status_code}") - data = response.json() - if not data: - break - repos.extend(data) - page += 1 - - print(f"{Fore.BLUE}Found {len(repos)} repositories for user {Fore.RED}{username}{Fore.BLUE}.") - - working_indicator.start() - for repo in repos: - repo_name = repo['name'] - owner = repo['owner']['login'] - - page = 1 - while True: - url = f"https://api.github.com/repos/{owner}/{repo_name}/commits?author={username}&page={page}&per_page=100" - response = requests.get(url, headers=HEADERS) - if response.status_code == 403: - handle_rate_limit(response) - elif response.status_code != 200: - break - data = response.json() - if not data: - break - for commit in data: - commits.append({ - 'repo': repo_name, - 'message': commit['commit']['message'], - 'url': commit['html_url'], - 'date': commit['commit']['author']['date'], - 'sha': commit['sha'][:7], - 'email': commit['commit']['author']['email'] - }) - page += 1 - working_indicator.stop() - return commits - -# Handle GitHub rate limiting errors -def handle_rate_limit(response): - reset_timestamp = int(response.headers.get('X-RateLimit-Reset', 0)) - reset_time = datetime.fromtimestamp(reset_timestamp).strftime('%Y-%m-%d %H:%M:%S') - remaining = response.headers.get('X-RateLimit-Remaining', '0') - print(f"\n{Fore.RED}GitHub API rate limit exceeded.") - print(f"{Fore.YELLOW}Remaining requests: {remaining}") - print(f"{Fore.YELLOW}Rate limit resets at: {Fore.CYAN}{reset_time}") - raise Exception("Rate limit hit. Please wait for cooldown or use a personal access token.") - -if __name__ == "__main__": +def clear_data_dir(): username = input(f"{Fore.GREEN}Enter GitHub username: ").strip() - email_addresses = set() - obfuscated = "" - - try: - user_commits = get_user_commits(username) - print(f"{Fore.BLUE}Total commits found: {Fore.RED}{len(user_commits)}") - print("---------------------------------------------------------------------") + GITHUB_TOKEN = input(f"{Fore.YELLOW}Enter GitHub Personal Access Token (or press Enter to skip): ").strip() + user_input = { + "username": username, + "github_token": GITHUB_TOKEN + } + +def collect_user_input(): + pass - for commit in user_commits: - email = commit['email'] - if email: - if email.endswith("noreply.github.com"): - obfuscated = email - else: - email_addresses.add(email) - print(f"\nObfucated noreply address: {Fore.GREEN}{obfuscated}") - print("Email addresses found:") - for email in email_addresses: - print(f"{Fore.GREEN}{email}") +def get_user_commits(): + pass - except Exception as e: - print(f"An error occurred: {e}") +def analysis_and_display_output(): + pass \ No newline at end of file diff --git a/patchpirate_copy.py b/patchpirate_copy.py new file mode 100644 index 0000000..bbbfba1 --- /dev/null +++ b/patchpirate_copy.py @@ -0,0 +1,118 @@ +import requests +from halo import Halo +from colorama import Fore, init +from datetime import datetime + +# Initialize colorama with auto reset +init(autoreset=True) + +# Initialize loading indicator +working_indicator = Halo(text=f'Searching user commits...', spinner='pong') + + +# program banner +banner = r""" + ______ _ ______ _ +(_____ \ _ | | (_____ (_) _ + _____) )____ _| |_ ____| |__ _____) ) ____ _____ _| |_ _____ +| ____(____ (_ _) ___) _ \| ____/ |/ ___|____ (_ _) ___ | +| | / ___ | | |( (___| | | | | | | | / ___ | | |_| ____| +|_| \_____| \__)____)_| |_|_| |_|_| \_____| \__)_____) + + BY: ┳┓ ┏┓┓ ┏┓ ┏┓• ┏┓┓ + ┣┫┏┓┃┫┃┏ ┫┏┓┃┃┓┓┏ ┫┃ + ┻┛┛ ┗┛┛┗┗┛┛┗┣┛┗┛┗┗┛┗ Version: 1.0.0 +----------------------------------------------------------------- +""" + +# Display program banner at top +print(f"{Fore.RED}{banner}") + +# Optionally use a personal access token for higher rate limits +GITHUB_TOKEN = input(f"{Fore.YELLOW}Enter GitHub Personal Access Token (or press Enter to skip): ").strip() +HEADERS = {'Authorization': f'token {GITHUB_TOKEN}'} if GITHUB_TOKEN else {} + +# Fetch all commits authored by the user across their repositories +def get_user_commits(username): + commits = [] + repos = [] + + page = 1 + while True: + url = f"https://api.github.com/users/{username}/repos?page={page}&per_page=100" + response = requests.get(url, headers=HEADERS) + if response.status_code == 403: + handle_rate_limit(response) + elif response.status_code != 200: + raise Exception(f"Error fetching repos: {response.status_code}") + data = response.json() + if not data: + break + repos.extend(data) + page += 1 + + print(f"{Fore.BLUE}Found {len(repos)} repositories for user {Fore.RED}{username}{Fore.BLUE}.") + + working_indicator.start() + for repo in repos: + repo_name = repo['name'] + owner = repo['owner']['login'] + + page = 1 + while True: + url = f"https://api.github.com/repos/{owner}/{repo_name}/commits?author={username}&page={page}&per_page=100" + response = requests.get(url, headers=HEADERS) + if response.status_code == 403: + handle_rate_limit(response) + elif response.status_code != 200: + break + data = response.json() + if not data: + break + for commit in data: + commits.append({ + 'repo': repo_name, + 'message': commit['commit']['message'], + 'url': commit['html_url'], + 'date': commit['commit']['author']['date'], + 'sha': commit['sha'][:7], + 'email': commit['commit']['author']['email'] + }) + page += 1 + working_indicator.stop() + return commits + +# Handle GitHub rate limiting errors +def handle_rate_limit(response): + reset_timestamp = int(response.headers.get('X-RateLimit-Reset', 0)) + reset_time = datetime.fromtimestamp(reset_timestamp).strftime('%Y-%m-%d %H:%M:%S') + remaining = response.headers.get('X-RateLimit-Remaining', '0') + print(f"\n{Fore.RED}GitHub API rate limit exceeded.") + print(f"{Fore.YELLOW}Remaining requests: {remaining}") + print(f"{Fore.YELLOW}Rate limit resets at: {Fore.CYAN}{reset_time}") + raise Exception("Rate limit hit. Please wait for cooldown or use a personal access token.") + +if __name__ == "__main__": + username = input(f"{Fore.GREEN}Enter GitHub username: ").strip() + email_addresses = set() + obfuscated = "" + + try: + user_commits = get_user_commits(username) + print(f"{Fore.BLUE}Total commits found: {Fore.RED}{len(user_commits)}") + print("---------------------------------------------------------------------") + + for commit in user_commits: + email = commit['email'] + if email: + if email.endswith("noreply.github.com"): + obfuscated = email + else: + email_addresses.add(email) + print(f"\nObfucated noreply address: {Fore.GREEN}{obfuscated}") + print("Email addresses found:") + for email in email_addresses: + print(f"{Fore.GREEN}{email}") + + except Exception as e: + print(f"An error occurred: {e}") diff --git a/test.py b/test.py new file mode 100644 index 0000000..64383ff --- /dev/null +++ b/test.py @@ -0,0 +1,46 @@ +import json +import patchpirate +from halo import Halo +import os +from colorama import Fore, init + +# Initialize colorama with auto reset +init(autoreset=True) + +# Initialize loading indicator +working_indicator = Halo(text=f'Searching user commits...', spinner='pong') + +# program banner +banner = r""" + ______ _ ______ _ +(_____ \ _ | | (_____ (_) _ + _____) )____ _| |_ ____| |__ _____) ) ____ _____ _| |_ _____ +| ____(____ (_ _) ___) _ \| ____/ |/ ___|____ (_ _) ___ | +| | / ___ | | |( (___| | | | | | | | / ___ | | |_| ____| +|_| \_____| \__)____)_| |_|_| |_|_| \_____| \__)_____) + + BY: ┳┓ ┏┓┓ ┏┓ ┏┓• ┏┓┓ ┏┓ • + ┣┫┏┓┃┫┃┏ ┫┏┓┃┃┓┓┏ ┫┃ ┃┓┏┓┏┓╋┏┓┏┓┓┏ + ┻┛┛ ┗┛┛┗┗┛┛┗┣┛┗┛┗┗┛┗ and ┗┛┛ ┗┻┗┗┛┛┗┗┗ Version: 1.0.1 +----------------------------------------------------------------- +""" + +# display program banner at top of the terminal +print(f"{Fore.RED}{banner}") + +def clear_data_dir(): + username = input(f"{Fore.GREEN}Enter GitHub username: ").strip() + GITHUB_TOKEN = input(f"{Fore.YELLOW}Enter GitHub Personal Access Token (or press Enter to skip): ").strip() + user_input = { + "username": username, + "github_token": GITHUB_TOKEN + } + +def collect_user_input(): + pass + +def get_user_commits(): + pass + +def analysis_and_display_output(): + pass \ No newline at end of file From 295dedcf387c22dcb453c03d492e7922ac953f6e Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 11:33:57 -0700 Subject: [PATCH 02/12] Finished the python side of the program, everything is now ready. It works much faster with the rust module. I also cleaned up the code a ton and added more comments --- data/input_file.json | 4 + data/output_file.json | 770 ++++++++++++++++++++++++++++++++++++++++++ data/repo_count.txt | 1 + patchpirate.py | 96 +++++- 4 files changed, 863 insertions(+), 8 deletions(-) create mode 100644 data/input_file.json create mode 100644 data/output_file.json create mode 100644 data/repo_count.txt diff --git a/data/input_file.json b/data/input_file.json new file mode 100644 index 0000000..9b99610 --- /dev/null +++ b/data/input_file.json @@ -0,0 +1,4 @@ +{ + "username": "Gratonic", + "github_token": null +} \ No newline at end of file diff --git a/data/output_file.json b/data/output_file.json new file mode 100644 index 0000000..91677cd --- /dev/null +++ b/data/output_file.json @@ -0,0 +1,770 @@ +[ + { + "repo": "Hackesoup", + "message": "added a .gitignore file", + "url": "https://github.com/Gratonic/Hackesoup/commit/e55358de42ce9e96613b740da255c8bdf19c7c2a", + "date": "2025-04-08T03:08:09Z", + "sha": "e55358d", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "test", + "url": "https://github.com/Gratonic/Hackesoup/commit/d59dd515e55b9d5f24f806073dcc123d6d5aaa5f", + "date": "2025-04-08T03:02:20Z", + "sha": "d59dd51", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Completed the first part of the port scanner / network mapper prototype", + "url": "https://github.com/Gratonic/Hackesoup/commit/27e9489cd9fac4bba705f7a61832f25a5407f8c0", + "date": "2025-04-06T05:00:26Z", + "sha": "27e9489", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Added a file under Lib/Tools to put the cool names next to the tool names, in order to avoid confussion", + "url": "https://github.com/Gratonic/Hackesoup/commit/8b1b9759f4537f7afff98afc74c5c29f53e73a51", + "date": "2025-04-05T23:51:55Z", + "sha": "8b1b975", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Removed an uneeded clone of the Tools directory under Lib and added a Completed_Tools directory and Prototypes directory under Lib/Tools for their respective tools", + "url": "https://github.com/Gratonic/Hackesoup/commit/e5b48b929aacb0100fba61aaebc7443924731ddb", + "date": "2025-04-05T23:38:53Z", + "sha": "e5b48b9", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Cleaned up the File Tree", + "url": "https://github.com/Gratonic/Hackesoup/commit/c2ca8467e1f7acf09de0e4a3b0ac2f249637906d", + "date": "2025-03-08T21:53:06Z", + "sha": "c2ca846", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "You can also test the new Menu Interface Portion by simply running Interfaces/hackesoup.py", + "url": "https://github.com/Gratonic/Hackesoup/commit/8250b2d5071d9f1e152f1e228967009395f69388", + "date": "2025-02-24T18:10:40Z", + "sha": "8250b2d", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Menu Interface Portion is done, it can be run from hs_mi.py", + "url": "https://github.com/Gratonic/Hackesoup/commit/a59a618f1666e9d4aa5246df97b4600724ee9a9b", + "date": "2025-02-24T17:51:21Z", + "sha": "a59a618", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Menu Interface Portion is about 100-300 lines from completion", + "url": "https://github.com/Gratonic/Hackesoup/commit/8d7c67656026a9f3aa86b4315cda9e1441628530", + "date": "2025-02-22T02:35:38Z", + "sha": "8d7c676", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Working on hs_UX_menus.py", + "url": "https://github.com/Gratonic/Hackesoup/commit/43b003d3d03ec456a5b3a2736f58ca38cd371802", + "date": "2025-02-21T21:43:54Z", + "sha": "43b003d", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Very close to finishing the menu interface, just need to implement what was done for the port scanner UX menus to the other tool UX menus", + "url": "https://github.com/Gratonic/Hackesoup/commit/46648292b0e59d14c2e207af96eb45b2ffabbb96", + "date": "2025-02-17T08:03:00Z", + "sha": "4664829", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "got some work done in hs_UX_menus.py", + "url": "https://github.com/Gratonic/Hackesoup/commit/d9b6f5df101acc1bae48fa6dd800b5f07666bff2", + "date": "2025-02-17T05:19:29Z", + "sha": "d9b6f5d", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "moved the read me and license to the project root", + "url": "https://github.com/Gratonic/Hackesoup/commit/8ef574d97c63d94444def9c2961e19ac402a318b", + "date": "2025-02-16T20:11:54Z", + "sha": "8ef574d", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Finished the hs_menus, hs_prompts, and hs_validator.py modules...for now at least", + "url": "https://github.com/Gratonic/Hackesoup/commit/3e3c31995a9d14009d3636473d61398b85e82cb0", + "date": "2025-02-16T08:48:56Z", + "sha": "3e3c319", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "nothing major", + "url": "https://github.com/Gratonic/Hackesoup/commit/b22fe192fc81a57081a6a439d56abc8cd4861bc9", + "date": "2025-02-10T00:35:21Z", + "sha": "b22fe19", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Currently rewritting the menu interface, here is the interface so far...", + "url": "https://github.com/Gratonic/Hackesoup/commit/eb9b98a11bf3028bd9b2785ad44d28db30f70332", + "date": "2025-02-09T02:33:13Z", + "sha": "eb9b98a", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Just a quick update", + "url": "https://github.com/Gratonic/Hackesoup/commit/7cf2b906df1f49cfcd8afe830dce35b53069a9bb", + "date": "2025-01-22T04:12:57Z", + "sha": "7cf2b90", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "minor fix to the thread_amount function input validation in the hs_prompts module", + "url": "https://github.com/Gratonic/Hackesoup/commit/2e9226f04e1edb35cf9e753ffbb5e4a60c433ad0", + "date": "2025-01-03T06:22:29Z", + "sha": "2e9226f", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Fixed the hs_prompts module", + "url": "https://github.com/Gratonic/Hackesoup/commit/cfbb490f0b484577dcddcf1338d3e8a141c9d3bb", + "date": "2025-01-03T06:16:34Z", + "sha": "cfbb490", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "fixed the hs_prompts code", + "url": "https://github.com/Gratonic/Hackesoup/commit/1706a05d9f6495e6d627161f327ea9a69a2ea69a", + "date": "2024-12-30T21:38:08Z", + "sha": "1706a05", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Fixed a major issue with the hs_prompts code. I am going to rewrite it because it is currently spaghetti code.", + "url": "https://github.com/Gratonic/Hackesoup/commit/e5422619154ed1083c809d88b7aef85d60ba1b55", + "date": "2024-12-29T22:28:46Z", + "sha": "e542261", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Created the xss payloads file and got all of the payloads for it - 11 files worth (used a script to get the unique payloads [lines])", + "url": "https://github.com/Gratonic/Hackesoup/commit/ad99ce1ac49e3b439fcb25c0be52c5a6adfb09aa", + "date": "2024-12-28T06:06:07Z", + "sha": "ad99ce1", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Nothing important", + "url": "https://github.com/Gratonic/Hackesoup/commit/726d9af801390651ebe9fec85111b579f4b3f1eb", + "date": "2024-12-28T03:17:37Z", + "sha": "726d9af", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Adjusted some things in the Networking Dir", + "url": "https://github.com/Gratonic/Hackesoup/commit/b988e9d804a6a7db8f3cab0030c9dae904e28c7f", + "date": "2024-12-28T03:05:16Z", + "sha": "b988e9d", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Added the directory for the Networking (all code there will be written in C)", + "url": "https://github.com/Gratonic/Hackesoup/commit/446d0d444c21671a96d2016cb9710aca2610d001", + "date": "2024-12-28T03:01:02Z", + "sha": "446d0d4", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Fixed my grammer in the old_version.txt placeholder file", + "url": "https://github.com/Gratonic/Hackesoup/commit/bf67dd5464b76fdafc97bb933c41582dc8a8423c", + "date": "2024-12-28T02:25:53Z", + "sha": "bf67dd5", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Got the imports working for the menu interface file (hs_mi.py)", + "url": "https://github.com/Gratonic/Hackesoup/commit/44d1c3641a50effa3107648516e402de7bdbeddf", + "date": "2024-12-28T02:23:34Z", + "sha": "44d1c36", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Finished the UX Menu Interface", + "url": "https://github.com/Gratonic/Hackesoup/commit/be4d88e2837e979381a1eca05ba1c89ebf8e2c9d", + "date": "2024-12-16T22:03:20Z", + "sha": "be4d88e", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "All UX menus except the destroyer menu are complete", + "url": "https://github.com/Gratonic/Hackesoup/commit/26d358086f55589543f4c5a18bc9b27f1a34080d", + "date": "2024-12-16T10:32:02Z", + "sha": "26d3580", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Pretty much finished the UX menu interface", + "url": "https://github.com/Gratonic/Hackesoup/commit/f0a67f8eff6a2097b6540a5cf8cdd402d3875d4e", + "date": "2024-12-16T09:31:05Z", + "sha": "f0a67f8", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Changed the HS_Modules name back to Modules and made some major progess on the UX menu interface (almost done)", + "url": "https://github.com/Gratonic/Hackesoup/commit/35f3741b8a86c57e5d8ec7e12fc391205bf0e177", + "date": "2024-12-15T20:53:26Z", + "sha": "35f3741", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Fixed import issues", + "url": "https://github.com/Gratonic/Hackesoup/commit/7f18a442389e59ea79f41f18e5cc402dbe553bd8", + "date": "2024-12-14T04:19:11Z", + "sha": "7f18a44", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Moved Config/ up a dir into Main/", + "url": "https://github.com/Gratonic/Hackesoup/commit/a8e735e88787b39ed37aa387fd1509c9fb991bb0", + "date": "2024-12-12T23:01:34Z", + "sha": "a8e735e", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Moves Config into Main and Moved all Interface Files into a new dir called Interfaces nested withing Main/", + "url": "https://github.com/Gratonic/Hackesoup/commit/1ed5e545a189099a0528822d1b18efd0339ea9d0", + "date": "2024-12-12T22:56:24Z", + "sha": "1ed5e54", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "setup.py ready but import errors still occur after local install", + "url": "https://github.com/Gratonic/Hackesoup/commit/92e9699d379224ce164936b3a66e1fc3835d2689", + "date": "2024-12-12T22:51:22Z", + "sha": "92e9699", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Added some legal/copywrite stuff", + "url": "https://github.com/Gratonic/Hackesoup/commit/e9c6d337eb83d20c3cce714b528f8e2e61311cf1", + "date": "2024-12-12T21:38:37Z", + "sha": "e9c6d33", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "menu_dev's name has been changes to hs_menu_titles and it has been moved to Modules/", + "url": "https://github.com/Gratonic/Hackesoup/commit/7acd0441a3e3f71eacb72fff257d17b7bc477cc1", + "date": "2024-12-11T23:26:40Z", + "sha": "7acd044", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Simply forgot to remove the test code at the bottom ofthe script, removed it", + "url": "https://github.com/Gratonic/Hackesoup/commit/038f9f0a9a652a85b6d009a64f6ce51ad13ea405", + "date": "2024-12-11T19:44:14Z", + "sha": "038f9f0", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "fixed an issue with the feet (footer) that was causing a number to be displayed in the feet (footer) output.", + "url": "https://github.com/Gratonic/Hackesoup/commit/37a5e6bd0369d39d7fb9a3236ddea1b6a7045de1", + "date": "2024-12-11T19:42:32Z", + "sha": "37a5e6b", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Fixed a simply error with the class creation and a couple maths errors.", + "url": "https://github.com/Gratonic/Hackesoup/commit/0f1db30f839e72505dbf9479547e96b277cf94ab", + "date": "2024-12-11T19:09:00Z", + "sha": "0f1db30", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "made the 'frankenstien.py' module much more readable and reduced its lines from 185 down to 138", + "url": "https://github.com/Gratonic/Hackesoup/commit/e39c1612807c324895ec4f801ecdd413f8b83291", + "date": "2024-12-11T08:23:42Z", + "sha": "e39c161", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Added an authors.md file under ABOUT/", + "url": "https://github.com/Gratonic/Hackesoup/commit/d931381009d7aed39ff6623d259b365054c104ec", + "date": "2024-12-10T03:38:20Z", + "sha": "d931381", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Changed the directory Scanners name to Tools and added created the tool script files for this version(1.0)", + "url": "https://github.com/Gratonic/Hackesoup/commit/9634ac006e2fbfd32e24386c163777222639e40c", + "date": "2024-12-08T19:59:25Z", + "sha": "9634ac0", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "frankenstien dev module fixed and updated", + "url": "https://github.com/Gratonic/Hackesoup/commit/09210c7cf7afe95dd52a59f6e25b7e5975e505e8", + "date": "2024-12-08T19:38:47Z", + "sha": "09210c7", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Made some changes to the menu_builder, name is now frankenstien.py. Needs some work, has a few errors when running", + "url": "https://github.com/Gratonic/Hackesoup/commit/da561658113c7a6f9a0258664eb4f8312dfe1829", + "date": "2024-12-08T08:53:08Z", + "sha": "da56165", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "File Tree Update", + "url": "https://github.com/Gratonic/Hackesoup/commit/5938a391a3056d5198f2a4474c29fad92b1eb2f9", + "date": "2024-12-08T01:06:09Z", + "sha": "5938a39", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete hackesoup_doc.md, moved to about.mb under Hackersoup_V1/ABOUT/", + "url": "https://github.com/Gratonic/Hackesoup/commit/200c73ad7c47700f76c9f02d326b85bafb7b82c1", + "date": "2024-12-08T00:55:35Z", + "sha": "200c73a", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete README.md from Hackesoup but keep the one in Hackesoup_V1", + "url": "https://github.com/Gratonic/Hackesoup/commit/4b9cbe61246d167956a33d5cc90b4ff7faeaf552", + "date": "2024-12-08T00:47:29Z", + "sha": "4b9cbe6", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete LICENSE in Hackesoup, keep the one in Hackesoup_V1", + "url": "https://github.com/Gratonic/Hackesoup/commit/1ff61917174312c8e4e38b15690fbad4bd814fcb", + "date": "2024-12-08T00:42:16Z", + "sha": "1ff6191", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "File Tree Update Batch 1", + "url": "https://github.com/Gratonic/Hackesoup/commit/79fddc509e20f70dd61c76a5109efed3cea05de3", + "date": "2024-12-08T00:31:04Z", + "sha": "79fddc5", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "File Tree Update Batch 1", + "url": "https://github.com/Gratonic/Hackesoup/commit/aa1a842b6142e697a1311b9fff3f0ce6c653923f", + "date": "2024-12-08T00:09:52Z", + "sha": "aa1a842", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete hs_prompts.py", + "url": "https://github.com/Gratonic/Hackesoup/commit/08d0d90e2b7d3c6cefd7b4eef153457340fcf90b", + "date": "2024-12-01T06:00:03Z", + "sha": "08d0d90", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete hs_menus.py", + "url": "https://github.com/Gratonic/Hackesoup/commit/6adbaa59c0dfe91a1aadbab36fef9aa60e1dda3d", + "date": "2024-12-01T05:59:47Z", + "sha": "6adbaa5", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Documentation and Planning\n\nContains The Following:\r\n1) Current Plans For This Version\r\n2) Documentation of Tools and Features\r\n3) Plans For Future Updates", + "url": "https://github.com/Gratonic/Hackesoup/commit/1fe01498f03f720de1893ef8783eab31cb1c5146", + "date": "2024-12-01T05:58:47Z", + "sha": "1fe0149", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete cli_dev.py", + "url": "https://github.com/Gratonic/Hackesoup/commit/c4b409f29f89433918b3bfd8e59e5a62bf7ab8aa", + "date": "2024-12-01T05:56:47Z", + "sha": "c4b409f", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete hackesoup_doc.md", + "url": "https://github.com/Gratonic/Hackesoup/commit/8252403af05033b3c4323d05dc1564564a44a78b", + "date": "2024-12-01T05:56:18Z", + "sha": "8252403", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Merge branch 'Hackesoup_V1' into Hackesoup", + "url": "https://github.com/Gratonic/Hackesoup/commit/0f369cb3aaab0702061e7e0dc1e834d9416d6cbb", + "date": "2024-12-01T05:16:44Z", + "sha": "0f369cb", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Hackesoup Planning and Documentation\n\nContains The Following:\r\n1) Documentation\r\n2) Plans For This Version (v1)\r\n3) Plans For Future Versions", + "url": "https://github.com/Gratonic/Hackesoup/commit/94d48db896f0d1b1f03b6019c5d2c2ef70949860", + "date": "2024-11-30T05:41:31Z", + "sha": "94d48db", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete hackesoup_doc.md", + "url": "https://github.com/Gratonic/Hackesoup/commit/ef8d105a3b8b0e825e8074f324272d0e6b2f0934", + "date": "2024-11-30T05:39:09Z", + "sha": "ef8d105", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Hackesoup Documentation and Planning\n\nContains the following:\r\n1) Documentation - tools, features, etc.\r\n2) Plan For This Version\r\n3) Plans For Futures Versions", + "url": "https://github.com/Gratonic/Hackesoup/commit/ef1788597d4b1b26c02bfc9c84bbbde098d8280e", + "date": "2024-11-30T05:37:48Z", + "sha": "ef17885", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete hackesoup_doc.md", + "url": "https://github.com/Gratonic/Hackesoup/commit/8d993db10d469bdc490a7b2e4992a96fbbc85b83", + "date": "2024-11-30T05:35:03Z", + "sha": "8d993db", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Hackesoup Plannning and Doccumentation\n\nPlanning and Doccumentation for Hackesoup.", + "url": "https://github.com/Gratonic/Hackesoup/commit/403947ee4d25d19de9e6bfcdb72d09c5c6d559d7", + "date": "2024-11-30T04:40:56Z", + "sha": "403947e", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete hackesoup_doc.md", + "url": "https://github.com/Gratonic/Hackesoup/commit/d0664029bbd49136a69f4c98ca47966102d29dba", + "date": "2024-11-30T04:38:58Z", + "sha": "d066402", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Hackesoup Menus\n\nMenus for the Hackesoup Basic Menu Interface. Made a couple of updates", + "url": "https://github.com/Gratonic/Hackesoup/commit/c75f9b55d287c41d209a847e496d16ec75f11521", + "date": "2024-11-30T04:38:34Z", + "sha": "c75f9b5", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete hs_menus.py", + "url": "https://github.com/Gratonic/Hackesoup/commit/781eda4a8663bfdb57876c26c00efe6f324f5520", + "date": "2024-11-30T04:37:05Z", + "sha": "781eda4", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Hackesoup Prompts\n\nPrompts for the basic menu interface", + "url": "https://github.com/Gratonic/Hackesoup/commit/3429c93d93e7f965628c35c912b0da698ae52d71", + "date": "2024-11-30T04:35:40Z", + "sha": "3429c93", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Hackesoup Menus Module\n\nContains the toolbox menu and all of the tool option menus.", + "url": "https://github.com/Gratonic/Hackesoup/commit/856ded04af151a7fca9154821f651569c1271400", + "date": "2024-11-28T10:00:36Z", + "sha": "856ded0", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete hs_prompts.py", + "url": "https://github.com/Gratonic/Hackesoup/commit/a528d12b947e012579a848dc0c3f801fbea0b37b", + "date": "2024-11-28T09:58:23Z", + "sha": "a528d12", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Hackesoup Documentation\n\nContains Information About The Following:\r\n\r\n1) Current tools and their features\r\n2) Currently available interfaces\r\n3) Planned updates", + "url": "https://github.com/Gratonic/Hackesoup/commit/84c2be0e2ca49a28062d8a27f55f715f81928cc0", + "date": "2024-11-28T06:45:28Z", + "sha": "84c2be0", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Hackesoup Prompts Module\n\nThis file contains all of the functions that prompt the user for input when needed. (EX: during the tool setup process)", + "url": "https://github.com/Gratonic/Hackesoup/commit/3e634e59578c0d14ee329c386d8a8855ad580a7f", + "date": "2024-11-28T02:00:39Z", + "sha": "3e634e5", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Delete hs_prompts.py", + "url": "https://github.com/Gratonic/Hackesoup/commit/51a847436cc4780b9097fff4a7c31f57720085ec", + "date": "2024-11-28T01:56:59Z", + "sha": "51a8474", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Hackesoup Prompts Modules\n\nThis module contains all the function that are used to prompt the user for input when needed. (ex: during the tool setup process)", + "url": "https://github.com/Gratonic/Hackesoup/commit/e30b1784aea7294b52d2fe71ee026bc7ad01959f", + "date": "2024-11-28T01:48:38Z", + "sha": "e30b178", + "email": "enchantelic@proton.me" + }, + { + "repo": "Hackesoup", + "message": "Initial commit", + "url": "https://github.com/Gratonic/Hackesoup/commit/394303e662c4823c030504844136c1bb07ba0fb4", + "date": "2024-11-27T23:49:36Z", + "sha": "394303e", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Update README.md\n\nAdded the installation instructions for pip3 to the README along with OS support information. (All OS's are supported ;] )", + "url": "https://github.com/Gratonic/Menataur/commit/9ad0548616a9cefcf85239bc6b58d1e95c52fd08", + "date": "2025-04-10T02:48:24Z", + "sha": "9ad0548", + "email": "189929383+Gratonic@users.noreply.github.com" + }, + { + "repo": "Menataur", + "message": "Just some final fixes", + "url": "https://github.com/Gratonic/Menataur/commit/5501a22e9c79d3826529bbeb1150e4455bab5ea3", + "date": "2025-04-10T01:30:27Z", + "sha": "5501a22", + "email": "189929383+Gratonic@users.noreply.github.com" + }, + { + "repo": "Menataur", + "message": "Fixed some small mistakes in the README example", + "url": "https://github.com/Gratonic/Menataur/commit/64535e40225c9756bceb921d7436a33ffd58e25a", + "date": "2025-04-10T01:25:51Z", + "sha": "64535e4", + "email": "189929383+Gratonic@users.noreply.github.com" + }, + { + "repo": "Menataur", + "message": "Merge pull request #1 from FailurePoint/patch-1\n\nAdded more comprehensive example data to readme", + "url": "https://github.com/Gratonic/Menataur/commit/47866f4fbf3d2daea0bb5eadc43a28d553cc9171", + "date": "2025-04-10T01:18:28Z", + "sha": "47866f4", + "email": "189929383+Gratonic@users.noreply.github.com" + }, + { + "repo": "Menataur", + "message": "Update example_usage.py", + "url": "https://github.com/Gratonic/Menataur/commit/9a6420e6b3708bbf52e49024a70b34c6efb1475c", + "date": "2025-04-09T23:15:21Z", + "sha": "9a6420e", + "email": "189929383+Gratonic@users.noreply.github.com" + }, + { + "repo": "Menataur", + "message": "Create menataur_workflow.yml", + "url": "https://github.com/Gratonic/Menataur/commit/5cc8e82f4d1bb79e1994569357575b9ea2e50b4b", + "date": "2025-04-09T22:59:59Z", + "sha": "5cc8e82", + "email": "189929383+Gratonic@users.noreply.github.com" + }, + { + "repo": "Menataur", + "message": "some finishing touches", + "url": "https://github.com/Gratonic/Menataur/commit/0d0c4f49d8832bcf5d907570325a05ed4855c109", + "date": "2025-04-09T22:19:02Z", + "sha": "0d0c4f4", + "email": "189929383+Gratonic@users.noreply.github.com" + }, + { + "repo": "Menataur", + "message": "Just so simple things have been added and made it into a PyPi module", + "url": "https://github.com/Gratonic/Menataur/commit/348c11b08fe4ab2fe3780d007f401b4200fabc3b", + "date": "2025-04-09T22:13:03Z", + "sha": "348c11b", + "email": "189929383+Gratonic@users.noreply.github.com" + }, + { + "repo": "Menataur", + "message": "Update README.md", + "url": "https://github.com/Gratonic/Menataur/commit/31d6c69690e658e4045d6d048ad4cd57875be832", + "date": "2025-02-09T19:20:00Z", + "sha": "31d6c69", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Update LICENSE", + "url": "https://github.com/Gratonic/Menataur/commit/4da311229d897d9f38eca75183e7281ed03fd57c", + "date": "2025-02-09T19:09:10Z", + "sha": "4da3112", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Update README.md", + "url": "https://github.com/Gratonic/Menataur/commit/9465d90dfac47d52063ca3b217055c22d5fdaf77", + "date": "2025-02-09T19:08:15Z", + "sha": "9465d90", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Delete About directory", + "url": "https://github.com/Gratonic/Menataur/commit/712487f020965972b3f1a3e37ab054070971403d", + "date": "2025-02-09T18:59:54Z", + "sha": "712487f", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Delete Legal directory", + "url": "https://github.com/Gratonic/Menataur/commit/113fef85bba1220f77fac613f53218c69c1db6bb", + "date": "2025-02-09T18:59:43Z", + "sha": "113fef8", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Create LICENSE", + "url": "https://github.com/Gratonic/Menataur/commit/d5549061911d573fb64624e4b3b17a55825b7197", + "date": "2025-02-09T18:58:36Z", + "sha": "d554906", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "README.md", + "url": "https://github.com/Gratonic/Menataur/commit/74454ec831c92065875ee22353d296aaa182a3eb", + "date": "2025-02-09T18:50:11Z", + "sha": "74454ec", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Updated the name of the module", + "url": "https://github.com/Gratonic/Menataur/commit/7412b747291108c04d135c2c2acb1e4e1d78e119", + "date": "2025-02-09T18:45:53Z", + "sha": "7412b74", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Copyright update for the colorama module", + "url": "https://github.com/Gratonic/Menataur/commit/d25ae1173d916dca5e10e92363859e79f83d0876", + "date": "2025-02-08T20:25:14Z", + "sha": "d25ae11", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Finished Everything", + "url": "https://github.com/Gratonic/Menataur/commit/37d1c92cc50ca3f5f198aecccfd5d92048acfc03", + "date": "2025-02-02T05:54:37Z", + "sha": "37d1c92", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Almost finished, rewrote the whole thing, easy to read now and works way better", + "url": "https://github.com/Gratonic/Menataur/commit/90d3c1cae3a8c7b1d0a23a732a2ff385f162f682", + "date": "2025-02-01T08:04:31Z", + "sha": "90d3c1c", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Got Minotaur working somewhat but it is in a buggy and the code is spaghetti code, at the moment", + "url": "https://github.com/Gratonic/Menataur/commit/25e506e50cd48e26e5f9454db7403e0f8a93b625", + "date": "2025-01-31T23:24:01Z", + "sha": "25e506e", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "Work in progress, about 60% done", + "url": "https://github.com/Gratonic/Menataur/commit/e2a2606ec86851751bf8d904c22d1b394b0ad82c", + "date": "2025-01-30T04:53:40Z", + "sha": "e2a2606", + "email": "enchantelic@proton.me" + }, + { + "repo": "Menataur", + "message": "creation", + "url": "https://github.com/Gratonic/Menataur/commit/56eac1c23fe1a0584d56edd799246c0062f692b7", + "date": "2025-01-22T03:56:36Z", + "sha": "56eac1c", + "email": "enchantelic@proton.me" + }, + { + "repo": "PatchPirate", + "message": "Still working on the python side, having to rewrite it because I accidently deleted it", + "url": "https://github.com/Gratonic/PatchPirate/commit/4721a8d02c8d9e8a1b84093bc135a4ca1932dcfe", + "date": "2025-04-19T10:12:34Z", + "sha": "4721a8d", + "email": "189929383+Gratonic@users.noreply.github.com" + } +] \ No newline at end of file diff --git a/data/repo_count.txt b/data/repo_count.txt new file mode 100644 index 0000000..00750ed --- /dev/null +++ b/data/repo_count.txt @@ -0,0 +1 @@ +3 diff --git a/patchpirate.py b/patchpirate.py index b99820d..eb51059 100644 --- a/patchpirate.py +++ b/patchpirate.py @@ -1,9 +1,17 @@ +# :: Imports :: # + from colorama import Fore, init # Copywrite (c) 2013-2025, Jonathan Hartley (https://github.com/tartley) from halo import Halo # Copywrite (c) 2016-2025, Singh -import patchpirate # Copywrite (c) 2025, Gratonic (https://github.com/Gratonic) +import piratescanner # Copywrite (c) 2025, Gratonic (https://github.com/Gratonic) import json import os +# :: Global Variables :: # + +username = "" + +# :: Functionality :: # + # Initialize colorama with auto reset init(autoreset=True) @@ -29,18 +37,90 @@ print(f"{Fore.RED}{banner}") def clear_data_dir(): + os.remove("./data/input_file.json") + os.remove("./data/output_file.json") + os.remove("./data/repo_count.txt") + + +def collect_user_input(): + # loads the username variable into the function because it is modified and will be used later + global username + + # prompts the user for their target GitHub user and gives them the option to use an API token username = input(f"{Fore.GREEN}Enter GitHub username: ").strip() GITHUB_TOKEN = input(f"{Fore.YELLOW}Enter GitHub Personal Access Token (or press Enter to skip): ").strip() + # stores the input as a dictionary so it converts nicely to JSON, GITHUB_TOKEN is null (or None in python) if one was not given user_input = { "username": username, - "github_token": GITHUB_TOKEN + "github_token": GITHUB_TOKEN if GITHUB_TOKEN else None } - -def collect_user_input(): - pass + # dumps the input data as JSON into a JSON input_file stored under ./data + with open("./data/input_file.json", "w") as input_file: + json.dump(user_input, input_file, indent=4) def get_user_commits(): - pass + # prints a message letting the user know that the program has began scanning + print(f"{Fore.GREEN}Starting the scanner") + + # starts the working indicator + working_indicator.start() + + # scans the targeted users github and stores the output has JSON and Text files stored under ./data + # NOTE: This function was written in rust + piratescanner.get_user_commits_sync() + + # stops the working indicator and makes it disappear + working_indicator.stop() + +def analyse_and_display_output(): + # opens the text repo_count file and collects the information related to the toal repository amount + with open("./data/repo_count.txt", "r") as repo_count_file: + repo_count = repo_count_file.readlines()[0].strip("\n") + + # displays the total amount of repos found + print(f"{Fore.BLUE}Found {repo_count} repositories for user {Fore.RED}{username}{Fore.BLUE}.") + + # opens the JSON output file and collects the discovered information/data + with open("./data/output_file.json", "r") as output_file: + user_commits = json.load(output_file) + + # displays the total amount of commits found + print(f"{Fore.BLUE}Total commits found: {Fore.RED}{len(user_commits)}") + # prints a line so things look a little cleaner + print("---------------------------------------------------------------------") + + # used to store the non-duplicate email address(es) + email_addresses = set() + # used to store the obfuscated (AKA no-reply) email address + obfuscated = "" + + # attempts to display the collected information/data + try: + for commit in user_commits: + email = commit["email"] + if email: + if email.endswith("noreply.github.com"): + obfuscated = email + else: + email_addresses.add(email) + + print(f"\nObfucated noreply address: {Fore.GREEN}{obfuscated}") + print("Email address(es) found:") + for email in email_addresses: + print(f"{Fore.GREEN}{email}") + except Exception as e: + print(f"An unexpected error has occurred: {e}") + -def analysis_and_display_output(): - pass \ No newline at end of file +if __name__ == "__main__": + # clears the data directory if it has data, ignores this step if it doesn't + try: + clear_data_dir() + except: + pass + # collects the user input and stores it as JSON under ./data + collect_user_input() + # runs the scanner and stores the output as JSON under ./data + get_user_commits() + # analyzes and displays the collected sensitive information/data + analyse_and_display_output() \ No newline at end of file From 691bfa4f66cfc4315e65dcfe210deb5ceaa54246 Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 12:06:50 -0700 Subject: [PATCH 03/12] Updated the README and requirements file, and also added a boiler plate to program file --- README.md | 24 +++++++-- data/output_file.json | 8 +++ patchpirate.py | 15 +++++- patchpirate_copy.py | 118 ------------------------------------------ requirements.txt | 3 +- test.py | 46 ---------------- 6 files changed, 42 insertions(+), 172 deletions(-) delete mode 100644 patchpirate_copy.py delete mode 100644 test.py diff --git a/README.md b/README.md index b317d9f..c4d2b35 100644 --- a/README.md +++ b/README.md @@ -3,17 +3,31 @@ Github Recon/OSINT Software for finding personal email adresses . PatchPirate is a Recon/OSINT software for mass processing GitHub commit and repo data to find unintentionally exposed private email addresses from a GitHub username or account via the GitHub API. -## Instalation and use +## Installation and Use Requires python 3.11+ with pip. -To install PatchPirate on Linux run: `git clone https://github.com/FailurePoint/PatchPirate.git & cd PatchPirate & python3 -m pip install -r requirements.txt` -To run it, from the folder it is installed in run: `python3 patchpirate.py` + +To install PatchPirate on Linux run: + +`git clone https://github.com/FailurePoint/PatchPirate.git & cd PatchPirate & python3 -m pip install -r requirements.txt` + +Make sure to install the dependencies using this command from the program directory: + +`pip install -r requirements.txt` + +To run it, from the folder it is installed in run: + +`python3 patchpirate.py` ## Usage and rate limmits -Usage is self obvious... please dont ask me how to use it... just use your brain for 30 secconds. it's not that hard. +Usage is self obvious... please dont ask us how to use it... just use your brain for 30 secconds. it's not that hard. GitHub imposes a rate limmit on unauthenticated users for API access of 60 requests/hr. the usage of the API varies per scan, but is roughly the same as the amount of public repos the target maintains. -If 60 requests is not going to be enough, you can authenticated using a Personal Acess Token (PAT) and unlock up to 5000 requests an hour. [How do I get one](https://www.geeksforgeeks.org/how-to-generate-personal-access-token-in-github/)? +If 60 requests is not going to be enough, you can run an authenticated scan using a Personal Access Token (PAT) and unlock up to 5000 requests an hour. + +## How do I get a personal access token for an authenticated scan? + +https://www.geeksforgeeks.org/how-to-generate-personal-access-token-in-github/ ## Screenshots ![Menu](Screenshots/menu.png) diff --git a/data/output_file.json b/data/output_file.json index 91677cd..09676c5 100644 --- a/data/output_file.json +++ b/data/output_file.json @@ -759,6 +759,14 @@ "sha": "56eac1c", "email": "enchantelic@proton.me" }, + { + "repo": "PatchPirate", + "message": "Finished the python side of the program, everything is now ready. It works much faster with the rust module. I also cleaned up the code a ton and added more comments", + "url": "https://github.com/Gratonic/PatchPirate/commit/295dedcf387c22dcb453c03d492e7922ac953f6e", + "date": "2025-04-19T18:33:57Z", + "sha": "295dedc", + "email": "189929383+Gratonic@users.noreply.github.com" + }, { "repo": "PatchPirate", "message": "Still working on the python side, having to rewrite it because I accidently deleted it", diff --git a/patchpirate.py b/patchpirate.py index eb51059..34cba28 100644 --- a/patchpirate.py +++ b/patchpirate.py @@ -1,3 +1,15 @@ +# :: Program Information :: # + +""" +Program Name: PatchPirate +Description: A brief description of what your program does. +Authors: Br0k3nPix3l (https://github.com/FailurePoint) and Gratonic (https://github.com/Gratonic) +License: MIT +Date: 4/19/2025 +Version: 1.1.0 +""" + + # :: Imports :: # from colorama import Fore, init # Copywrite (c) 2013-2025, Jonathan Hartley (https://github.com/tartley) @@ -29,7 +41,7 @@ BY: ┳┓ ┏┓┓ ┏┓ ┏┓• ┏┓┓ ┏┓ • ┣┫┏┓┃┫┃┏ ┫┏┓┃┃┓┓┏ ┫┃ ┃┓┏┓┏┓╋┏┓┏┓┓┏ - ┻┛┛ ┗┛┛┗┗┛┛┗┣┛┗┛┗┗┛┗ and ┗┛┛ ┗┻┗┗┛┛┗┗┗ Version: 1.0.1 + ┻┛┛ ┗┛┛┗┗┛┛┗┣┛┗┛┗┗┛┗ and ┗┛┛ ┗┻┗┗┛┛┗┗┗ Version: 1.1.0 ----------------------------------------------------------------- """ @@ -41,7 +53,6 @@ def clear_data_dir(): os.remove("./data/output_file.json") os.remove("./data/repo_count.txt") - def collect_user_input(): # loads the username variable into the function because it is modified and will be used later global username diff --git a/patchpirate_copy.py b/patchpirate_copy.py deleted file mode 100644 index bbbfba1..0000000 --- a/patchpirate_copy.py +++ /dev/null @@ -1,118 +0,0 @@ -import requests -from halo import Halo -from colorama import Fore, init -from datetime import datetime - -# Initialize colorama with auto reset -init(autoreset=True) - -# Initialize loading indicator -working_indicator = Halo(text=f'Searching user commits...', spinner='pong') - - -# program banner -banner = r""" - ______ _ ______ _ -(_____ \ _ | | (_____ (_) _ - _____) )____ _| |_ ____| |__ _____) ) ____ _____ _| |_ _____ -| ____(____ (_ _) ___) _ \| ____/ |/ ___|____ (_ _) ___ | -| | / ___ | | |( (___| | | | | | | | / ___ | | |_| ____| -|_| \_____| \__)____)_| |_|_| |_|_| \_____| \__)_____) - - BY: ┳┓ ┏┓┓ ┏┓ ┏┓• ┏┓┓ - ┣┫┏┓┃┫┃┏ ┫┏┓┃┃┓┓┏ ┫┃ - ┻┛┛ ┗┛┛┗┗┛┛┗┣┛┗┛┗┗┛┗ Version: 1.0.0 ------------------------------------------------------------------ -""" - -# Display program banner at top -print(f"{Fore.RED}{banner}") - -# Optionally use a personal access token for higher rate limits -GITHUB_TOKEN = input(f"{Fore.YELLOW}Enter GitHub Personal Access Token (or press Enter to skip): ").strip() -HEADERS = {'Authorization': f'token {GITHUB_TOKEN}'} if GITHUB_TOKEN else {} - -# Fetch all commits authored by the user across their repositories -def get_user_commits(username): - commits = [] - repos = [] - - page = 1 - while True: - url = f"https://api.github.com/users/{username}/repos?page={page}&per_page=100" - response = requests.get(url, headers=HEADERS) - if response.status_code == 403: - handle_rate_limit(response) - elif response.status_code != 200: - raise Exception(f"Error fetching repos: {response.status_code}") - data = response.json() - if not data: - break - repos.extend(data) - page += 1 - - print(f"{Fore.BLUE}Found {len(repos)} repositories for user {Fore.RED}{username}{Fore.BLUE}.") - - working_indicator.start() - for repo in repos: - repo_name = repo['name'] - owner = repo['owner']['login'] - - page = 1 - while True: - url = f"https://api.github.com/repos/{owner}/{repo_name}/commits?author={username}&page={page}&per_page=100" - response = requests.get(url, headers=HEADERS) - if response.status_code == 403: - handle_rate_limit(response) - elif response.status_code != 200: - break - data = response.json() - if not data: - break - for commit in data: - commits.append({ - 'repo': repo_name, - 'message': commit['commit']['message'], - 'url': commit['html_url'], - 'date': commit['commit']['author']['date'], - 'sha': commit['sha'][:7], - 'email': commit['commit']['author']['email'] - }) - page += 1 - working_indicator.stop() - return commits - -# Handle GitHub rate limiting errors -def handle_rate_limit(response): - reset_timestamp = int(response.headers.get('X-RateLimit-Reset', 0)) - reset_time = datetime.fromtimestamp(reset_timestamp).strftime('%Y-%m-%d %H:%M:%S') - remaining = response.headers.get('X-RateLimit-Remaining', '0') - print(f"\n{Fore.RED}GitHub API rate limit exceeded.") - print(f"{Fore.YELLOW}Remaining requests: {remaining}") - print(f"{Fore.YELLOW}Rate limit resets at: {Fore.CYAN}{reset_time}") - raise Exception("Rate limit hit. Please wait for cooldown or use a personal access token.") - -if __name__ == "__main__": - username = input(f"{Fore.GREEN}Enter GitHub username: ").strip() - email_addresses = set() - obfuscated = "" - - try: - user_commits = get_user_commits(username) - print(f"{Fore.BLUE}Total commits found: {Fore.RED}{len(user_commits)}") - print("---------------------------------------------------------------------") - - for commit in user_commits: - email = commit['email'] - if email: - if email.endswith("noreply.github.com"): - obfuscated = email - else: - email_addresses.add(email) - print(f"\nObfucated noreply address: {Fore.GREEN}{obfuscated}") - print("Email addresses found:") - for email in email_addresses: - print(f"{Fore.GREEN}{email}") - - except Exception as e: - print(f"An error occurred: {e}") diff --git a/requirements.txt b/requirements.txt index e5b51aa..9855a53 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ # requirements.txt +piratescanner certifi==2025.1.31 charset-normalizer==3.4.1 colorama==0.4.6 @@ -10,4 +11,4 @@ requests==2.32.3 six==1.17.0 spinners==0.0.24 termcolor==3.0.1 -urllib3==2.3.0 +urllib3==2.3.0 \ No newline at end of file diff --git a/test.py b/test.py deleted file mode 100644 index 64383ff..0000000 --- a/test.py +++ /dev/null @@ -1,46 +0,0 @@ -import json -import patchpirate -from halo import Halo -import os -from colorama import Fore, init - -# Initialize colorama with auto reset -init(autoreset=True) - -# Initialize loading indicator -working_indicator = Halo(text=f'Searching user commits...', spinner='pong') - -# program banner -banner = r""" - ______ _ ______ _ -(_____ \ _ | | (_____ (_) _ - _____) )____ _| |_ ____| |__ _____) ) ____ _____ _| |_ _____ -| ____(____ (_ _) ___) _ \| ____/ |/ ___|____ (_ _) ___ | -| | / ___ | | |( (___| | | | | | | | / ___ | | |_| ____| -|_| \_____| \__)____)_| |_|_| |_|_| \_____| \__)_____) - - BY: ┳┓ ┏┓┓ ┏┓ ┏┓• ┏┓┓ ┏┓ • - ┣┫┏┓┃┫┃┏ ┫┏┓┃┃┓┓┏ ┫┃ ┃┓┏┓┏┓╋┏┓┏┓┓┏ - ┻┛┛ ┗┛┛┗┗┛┛┗┣┛┗┛┗┗┛┗ and ┗┛┛ ┗┻┗┗┛┛┗┗┗ Version: 1.0.1 ------------------------------------------------------------------ -""" - -# display program banner at top of the terminal -print(f"{Fore.RED}{banner}") - -def clear_data_dir(): - username = input(f"{Fore.GREEN}Enter GitHub username: ").strip() - GITHUB_TOKEN = input(f"{Fore.YELLOW}Enter GitHub Personal Access Token (or press Enter to skip): ").strip() - user_input = { - "username": username, - "github_token": GITHUB_TOKEN - } - -def collect_user_input(): - pass - -def get_user_commits(): - pass - -def analysis_and_display_output(): - pass \ No newline at end of file From 04ed85c63ab79bf28a54b31033735361171e34b5 Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 12:09:12 -0700 Subject: [PATCH 04/12] updated the LICENSE --- LICENSE | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index c2b3896..3cd04c6 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 Server-188 +Copyright (c) 2025, Br0k3nPix3l (https://github.com/FailurePoint) and Gratonic (https://github.com/Gratonic) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. +SOFTWARE. \ No newline at end of file From aba60ab2f59cae152c05b7407eb7ed5f0daf01b6 Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 12:29:25 -0700 Subject: [PATCH 05/12] removed the leftover data from my tests and added a gitignore rule --- .gitignore | 3 + data/input_file.json | 4 - data/output_file.json | 778 ------------------------------------------ data/repo_count.txt | 1 - patchpirate.py | 1 - 5 files changed, 3 insertions(+), 784 deletions(-) delete mode 100644 data/input_file.json delete mode 100644 data/output_file.json delete mode 100644 data/repo_count.txt diff --git a/.gitignore b/.gitignore index 68bc17f..d6fbb0c 100644 --- a/.gitignore +++ b/.gitignore @@ -138,6 +138,9 @@ venv.bak/ # mkdocs documentation /site +# data directory +/data + # mypy .mypy_cache/ .dmypy.json diff --git a/data/input_file.json b/data/input_file.json deleted file mode 100644 index 9b99610..0000000 --- a/data/input_file.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "username": "Gratonic", - "github_token": null -} \ No newline at end of file diff --git a/data/output_file.json b/data/output_file.json deleted file mode 100644 index 09676c5..0000000 --- a/data/output_file.json +++ /dev/null @@ -1,778 +0,0 @@ -[ - { - "repo": "Hackesoup", - "message": "added a .gitignore file", - "url": "https://github.com/Gratonic/Hackesoup/commit/e55358de42ce9e96613b740da255c8bdf19c7c2a", - "date": "2025-04-08T03:08:09Z", - "sha": "e55358d", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "test", - "url": "https://github.com/Gratonic/Hackesoup/commit/d59dd515e55b9d5f24f806073dcc123d6d5aaa5f", - "date": "2025-04-08T03:02:20Z", - "sha": "d59dd51", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Completed the first part of the port scanner / network mapper prototype", - "url": "https://github.com/Gratonic/Hackesoup/commit/27e9489cd9fac4bba705f7a61832f25a5407f8c0", - "date": "2025-04-06T05:00:26Z", - "sha": "27e9489", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Added a file under Lib/Tools to put the cool names next to the tool names, in order to avoid confussion", - "url": "https://github.com/Gratonic/Hackesoup/commit/8b1b9759f4537f7afff98afc74c5c29f53e73a51", - "date": "2025-04-05T23:51:55Z", - "sha": "8b1b975", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Removed an uneeded clone of the Tools directory under Lib and added a Completed_Tools directory and Prototypes directory under Lib/Tools for their respective tools", - "url": "https://github.com/Gratonic/Hackesoup/commit/e5b48b929aacb0100fba61aaebc7443924731ddb", - "date": "2025-04-05T23:38:53Z", - "sha": "e5b48b9", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Cleaned up the File Tree", - "url": "https://github.com/Gratonic/Hackesoup/commit/c2ca8467e1f7acf09de0e4a3b0ac2f249637906d", - "date": "2025-03-08T21:53:06Z", - "sha": "c2ca846", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "You can also test the new Menu Interface Portion by simply running Interfaces/hackesoup.py", - "url": "https://github.com/Gratonic/Hackesoup/commit/8250b2d5071d9f1e152f1e228967009395f69388", - "date": "2025-02-24T18:10:40Z", - "sha": "8250b2d", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Menu Interface Portion is done, it can be run from hs_mi.py", - "url": "https://github.com/Gratonic/Hackesoup/commit/a59a618f1666e9d4aa5246df97b4600724ee9a9b", - "date": "2025-02-24T17:51:21Z", - "sha": "a59a618", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Menu Interface Portion is about 100-300 lines from completion", - "url": "https://github.com/Gratonic/Hackesoup/commit/8d7c67656026a9f3aa86b4315cda9e1441628530", - "date": "2025-02-22T02:35:38Z", - "sha": "8d7c676", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Working on hs_UX_menus.py", - "url": "https://github.com/Gratonic/Hackesoup/commit/43b003d3d03ec456a5b3a2736f58ca38cd371802", - "date": "2025-02-21T21:43:54Z", - "sha": "43b003d", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Very close to finishing the menu interface, just need to implement what was done for the port scanner UX menus to the other tool UX menus", - "url": "https://github.com/Gratonic/Hackesoup/commit/46648292b0e59d14c2e207af96eb45b2ffabbb96", - "date": "2025-02-17T08:03:00Z", - "sha": "4664829", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "got some work done in hs_UX_menus.py", - "url": "https://github.com/Gratonic/Hackesoup/commit/d9b6f5df101acc1bae48fa6dd800b5f07666bff2", - "date": "2025-02-17T05:19:29Z", - "sha": "d9b6f5d", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "moved the read me and license to the project root", - "url": "https://github.com/Gratonic/Hackesoup/commit/8ef574d97c63d94444def9c2961e19ac402a318b", - "date": "2025-02-16T20:11:54Z", - "sha": "8ef574d", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Finished the hs_menus, hs_prompts, and hs_validator.py modules...for now at least", - "url": "https://github.com/Gratonic/Hackesoup/commit/3e3c31995a9d14009d3636473d61398b85e82cb0", - "date": "2025-02-16T08:48:56Z", - "sha": "3e3c319", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "nothing major", - "url": "https://github.com/Gratonic/Hackesoup/commit/b22fe192fc81a57081a6a439d56abc8cd4861bc9", - "date": "2025-02-10T00:35:21Z", - "sha": "b22fe19", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Currently rewritting the menu interface, here is the interface so far...", - "url": "https://github.com/Gratonic/Hackesoup/commit/eb9b98a11bf3028bd9b2785ad44d28db30f70332", - "date": "2025-02-09T02:33:13Z", - "sha": "eb9b98a", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Just a quick update", - "url": "https://github.com/Gratonic/Hackesoup/commit/7cf2b906df1f49cfcd8afe830dce35b53069a9bb", - "date": "2025-01-22T04:12:57Z", - "sha": "7cf2b90", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "minor fix to the thread_amount function input validation in the hs_prompts module", - "url": "https://github.com/Gratonic/Hackesoup/commit/2e9226f04e1edb35cf9e753ffbb5e4a60c433ad0", - "date": "2025-01-03T06:22:29Z", - "sha": "2e9226f", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Fixed the hs_prompts module", - "url": "https://github.com/Gratonic/Hackesoup/commit/cfbb490f0b484577dcddcf1338d3e8a141c9d3bb", - "date": "2025-01-03T06:16:34Z", - "sha": "cfbb490", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "fixed the hs_prompts code", - "url": "https://github.com/Gratonic/Hackesoup/commit/1706a05d9f6495e6d627161f327ea9a69a2ea69a", - "date": "2024-12-30T21:38:08Z", - "sha": "1706a05", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Fixed a major issue with the hs_prompts code. I am going to rewrite it because it is currently spaghetti code.", - "url": "https://github.com/Gratonic/Hackesoup/commit/e5422619154ed1083c809d88b7aef85d60ba1b55", - "date": "2024-12-29T22:28:46Z", - "sha": "e542261", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Created the xss payloads file and got all of the payloads for it - 11 files worth (used a script to get the unique payloads [lines])", - "url": "https://github.com/Gratonic/Hackesoup/commit/ad99ce1ac49e3b439fcb25c0be52c5a6adfb09aa", - "date": "2024-12-28T06:06:07Z", - "sha": "ad99ce1", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Nothing important", - "url": "https://github.com/Gratonic/Hackesoup/commit/726d9af801390651ebe9fec85111b579f4b3f1eb", - "date": "2024-12-28T03:17:37Z", - "sha": "726d9af", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Adjusted some things in the Networking Dir", - "url": "https://github.com/Gratonic/Hackesoup/commit/b988e9d804a6a7db8f3cab0030c9dae904e28c7f", - "date": "2024-12-28T03:05:16Z", - "sha": "b988e9d", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Added the directory for the Networking (all code there will be written in C)", - "url": "https://github.com/Gratonic/Hackesoup/commit/446d0d444c21671a96d2016cb9710aca2610d001", - "date": "2024-12-28T03:01:02Z", - "sha": "446d0d4", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Fixed my grammer in the old_version.txt placeholder file", - "url": "https://github.com/Gratonic/Hackesoup/commit/bf67dd5464b76fdafc97bb933c41582dc8a8423c", - "date": "2024-12-28T02:25:53Z", - "sha": "bf67dd5", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Got the imports working for the menu interface file (hs_mi.py)", - "url": "https://github.com/Gratonic/Hackesoup/commit/44d1c3641a50effa3107648516e402de7bdbeddf", - "date": "2024-12-28T02:23:34Z", - "sha": "44d1c36", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Finished the UX Menu Interface", - "url": "https://github.com/Gratonic/Hackesoup/commit/be4d88e2837e979381a1eca05ba1c89ebf8e2c9d", - "date": "2024-12-16T22:03:20Z", - "sha": "be4d88e", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "All UX menus except the destroyer menu are complete", - "url": "https://github.com/Gratonic/Hackesoup/commit/26d358086f55589543f4c5a18bc9b27f1a34080d", - "date": "2024-12-16T10:32:02Z", - "sha": "26d3580", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Pretty much finished the UX menu interface", - "url": "https://github.com/Gratonic/Hackesoup/commit/f0a67f8eff6a2097b6540a5cf8cdd402d3875d4e", - "date": "2024-12-16T09:31:05Z", - "sha": "f0a67f8", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Changed the HS_Modules name back to Modules and made some major progess on the UX menu interface (almost done)", - "url": "https://github.com/Gratonic/Hackesoup/commit/35f3741b8a86c57e5d8ec7e12fc391205bf0e177", - "date": "2024-12-15T20:53:26Z", - "sha": "35f3741", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Fixed import issues", - "url": "https://github.com/Gratonic/Hackesoup/commit/7f18a442389e59ea79f41f18e5cc402dbe553bd8", - "date": "2024-12-14T04:19:11Z", - "sha": "7f18a44", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Moved Config/ up a dir into Main/", - "url": "https://github.com/Gratonic/Hackesoup/commit/a8e735e88787b39ed37aa387fd1509c9fb991bb0", - "date": "2024-12-12T23:01:34Z", - "sha": "a8e735e", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Moves Config into Main and Moved all Interface Files into a new dir called Interfaces nested withing Main/", - "url": "https://github.com/Gratonic/Hackesoup/commit/1ed5e545a189099a0528822d1b18efd0339ea9d0", - "date": "2024-12-12T22:56:24Z", - "sha": "1ed5e54", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "setup.py ready but import errors still occur after local install", - "url": "https://github.com/Gratonic/Hackesoup/commit/92e9699d379224ce164936b3a66e1fc3835d2689", - "date": "2024-12-12T22:51:22Z", - "sha": "92e9699", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Added some legal/copywrite stuff", - "url": "https://github.com/Gratonic/Hackesoup/commit/e9c6d337eb83d20c3cce714b528f8e2e61311cf1", - "date": "2024-12-12T21:38:37Z", - "sha": "e9c6d33", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "menu_dev's name has been changes to hs_menu_titles and it has been moved to Modules/", - "url": "https://github.com/Gratonic/Hackesoup/commit/7acd0441a3e3f71eacb72fff257d17b7bc477cc1", - "date": "2024-12-11T23:26:40Z", - "sha": "7acd044", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Simply forgot to remove the test code at the bottom ofthe script, removed it", - "url": "https://github.com/Gratonic/Hackesoup/commit/038f9f0a9a652a85b6d009a64f6ce51ad13ea405", - "date": "2024-12-11T19:44:14Z", - "sha": "038f9f0", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "fixed an issue with the feet (footer) that was causing a number to be displayed in the feet (footer) output.", - "url": "https://github.com/Gratonic/Hackesoup/commit/37a5e6bd0369d39d7fb9a3236ddea1b6a7045de1", - "date": "2024-12-11T19:42:32Z", - "sha": "37a5e6b", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Fixed a simply error with the class creation and a couple maths errors.", - "url": "https://github.com/Gratonic/Hackesoup/commit/0f1db30f839e72505dbf9479547e96b277cf94ab", - "date": "2024-12-11T19:09:00Z", - "sha": "0f1db30", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "made the 'frankenstien.py' module much more readable and reduced its lines from 185 down to 138", - "url": "https://github.com/Gratonic/Hackesoup/commit/e39c1612807c324895ec4f801ecdd413f8b83291", - "date": "2024-12-11T08:23:42Z", - "sha": "e39c161", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Added an authors.md file under ABOUT/", - "url": "https://github.com/Gratonic/Hackesoup/commit/d931381009d7aed39ff6623d259b365054c104ec", - "date": "2024-12-10T03:38:20Z", - "sha": "d931381", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Changed the directory Scanners name to Tools and added created the tool script files for this version(1.0)", - "url": "https://github.com/Gratonic/Hackesoup/commit/9634ac006e2fbfd32e24386c163777222639e40c", - "date": "2024-12-08T19:59:25Z", - "sha": "9634ac0", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "frankenstien dev module fixed and updated", - "url": "https://github.com/Gratonic/Hackesoup/commit/09210c7cf7afe95dd52a59f6e25b7e5975e505e8", - "date": "2024-12-08T19:38:47Z", - "sha": "09210c7", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Made some changes to the menu_builder, name is now frankenstien.py. Needs some work, has a few errors when running", - "url": "https://github.com/Gratonic/Hackesoup/commit/da561658113c7a6f9a0258664eb4f8312dfe1829", - "date": "2024-12-08T08:53:08Z", - "sha": "da56165", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "File Tree Update", - "url": "https://github.com/Gratonic/Hackesoup/commit/5938a391a3056d5198f2a4474c29fad92b1eb2f9", - "date": "2024-12-08T01:06:09Z", - "sha": "5938a39", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete hackesoup_doc.md, moved to about.mb under Hackersoup_V1/ABOUT/", - "url": "https://github.com/Gratonic/Hackesoup/commit/200c73ad7c47700f76c9f02d326b85bafb7b82c1", - "date": "2024-12-08T00:55:35Z", - "sha": "200c73a", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete README.md from Hackesoup but keep the one in Hackesoup_V1", - "url": "https://github.com/Gratonic/Hackesoup/commit/4b9cbe61246d167956a33d5cc90b4ff7faeaf552", - "date": "2024-12-08T00:47:29Z", - "sha": "4b9cbe6", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete LICENSE in Hackesoup, keep the one in Hackesoup_V1", - "url": "https://github.com/Gratonic/Hackesoup/commit/1ff61917174312c8e4e38b15690fbad4bd814fcb", - "date": "2024-12-08T00:42:16Z", - "sha": "1ff6191", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "File Tree Update Batch 1", - "url": "https://github.com/Gratonic/Hackesoup/commit/79fddc509e20f70dd61c76a5109efed3cea05de3", - "date": "2024-12-08T00:31:04Z", - "sha": "79fddc5", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "File Tree Update Batch 1", - "url": "https://github.com/Gratonic/Hackesoup/commit/aa1a842b6142e697a1311b9fff3f0ce6c653923f", - "date": "2024-12-08T00:09:52Z", - "sha": "aa1a842", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete hs_prompts.py", - "url": "https://github.com/Gratonic/Hackesoup/commit/08d0d90e2b7d3c6cefd7b4eef153457340fcf90b", - "date": "2024-12-01T06:00:03Z", - "sha": "08d0d90", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete hs_menus.py", - "url": "https://github.com/Gratonic/Hackesoup/commit/6adbaa59c0dfe91a1aadbab36fef9aa60e1dda3d", - "date": "2024-12-01T05:59:47Z", - "sha": "6adbaa5", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Documentation and Planning\n\nContains The Following:\r\n1) Current Plans For This Version\r\n2) Documentation of Tools and Features\r\n3) Plans For Future Updates", - "url": "https://github.com/Gratonic/Hackesoup/commit/1fe01498f03f720de1893ef8783eab31cb1c5146", - "date": "2024-12-01T05:58:47Z", - "sha": "1fe0149", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete cli_dev.py", - "url": "https://github.com/Gratonic/Hackesoup/commit/c4b409f29f89433918b3bfd8e59e5a62bf7ab8aa", - "date": "2024-12-01T05:56:47Z", - "sha": "c4b409f", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete hackesoup_doc.md", - "url": "https://github.com/Gratonic/Hackesoup/commit/8252403af05033b3c4323d05dc1564564a44a78b", - "date": "2024-12-01T05:56:18Z", - "sha": "8252403", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Merge branch 'Hackesoup_V1' into Hackesoup", - "url": "https://github.com/Gratonic/Hackesoup/commit/0f369cb3aaab0702061e7e0dc1e834d9416d6cbb", - "date": "2024-12-01T05:16:44Z", - "sha": "0f369cb", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Hackesoup Planning and Documentation\n\nContains The Following:\r\n1) Documentation\r\n2) Plans For This Version (v1)\r\n3) Plans For Future Versions", - "url": "https://github.com/Gratonic/Hackesoup/commit/94d48db896f0d1b1f03b6019c5d2c2ef70949860", - "date": "2024-11-30T05:41:31Z", - "sha": "94d48db", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete hackesoup_doc.md", - "url": "https://github.com/Gratonic/Hackesoup/commit/ef8d105a3b8b0e825e8074f324272d0e6b2f0934", - "date": "2024-11-30T05:39:09Z", - "sha": "ef8d105", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Hackesoup Documentation and Planning\n\nContains the following:\r\n1) Documentation - tools, features, etc.\r\n2) Plan For This Version\r\n3) Plans For Futures Versions", - "url": "https://github.com/Gratonic/Hackesoup/commit/ef1788597d4b1b26c02bfc9c84bbbde098d8280e", - "date": "2024-11-30T05:37:48Z", - "sha": "ef17885", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete hackesoup_doc.md", - "url": "https://github.com/Gratonic/Hackesoup/commit/8d993db10d469bdc490a7b2e4992a96fbbc85b83", - "date": "2024-11-30T05:35:03Z", - "sha": "8d993db", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Hackesoup Plannning and Doccumentation\n\nPlanning and Doccumentation for Hackesoup.", - "url": "https://github.com/Gratonic/Hackesoup/commit/403947ee4d25d19de9e6bfcdb72d09c5c6d559d7", - "date": "2024-11-30T04:40:56Z", - "sha": "403947e", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete hackesoup_doc.md", - "url": "https://github.com/Gratonic/Hackesoup/commit/d0664029bbd49136a69f4c98ca47966102d29dba", - "date": "2024-11-30T04:38:58Z", - "sha": "d066402", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Hackesoup Menus\n\nMenus for the Hackesoup Basic Menu Interface. Made a couple of updates", - "url": "https://github.com/Gratonic/Hackesoup/commit/c75f9b55d287c41d209a847e496d16ec75f11521", - "date": "2024-11-30T04:38:34Z", - "sha": "c75f9b5", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete hs_menus.py", - "url": "https://github.com/Gratonic/Hackesoup/commit/781eda4a8663bfdb57876c26c00efe6f324f5520", - "date": "2024-11-30T04:37:05Z", - "sha": "781eda4", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Hackesoup Prompts\n\nPrompts for the basic menu interface", - "url": "https://github.com/Gratonic/Hackesoup/commit/3429c93d93e7f965628c35c912b0da698ae52d71", - "date": "2024-11-30T04:35:40Z", - "sha": "3429c93", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Hackesoup Menus Module\n\nContains the toolbox menu and all of the tool option menus.", - "url": "https://github.com/Gratonic/Hackesoup/commit/856ded04af151a7fca9154821f651569c1271400", - "date": "2024-11-28T10:00:36Z", - "sha": "856ded0", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete hs_prompts.py", - "url": "https://github.com/Gratonic/Hackesoup/commit/a528d12b947e012579a848dc0c3f801fbea0b37b", - "date": "2024-11-28T09:58:23Z", - "sha": "a528d12", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Hackesoup Documentation\n\nContains Information About The Following:\r\n\r\n1) Current tools and their features\r\n2) Currently available interfaces\r\n3) Planned updates", - "url": "https://github.com/Gratonic/Hackesoup/commit/84c2be0e2ca49a28062d8a27f55f715f81928cc0", - "date": "2024-11-28T06:45:28Z", - "sha": "84c2be0", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Hackesoup Prompts Module\n\nThis file contains all of the functions that prompt the user for input when needed. (EX: during the tool setup process)", - "url": "https://github.com/Gratonic/Hackesoup/commit/3e634e59578c0d14ee329c386d8a8855ad580a7f", - "date": "2024-11-28T02:00:39Z", - "sha": "3e634e5", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Delete hs_prompts.py", - "url": "https://github.com/Gratonic/Hackesoup/commit/51a847436cc4780b9097fff4a7c31f57720085ec", - "date": "2024-11-28T01:56:59Z", - "sha": "51a8474", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Hackesoup Prompts Modules\n\nThis module contains all the function that are used to prompt the user for input when needed. (ex: during the tool setup process)", - "url": "https://github.com/Gratonic/Hackesoup/commit/e30b1784aea7294b52d2fe71ee026bc7ad01959f", - "date": "2024-11-28T01:48:38Z", - "sha": "e30b178", - "email": "enchantelic@proton.me" - }, - { - "repo": "Hackesoup", - "message": "Initial commit", - "url": "https://github.com/Gratonic/Hackesoup/commit/394303e662c4823c030504844136c1bb07ba0fb4", - "date": "2024-11-27T23:49:36Z", - "sha": "394303e", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Update README.md\n\nAdded the installation instructions for pip3 to the README along with OS support information. (All OS's are supported ;] )", - "url": "https://github.com/Gratonic/Menataur/commit/9ad0548616a9cefcf85239bc6b58d1e95c52fd08", - "date": "2025-04-10T02:48:24Z", - "sha": "9ad0548", - "email": "189929383+Gratonic@users.noreply.github.com" - }, - { - "repo": "Menataur", - "message": "Just some final fixes", - "url": "https://github.com/Gratonic/Menataur/commit/5501a22e9c79d3826529bbeb1150e4455bab5ea3", - "date": "2025-04-10T01:30:27Z", - "sha": "5501a22", - "email": "189929383+Gratonic@users.noreply.github.com" - }, - { - "repo": "Menataur", - "message": "Fixed some small mistakes in the README example", - "url": "https://github.com/Gratonic/Menataur/commit/64535e40225c9756bceb921d7436a33ffd58e25a", - "date": "2025-04-10T01:25:51Z", - "sha": "64535e4", - "email": "189929383+Gratonic@users.noreply.github.com" - }, - { - "repo": "Menataur", - "message": "Merge pull request #1 from FailurePoint/patch-1\n\nAdded more comprehensive example data to readme", - "url": "https://github.com/Gratonic/Menataur/commit/47866f4fbf3d2daea0bb5eadc43a28d553cc9171", - "date": "2025-04-10T01:18:28Z", - "sha": "47866f4", - "email": "189929383+Gratonic@users.noreply.github.com" - }, - { - "repo": "Menataur", - "message": "Update example_usage.py", - "url": "https://github.com/Gratonic/Menataur/commit/9a6420e6b3708bbf52e49024a70b34c6efb1475c", - "date": "2025-04-09T23:15:21Z", - "sha": "9a6420e", - "email": "189929383+Gratonic@users.noreply.github.com" - }, - { - "repo": "Menataur", - "message": "Create menataur_workflow.yml", - "url": "https://github.com/Gratonic/Menataur/commit/5cc8e82f4d1bb79e1994569357575b9ea2e50b4b", - "date": "2025-04-09T22:59:59Z", - "sha": "5cc8e82", - "email": "189929383+Gratonic@users.noreply.github.com" - }, - { - "repo": "Menataur", - "message": "some finishing touches", - "url": "https://github.com/Gratonic/Menataur/commit/0d0c4f49d8832bcf5d907570325a05ed4855c109", - "date": "2025-04-09T22:19:02Z", - "sha": "0d0c4f4", - "email": "189929383+Gratonic@users.noreply.github.com" - }, - { - "repo": "Menataur", - "message": "Just so simple things have been added and made it into a PyPi module", - "url": "https://github.com/Gratonic/Menataur/commit/348c11b08fe4ab2fe3780d007f401b4200fabc3b", - "date": "2025-04-09T22:13:03Z", - "sha": "348c11b", - "email": "189929383+Gratonic@users.noreply.github.com" - }, - { - "repo": "Menataur", - "message": "Update README.md", - "url": "https://github.com/Gratonic/Menataur/commit/31d6c69690e658e4045d6d048ad4cd57875be832", - "date": "2025-02-09T19:20:00Z", - "sha": "31d6c69", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Update LICENSE", - "url": "https://github.com/Gratonic/Menataur/commit/4da311229d897d9f38eca75183e7281ed03fd57c", - "date": "2025-02-09T19:09:10Z", - "sha": "4da3112", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Update README.md", - "url": "https://github.com/Gratonic/Menataur/commit/9465d90dfac47d52063ca3b217055c22d5fdaf77", - "date": "2025-02-09T19:08:15Z", - "sha": "9465d90", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Delete About directory", - "url": "https://github.com/Gratonic/Menataur/commit/712487f020965972b3f1a3e37ab054070971403d", - "date": "2025-02-09T18:59:54Z", - "sha": "712487f", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Delete Legal directory", - "url": "https://github.com/Gratonic/Menataur/commit/113fef85bba1220f77fac613f53218c69c1db6bb", - "date": "2025-02-09T18:59:43Z", - "sha": "113fef8", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Create LICENSE", - "url": "https://github.com/Gratonic/Menataur/commit/d5549061911d573fb64624e4b3b17a55825b7197", - "date": "2025-02-09T18:58:36Z", - "sha": "d554906", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "README.md", - "url": "https://github.com/Gratonic/Menataur/commit/74454ec831c92065875ee22353d296aaa182a3eb", - "date": "2025-02-09T18:50:11Z", - "sha": "74454ec", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Updated the name of the module", - "url": "https://github.com/Gratonic/Menataur/commit/7412b747291108c04d135c2c2acb1e4e1d78e119", - "date": "2025-02-09T18:45:53Z", - "sha": "7412b74", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Copyright update for the colorama module", - "url": "https://github.com/Gratonic/Menataur/commit/d25ae1173d916dca5e10e92363859e79f83d0876", - "date": "2025-02-08T20:25:14Z", - "sha": "d25ae11", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Finished Everything", - "url": "https://github.com/Gratonic/Menataur/commit/37d1c92cc50ca3f5f198aecccfd5d92048acfc03", - "date": "2025-02-02T05:54:37Z", - "sha": "37d1c92", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Almost finished, rewrote the whole thing, easy to read now and works way better", - "url": "https://github.com/Gratonic/Menataur/commit/90d3c1cae3a8c7b1d0a23a732a2ff385f162f682", - "date": "2025-02-01T08:04:31Z", - "sha": "90d3c1c", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Got Minotaur working somewhat but it is in a buggy and the code is spaghetti code, at the moment", - "url": "https://github.com/Gratonic/Menataur/commit/25e506e50cd48e26e5f9454db7403e0f8a93b625", - "date": "2025-01-31T23:24:01Z", - "sha": "25e506e", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "Work in progress, about 60% done", - "url": "https://github.com/Gratonic/Menataur/commit/e2a2606ec86851751bf8d904c22d1b394b0ad82c", - "date": "2025-01-30T04:53:40Z", - "sha": "e2a2606", - "email": "enchantelic@proton.me" - }, - { - "repo": "Menataur", - "message": "creation", - "url": "https://github.com/Gratonic/Menataur/commit/56eac1c23fe1a0584d56edd799246c0062f692b7", - "date": "2025-01-22T03:56:36Z", - "sha": "56eac1c", - "email": "enchantelic@proton.me" - }, - { - "repo": "PatchPirate", - "message": "Finished the python side of the program, everything is now ready. It works much faster with the rust module. I also cleaned up the code a ton and added more comments", - "url": "https://github.com/Gratonic/PatchPirate/commit/295dedcf387c22dcb453c03d492e7922ac953f6e", - "date": "2025-04-19T18:33:57Z", - "sha": "295dedc", - "email": "189929383+Gratonic@users.noreply.github.com" - }, - { - "repo": "PatchPirate", - "message": "Still working on the python side, having to rewrite it because I accidently deleted it", - "url": "https://github.com/Gratonic/PatchPirate/commit/4721a8d02c8d9e8a1b84093bc135a4ca1932dcfe", - "date": "2025-04-19T10:12:34Z", - "sha": "4721a8d", - "email": "189929383+Gratonic@users.noreply.github.com" - } -] \ No newline at end of file diff --git a/data/repo_count.txt b/data/repo_count.txt deleted file mode 100644 index 00750ed..0000000 --- a/data/repo_count.txt +++ /dev/null @@ -1 +0,0 @@ -3 diff --git a/patchpirate.py b/patchpirate.py index 34cba28..ca5f9a4 100644 --- a/patchpirate.py +++ b/patchpirate.py @@ -9,7 +9,6 @@ Version: 1.1.0 """ - # :: Imports :: # from colorama import Fore, init # Copywrite (c) 2013-2025, Jonathan Hartley (https://github.com/tartley) From ad8019fd2068cae24563b9022241b7eef765961b Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 12:36:01 -0700 Subject: [PATCH 06/12] fixed data gitignore rules --- .gitignore | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index d6fbb0c..3185499 100644 --- a/.gitignore +++ b/.gitignore @@ -138,8 +138,10 @@ venv.bak/ # mkdocs documentation /site -# data directory -/data +# ignores program data that has been generated from tests +input_file.json +output_file.json +repo_count.txt # mypy .mypy_cache/ From fc0ed23eea607cdf9cf00af09bc7a9830fef2ad5 Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 19:37:06 +0000 Subject: [PATCH 07/12] Create data --- data | 1 + 1 file changed, 1 insertion(+) create mode 100644 data diff --git a/data b/data new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/data @@ -0,0 +1 @@ + From 9745b9eb64274323b444f96a9c768594ce4e72c4 Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 19:37:28 +0000 Subject: [PATCH 08/12] Delete data --- data | 1 - 1 file changed, 1 deletion(-) delete mode 100644 data diff --git a/data b/data deleted file mode 100644 index 8b13789..0000000 --- a/data +++ /dev/null @@ -1 +0,0 @@ - From a43c6708de612fff84bd57867e38d9bcd4c5e86d Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 19:38:33 +0000 Subject: [PATCH 09/12] Create input_file.json without this, for some reason the data is deleted --- data/input_file.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 data/input_file.json diff --git a/data/input_file.json b/data/input_file.json new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/data/input_file.json @@ -0,0 +1 @@ + From 55528e182d365fb22751621225402307e430d6ad Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 19:39:08 +0000 Subject: [PATCH 10/12] Create output_file.json for the hell of it --- data/output_file.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 data/output_file.json diff --git a/data/output_file.json b/data/output_file.json new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/data/output_file.json @@ -0,0 +1 @@ + From 180fbd56e498a4a78d74251259ca34f6160ab52a Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Sat, 19 Apr 2025 19:39:28 +0000 Subject: [PATCH 11/12] Create repo_count.txt last one --- data/repo_count.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 data/repo_count.txt diff --git a/data/repo_count.txt b/data/repo_count.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/data/repo_count.txt @@ -0,0 +1 @@ + From f628731043c4257e35e222e735ba9f1c953c2ca8 Mon Sep 17 00:00:00 2001 From: Gratonic <189929383+Gratonic@users.noreply.github.com> Date: Wed, 11 Jun 2025 16:34:57 -0700 Subject: [PATCH 12/12] added ignore rule for venv dir --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 3185499..32a6bb4 100644 --- a/.gitignore +++ b/.gitignore @@ -163,3 +163,6 @@ cython_debug/ # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ + +# ignore the venv dir +*patchpirate_venv \ No newline at end of file