Service Accounts¶
References¶
v4 API:
GitLab API: https://docs.gitlab.com/api/service_accounts/
Instance 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()
Group service accounts¶
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()
Group service account personal access tokens¶
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()
Project service accounts¶
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()
Project service account personal access tokens¶
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()