GitLabSummaryCLI 0.2.3
See the version list below for details.
dotnet tool install --global GitLabSummaryCLI --version 0.2.3
dotnet new tool-manifest
dotnet tool install --local GitLabSummaryCLI --version 0.2.3
#tool dotnet:?package=GitLabSummaryCLI&version=0.2.3
nuke :add-package GitLabSummaryCLI --version 0.2.3
gitlab-summary
A .NET 10 CLI tool and real-time dashboard for monitoring GitLab CI/CD pipeline activity across all projects in a group.
📚 Complete Documentation — Installation, guides, API reference, and more
Features
Core Functionality
- CLI Summary View — Compact table showing pipeline counts, pass/fail rates, and durations per project
- Detailed View — Per-pipeline breakdown with branch, source, commit, and timing info
- Real-time Dashboard — SSE-powered Vue 3 + Vuetify web dashboard with drill-down
- Cross-platform — Secure token storage via macOS Keychain, Windows DPAPI, or Linux DataProtection
- Flexible Filtering — Filter by project, configurable time range (minutes/hours/days)
- Subgroup Support — Includes nested subgroups by default
Dashboard Features
- Dynamic Group & Period Selection — Change GitLab group and time range without restarting server
- Group Hierarchy Browser — Tree-view modal to navigate and select groups (parent/siblings/children)
- AI-Powered Failure Analysis — Analyze failed jobs with Copilot, cache results, ask follow-up questions
- AI Analysis History — Dedicated page to view all cached AI analyses with pagination and search
- Enhanced Job Logs — GitLab CI section parsing with timing display, clean ANSI code handling
- Pipeline Details — View full pipeline details including jobs, commits, and notes from any context
- User Contributor Details — Click on any user to view their pipeline statistics and success rate
- Fork Detection — Visual badges indicate forked repositories
- Theme Persistence — Dark/light mode preference saved across sessions
- Responsive Navigation — Collapsible sidebar with saved state
Installation
Option 1: .NET Global Tool (Recommended)
dotnet tool install -g GitLabSummary
To update to the latest version:
dotnet tool update -g GitLabSummary
Option 2: Self-Contained Executables
Download pre-built executables from the Releases page:
- Windows:
gitlab-summary-win-x64.exe - macOS (Apple Silicon):
gitlab-summary-osx-arm64 - macOS (Intel):
gitlab-summary-osx-x64 - Linux:
gitlab-summary-linux-x64
Option 3: Build from Source
# Clone the repository
git clone https://github.com/garrardkitchen/gitlab-summary.git
cd gitlab-summary
# Build the dashboard
cd src/dashboard
npm install
npm run build
# Build the CLI
cd ../cli
dotnet build
Prerequisites
- .NET 10 SDK (for building from source)
- GitLab Personal Access Token or Group Access Token with
read_apiscope - GitHub Copilot subscription (for AI failure analysis):
- GitHub account with active Copilot subscription
- Authenticated with GitHub CLI:
gh auth login - The Copilot SDK will automatically download the required CLI on first use
Quick Start
# Store your GitLab token securely
gitlab-summary token set --url https://gitlab.example.com
# View pipeline summary (last 24 hours)
gitlab-summary pipelines --group my-org
# View detailed breakdown
gitlab-summary pipelines --group my-org --since 2d --detailed
# Filter to a specific project
gitlab-summary pipelines --group my-org --project api-service --since 12h
# Start the real-time dashboard (opens browser automatically)
gitlab-summary serve --group my-org --open
Dashboard
# Start the SSE server + open browser
dotnet run --project src/cli/GitLabSummary -- serve --group my-org --open
# In another terminal, start the Vue dev server
cd src/dashboard
npm install
npm run dev
# → http://localhost:3000 (proxies API to localhost:5100)
# Or build and serve from CLI (port 5100 serves built dashboard)
npm run build
# Restart serve command → http://localhost:5100
One liner
You must pull the repo 1st and install the gitlab-summary tool from nuget as shown above
To run from one line:
(cd src/dashboard && npm run dev) & (cd ../.. && gitlab-summary serve --group 2217 --open)
Dashboard Usage
- Change Group: Type group ID in top bar or click tree icon to browse hierarchy
- Change Period: Select from dropdown (1d, 3d, 7d, 14d, 30d)
- View Pipeline Details: Click any pipeline row to see jobs and logs
- Analyze Failures: Click "Analyze with AI" on failed jobs (requires GitHub Copilot)
- View Contributors: Click any username to see their statistics
- Customize AI Prompt: Click settings icon → modify system prompt for AI analysis
CLI Reference
token set [--url <URL>]
Store or update your GitLab access token. Prompts for masked input.
token show
Display the stored token (masked) and configured GitLab URL.
token clear
Remove the stored token.
url set --url <URL>
Set the GitLab instance URL.
url show
Display the configured GitLab URL.
pipelines --group <GROUP> [OPTIONS]
Show pipeline activity summary.
| Option | Description | Default |
|---|---|---|
-g, --group |
GitLab group ID or path | Required |
-s, --since |
Time range (30m, 24h, 7d) |
24h |
-p, --project |
Filter by project name | — |
-d, --detailed |
Show per-pipeline details | false |
-u, --url |
Override GitLab URL | Config value |
serve --group <GROUP> [OPTIONS]
Start SSE dashboard server.
| Option | Description | Default |
|---|---|---|
-g, --group |
GitLab group ID or path | Required |
-s, --since |
Time range | 24h |
--port |
Server port | 5100 |
--open |
Open browser automatically | false |
--interval |
Refresh interval (seconds) | 30 |
-u, --url |
Override GitLab URL | Config value |
API Endpoints (Serve Mode)
Core Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/events/pipelines |
GET | SSE stream of pipeline summaries |
/api/pipelines/summary |
GET | Current summary snapshot |
/api/pipelines/{projectId}/details/{pipelineId} |
GET | Pipeline job details |
/api/health |
GET | Health check |
/api/version |
GET | Version information |
/api/avatar?url={url} |
GET | Proxy for GitLab avatars |
Settings Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/settings |
GET | Get current group and period |
/api/settings |
POST | Update group and period (body: {group, since}) |
Group Hierarchy Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/groups/{groupIdOrPath} |
GET | Get group details |
/api/groups/{groupIdOrPath}/subgroups |
GET | Get child groups |
/api/groups/parent/{parentId} |
GET | Get sibling groups by parent ID |
AI Analysis Endpoints
| Endpoint | Method | Description |
|---|---|---|
/api/ai/analyse |
POST | Analyze failed job (body: {projectId, pipelineId, jobId, jobName, stage, log?}) |
/api/ai/followup |
POST | Ask follow-up question (body: {projectId, pipelineId, jobId, jobName, stage, question, log?, previousAnalysis?}) |
/api/ai/analyzed |
GET | Get list of analyzed job IDs for project (query: projectId) |
/api/ai/cache |
GET | Get cached analysis (query: projectId, jobId) |
/api/ai/cache |
DELETE | Delete cached analysis (query: projectId, jobId) |
/api/ai/system-prompt |
GET | Get current AI system prompt |
/api/ai/system-prompt |
PUT | Update AI system prompt (body: {prompt}) |
Job Trace Endpoint
| Endpoint | Method | Description |
|---|---|---|
/api/jobtrace |
GET | Get job log trace (query: projectId, jobId) |
Project Structure
src/
├── cli/ # .NET 10 Console App
│ ├── GitLabSummary/ # Main project
│ │ ├── Commands/ # CLI command handlers
│ │ ├── Models/ # Data models
│ │ ├── Services/ # API client, aggregation, credentials, AI
│ │ ├── Rendering/ # Spectre.Console output formatters
│ │ └── Configuration/ # App settings
│ └── GitLabSummary.Tests/
└── dashboard/ # Vite + Vue 3 + Vuetify
└── src/
├── composables/ # SSE stream, AI analysis, formatters
├── components/ # Vue components (dialogs, detail views)
├── pages/ # Route pages (Overview, Projects, Contributors)
└── types/ # TypeScript interfaces
## Configuration
### Token Storage
Tokens are stored securely using platform-specific APIs:
- **macOS**: Keychain
- **Windows**: DPAPI (Data Protection API)
- **Linux**: .NET DataProtection with file-based key storage
### Settings File
Located at `~/.gitlab-summary/settings.json`:
```json
{
"GitLabUrl": "https://gitlab.example.com"
}
AI Analysis Cache
Located at ~/.gitlab-summary/ai-analysis-cache.json — stores analysis results per job.
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.