GitLab CI

GitLab CI pipeline status in your Mac menu bar

ShipBoard shows the latest GitLab CI pipeline for each branch you pick, stage by stage, in the macOS menu bar — and sends a native notification when one fails. It needs only a read_api token.

Download ShipBoard — Free macOS 14+ · Apple Silicon & Intel · v1.1.1

What you see for each branch

Set it up

  1. Create a personal access token with the read_api scope.
  2. In ShipBoard, click +, choose GitLab, and paste the token. It’s verified with GitLab, then saved to your Keychain.
  3. Search your projects, then tick the branches to watch — each branch gets its own card.

What access ShipBoard needs

CredentialA GitLab personal access token, stored in the macOS Keychain.
Scoperead_api — read access to the API. ShipBoard never needs api (full read/write).
API callsGET /user, /projects, …/repository/branches, …/pipelines/latest, …/pipelines/{id}/jobs, …/repository/commits/{sha}

ShipBoard only reads. It never retries, cancels or triggers pipelines.

Good to know

GitLab CI FAQ

Which token scope does ShipBoard need?

Only read_api. ShipBoard never writes, so the full api scope isn’t needed.

Does it support self-managed GitLab?

Not yet — only gitlab.com.

Can I watch several branches of one project?

Yes. Tick each branch; every one gets its own card on the board.

Will it tell me when a pipeline fails?

Yes. macOS shows a native notification when a pipeline goes from running to failed, and optionally when it succeeds. You can turn each one off in Settings.

How often does ShipBoard check GitLab?

Every 30 seconds by default; you can choose anything from 15 seconds to 5 minutes in Settings. Each check makes up to three read-only API calls per branch you watch, and if gitlab.com can’t be reached ShipBoard retries every 15 seconds until it’s back.

What happens when my token expires?

The GitLab group on the board shows “Your GitLab token is invalid or expired.” Use Set GitLab token on that row to paste a new read_api token, and the pipelines refresh straight away.