gitlab-roulette-cli

command module
v0.0.0-...-62e7362 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2026 License: MIT Imports: 3 Imported by: 0

README

GitLab Roulette CLI

A Terminal User Interface (TUI) application for tracking GitLab maintainers' review workload and availability.

Overview

GitLab Roulette CLI provides a command-line dashboard that replicates the functionality of the GitLab Roulette web application, allowing you to view reviewer availability, workload statistics, and pick random available reviewers directly from your terminal.

Demo

Overview & Navigation

Browse people, filter by name, and view detailed profiles:

Overview

Project Selection

Switch between GitLab projects with filtering:

Project Selection

Role Selection

Multi-select roles with live filtering:

Role Selection

Features

  • View reviewer availability and capacity
  • Filter by project and role
  • Sort by various metrics (name, assignments, local time, timezone)
  • Availability filtering modes
  • Work hours filter
  • Roulette feature - pick random available reviewers
  • View historical capacity data
  • Display assignment statistics and trends

Technology Stack

Data Source

This application fetches data from publicly available static JSON files generated by the GitLab Roulette pipeline. No authentication is required.

Installation

From Source

Prerequisites: Go 1.25.6 or later

Clone and build:

git clone https://gitlab.com/ck3g/gitlab-roulette-cli.git
cd gitlab-roulette-cli
go build -o bin/gitlab-roulette
./bin/gitlab-roulette

Or install directly:

go install gitlab.com/ck3g/gitlab-roulette-cli@latest
Homebrew

Coming soon.

Usage

Quick Start

Launch the TUI application:

gitlab-roulette

Open the web dashboard in your browser:

gitlab-roulette web
Basic Navigation

The application displays GitLab maintainers and reviewers with their availability, workload, and timezone information. Use keyboard shortcuts to filter, sort, and interact with the data.

Main Screen Layout:

  • Header: Project selection and active roles
  • Role Labels: Color-coded labels showing selected roles
  • People Grid: Cards showing reviewers with their info
  • Help Bar: Quick reference of available shortcuts
Keyboard Shortcuts
Essential Actions
Key Action
? Show help modal with searchable shortcuts
q Quit application
Ctrl+R Refresh/reload data from server
Navigation
Key Action
Tab Select next person card
Shift+Tab Select previous person card
↑↓ or j/k Scroll through people list
Enter Open person details modal
Esc Close modal or clear filter
Filtering
Key Action
/ Filter people by name or username
p Select project
r Select roles (multi-select)
u Toggle unavailable folks (show/fade/hide)
h Toggle work hours filter (all/9-5 local time)
o Order/sort people by various criteria
Actions
Key Action
s Spin the wheel - pick random available person
Ctrl+C Copy username to clipboard (when card selected)
Features Guide
Project Selection (p)
  • Browse all available GitLab projects
  • Press / to filter projects by name
  • Navigate with ↑↓ or j/k
  • Press Enter to select, Esc to cancel
Role Selection (r)
  • Multi-select roles (reviewer, maintainer, by specialty)
  • Press Space to toggle role selection
  • Press a to select all, n to deselect all
  • Press / to filter roles by name
  • Press Enter to apply, Esc to cancel
Sorting Options (o)

Choose from 12 sort options:

  • Name (A→Z or Z→A)
  • Review Count (ascending or descending)
  • Assign Events - 7 days (ascending or descending)
  • Assign Events - 30 days (ascending or descending)
  • Local Time (ascending or descending)
  • Timezone (ascending or descending)
Availability Modes (u)

Cycle through three modes:

  • Show All - Display everyone
  • Fade Unavailable - Dim unavailable people
  • Hide Unavailable - Filter out unavailable people
Work Hours Filter (h)

Toggle between:

  • All - Show people regardless of their local time
  • 9-5 - Only show people within 9am-5pm local time
Spin the Wheel (s)

Pick a random person from the currently filtered list. Great for:

  • Finding available reviewers
  • Load balancing review assignments
  • Quick random selection
Person Detail View

When you select a card and press Enter, you'll see:

  • Full name and username
  • All roles with project assignments
  • Departments
  • Status emoji and message
  • Local time with timezone offset
  • Activity sparklines (7-day and 30-day trends)
  • List of pending MR reviews (clickable links)

Press Ctrl+C to copy username, Enter/Esc/q to close.

Tips
  • Use the help modal (?) - It's searchable! Type to filter shortcuts by keyword
  • Combine filters - Use project + roles + availability + work hours together for precise filtering
  • Name filter (/) works independently of other filters for quick searches
  • Empty states provide helpful hints when no results are found
  • Refresh (Ctrl+R) updates data without restarting the app

Development

This project uses mise for managing Go versions and task automation.

Running from Source

With mise:

mise run run

Or with standard Go commands:

go run main.go
Available Tasks
mise run test          # Run tests
mise run test:cover    # Run tests with coverage
mise run build         # Build binary
mise run lint          # Run all linters
mise run lint:fix      # Run linters with auto-fix
mise run fmt           # Check code formatting
mise run fmt:fix       # Fix code formatting

See .mise.toml for the complete list of available tasks.

License

MIT License - see LICENSE file for details.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
api
ui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL