{"id":28956459,"url":"https://github.com/cbwinslow/repo-tool","last_synced_at":"2026-04-28T12:38:05.830Z","repository":{"id":300269627,"uuid":"1005210959","full_name":"cbwinslow/repo-tool","owner":"cbwinslow","description":"A powerful Terminal User Interface (TUI) for managing repositories across GitHub, GitLab, and Bitbucket","archived":false,"fork":false,"pushed_at":"2025-06-20T18:52:57.000Z","size":74,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-20T19:37:17.113Z","etag":null,"topics":["bitbucket","git","github","gitlab","python","repository-management","tui"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cbwinslow.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":"security.py","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-19T21:26:04.000Z","updated_at":"2025-06-20T18:53:01.000Z","dependencies_parsed_at":"2025-06-20T19:37:26.279Z","dependency_job_id":"8aad492c-fce4-483d-a398-1bfd6adf62cd","html_url":"https://github.com/cbwinslow/repo-tool","commit_stats":null,"previous_names":["cbwinslow/repo-tool"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cbwinslow/repo-tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbwinslow%2Frepo-tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbwinslow%2Frepo-tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbwinslow%2Frepo-tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbwinslow%2Frepo-tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cbwinslow","download_url":"https://codeload.github.com/cbwinslow/repo-tool/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cbwinslow%2Frepo-tool/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261556298,"owners_count":23176665,"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","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","git","github","gitlab","python","repository-management","tui"],"created_at":"2025-06-23T21:02:09.502Z","updated_at":"2026-04-28T12:38:05.820Z","avatar_url":"https://github.com/cbwinslow.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RepoTool\n\nA powerful Terminal User Interface (TUI) application for managing and downloading repositories from GitHub, GitLab, and Bitbucket.\n\n## Features\n\n### Repository Management\n- Browse, search, and manage repositories across multiple services\n- Create new repositories with templates and license selection\n- Fork repositories to your account or organization\n- Create and manage issues\n- Delete repositories with confirmation\n- Download repositories with progress tracking\n- Support for multiple repository selection\n- Batch operations via text file input\n\n### Authentication \u0026 Security\n- Secure PAT (Personal Access Token) storage using system keyring\n- Support for GitHub CLI integration\n- SSH key support for all services\n- Token validation and secure storage\n- Automatic token refresh\n\n### User Interface\n- Modern TUI with mouse and keyboard support\n- Progress bars for all operations\n- Message center for status updates and errors\n- Multiple repository selection\n- Batch download of multiple repositories\n- Dark and light themes\n- Configurable UI elements\n\n### Configuration\n- User-configurable settings via TUI\n- Automatic git configuration detection\n- Default paths configuration\n- Service-specific settings\n- Configuration file support (~/.config/repo_tool/config.yaml)\n\n### Logging \u0026 Error Handling\n- Comprehensive error handling and validation\n- Detailed logging with rotation\n- Message center for user feedback\n- Error reporting and debugging tools\n\n### Updates \u0026 Maintenance\n- Automatic update checking\n- Built-in update mechanism\n- Cross-platform support\n- Multiple distribution formats (DEB, Snap, Flatpak)\n\n## Installation\n\n### From Source\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/repo-tool.git\ncd repo-tool\n```\n\n2. Install with make:\n```bash\nmake install\n```\n\n### Using Package Managers\n\n#### DEB Package (Ubuntu/Debian)\n```bash\nsudo dpkg -i repo-tool_1.0.0_all.deb\n```\n\n#### Snap Package\n```bash\nsudo snap install repo-tool\n```\n\n#### Flatpak\n```bash\nflatpak install repo-tool\n```\n\n## Usage\n\n1. Launch the application:\n```bash\nrepo-tool\n```\n\n2. First-time setup:\n   - Enter your authentication tokens for the services you want to use\n   - Configure default download location\n   - Select your preferred theme\n\n3. Using the interface:\n   - Use arrow keys or mouse to navigate\n   - Press 'h' for help\n   - Press 'q' to quit\n   - Press 'r' to refresh repository list\n   - Press 's' for settings\n   - Press 'a' for about\n   - Press 'g' for messages\n   - Use 'space' to select repositories\n   - Press 'd' to download selected repositories\n\n## Configuration\n\nConfiguration is stored in `~/.config/repo_tool/config.yaml`. You can modify:\n\n- Default download location\n- Theme preferences\n- Update check frequency\n- Logging level\n- Enabled services\n\n## Development\n\n### Requirements\n\n- Python 3.8+\n- Node.js (for TypeScript components)\n- Make\n\n### Setup Development Environment\n\n```bash\nmake install\n```\n\n### Running Tests\n\n```bash\nmake test\n```\n\n### Building Documentation\n\n```bash\nmake docs\n```\n\n### Code Style\n\nThe project uses:\n- flake8 and mypy for Python\n- eslint for TypeScript\n\nRun linting:\n```bash\nmake lint\n```\n\n## Contributing\n\nPlease read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- Built with [Textual](https://github.com/Textualize/textual)\n- Inspired by various terminal-based tools like `gh` and `lab`\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbwinslow%2Frepo-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcbwinslow%2Frepo-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcbwinslow%2Frepo-tool/lists"}