Digital.ai Release Developer Docs
Digital.ai Release provides three APIs that let you interact with the platform outside the UI. Each serves a different purpose:
- REST API - Send HTTP requests to Release from external tools and scripts.
- Jython API - Query and modify Release data (releases, tasks, phases, variables) from within Script tasks.
- DSL API - Define and create releases and templates as code using a structured Groovy DSL.
REST API
The REST API lets you send HTTP requests to the Release server and get JSON responses back. You can access the API at a URL in the format http://[host]:[port]/[context-root]/[service-resource].
For example:
GET http://localhost:5516/api/v1/releases
Use the REST API to connect Release to CI/CD pipelines, monitoring tools, dashboards, or any system that can make HTTP calls.
Prerequisites
- A running Release instance that is reachable over the network.
- An HTTP client such as
curl, Postman, Pythonrequests, or a CI/CD tool like Jenkins or GitHub Actions. - Authentication credentials. Release supports HTTP Basic Authentication, Personal Access Tokens, and OAuth2 tokens.
What You Can Do With It
- Start a new release from a template and pass in variable values.
- Check the status of a running release, phase, or task.
- Complete, fail, skip, or reassign tasks.
- Search for releases by name, status, or tags.
- Create, update, or delete templates.
- Import and export release templates.
All templates, releases, phases, and tasks have identifiers in the format Applications/ReleaseXXXXXXXXX. To find an identifier, open the template or release in a browser and look at the last part of the URL.
For more information, see How to Find Identifiers for REST API.
For more information, see REST API Reference.
Related Topics
- Create a New Release via REST API
- Import a Release Template Using REST API
- Release API Client (Python SDK)
- Troubleshoot the API
Jython API
The Jython API provides a set of helper objects for querying and modifying Release data from within Jython Script tasks. You can use it to read and update releases, tasks, phases, and variables directly on the server, without making HTTP calls.
Prerequisites
- A Jython Script task in your release template. You write code directly in the task's script field in the Release UI.
- Familiarity with Python 2.7 syntax.
- The Run automated tasks as user property set on the release. Scripts run with the permissions of that user.
What You Can Do With It
- Read or set the value of any variable in the current release.
- Look up tasks in the current phase and check their status.
- Add conditions and branching logic to your release flow.
- Call external HTTP endpoints from within a script.
- Use built-in helper functions for working with dates, JSON, and other common formats.
For more information, see Jython API Reference.
Related Topics
DSL API
The DSL API lets you define and create releases and templates as code using a structured Groovy DSL. You write DSL scripts inside Groovy Script tasks or External Script tasks in Release. When the task runs, the script creates a release or template based on the structure you define.
This is sometimes called the "Releasefile" approach. Groovy Script tasks also have access to the Jython API helper objects, so you can combine both APIs in the same script.
Prerequisites
- A Groovy Script task or External Script task in your release template. You write DSL code directly in the task's script field, or point to an external
.groovyfile. - Familiarity with Groovy syntax. Groovy runs on the Java VM, similar to Jython.
Quick Start Example
This script creates a release with a single manual task when the Groovy Script task runs:
xlr {
release("Hello world release") {
description "Hello world release description"
phases {
phase {
title "Sample"
tasks {
manual("Manual task") {
description "Manual task description"
}
}
}
}
}
}
What You Can Do With It
- Create releases programmatically with phases, tasks, and variables defined in code.
- Create reusable templates across projects.
- Access release and global variables in your scripts, just like in Jython Script tasks.
For more information, see DSL API Reference.