- v4 API:
- :class:`gitlab.v4.objects.ServiceAccount`
- :class:`gitlab.v4.objects.ServiceAccountManager`
- :class:`gitlab.v4.objects.GroupServiceAccount`
- :class:`gitlab.v4.objects.GroupServiceAccountManager`
- :class:`gitlab.v4.objects.GroupServiceAccountAccessToken`
- :class:`gitlab.v4.objects.GroupServiceAccountAccessTokenManager`
- :class:`gitlab.v4.objects.ProjectServiceAccount`
- :class:`gitlab.v4.objects.ProjectServiceAccountManager`
- :class:`gitlab.v4.objects.ProjectServiceAccountAccessToken`
- :class:`gitlab.v4.objects.ProjectServiceAccountAccessTokenManager`
- GitLab API: https://docs.gitlab.com/api/service_accounts/
List instance service accounts:
accounts = gl.service_accounts.list()
Create an instance service account:
sa = gl.service_accounts.create({})
# with optional attributes
sa = gl.service_accounts.create({"name": "my-bot", "username": "my-bot", "email": "my-bot@example.com"})
Update an instance service account:
gl.service_accounts.update(sa.id, {"name": "renamed-bot"})
# or via the object
sa.name = "renamed-bot"
sa.save()
List group service accounts:
accounts = group.service_accounts.list()
Create a group service account:
sa = group.service_accounts.create({})
# with optional attributes
sa = group.service_accounts.create({"name": "ci-bot", "username": "ci-bot"})
Update a group service account:
group.service_accounts.update(sa.id, {"name": "renamed-bot"})
# or via the object
sa.name = "renamed-bot"
sa.save()
Delete a group service account:
group.service_accounts.delete(sa.id) # or via the object sa.delete()
List tokens for a group service account:
tokens = sa.access_tokens.list()
Create a token for a group service account:
token = sa.access_tokens.create({
"name": "ci-token",
"scopes": ["api"],
"expires_at": "2026-01-01",
})
print(token.token)
Rotate a token:
token.rotate() print(token.token) # or directly using a token ID new_token = sa.access_tokens.rotate(token.id) print(new_token["token"])
Revoke a token:
sa.access_tokens.delete(token.id) # or via the object token.delete()
List project service accounts:
accounts = project.service_accounts.list()
Create a project service account:
sa = project.service_accounts.create({})
# with optional attributes
sa = project.service_accounts.create({"name": "ci-bot", "username": "ci-bot"})
Update a project service account:
project.service_accounts.update(sa.id, {"name": "renamed-bot"})
# or via the object
sa.name = "renamed-bot"
sa.save()
Delete a project service account:
project.service_accounts.delete(sa.id) # or via the object sa.delete()
List tokens for a project service account:
tokens = sa.access_tokens.list()
Create a token for a project service account:
token = sa.access_tokens.create({
"name": "ci-token",
"scopes": ["read_repository"],
"expires_at": "2026-01-01",
})
print(token.token)
Rotate a token:
token.rotate() print(token.token) # or directly using a token ID new_token = sa.access_tokens.rotate(token.id) print(new_token["token"])
Revoke a token:
sa.access_tokens.delete(token.id) # or via the object token.delete()