{"id":49566114,"url":"https://github.com/ujas-dev/git_repo_manager","last_synced_at":"2026-05-03T11:47:21.448Z","repository":{"id":259759533,"uuid":"879318196","full_name":"ujas-dev/git_repo_manager","owner":"ujas-dev","description":null,"archived":false,"fork":false,"pushed_at":"2026-01-18T12:53:19.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-05-03T11:47:20.124Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ujas-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-10-27T15:40:57.000Z","updated_at":"2026-01-18T12:53:22.000Z","dependencies_parsed_at":"2024-10-27T21:52:41.847Z","dependency_job_id":"536ad94a-55ee-49c0-acba-7132d909e374","html_url":"https://github.com/ujas-dev/git_repo_manager","commit_stats":null,"previous_names":["ujas-dev/git_repo_manager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ujas-dev/git_repo_manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ujas-dev%2Fgit_repo_manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ujas-dev%2Fgit_repo_manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ujas-dev%2Fgit_repo_manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ujas-dev%2Fgit_repo_manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ujas-dev","download_url":"https://codeload.github.com/ujas-dev/git_repo_manager/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ujas-dev%2Fgit_repo_manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32568036,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-05-03T11:47:20.735Z","updated_at":"2026-05-03T11:47:21.441Z","avatar_url":"https://github.com/ujas-dev.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Git Repository Manager](https://placehold.co/1680x200?text=Git+Repository+Manage)\n---\n## Overview\n\nThe **Git Repository Manager** is a powerful Python module designed to streamline the management of Git repositories and maintain clean working directories. With an array of features, it allows developers to efficiently clone, clean, and manage multiple repositories, all while providing robust error handling and logging capabilities.\n\n## 🚀 Features\n\n### 1. **Directory Cleanup**\n   - Remove files and folders that do not match specified patterns to maintain a clutter-free workspace.\n\n### 2. **CSV-Based Cloning**\n   - Clone multiple repositories specified in a CSV file, supporting both default and custom file patterns.\n\n### 3. **Post-Cloning Hooks**\n   - Execute custom shell commands after cloning repositories, allowing for automated setup or configuration tasks.\n\n### 4. **Multi-Threaded Cloning**\n   - Utilize concurrent threads for cloning multiple repositories, significantly improving performance and reducing wait times.\n\n### 5. **Interactive CLI**\n   - User-friendly command-line interface that guides users through cleanup and cloning operations.\n\n### 6. **Error Handling Improvements**\n   - Comprehensive error logging with detailed context, ensuring a smoother user experience and easier debugging.\n\n### 7. **Summary Report**\n   - Generate a summary report detailing operations performed, including total repositories cloned and any errors encountered.\n\n### 8. **Environment Configuration**\n   - Load and customize settings from a JSON configuration file, enabling quick adjustments to module behavior.\n\n### 9. **Dry Run Mode**\n   - Safely simulate operations without making any actual changes, allowing users to preview the effects of their commands.\n\n### 10. **Custom Patterns**\n   - Specify unique file patterns directly in the CSV file for granular control over what files to keep after cloning.\n\n### 11. **Cleanup Options**\n   - Choose specific types of files to clean, such as logs and temporary files, ensuring that your working directory remains organized.\n\n### 12. **Enhanced Logging Levels**\n   - Control the verbosity of logging output with adjustable logging levels, making it easier to focus on critical information.\n\n### 13. **Summary Report**\n   - Automatically generate a comprehensive summary of operations, providing insight into what was cloned, deleted, and any issues that occurred.\n\n## 📦 Requirements\n\n- **Python 3.6 or higher**\n- **Git** must be installed and available in your system's PATH\n\n## 🛠️ Installation\n\n1. **Clone this repository:**\n\n   ```bash\n   git clone https://github.com/yourusername/git-repo-manager.git\n   cd git-repo-manager\n   ```\n\n2. **(Optional) Create a virtual environment:**\n\n   ```bash\n   python -m venv venv\n   source venv/bin/activate  # On Windows use `venv\\Scripts\\activate`\n   ```\n\n3. **Install required packages:**\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n## ⚙️ Configuration\n\nThe module uses a JSON configuration file (`config.json`) to load default settings. Here’s a sample configuration:\n\n```json\n{\n    \"default_csv_file\": \"repositories.csv\",\n    \"clean_directory\": \".\",\n    \"default_patterns\": [\"*.txt\", \"*.log\", \"*~\"],\n    \"log_level\": \"info\",\n    \"max_workers\": 4\n}\n```\n\nYou can customize the settings to suit your needs. If the configuration file is not found, the module will revert to default values.\n\n## 🖥️ Usage\n\nTo run the Git Repository Manager, execute the following command in your terminal:\n\n```bash\npython git_repo_manager.py\n```\n\nYou will be presented with an interactive menu to choose from the following options:\n\n1. **Clean Files and Folders**\n2. **Clone Repositories from CSV**\n3. **Generate Summary Report**\n4. **Exit**\n\n### Example CSV Format\n\nThe CSV file for cloning repositories should have the following format:\n\n```csv\nrepo_url|target_directory|is_active|depth|custom_patterns\nhttps://github.com/user/repo.git|./repo|true|1|*.py,*.txt\n```\n\n- `repo_url`: The URL of the Git repository.\n- `target_directory`: The directory where the repository will be cloned.\n- `is_active`: Whether the repository should be cloned (`true`/`false`).\n- `depth`: The depth of the clone operation.\n- `custom_patterns`: Patterns for files to keep after cloning.\n\n## 📜 Logging\n\nThe module logs operations and errors to `git_repo_manager.log`. Adjust the log level in the configuration file as needed to control verbosity.\n\n## 🤝 Contributing\n\nWe welcome contributions! Please feel free to submit issues or pull requests to enhance this module.\n\n## 📄 License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## 📞 Contact\n\nFor questions or support, feel free to reach out via [GitHub Issues](https://github.com/yourusername/git-repo-manager/issues).\n\n---\n\nThank you for using the Git Repository Manager! Happy coding! 🎉\n```\n\n### Key Enhancements:\n- **Visual Elements**: Added emojis to make sections more engaging.\n- **Feature Details**: Each feature now has a concise description for clarity.\n- **Sections**: Organized sections with headings for better readability.\n- **Contact Information**: Provided a way for users to get support.\n\nFeel free to customize it further to match your project’s branding or specific needs!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fujas-dev%2Fgit_repo_manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fujas-dev%2Fgit_repo_manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fujas-dev%2Fgit_repo_manager/lists"}