The Oleria connection form’s Access Token field accepts any of three credentials: a group access token, a personal access token, or a GitLab service account’s personal access token. All three authenticate the same way against the GitLab API. Use a dedicated group access token or service account, not an employee’s personal access token - if that employee leaves and their account is disabled, the integration breaks.
What Oleria discovers
Once connected, Oleria continuously discovers and maps the following from the configured GitLab group:- Accounts - group members (seat-consuming users on Premium and above; all members on Free), including username, name, state, and multi-factor authentication (MFA) status when GitLab exposes it. Service accounts are detected on Ultimate.
- Roles - GitLab’s built-in access levels (Guest, Planner, Reporter, Developer, Maintainer, Owner, and related levels) and Ultimate custom member roles with their granular permissions.
- User groups - the root group and every descendant subgroup, including nested group membership.
- Resources - projects in the group tree, plus protected branches as their own resources (push and merge access).
- Access - who can reach which project, including:
- direct group membership
- inherited membership from ancestor groups
- group and project shares (the lower of the member’s role in the source group and the share level)
- direct project membership (outside collaborators)
- named protected-branch access control lists (user, group, or deploy key)
- Non-human identities (NHIs) - personal, group, and project access tokens; deploy tokens and deploy keys; cluster agent tokens; group and project CI/CD runners; pipeline trigger tokens; CI/CD job-token inbound allowlists; OAuth applications when the token can list them; Duo Agent Platform catalog agents when the API allows.
- Activity - group and project audit events (Premium and above), including membership changes, token and deploy-key events, protected-branch changes, and authentication events.
Plan coverage
What GitLab returns depends on the group’s plan. If a feature isn’t available on your plan, Oleria simply skips it and continues syncing everything else, rather than failing the connection:
Group access tokens require Premium or Ultimate on GitLab.com, and are not available on a GitLab.com trial. Self-managed GitLab supports group access tokens on any license. On Free, use a personal access token instead.
Prerequisites
- A GitLab group you want Oleria to inventory (GitLab.com or self-hosted).
- A credential that is Maintainer or Owner on that group. Maintainer is enough to connect and inventory members, projects, and most access; Owner is recommended for full coverage, see Token role: Maintainer vs Owner.
- Creating a group access token still requires you to be Owner of the group in GitLab, even though the token itself can be scoped to Maintainer. That is a GitLab UI gate, not an Oleria requirement.
- For self-hosted GitLab, the instance URL (for example,
https://gitlab.example.com).
Token role: Maintainer vs Owner
Oleria does not reject a Maintainer-level credential at connect time. Authenticate only checks that the credential can see the configured group.
Developer and below can sometimes see the group, but miss project-token and deploy-key inventory. Do not use those roles for this integration.
Create an access token in GitLab
A group access token is the preferred credential because it is tied to the group, not to a person. Use a personal access token on Free plans, or a service account token if your group is on Ultimate and you want a dedicated bot identity for the connection.- Option A: Group access token (Recommended)
- Option B: Personal access token (Free plan)
- Option C: Service account token (Ultimate)
1
Open the group
In the top bar, select Search or go to and find the group you want to connect.
2
Open access tokens
In the left sidebar, select Settings -> Access tokens.
3
Create the token
Select Add new token and set:
Select Create group access token.
4
Copy the token
Copy the token immediately (the prefix is usually
glpat-). GitLab does not show it again after you leave the page.Find the Group ID
Oleria accepts either value:
Both resolve to the same group. The numeric ID is stable if you rename the group; the path is easier to read.
Connect GitLab to Oleria
1
Open the integration
Go to your Oleria workspace, select Integrations -> select GitLab.
2
Complete the connection form
Fill in the connection form:

3
Save the integration
Select Authenticate. Oleria calls GitLab for the configured group to confirm the credential can see it before saving.
Verify the integration
Confirm the GitLab instance appears in your Oleria workspace’s connected integrations. After the first sync completes, you can review the discovered accounts, groups, projects, NHIs, and access. Audit event activity (Premium and above) syncs on a separate, more frequent cadence.If you rotate or revoke the credential, edit the integration in Oleria, paste the new value, and select Update. The next sync runs with the new credential.
On GitLab.com, Oleria throttles requests to stay within GitLab’s authenticated Ultimate caps: 2,000 requests per minute and 25,000 per hour. Self-hosted instances use whatever limits you configured on the GitLab side.
Remediation actions
Standard integrations are configured read-only. If you enable remediation for GitLab, Oleria uses the same credential. GitLab requires Owner to manage group members and to change project visibility; removing a direct project membership only needs Maintainer or above on that project.
Removing a member only deletes direct membership on that group. If they still inherit access from a parent group or a share link, they will still appear on projects until those other paths are removed.
What this integration does not cover
- Instance-wide (shared) runners - only group- and project-scoped runners are modeled.
- Snippets - not treated as access-controlled resources.
- SAML group links - GitLab is the service provider; the identity provider remains the authority for those memberships.
- Group-owned OAuth applications on GitLab.com - enumerated when GitLab’s API allows, and skipped without failing the sync if it does not.
- Duo Agent Platform - catalog agents are best-effort; missing API access is skipped unless the token is a fine-grained token missing a required scope.

