A powerful command-line tool for browsing GitHub repositories
Project description
gitbrowser
gitbrowser is a powerful command-line tool designed to navigate and interact with GitHub repositories directly from your terminal. Browse, view, download, and clone repositories with simplicity and efficiency.
🌎 Language | Idioma
✨ Features
- Repository Exploration: Browse repositories and their file structures with an intuitive interface
- Content Viewing: View files with syntax highlighting directly in your terminal
- Smart Downloads: Download individual files or entire directories while preserving structure
- Repository Cloning: Clone repositories with a single command
- Offline Detection: Automatically detects internet connectivity and provides appropriate options
- Multilingual Support: Full support for English and Portuguese (easily extensible)
- Beautiful Interface: Colorful, intuitive terminal user interface with rich formatting
- Pagination: Efficiently navigate through long lists of repositories and files
- Local Caching: Speeds up repeated operations by caching repository data
🎬 Demo Videos
-
Viewing and downloading specific files: Watch Demo
-
Cloning an entire repository: Watch Demo
📋 Requirements
- Python: 3.8 or higher
- Required libraries:
requests: For HTTP requestsbeautifulsoup4: For HTML parsingcolorama: For terminal text stylingpygments: For code syntax highlightingrich: For enhanced terminal renderingtqdm: For progress barsclick: For command-line interface
🚀 Installation
# Install from PyPI
pip install gitbrowser
# Or install from source
git clone https://github.com/SimpleDioney/gitbrowser.git
cd gitbrowser
pip install -e .
💻 Usage
Basic Usage
# Start the interactive browser
gitbrowser
# Or directly browse a specific user's repositories
gitbrowser browse USERNAME
Examples
# List repositories for a specific user
gitbrowser list microsoft
# View a specific file from a repository
gitbrowser view microsoft/vscode README.md
# Download a specific file
gitbrowser download microsoft/vscode package.json
# Clone a repository
gitbrowser clone microsoft/vscode
🧩 Advanced Features
- Authentication: Use GitHub tokens for accessing private repositories and increased API limits
- Custom Themes: Choose from built-in themes or create your own
- Configurable Settings: Customize behavior through configuration files
- Path Completion: Tab completion for repository and file paths
- Favorites: Save frequently accessed repositories for quick access
🛠️ Development
Setting Up Development Environment
# Clone the repository
git clone https://github.com/SimpleDioney/gitbrowser.git
cd gitbrowser
# Install development dependencies
pip install -e ".[dev]"
# Run tests
pytest
Project Structure
gitbrowser/: Main packageapi/: GitHub API interactionui/: User interface componentsmodels/: Data modelsservices/: Core functionalityutils/: Helper utilities
🤝 Contributing
Contributions are welcome! To contribute:
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature
- Make your changes and add tests
- Ensure all tests pass and code is formatted according to the style guide
- Submit a pull request
📄 License
Distributed under the MIT License. See LICENSE for more information.
🙏 Support
To support continued development and improvements, consider becoming a sponsor:
🌟 Funcionalidades
- Exploração de Repositórios: Navegue por repositórios e suas estruturas de arquivos com uma interface intuitiva
- Visualização de Conteúdo: Veja arquivos com destaque de sintaxe diretamente no seu terminal
- Downloads Inteligentes: Baixe arquivos individuais ou diretórios inteiros preservando a estrutura
- Clonagem de Repositórios: Clone repositórios com um único comando
- Detecção Offline: Detecta automaticamente a conectividade com a internet e fornece opções apropriadas
- Suporte Multilíngue: Suporte completo para inglês e português (facilmente extensível)
- Interface Bonita: Interface de usuário de terminal colorida e intuitiva com formatação rica
- Paginação: Navegue eficientemente por longas listas de repositórios e arquivos
- Cache Local: Acelera operações repetidas com cache de dados de repositório
🎬 Vídeos de Demonstração
-
Visualizando e baixando arquivos específicos: Assista à Demonstração
-
Clonando um repositório inteiro: Assista à Demonstração
📋 Requisitos
- Python: 3.8 ou superior
- Bibliotecas necessárias:
requests: Para requisições HTTPbeautifulsoup4: Para análise de HTMLcolorama: Para estilização de texto no terminalpygments: Para destaque de sintaxe de códigorich: Para renderização aprimorada de terminaltqdm: Para barras de progressoclick: Para interface de linha de comando
🚀 Instalação
# Instale do PyPI
pip install gitbrowser
# Ou instale a partir do código-fonte
git clone https://github.com/SimpleDioney/gitbrowser.git
cd gitbrowser
pip install -e .
💻 Uso
Uso Básico
# Inicie o navegador interativo
gitbrowser
# Ou navegue diretamente nos repositórios de um usuário específico
gitbrowser browse NOME_USUARIO
Exemplos
# Liste repositórios para um usuário específico
gitbrowser list microsoft
# Visualize um arquivo específico de um repositório
gitbrowser view microsoft/vscode README.md
# Baixe um arquivo específico
gitbrowser download microsoft/vscode package.json
# Clone um repositório
gitbrowser clone microsoft/vscode
🧩 Recursos Avançados
- Autenticação: Use tokens GitHub para acessar repositórios privados e aumentar limites de API
- Temas Personalizados: Escolha entre temas integrados ou crie o seu próprio
- Configurações Personalizáveis: Personalize o comportamento através de arquivos de configuração
- Completamento de Caminho: Preenchimento automático para caminhos de repositório e arquivo
- Favoritos: Salve repositórios acessados frequentemente para acesso rápido
🛠️ Desenvolvimento
Configurando o Ambiente de Desenvolvimento
# Clone o repositório
git clone https://github.com/SimpleDioney/gitbrowser.git
cd gitbrowser
# Instale as dependências de desenvolvimento
pip install -e ".[dev]"
# Execute testes
pytest
Estrutura do Projeto
gitbrowser/: Pacote principalapi/: Interação com a API do GitHubui/: Componentes da interface do usuáriomodels/: Modelos de dadosservices/: Funcionalidade principalutils/: Utilitários auxiliares
🤝 Contribuindo
Contribuições são bem-vindas! Para contribuir:
- Faça um fork do repositório
- Crie uma branch para sua feature:
git checkout -b feature/minha-feature
- Faça suas alterações e adicione testes
- Certifique-se de que todos os testes passam e o código está formatado de acordo com o guia de estilo
- Envie um pull request
📄 Licença
Distribuído sob a Licença MIT. Veja LICENSE para mais informações.
🙏 Apoio
Para apoiar o desenvolvimento contínuo e melhorias, considere se tornar um patrocinador:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gitbrowser-4.0.3.tar.gz.
File metadata
- Download URL: gitbrowser-4.0.3.tar.gz
- Upload date:
- Size: 35.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b2c81944bc05a0b4b34f7e992f38af595522a598a81475180b5617d0490d8ef4
|
|
| MD5 |
a53d120d001da76e6852f06f56ef8479
|
|
| BLAKE2b-256 |
ee9d07997a6b5c3db6695010e06960110d8b21d247894011047d7ea794b5ec62
|
File details
Details for the file gitbrowser-4.0.3-py3-none-any.whl.
File metadata
- Download URL: gitbrowser-4.0.3-py3-none-any.whl
- Upload date:
- Size: 38.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e971e6f4072d4af95eb65113d8e8fc10472d07f41251ef25b4bed2979b82b3f
|
|
| MD5 |
47960ebe80bc7f98cf0f92226f1296c8
|
|
| BLAKE2b-256 |
e92836367aaf4176008c8c178d2337af90965743f3d66707a78c7e698b78c144
|