Skip to main content
Version: Release SaaS

Digital.ai Release Python API Client

The Digital.ai Release Python API Client (digitalai-release-api-client) is a standalone Python 3 client library for the Digital.ai Release REST API. It is the Python 3 equivalent of the Digital.ai Release Jython API: it uses the same imports, the same domain classes, and the same Java-style camelCase method names.

Each API class wraps one REST resource and returns strongly typed Pydantic domain models. You can use the client from any Python 3 script that can reach a Release server.

Installation

Install the package with pip:

pip install digitalai-release-api-client

The package is self-contained. Its only runtime dependencies are pydantic and requests.

Authentication

The client supports two authentication options:

  • Basic: a username and password.
  • PAT: a personal access token, used instead of a username and password.

For basic authentication, pass the server URL, username, and password to the ReleaseAPIClient constructor:

from com.xebialabs.xlrelease.release_api_client import ReleaseAPIClient

client = ReleaseAPIClient("https://your-release-instance", "username", "password")

For the exact constructor signature to use with a personal access token, see the API client documentation.

Basic Usage

Build a ReleaseAPIClient, wrap it with the API class you need, then call the API methods:

from com.xebialabs.xlrelease.release_api_client import ReleaseAPIClient
from com.xebialabs.xlrelease.api.v1.release_api import ReleaseApi

client = ReleaseAPIClient("https://your-release-instance", "username", "password")
release = ReleaseApi(client).getRelease("Applications/Releasexxxxxxxx")
print(release.id, release.title, release.status)

Method names are camelCase to match the Java and Jython public API (getRelease, searchTasksByTitle), not Python's usual snake_case.

API Classes

Each API class wraps one REST resource. Import a class from com.xebialabs.xlrelease.api.v1 and construct it with a ReleaseAPIClient.

ClassOperations on
ActivityLogsApiActivity logs
ApplicationApiApplications
ArchiveApiArchived releases
AttachmentApiAttachments
CategoryApiCategories
ConfigurationApiShared configurations and global variables
DeliveryApiDeliveries
DeliveryPatternApiDelivery patterns
DslApiRelease DSL
EnvironmentApiEnvironments
EnvironmentLabelApiEnvironment labels
EnvironmentReservationApiEnvironment reservations
EnvironmentStageApiEnvironment stages
FolderApiFolders
FolderVersioningApiStored and synchronized folder contents
PermissionsApiPermissions
PhaseApiPhases
ReleaseApiReleases
ReportApiReports
RiskApiRisk
RolesApiRoles
SearchApiSearch across releases and templates
SettingsApiGlobal settings
TaskApiTasks
TaskReportingApiTask reporting records
TeamApiTeams across releases, templates, and folders
TemplateApiTemplates
TriggersApiTriggers
UserApiUsers
VariableApiVariables across releases, templates, and folders

For the full method reference of each class, see the API client documentation.

Domain Models

Domain classes live in the com.xebialabs.xlrelease.domain namespace, the same namespace as the Java and Jython API, so imports port across unchanged:

from com.xebialabs.xlrelease.domain.release import Release
from com.xebialabs.xlrelease.domain.task import Task
from com.xebialabs.xlrelease.domain.variable import Variable

All models extend DomainBase (Pydantic v2). Read attributes such as release.title, modify them, and pass the object back to an update method. Unknown fields returned by the server round-trip safely.