Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

⬡ GitView

Professional GitHub Repository Explorer — Browse, download, upload, and manage your GitHub repositories through a sleek, modern desktop interface.

GitView Banner Python License Platform


✨ Features

Category Capabilities
📁 Explorer Browse files & folders with smart icons, breadcrumb navigation, live search/filter
📥 Downloads Single file, selected files, entire folder, or full repository download
📤 Uploads Upload individual files or entire folder trees — committed directly to GitHub
✏️ File Ops Create, rename, delete files & folders in-app
👁 Preview Built-in file viewer with line numbers and monospace rendering
🌿 Branches Switch branches instantly; full branch list auto-loaded per repo
🎨 Themes Toggle between a refined dark and a clean light theme
🔒 Auth Secure token entry with show/hide toggle; token saved locally
ℹ️ About Built-in about panel with developer info and LinkedIn link

🖥️ Screenshots

Dark theme — Explorer tab with file tree, action sidebar, and breadcrumb navigation


🚀 Getting Started

Prerequisites

pip install requests

GitView uses only tkinter (standard library) and requests. No other dependencies required.

Run

python gitview.py

Connecting to GitHub

  1. Go to GitHub → Settings → Developer settings → Personal access tokens
  2. Click "Generate new token (classic)"
  3. Select scope: ✅ repo (full control of repositories)
  4. Copy the generated token
  5. Paste it into GitView's token field and click ⚡ Connect

Your token is saved locally to ~/.gitview_config.json and loaded automatically on next launch.


📖 Usage

Navigating

  • Select a repository from the dropdown at the top
  • Choose a branch from the branch selector
  • Double-click folders to enter them
  • Click ⌂ to return to root, ↑ to go one level up
  • Click any segment in the breadcrumb to jump directly to that level
  • Type in the search box to filter files in the current directory

Downloading

Action How
Single file Select → Download Selected button or right-click
Multiple files Multi-select → Download Selected
Folder Select folder → Download Selected (recursive)
Entire repo Operations tab → Download Entire Repository
Current folder Operations tab → Download Current Folder

Uploading

Action How
Single file Upload File button → choose file → enter commit message
Entire folder Upload Folder button → choose local folder (recursive)
New file New File button → enter name & optional content
New folder New Folder button → enter name (creates a .gitkeep)

File Management

  • Preview: Double-click any text file to open the built-in viewer
  • Rename: Select a file → Rename button (creates new file, deletes old)
  • Delete: Select a file → Delete button (permanent, with confirmation)
  • Copy Path: Copies the relative path to clipboard
  • Open in Web: Opens the current path on github.com

⌨️ Keyboard Shortcuts

Shortcut Action
Enter Connect with entered token
Double-click Enter folder / preview file
Right-click Open context menu

image

🏗️ Architecture

gitview.py
├── Design System        # DARK / LIGHT color palettes, font constants
├── Helpers              # fmt_size(), file_icon()
├── Tooltip              # Hover tooltip widget
├── make_btn()           # Styled button factory with hover effects
└── GitView              # Main application class
    ├── _apply_styles()  # ttk style configuration
    ├── _build_ui()      # Top-level UI construction
    │   ├── Title bar    # Branding, theme toggle, help
    │   ├── Auth bar     # Token entry, connect/disconnect, user card
    │   ├── Notebook     # Explorer / Operations / About tabs
    │   └── Status bar   # Live status, clock, repo count
    ├── Auth methods     # _connect(), _disconnect(), token save/load
    ├── Repo methods     # _load_repos(), _on_repo_select(), branches
    ├── Navigation       # _load_dir(), _populate_tree(), breadcrumb
    ├── Preview          # _preview_selected(), _show_preview()
    ├── Downloads        # _download_*() methods
    ├── Uploads          # _upload_file(), _upload_folder()
    ├── CRUD             # _create_file/folder(), _delete(), _rename()
    └── Utilities        # _copy_path(), _open_in_browser(), help dialog

🔧 Configuration

GitView stores your token in ~/.gitview_config.json:

{
  "token": "ghp_your_token_here",
  "saved_by": "GitView"
}

To clear saved credentials, click ✕ Disconnect inside the app, or delete the file manually.


📋 Requirements

  • Python 3.8 or newer
  • tkinter (bundled with most Python distributions)
  • requests library (pip install requests)
  • GitHub Personal Access Token with repo scope

🤝 Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create your feature branch: git checkout -b feature/my-feature
  3. Commit your changes: git commit -m "Add my feature"
  4. Push to the branch: git push origin feature/my-feature
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License — see the LICENSE file for details.


👨‍💻 Developer

Ali Essam
🇪🇬 Egypt

Built with ❤️ in Egypt

⬡ GitView — making GitHub accessible from your desktop

About

GitView is a lightweight, token-driven tool designed to give you complete visibility and control over your GitHub repositories—without ever needing to clone them locally. By simply providing a GitHub Personal Access Token (PAT), GitView bypasses complex authentication flows and instantly unlocks a seamless interface to explore

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages