API and scripting overview

There are various methods to automate functionality in XL Release.

REST API

The principal method to control XL Release from the outside is through the REST API. This exposes XL Release’s core functionality over HTTP, allowing shell scripts or third-party systems to interact with XL Release. Data is interchanged in the JSON format. With the API, you can start releases, complete tasks, add comments to tasks, and much more.

To get started, see Create a new release via the XL Release REST API using cURL . to To see what functionality can be used. go to the XL Release REST API documentation.

Automation within XL Release

There are multiple ways to interact with third-party systems and automate tasks through scripting in the XL Release user interface.

Webhook

To interact with a third-party system, you can use the Webhook task type. You can connect to any system that has an HTTP endpoint. Example: SOAP or REST API.

Send a request and parse the result into an XL Release variable to use in subsequent tasks. No scripting is needed.

Remote shell scripting

With the Remote Script task type, you can execute a shell script on a remote host. Both Unix and Windows are supported.

Jython Script tasks

Use the Jython Script task type to provide a script that is executed when the task becomes active. XL Release users with the required permission can write a script on the template or release level.

The scripting language used is Jython, which is a Python dialect that runs on the Java VM. XL Release uses Jython 2.7. Because it runs on a Java VM, the complete API of Java 7 can also be used.

Jython Script tasks have access to the XL Release through the XL Release Jython API. This API is equivalent to the REST API.

Plugin tasks

You can use the task plugin mechanism to create custom task types. These tasks will appear in the Add task menu in the XL Release user interface. This is convenient for reusable bits of functionality, such as “Create JIRA ticket” or “Start Jenkins Job”.

The JIRA and Jenkins task types, as well as most other standard tasks in XL Release, are plugin tasks.

Like Jython Script tasks, plugin tasks are written in Jython and have access to the XL Release API. Plugins are installed on the XL Release server.