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.
| Class | Operations on |
|---|---|
ActivityLogsApi | Activity logs |
ApplicationApi | Applications |
ArchiveApi | Archived releases |
AttachmentApi | Attachments |
CategoryApi | Categories |
ConfigurationApi | Shared configurations and global variables |
DeliveryApi | Deliveries |
DeliveryPatternApi | Delivery patterns |
DslApi | Release DSL |
EnvironmentApi | Environments |
EnvironmentLabelApi | Environment labels |
EnvironmentReservationApi | Environment reservations |
EnvironmentStageApi | Environment stages |
FolderApi | Folders |
FolderVersioningApi | Stored and synchronized folder contents |
PermissionsApi | Permissions |
PhaseApi | Phases |
ReleaseApi | Releases |
ReportApi | Reports |
RiskApi | Risk |
RolesApi | Roles |
SearchApi | Search across releases and templates |
SettingsApi | Global settings |
TaskApi | Tasks |
TaskReportingApi | Task reporting records |
TeamApi | Teams across releases, templates, and folders |
TemplateApi | Templates |
TriggersApi | Triggers |
UserApi | Users |
VariableApi | Variables 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.