A powerful, cross-platform desktop application for GitLab operations. Manage projects, commits, issues, and registries all from one elegant interface.
- π Project Discovery - Browse, search, and manage your GitLab projects
- π Commit History - View commits with advanced filtering and pagination
- βοΈ Issue Management - Create, read, and manage project issues effortlessly
- π¦ Registry Access - Explore container and package registries
- π Secure Configuration - Store GitLab API keys locally with encrypted persistence
- π Cross-Platform - Native support for Windows, Linux, and macOS
- π¨ Modern UI - GNOME-inspired design system with intuitive navigation
- β‘ Fast & Responsive - Built on Avalonia for optimal performance
| Component | Technology |
|---|---|
| Framework | Avalonia 11.3.9 |
| Language | C# |
| Runtime | .NET 9.0 |
| Architecture | MVVM (Model-View-ViewModel) |
| DI Framework | Built-in .NET Dependency Injection |
| API | GitLab API v4 |
- .NET 9.0 SDK - Download here
- GitLab Account with API access
- A valid GitLab Personal Access Token
-
Clone the repository
git clone https://github.com/WeWeBunnyX/Tanuki-Panel.git cd TanukiPanel -
Restore dependencies
dotnet restore
-
Build the project
dotnet build
-
Run the application
dotnet run
- Launch TanukiPanel
- On the Welcome screen, click on the API Key Guide to find your GitLab personal access token
- Enter your API key in the configuration screen
- Select your desired scopes and permissions
- Start exploring your GitLab projects!
- Browse all your GitLab projects
- Search by project name or description
- View project metadata (visibility, star count, owner)
- Navigate to project details with one click
- Filter commits by date range
- Paginate through commit history (20 commits per page)
- View commit details (author, date, message)
- Direct links to GitLab commit pages
- Create new issues within the app
- View all project issues
- Close or reopen existing issues
- Filter and search through issues
- Pagination support (15 issues per page)
- Access container registries
- Browse package registries
- View package versions and metadata
Views (UI Layer)
β (Data Binding)
ViewModels (Business Logic)
β (Commands & Data)
Services (Domain Logic)
β
Models (Data Entities)
TanukiPanel/
βββ Views/ # Avalonia UI components
βββ ViewModels/ # MVVM business logic
βββ Services/ # API, navigation, persistence
βββ Models/ # Domain entities
βββ Assets/ # Static resources
βββ Program.cs # Application entry point
Views - User interface built with Avalonia:
- MainWindow, WelcomeView, ProjectsView, CommitView, IssuesView, etc.
ViewModels - Implements commands and state management:
- ProjectsViewModel, IssuesViewModel, CommitViewModel, etc.
Services - Handles business logic and integrations:
GitLabApiService- REST client for GitLab APINavigationService- MVVM navigationApiKeyPersistence- Secure credential storageToastService- User notifications
Models - Data entities:
- User, Project, Commit, Issue, Package, etc.
TanukiPanel securely manages your GitLab API key:
- Keys are stored locally in
tanuki_api_key.json - Timestamped for tracking
- Used only for GitLab API authentication
- Never transmitted or shared
- Go to GitLab Settings
- Click "Add new token"
- Select scopes:
api,read_user,read_repository,read_registry - Click "Create personal access token"
- Copy the token and paste it in TanukiPanel
# Restore dependencies
dotnet restore
# Build in Debug mode
dotnet build
# Build in Release mode
dotnet build -c Release
# Run tests (if available)
dotnet testThe project uses TanukiPanel.csproj configured for:
- Target Framework:
.NET 9.0 - Nullable reference types enabled
- Platform-specific runtime identifiers
Contributions are welcome! Here's how to contribute:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow C# naming conventions (PascalCase for public members)
- Use MVVM patterns consistently
- Write descriptive commit messages
- Keep UI logic in ViewModels, not Views
- Ensure .NET 9.0 SDK is installed:
dotnet --version - Try cleaning and rebuilding:
dotnet clean && dotnet build
- Verify your GitLab personal access token is valid
- Check that required scopes are enabled
- Ensure token hasn't expired on GitLab
- Check your internet connection
- Verify GitLab API is accessible
- Check application logs for error details
- OS: Windows 10+, Ubuntu 20.04+ (or any other GNU/Linux distribution), macOS 10.15+
- .NET Runtime: 9.0 or higher
- Disk Space: ~200 MB for installation
This project is licensed under the GNU General Public License v2.0 (GPLv2) - see the LICENSE file for details.
Having issues?
- Check the GitHub Issues
- Create a new issue with details about your problem
- Built with Avalonia - Cross-platform MVVM UI framework
- Uses GitLab API v4
- Inspired by desktop-first developer experience
- Community Toolkit for MVVM support
Made with β€οΈ for GitLab developers