{"id":31027622,"url":"https://github.com/gigachad80/mailansh","last_synced_at":"2025-09-13T19:49:07.636Z","repository":{"id":313332866,"uuid":"1050949948","full_name":"gigachad80/Mailansh","owner":"gigachad80","description":"OSINT tool to extract contributor's email from GitHub/ Tea / Lab \u0026 Bitbucket repos","archived":false,"fork":false,"pushed_at":"2025-09-13T14:53:09.000Z","size":131,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-13T19:49:07.173Z","etag":null,"topics":["bitbucket","bugbounty","contributors","email","gigachad80","gitea","github","gitlab","mail","osint","repo","repos","repository"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gigachad80.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-05T07:46:11.000Z","updated_at":"2025-09-13T14:53:12.000Z","dependencies_parsed_at":"2025-09-05T11:40:07.982Z","dependency_job_id":"6a6f8842-9836-4e5e-8254-6e5ff0def87b","html_url":"https://github.com/gigachad80/Mailansh","commit_stats":null,"previous_names":["gigachad80/mailansh"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/gigachad80/Mailansh","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigachad80%2FMailansh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigachad80%2FMailansh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigachad80%2FMailansh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigachad80%2FMailansh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gigachad80","download_url":"https://codeload.github.com/gigachad80/Mailansh/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gigachad80%2FMailansh/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275020168,"owners_count":25391650,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitbucket","bugbounty","contributors","email","gigachad80","gitea","github","gitlab","mail","osint","repo","repos","repository"],"created_at":"2025-09-13T19:49:02.836Z","updated_at":"2025-09-13T19:49:07.603Z","avatar_url":"https://github.com/gigachad80.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n🚀 Project Name : Mailansh\n===============\n\n\n### Mailansh : OSINT tool to extract emails of contributors from Git repositories across multiple platforms with advanced filtering capabilities.\n\n\n \n![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-purple.svg)\n\u003ca href=\"https://github.com/gigachad80/Mailansh/issues\"\u003e\u003cimg src=\"https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat\"\u003e\u003c/a\u003e\n\n## Table of Contents\n\n* [📌 Overview](#-overview)\n* [✨ Features](#-features)\n* [📚 Requirements \u0026 Dependencies](#-requirements--dependencies)\n* [📥 Installation Guide](#-installation-guide)\n* [🚀 Usage](#-usage)\n  - [Basic Usage](#basic-usage)\n* [📋 Command Line Options](#-command-line-options)\n* [📝Roadmap](#-roadmap)\n* [🔧 Technical Details](#-technical-details)\n* [🤔 Why This Name?](#-why-this-name)\n* [⌚ Development Time](#-development-time)\n* [🙃 Why I Created This](#-why-i-created-this)\n* [🤝 Contributing](#-contributing)\n* [📞 Contact](#-contact)\n* [📄 License](#-license)\n\n### 📌 Overview\n\n**Mailansh** is an OSINT tool to extract emails  of contributors from Git repositories across multiple platforms. It provides advanced filtering capabilities and concurrent processing for optimal performance, making it perfect for repository analysis, team insights, and contributor research.\n\n**Key Capabilities:**\n* Multi-platform repository support (GitHub, GitLab, Gitea, Bitbucket)\n* High-performance concurrent processing with worker pools\n* Advanced email filtering and categorization\n* Smart deduplication with preference for real names\n* Multiple output formats (formatted table, CSV)\n* Real-time progress tracking\n\n### ✨ Features\n\n### 🚀 Multi-Platform Support\n- **GitHub** \n- **GitLab** \n- **Gitea** \n- **Bitbucket** \n\n### ⚡ High Performance\n- **Concurrent Processing** - 8 worker goroutines for optimal speed\n- **Dual Extraction** - Processes both commit logs and patch content simultaneously\n- **Progress Tracking** - Real-time progress updates with percentage completion\n- **Smart Deduplication** - Prefers real names over noreply usernames\n- **Memory Efficient** - Streaming processing with automatic cleanup\n\n### 🎯 Advanced Filtering\n- **GitHub NoReply** (`-g`) - Show only GitHub noreply emails\n- **Popular Domains** (`-p`) - Filter for Gmail, Outlook, Yahoo, ProtonMail, etc.\n- **Custom Domains** (`-cd`) - Show only custom/corporate domains\n- **Quiet Mode** (`-q`) - CSV output perfect for scripting and data processing\n\n### 🛡️ Smart Email Detection\n- Platform-specific noreply patterns recognition\n- Comprehensive email validation and sanitization\n- Invalid email filtering (test domains, localhost, malformed addresses)\n- Thread-safe contributor management with mutex protection\n\n### 📚 Requirements \u0026 Dependencies\n\n* **Go 1.19+** - Latest version recommended for optimal performance\n* **Git** - Must be installed and accessible in system PATH\n\n\n### 📥 Installation Guide\n\n### ⚡ Quick Install\n\n**Method 1: Build from Source**\n```bash\ngit clone https://github.com/gigachad80/Mailansh\ncd Mailansh/cmd/mailansh/\ngo build -o mailansh main.go\n```\nOR \n\n**Method 3: Download Binary**\nDownload the latest binary from the [releases page](https://github.com/gigachad80/Mailansh/releases) and add it to your PATH.\n\n### 🚀 Usage\n\n### Basic Usage\n\n```bash\n# Extract all contributors\n./mailansh https://github.com/user/repo\n\n# G#itHub noreply emails only\n./mailansh -g https://github.com/user/repo \n\n# Popular email domains only\n./mailansh -p  https://github.com/user/repo \n\n# Custom/corporate domains only\n./mailansh -cd  https://github.com/user/repo -\n\n# Extract Popular email domains only and ave them\n./mailansh -p -o popular.csv https://github.com/user/repo \n\n# Save to file\n./mailansh  -o contributors.csv https://github.com/user/repo \n\n# Help and usage information\n./mailansh -h\n\n\n```\n\n\u003e [!WARNING]\n\u003e #### 📝 Known Behavior \u0026 FAQs\n\u003e ### Progress Display Not Reaching 100%\n\u003e You might notice the progress indicator stopping at something like \"189/221 commits (85.5%)\" instead of 100%. This is **normal behavior** and doesn't affect the completeness of results.\n\u003e ### Why this happens:\n\u003e * The tool uses a **dual extraction strategy** with concurrent workers\n\u003e * **Method 1**: `git log` extraction (always completes successfully)\n\u003e * **Method 2**: Patch content analysis with 8 concurrent workers\n\u003e * Some git commits may fail to process (merge commits, corrupted patches, etc.)\n\u003e * Workers may terminate early on errors, but **all emails are still found**\n\u003e ### What this means:\n\u003e * ✅ **Your results are complete** - all contributor emails are extracted\n\u003e * ✅ The primary `git log` method captures all standard contributors\n\u003e * ✅ Patch analysis adds any additional emails found in commit content\n\u003e * ✅ Failed commits don't contain unique contributor information\n\u003e **Note: Even if patch processing shows \u003c100%, the contributor list remains accurate and complete.**\n\u003e ### Example output:\n```bash\n[INFO] Extracting from commit history...\n[INFO] Extracting from patch content...\n[PROGRESS] 189/221 commits (85.5%)\n[INFO] Found 45 unique contributors (after filtering):\n```\n\n\n\n### 📋 Command Line Options\n\n| Flag | Description | Example Usage |\n|------|-------------|---------------|\n| `-h` | Show help menu | `./mailansh -h` |\n| `--quiet`, `-q` | CSV output suitable for redirection | `./mailansh repo -q \u003e output.csv` |\n| `-g` | Show only GitHub noreply emails | `./mailansh -g repo ` |\n| `-p` | Show only popular domain emails | `./mailansh -p repo` |\n| `-cd` | Show only custom/corporate domains | `./mailansh =cd repo ` |\n| `-o \u003cfile\u003e` | Save output to file (.csv or .txt) | `./mailansh  -o results.csv repo` |\n\n### 📝 Roadmap\n\n- [ ] Develop Web UI\n- [x] Release cross platform executables / binaries\n\n### 🔧 Technical Details\n\n### Architecture\n- **Concurrent Design** - Parallel extraction from commit log and patches\n- **Worker Pool Pattern** - 8 goroutines process commits simultaneously  \n- **Thread-Safe Operations** - Mutex-protected contributor management\n- **Memory Efficient** - Streaming processing with temporary cleanup\n- **Context-Aware** - Proper cancellation and timeout handling\n\n\n\n### Performance Characteristics\n- **Large Repositories** - Efficiently handles 10,000+ commits\n- **Memory Usage** - ~50MB average for most repositories\n- **Processing Speed** - ~100-500 commits/second depending on system specs\n- **Concurrency** - 8 worker goroutines + 2 extraction goroutines\n\n### 🤔 Why This Name?\n\nCan't disclose due to personal reasons ╰(*°▽°*)╯\n\n### ⌚ Development Time\n\nFrom initial concept to feature-complete implementation, including testing, optimization, and documentation, the development took approximately **4 hours**.\n\n### 🙃 Why I Created This\n\nActually, I wanted to develop something else but this got developed by mistake💀 and because of this mess, that project was left incomplete \n\n### 🤝 Contributing\n\nContributions are welcome! Here's how you can help:\n\n1. **Fork the repository**\n2. **Create a feature branch** (`git checkout -b feature/amazing-feature`)\n3. **Commit your changes** (`git commit -m 'Add amazing feature'`)\n4. **Push to the branch** (`git push origin feature/amazing-feature`)\n5. **Open a Pull Request**\n\n### Development Guidelines\n- Follow Go best practices and conventions\n- Add tests for new features\n- Update documentation for any changes\n- Ensure backward compatibility\n\n### 📞 Contact\n\n📧 Email: **pookielinuxuser@tutamail.com**\n\n---\n\n### 📄 License\n\nLicensed under the **RPL 1.5** and a **Custom License**.  \nCheck here: [`CREDITS.md`](https://github.com/gigachad80/Mailansh/blob/main/CREDITS.md) (Important)  \nAlso see: [`LICENSE.md`](https://github.com/gigachad80/Mailansh/blob/main/LICENCE.md)\n\nFirst Published : 5th September 2025\n\nLast Updated : 13th September 2025\n\n---\n\n\n**Made with ❤️ in Go** - Fast, concurrent, and reliable contributor analysis.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgigachad80%2Fmailansh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgigachad80%2Fmailansh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgigachad80%2Fmailansh/lists"}