Repository navigation
Development
BenKoncsik edited this page May 4, 2026
·
1 revision
GitRunnerManager/
├── blueprint.md # Architecture documentation
├── README.md # Project overview
├── docs/wiki/ # Wiki documentation
├── swfit/ # Native SwiftUI macOS implementation
│ ├── Package.swift
│ ├── Assets/ # App icons
│ ├── Sources/GitRunnerManager/
│ │ ├── App/
│ │ │ └── GitRunnerManagerApp.swift
│ │ ├── Models/
│ │ │ └── RunnerModels.swift
│ │ ├── Services/
│ │ │ ├── AppUpdateService.swift
│ │ │ ├── BatteryMonitor.swift
│ │ │ ├── NetworkConditionMonitor.swift
│ │ │ ├── RunnerController.swift
│ │ │ ├── RunnerLogParser.swift
│ │ │ └── RunnerResourceMonitor.swift
│ │ ├── Settings/
│ │ │ ├── AppPreferencesStore.swift
│ │ │ └── SettingsView.swift
│ │ ├── Stores/
│ │ │ └── RunnerMenuStore.swift
│ │ ├── Support/
│ │ │ ├── AppStrings.swift
│ │ │ ├── SettingsWindowController.swift
│ │ │ └── Shell.swift
│ │ ├── Resources/
│ │ │ ├── en.lproj/Localizable.strings
│ │ │ └── hu.lproj/Localizable.strings
│ │ └── Views/
│ │ └── MenuPanelView.swift
│ └── tests/
│ └── GitRunnerManagerTests/
│ └── AppPreferencesStoreTests.swift
├── Avalonia/ # Cross-platform Avalonia implementation
│ ├── GitRunnerManager.sln
│ ├── README.md
│ ├── scripts/
│ │ ├── build.sh
│ │ ├── publish-linux-x64.sh
│ │ ├── publish-macos-arm64.sh
│ │ └── publish-windows-x64.sh
│ ├── publish/ # Build outputs
│ └── src/
│ ├── GitRunnerManager.Core/ # Domain layer
│ ├── GitRunnerManager.Platform/ # Platform implementations
│ ├── GitRunnerManager.App/ # UI application
│ └── GitRunnerManager.Tests/ # Unit tests
└── scripts/ # Shared build scripts
├── build_and_run_avalonia.sh
├── build_and_run_swift.sh
└── build_dmg_swfit.sh
# Build and run
./scripts/build_and_run_swift.sh
# Build an .app bundle
./scripts/build_and_run_swift.sh --bundle
# Create a DMG
APP_VERSION=1.0.0 ./scripts/build_dmg_swfit.shswift test --package-path swfitTests are located in swfit/tests/GitRunnerManagerTests/.
# Build all projects
cd Avalonia && ./scripts/build.sh
# Publish for macOS (ARM64)
./scripts/publish-macos-arm64.sh
# Publish for Windows (x64)
./scripts/publish-windows-x64.sh
# Publish for Linux (x64)
./scripts/publish-linux-x64.shBuild outputs are written to Avalonia/publish/.
cd Avalonia
dotnet test src/GitRunnerManager.Tests/GitRunnerManager.Tests.csprojTests use xUnit 2.9.2 with coverlet for code coverage.
| Test File | Coverage |
|---|---|
PreferencesStoreTests.cs |
Preference persistence, defaults, round-trip |
DiagnosticLogTests.cs |
Diagnostic log write behavior |
GitHubActionsDiagnosticTests.cs |
Diagnostic JSON/Markdown export |
GitHubJobMatcherTests.cs |
Local runner to GitHub job correlation |
GitHubServiceTests.cs |
Auth and API behavior |
RunnerControllerTests.cs |
Process control behavior |
RunnerFolderAndLogServiceTests.cs |
Folder validation and log reading |
RunnerManagerTests.cs |
Multi-runner profile and bulk behavior |
RunnerSetupWizardTests.cs |
Setup validation and wizard logic |
ResourceMonitorTests.cs |
Process parsing, tree aggregation |
RunnerLogParserTests.cs |
Log pattern matching, activity detection |
| Aspect | Detail |
|---|---|
| Language | Swift 6.0 |
| Platform | macOS 14.0+ |
| Package Manager | Swift Package Manager |
| UI Framework | SwiftUI (MenuBarExtra) |
| State Management |
@Observable, @MainActor
|
| External Dependencies | None (pure Apple frameworks) |
| Test Framework | XCTest |
| Aspect | Detail |
|---|---|
| Language | C# (.NET 10.0) |
| UI Framework | Avalonia 12.0.1 |
| MVVM | CommunityToolkit.Mvvm 8.3.2 |
| DI | Microsoft.Extensions.DependencyInjection 9.0.0 |
| Runtime Identifiers | win-x64, osx-arm64, linux-x64 |
| Test Framework | xUnit 2.9.2 |
- No comments in source code unless explicitly requested
- Follow Swift best practices for the SwiftUI implementation
- Follow C# conventions for the Avalonia implementation
- Use existing patterns and conventions from the codebase
- Keep code organized according to the layered architecture
- Both implementations share the same product direction but differ in architecture and feature completeness
- See Architecture for detailed architecture diagrams
- See Installation for end-user installation instructions
- See Troubleshooting for common development-related issues
GitRunnerManager Wiki · Lightweight tray/menu bar app for managing local GitHub Actions self-hosted runners.
Home · Getting Started · Installation · Usage · Architecture · Troubleshooting
Project: GitRunnerManager
Organization: HunKonTech
Documentation is based on the project blueprint and may evolve with the SwiftUI and Avalonia implementations.
© 2026 HunKonTech. All rights reserved.