title: Everyday use description: A working day in labdash: the review queue in the morning, the pipelines tab while you work, and the keys that carry both.
Everyday use
A day in labdash has two halves: the merge requests waiting on you, and the pipelines running behind whatever you last pushed.
The review queue
Open labdash. The dashboard paints from the disk cache at once, then refills behind per-section spinners, so the first thing on screen is real rows rather than a loading state.
h and l move between sections. Read down the blockers column before you open anything.
ci failed and conflicts are the author's move. train 3/7 is already merging. The column tells you which rows are worth opening, before you open one.
The preview pane
Enter focuses the preview: the description as rendered markdown, the approval state, the head pipeline, the labels, and the diff size. That is enough to tell a two-minute review from a thirty-minute one.
[ and ] move between the preview tabs: Overview, Pipeline, Approvals, Threads, Commits, Files.
Reading the code
o opens the selected row in your browser. Local git integration checks the branch out in the mapped clone instead, or opens it in $EDITOR.
labdash has no diff viewer. Reading code needs syntax highlighting, blame, and a comment box attached to a line, which a browser and an editor already provide. What labdash covers is everything around the diff: which merge request to open, why it is stuck, and whether its pipeline is green.
Approving and merging
On the small ones, a dependency bump with a green pipeline and no open threads, v approves and m merges without leaving the terminal. The confirmation names the action in full, and says whether the merge adds the branch to a train.
A comment box submits from the dashboard too, which suits "LGTM, one nit". A design critique is better written in a real text area.
Pipelines
Tab switches to pipelines. The scope you browsed to carries over, so a group's whole CI is one keypress from that group's merge requests.
From a failed row, L opens the failing job's log scrolled to the error, rather than line 1 of 40,000. R retries the pipeline from the same row, and x cancels a running one.
You can also watch a pipeline: labdash then polls it quickly until it reaches a terminal state, sends one desktop notification, and stops.
To-dos
Tab again reaches your GitLab to-do list, with the action, the target, the project and the age in the row. d marks one done and D marks all of them, which is the Monday-morning key. A to-do can also jump straight to the merge request row it refers to, or be snoozed until this afternoon, tomorrow, or next week.
Refreshing
r refreshes the current section and Ctrl+R refreshes everything. Each section carries its own interval as well, so a "failed today" tab polls every 30 seconds while a "merged this quarter" tab polls hourly. Rows that changed since the last refresh carry a ✱ marker.
Closing it
q quits. Your pinned tabs, collapsed groups, sort order and last view are already in the state file, so there is nothing to save.