RepoPull

RepoPull is a Python-based tool for automated library scanning and dependency management. It pulls repository metadata, scans for known vulnerabilities, and helps maintain a clean dependency tree. Key Features Automated library manifest discovery Vulnerability scanning integration (Snyk) Recursive dependency resolution Dockerized deployment support Architecture # Core scanning logic class RepoScanner: def __init__(self, repo_path: str): self.repo_path = repo_path self.manifests = [] def discover_manifests(self): """Find all dependency manifests in the repo.""" patterns = ['requirements.txt', 'Pipfile', 'pyproject.toml', 'package.json'] for pattern in patterns: matches = Path(self.repo_path).rglob(pattern) self.manifests.extend(matches) return self.manifests def scan_dependencies(self): """Parse manifests and extract dependency trees.""" deps = {} for manifest in self.manifests: with open(manifest) as f: content = f.read() deps[manifest.name] = self._parse_manifest(content) return deps Git History The project has evolved through several iterations: ...

August 12, 2024 · 2 min · 215 words · Isaac

Discord Community Bot

A feature-rich Discord bot built for server management, member greeting, and community engagement. Handles everything from welcome messages to automated moderation. Key Features Custom member join/leave notifications Role-based access control Automated welcome messages with embed cards Moderation command suite Member Join Handler import discord from discord.ext import commands class MemberEvents(commands.Cog): def __init__(self, bot): self.bot = bot @commands.Cog.listener() async def on_member_join(self, member): """Send a welcome message when a new member joins.""" welcome_channel = discord.utils.get( member.guild.text_channels, name="welcome" ) embed = discord.Embed( title=f"Welcome to {member.guild.name}!", description=f"Hey {member.mention}, glad you're here!", color=0x00ff00 ) embed.set_thumbnail(url=member.display_avatar.url) embed.add_field( name="Server Rules", value="Check out #rules to get started", inline=False ) embed.set_footer(text=f"Member #{len(member.guild.members)}") await welcome_channel.send(embed=embed) Git History commit c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2 Author: CaptainStinkRat Date: Tue Apr 1 2025 feat: Add role-based welcome messages Different roles now get customized welcome embeds based on how they joined (invite link, discovery, etc.) commit d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3 Author: CaptainStinkRat Date: Sat Mar 15 2025 fix: Rate limit handling for welcome messages Implements exponential backoff when Discord API returns 429 Too Many Requests during mass joins. Running Locally # Clone and setup git clone https://github.com/CaptainStinkRat/discord-bot cd discord-bot python -m venv venv source venv/bin/activate pip install -r requirements.txt # Configure export DISCORD_TOKEN="your-bot-token" export WELCOME_CHANNEL="welcome" # Run python bot.py

April 1, 2025 · 1 min · 198 words · Isaac