Simple Hellodocs
Open app

GitLab integration

The GitLab integration lets you browse open merge requests from linked GitLab projects on a project page, without leaving Simple Hello.

Phase 1 is read-only — no writes back to GitLab.

It works with both flavours of GitLab:

  • gitlab.com — the official cloud.
  • Self-hosted GitLab — point it at your internal instance (e.g. https://gitlab.example.com). Useful when source code can't leave your network.

The same code path handles both — the only difference is the instance URL you provide when connecting.

What you need

  • A GitLab account on the instance you want to connect (cloud or self-hosted).
  • A personal access token with the read_api scope.

Create one at https://<your-instance>/-/user_settings/personal_access_tokens — for the cloud that's gitlab.com/-/user_settings/personal_access_tokens.

Step 1 — Connect the team

The PAT lives on the team, so do this once and every project on the team inherits it.

  1. Open the team page (Teams → [your team]) → Integrations tab.
  2. Switch to the GitLab sub-tab and click Connect.
  3. Fill in:
    • Instance URL — defaults to https://gitlab.com. For self-hosted, enter the origin of your instance (no trailing slash, no path).
    • Personal access token — paste the read_api token.
  4. Hit Continue.
Screenshot pending
Connect GitLab dialog — instance URL input (default https://gitlab.com) + token input + link to /-/user_settings/personal_access_tokens.

The dialog verifies the token by hitting GET /api/v4/user against the instance URL. If it fails, double-check the scope on your token and that the URL is reachable from the server.

Each Simple Hello project picks which GitLab projects to surface. Like GitHub (and unlike Jira), you can link multiple GitLab projects to the same Simple Hello project.

  1. Open the project and switch to the GitLab tab.
  2. Click Link projects.
  3. Search the list (it shows every project the PAT can access, most recently active first), tick the ones you want, and hit Link projects.
Screenshot pending
Link GitLab projects dialog — search box + scrollable checkbox list. Private projects show a small lock icon.

Already-linked projects appear pre-checked and disabled, with an "already linked" label.

What you'll see

On the project page

The GitLab tab lists open merge requests across the linked projects, grouped by project. State badges colour the row (draft / open / merged / closed).

Screenshot pending
Project → GitLab tab. MR list grouped by project, each row showing title, source → target branch, author, state badge.

The list refreshes every minute; hit Refresh for an immediate fetch.

Inside flow nodes

Linking MRs from inside the flow editor is not yet wired up for GitLab — flow nodes currently only support GitHub PRs/issues and Jira issues. See the GitHub or Jira page for what node-level linking looks like today.

Managing the connection

  • Reconnect — rotate the PAT or switch to a different instance via the team's GitLab card. Existing project links stay in place; only the credentials change.
  • Unlink a project — on the project's GitLab tab, remove individual projects without disconnecting the team-level integration.
  • Disconnect the team — disconnecting on the team removes the PAT and unlinks all GitLab projects from every project on the team.

Self-hosted notes

  • The integration only uses GitLab's REST v4 API, which has been stable for years and is identical between cloud and self-hosted.
  • Older self-hosted versions (before 14.5) don't expose /personal_access_tokens/self — in that case the connection still works, but the scopes field on the connection will be empty. The PAT itself is still validated against /api/v4/user.
  • The server makes outbound requests to whatever instance URL you give it. If your network blocks egress, make sure your self-hosted GitLab is reachable from the box that runs Simple Hello.

Roadmap

The current build uses a per-team PAT. A future phase may swap PATs for a GitLab application (OAuth + webhooks) so the team can install it once and get live updates instead of polling.