Skip to main content

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.

Python 3.8+ MIT License

🌎 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

📋 Requirements

  • Python: 3.8 or higher
  • Required libraries:
    • requests: For HTTP requests
    • beautifulsoup4: For HTML parsing
    • colorama: For terminal text styling
    • pygments: For code syntax highlighting
    • rich: For enhanced terminal rendering
    • tqdm: For progress bars
    • click: 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 package
    • api/: GitHub API interaction
    • ui/: User interface components
    • models/: Data models
    • services/: Core functionality
    • utils/: Helper utilities

🤝 Contributing

Contributions are welcome! To contribute:

  1. Fork the repository
  2. Create a feature branch:
    git checkout -b feature/my-feature
    
  3. Make your changes and add tests
  4. Ensure all tests pass and code is formatted according to the style guide
  5. 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:

Support on Patreon


🌟 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

📋 Requisitos

  • Python: 3.8 ou superior
  • Bibliotecas necessárias:
    • requests: Para requisições HTTP
    • beautifulsoup4: Para análise de HTML
    • colorama: Para estilização de texto no terminal
    • pygments: Para destaque de sintaxe de código
    • rich: Para renderização aprimorada de terminal
    • tqdm: Para barras de progresso
    • click: 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 principal
    • api/: Interação com a API do GitHub
    • ui/: Componentes da interface do usuário
    • models/: Modelos de dados
    • services/: Funcionalidade principal
    • utils/: Utilitários auxiliares

🤝 Contribuindo

Contribuições são bem-vindas! Para contribuir:

  1. Faça um fork do repositório
  2. Crie uma branch para sua feature:
    git checkout -b feature/minha-feature
    
  3. Faça suas alterações e adicione testes
  4. Certifique-se de que todos os testes passam e o código está formatado de acordo com o guia de estilo
  5. 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:

Apoie no Patreon

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitbrowser-4.0.3.tar.gz (35.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitbrowser-4.0.3-py3-none-any.whl (38.4 kB view details)

Uploaded Python 3

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

Hashes for gitbrowser-4.0.3.tar.gz
Algorithm Hash digest
SHA256 b2c81944bc05a0b4b34f7e992f38af595522a598a81475180b5617d0490d8ef4
MD5 a53d120d001da76e6852f06f56ef8479
BLAKE2b-256 ee9d07997a6b5c3db6695010e06960110d8b21d247894011047d7ea794b5ec62

See more details on using hashes here.

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

Hashes for gitbrowser-4.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 1e971e6f4072d4af95eb65113d8e8fc10472d07f41251ef25b4bed2979b82b3f
MD5 47960ebe80bc7f98cf0f92226f1296c8
BLAKE2b-256 e92836367aaf4176008c8c178d2337af90965743f3d66707a78c7e698b78c144

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page