Skip to content

Latest commit

 

History

History
153 lines (106 loc) · 3.71 KB

File metadata and controls

153 lines (106 loc) · 3.71 KB

Service Accounts

References

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()