├── README.md ├── config.json ├── main.py ├── requirements.txt └── setup.bat /README.md: -------------------------------------------------------------------------------- 1 | # Issue Creator/Spammer 2 | - Fastest Github Issue Spammer/Creator 3 | 4 | EDUCATIONAL PURPOSES! 5 | 6 | ## 🔥 Features 7 | - Fastest Github Issue Spammer/Creator 8 | 9 | ## ✍️ Usage 10 | 1. Open `config.json` and configure it and its ready! 11 | 2. Open CMD and type in: python main.py 12 | 3. READY! 13 | 14 | ## 📜 Updates 15 | - Any Suggestions send in my discord. 16 | 17 | ## 📹 Preview 18 | Join Discord 19 | 20 | ## ✨ Issues / Doubts 21 | - If you have any questions do not hesitate to enter my discord: [https://discord.gg/Un63v2truD](https://discord.gg/baMAyb4jeG) 22 | 23 | ## ⚠️ DISCLAIMER / NOTES 24 | This github repo is for EDUCATIONAL PURPOSES ONLY. I am NOT under any responsibility if a problem occurs. 25 | Im NOT responsible for any Problem/Violation that you do. 26 | Or if your account gets banned. 27 | 28 | -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "names": ["Astra Tools", "On Top", "https://discord.gg/xaEVXpkyYB"], 3 | "messages": ["You still not joined Astra's discord?!", "What if dogs could have an conversation with people?"], 4 | "tokens": ["token1", "token2", "token3"] 5 | } 6 | 7 | -------------------------------------------------------------------------------- /main.py: -------------------------------------------------------------------------------- 1 | import aiohttp 2 | import asyncio 3 | import json 4 | import random 5 | from colorama import Fore, Style, init 6 | from pystyle import Colors, Center, Colorate, Write 7 | import os 8 | import ctypes 9 | import re 10 | 11 | init(autoreset=True) 12 | 13 | def title(title): 14 | ctypes.windll.kernel32.SetConsoleTitleW(title) 15 | 16 | def clear_console(): 17 | os.system("cls" if os.name == "nt" else "clear") 18 | 19 | def repo(link): 20 | match = re.match(r"https://github\.com/([^/]+)/([^/]+)/issues", link) 21 | if match: 22 | owner, repo = match.groups() 23 | return f"https://api.github.com/repos/{owner}/{repo}/issues" 24 | else: 25 | return None 26 | 27 | async def create(session, url, headers, payload): 28 | async with session.post(url, headers=headers, json=payload) as response: 29 | if response.status == 201: 30 | data = await response.json() 31 | number = data.get("number") 32 | print( 33 | f'{Fore.YELLOW}Successfully Created Issue Named: {Fore.BLUE + payload["title"]} ' 34 | f"{Fore.RED}| {Fore.YELLOW}Issue Number: {Fore.GREEN + str(number)}" 35 | ) 36 | elif response.status == 403: 37 | error_message = await response.json() 38 | 39 | if "message" in error_message and "rate limit exceeded" in error_message["message"].lower(): 40 | print(f'{Fore.LIGHTRED_EX}You are being Rate Limited For 1 Hour. Could be less already...') 41 | else: 42 | print(f'{Fore.LIGHTRED_EX}Create issue failed. Status Code: {Fore.RED}"{str(response.status)}"') 43 | print(f'{Fore.LIGHTRED_EX}Unexpected error: {Fore.RED + str(error_message)}') 44 | else: 45 | print(f'{Fore.LIGHTRED_EX}Create issue failed. Status Code: {Fore.RED}"{str(response.status)}"') 46 | print(await response.text()) 47 | 48 | 49 | async def spam(target, total): 50 | if "\x61\x73\x74\x72\x61\x70\x79" in target: 51 | return 52 | 53 | with open("config.json") as config_file: 54 | config = json.load(config_file) 55 | names = config.get("names", ["default"]) 56 | tokens = config.get("tokens", ["token"]) 57 | messages = config.get("messages", ["ok"]) 58 | 59 | tasks = [] 60 | 61 | async with aiohttp.ClientSession() as session: 62 | for _ in range(total): 63 | name = random.choice(names) 64 | token = random.choice(tokens) 65 | message = random.choice(messages) 66 | 67 | if target.startswith("https://github.com"): 68 | url = repo(target) 69 | else: 70 | url = target 71 | if url is None: 72 | print(f"{Fore.LIGHTRED_EX}Invalid GitHub link: {Fore.RED + target}") 73 | return 74 | payload = {"title": name, "body": message} 75 | 76 | headers = { 77 | "Authorization": f"Token {token}", 78 | "Accept": "application/vnd.github.v3+json", 79 | } 80 | 81 | print( 82 | f"{Fore.CYAN}Creating Issue With Name: {Fore.BLUE + name} {Fore.RED}| {Fore.CYAN}Token Using: {Fore.BLUE + token}" 83 | ) 84 | 85 | tasks.append(create(session, url, headers, payload)) 86 | await asyncio.gather(*tasks) 87 | print( 88 | f"\n{Fore.GREEN}Successfully Opened {Fore.MAGENTA}[{total}] {Fore.GREEN}Issues For: {Fore.MAGENTA}{target}\n" 89 | ) 90 | 91 | if __name__ == "__main__": 92 | clear_console() 93 | title("Astra Github Issuer Spam") 94 | banner = Center.XCenter( 95 | """ 96 | _______ _____ ________ 97 | ___ |________ /_____________ _ ____ _/_________________ ______________ 98 | __ /| |_ ___/ __/_ ___/ __ `/ __ / __ ___/_ ___/ / / / _ \_ ___/ 99 | _ ___ |(__ )/ /_ _ / / /_/ / __/ / _(__ )_(__ )/ /_/ // __/ / 100 | /_/ |_/____/ \__/ /_/ \__,_/ /___/ /____/ /____/ \__,_/ \___//_/ 101 | 102 | Made By astra.py | Discord discord.gg/A5XW5RwMM4 103 | Use More Tokens To Be More Effective\n 104 | """ 105 | ) 106 | print(Colorate.Vertical(Colors.red_to_purple, banner, 2)) 107 | target = input( 108 | f"{Fore.MAGENTA}┌──({Fore.BLUE}Astra@Root{Fore.MAGENTA}) ~ {Fore.MAGENTA}[{Fore.RED}Ϟ{Fore.MAGENTA}]\n" 109 | f"{Fore.MAGENTA}|{Fore.CYAN}[{Fore.MAGENTA}GitHub Target{Fore.CYAN}]\n" 110 | f"{Fore.MAGENTA}└─> {Fore.WHITE}" 111 | ) 112 | 113 | clear_console() 114 | title("Astra Github Issuer Spam") 115 | banner = Center.XCenter( 116 | """ 117 | _______ _____ ________ 118 | ___ |________ /_____________ _ ____ _/_________________ ______________ 119 | __ /| |_ ___/ __/_ ___/ __ `/ __ / __ ___/_ ___/ / / / _ \_ ___/ 120 | _ ___ |(__ )/ /_ _ / / /_/ / __/ / _(__ )_(__ )/ /_/ // __/ / 121 | /_/ |_/____/ \__/ /_/ \__,_/ /___/ /____/ /____/ \__,_/ \___//_/ 122 | 123 | Made By astra.py | Discord discord.gg/A5XW5RwMM4 124 | Use More Tokens To Be More Effective\n 125 | """ 126 | ) 127 | print(Colorate.Vertical(Colors.red_to_purple, banner, 2)) 128 | 129 | total = int( 130 | input( 131 | f"{Fore.MAGENTA}┌──({Fore.BLUE}Astra@Root{Fore.MAGENTA}) ~ {Fore.MAGENTA}[{Fore.RED}Ϟ{Fore.MAGENTA}]\n" 132 | f"{Fore.MAGENTA}|{Fore.CYAN}[{Fore.MAGENTA}Issues To Create{Fore.CYAN}]\n" 133 | f"{Fore.MAGENTA}└─> {Fore.WHITE}" 134 | ) 135 | ) 136 | 137 | asyncio.run(spam(target, total)) 138 | 139 | # Any suggestion, join the discord an create an /suggestion: https://discord.gg/baMAyb4jeG 140 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | aiohttp 2 | asyncio 3 | json 4 | random 5 | colorama 6 | pystyle 7 | -------------------------------------------------------------------------------- /setup.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | echo Installing requirements... 3 | pip install -r requirements.txt 4 | echo Requirements installed successfully! 5 | 6 | echo Creating start.bat... 7 | echo @echo off > start.bat 8 | echo python main.py >> start.bat 9 | echo start.bat created! 10 | 11 | echo Deleting setup.bat... 12 | del setup.bat 13 | echo setup.bat deleted! 14 | 15 | echo Installation completed. Enjoy! --------------------------------------------------------------------------------