These are the public REST services exposed by the XL Release server.
You can access the REST API via a URL of the form http://[host]:[port]/[context-root]/[service-resource]
.
For example:
Identifiers
You need to know the identifiers that releases, phases, and tasks have in the database.
Both templates and releases have an ID of the form Applications/ReleaseXXXXXXXXX
, where XXXXXXXXX
is a nine-digit number (all IDs start with Applications/ for technical reasons).
If you have organized templates and releases in folders, their IDs will be of the form Applications/FolderXXXXXXXXX-FolderXXXXXXXXX-ReleaseXXXXXXXXX
.
The fastest way to find the ID of a template or release is to open it in a browser and look at the URL in the location bar.
Take the last part of the URL and add the Applications/
prefix.
If the template or release is in a folder, you must also replace the hyphens (-) with forward slashes (/).
To get the identifiers of phases and tasks, first do a REST call to get the contents of a release, and then inspect the results to find the IDs. |
Properties that start with '$' sign are considered internal properties - i.e. may change between product versions. Please do not rely on those properties to be present. |
Authentication
Most resources require authentication. You can use HTTP Basic Authentication.
Error codes
- 400
-
Sending an invalid
JSON
object or aJSON
object containing incorrect parameters or values will return aBad Request
response:
Can't parse the following as a JSON object:
[{}]
- 401
-
Sending incorrect user/password in the
Authorization
header will return anUnauthorized
response. - 402
-
Having an expired or invalid license will return
Payment required
response. - 403
-
Trying to access endpoints without all the correct permissions will return a
Forbidden
response:
You do not have template#edit on APPLICATIONS permission on Applications/Release126975871.
- 409
-
When
CIs
with the same name exist in the same location, aConflict
error will be returned:
A folder with the title 'Folder 2' already exists under the folder with ID 'Applications'.
- 500
-
If the server can’t process your request, an
Internal Server Error
will be returned.
Finding templates, releases, phases, tasks
This section describes how to use the XL Release API to retrieve the properties from the main building blocks of the system.
Find template/release by ID
To find a template or release using a specific ID, send this request:
GET /api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21
$ curl 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21' \
'Accept:application/json'
Using the following parameters
-
for template:
Parameter | Description |
---|---|
|
Full template identifier; for example, Applications/Release1 |
-
for release:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
Parameter | Description |
---|---|
|
The flag indicating if the release should be decorated with role ids extension; defaults to false |
The response contains a JSON representation of the template/release:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1267
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ ],
"teams" : [ ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Release'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The triggers that may start a release from a template. (Templates only) |
|
|
The teams configured on the release. |
|
|
File attachments of the release. |
|
|
The list of phases in the release. |
|
|
The calculated flag status, derived from the flags from the release and its tasks. |
|
|
The state the release is in. |
|
|
The tags of the release. Tags can be used for grouping and querying. |
|
|
List of variable CIs representing variables in this release or template |
|
|
Releases automatically abort when a task fails if this property is set to true. |
|
|
Allows the usage of passwords in non-password fields. Passwords values are masked in the UI and logging output but are decrypted before the task execution. |
|
|
Disable all notifications for this release. |
|
|
If set to false, a trigger can’t create a release if the previous one it created is still running. |
|
|
The ID of the template that created this release. |
|
|
True if release was created by a trigger. |
|
|
The credentials of this user are used to run automated scripts in this release. |
|
|
The password of the user that lends his credentials to run the scripts. |
|
|
Extensions of this release, e.g. 'Release contents dashboard' |
|
|
The Create Release task from which this release was created, if any |
|
|
If true, the release will automatically start at scheduledStartDate. |
|
|
The comment to associate with the action |
|
|
Map from property name to a variable name that replaces that property |
|
|
Risk score |
|
|
Total risk score |
|
|
Risk profile used in risk calculations |
Find archived release by ID
To find an archived release using a specific ID, send this request:
GET /api/v1/releases/archived/Applications/Release162151faba694d03aa3065665cf26f21
$ curl 'http://localhost:5516/api/v1/releases/archived/Applications/Release162151faba694d03aa3065665cf26f21' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/releases/archived/Applications/Release162151faba694d03aa3065665cf26f21' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
Parameter | Description |
---|---|
|
The flag indicating if the release should be decorated with role ids extension; defaults to false |
You will receive the same response as in Find template/release by ID
Find release by title
Note that you cannot find a template by title. |
To find a release using a specific title, send this request:
GET /api/v1/releases/byTitle?releaseTitle=Find%20me
$ curl 'http://localhost:5516/api/v1/releases/byTitle?releaseTitle=Find%20me' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/releases/byTitle?releaseTitle=Find%20me' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The title of the release |
The response contains a list of releases with the specified title:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1225
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Find me",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"realFlagStatus" : "OK",
"status" : "PLANNED",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ ],
"teams" : [ ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
} ]
Find releases by criteria
To find all releases matching a specific search criteria, send this request:
POST /api/v1/releases/search?page=0&resultsPerPage=100&pageIsOffset=false
{
"title" : "Find me",
"tags" : [ "foo", "bar" ],
"taskTags" : null,
"timeFrame" : "LAST_MONTH",
"from" : null,
"to" : null,
"active" : false,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : false,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderDirection" : "ASC",
"riskStatusWithThresholds" : null
}
$ curl 'http://localhost:5516/api/v1/releases/search?page=0&resultsPerPage=100&pageIsOffset=false' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"title" : "Find me",
"tags" : [ "foo", "bar" ],
"taskTags" : null,
"timeFrame" : "LAST_MONTH",
"from" : null,
"to" : null,
"active" : false,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : false,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderDirection" : "ASC",
"riskStatusWithThresholds" : null
}'
$ echo '{
"title" : "Find me",
"tags" : [ "foo", "bar" ],
"taskTags" : null,
"timeFrame" : "LAST_MONTH",
"from" : null,
"to" : null,
"active" : false,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : false,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderDirection" : "ASC",
"riskStatusWithThresholds" : null
}' | http POST 'http://localhost:5516/api/v1/releases/search?page=0&resultsPerPage=100&pageIsOffset=false' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The (optional) page of results to return; defaults at 0 |
|
The (optional) the number of results per page; defaults at 100 |
|
The (optional) flag indicating if page is used as offset; defaults to false |
The following filters are available to be specified in the request body:
Path | Type | Description |
---|---|---|
|
|
Case-insensitive matches the part of the release title |
|
|
Matches the releases containing all of the specified tags |
|
|
The time-frame to search releases in. Valid values: LAST_MONTH, LAST_THREE_MONTHS, LAST_SIX_MONTHS, LAST_YEAR. Specify RANGE to filter by a custom from-to date range |
|
|
Matches the releases with end date after or equal to this date |
|
|
Matches the releases with start date before this date |
|
|
Matches the releases with the IN_PROGRESS, FAILED, FAILING or PAUSED status |
|
|
Matches the releases with the PLANNED status |
|
|
Matches the releases with the IN_PROGRESS status |
|
|
Matches the releases with the PAUSED status |
|
|
Matches the releases with the FAILING status |
|
|
Matches the releases with the FAILED status |
|
|
Matches the releases with the COMPLETED or ABORTED status |
|
|
Matches the releases with the COMPLETED status |
|
|
Matches the releases with the ABORTED status |
|
|
Matches the releases with me as the owner |
|
|
Matches the releases which need attention or are at risk |
|
|
Matches the releases which have been archived |
|
|
Matches the releases stored under this folder |
|
|
The order of the returning set: risk, start_date, end_date, title (only available for templates) |
|
|
The order direction of the returning set: ASC, DESC |
The response contains a list of releases matching the criteria:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1457
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Find me",
"scheduledStartDate" : "2022-07-14T17:21:32.762+02:00",
"dueDate" : "2022-07-14T17:21:32.762+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:21:32.762+02:00",
"queryableEndDate" : "2022-07-14T17:21:32.762+02:00",
"realFlagStatus" : "OK",
"status" : "PLANNED",
"tags" : [ "foo", "bar" ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ ],
"teams" : [ ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
} ]
Full search releases by criteria
To find all releases matching a specific search criteria grouped by database, send this request:
POST /api/v1/releases/fullSearch?page=0&resultsPerPage=25&archivePage=0&archiveResultsPerPage=25
{
"title" : null,
"tags" : null,
"taskTags" : null,
"timeFrame" : null,
"from" : null,
"to" : null,
"active" : true,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : true,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderBy" : "end_date",
"orderDirection" : null,
"riskStatusWithThresholds" : null
}
$ curl 'http://localhost:5516/api/v1/releases/fullSearch?page=0&resultsPerPage=25&archivePage=0&archiveResultsPerPage=25' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"title" : null,
"tags" : null,
"taskTags" : null,
"timeFrame" : null,
"from" : null,
"to" : null,
"active" : true,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : true,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderBy" : "end_date",
"orderDirection" : null,
"riskStatusWithThresholds" : null
}'
$ echo '{
"title" : null,
"tags" : null,
"taskTags" : null,
"timeFrame" : null,
"from" : null,
"to" : null,
"active" : true,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : true,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderBy" : "end_date",
"orderDirection" : null,
"riskStatusWithThresholds" : null
}' | http POST 'http://localhost:5516/api/v1/releases/fullSearch?page=0&resultsPerPage=25&archivePage=0&archiveResultsPerPage=25' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The (optional) page of results to return from the active database; defaults at 0 |
|
The (optional) the number of results per page; from the active database; defaults at 100 |
|
The (optional) page of results to return from the archive database; defaults to page |
|
The (optional) the number of results per page; from the archive database; defaults to resultsPerPage |
The following filters are available to be specified in the request body:
Path | Type | Description |
---|---|---|
|
|
Case-insensitive matches the part of the release title |
|
|
Matches the releases containing all of the specified tags |
|
|
The time-frame to search releases in. Valid values: LAST_MONTH, LAST_THREE_MONTHS, LAST_SIX_MONTHS, LAST_YEAR. Specify RANGE to filter by a custom from-to date range |
|
|
Matches the releases with end date after or equal to this date |
|
|
Matches the releases with start date before this date |
|
|
Matches the releases with the IN_PROGRESS, FAILED, FAILING or PAUSED status |
|
|
Matches the releases with the PLANNED status |
|
|
Matches the releases with the IN_PROGRESS status |
|
|
Matches the releases with the PAUSED status |
|
|
Matches the releases with the FAILING status |
|
|
Matches the releases with the FAILED status |
|
|
Matches the releases with the COMPLETED or ABORTED status |
|
|
Matches the releases with the COMPLETED status |
|
|
Matches the releases with the ABORTED status |
|
|
Matches the releases with me as the owner |
|
|
Matches the releases which need attention or are at risk |
|
|
Matches the releases which have been archived |
|
|
Matches the releases stored under this folder |
|
|
The order of the returning set: risk, start_date, end_date, title (only available for templates) |
|
|
The order direction of the returning set: ASC, DESC |
The response contains a list of grouped results (live, archived) matching the criteria:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 6813
{
"live" : {
"page" : 0,
"size" : 3,
"releases" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Planned Release",
"scheduledStartDate" : "2022-07-14T17:21:33.214+02:00",
"dueDate" : "2022-07-15T01:21:33.214+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:21:33.214+02:00",
"queryableEndDate" : "2022-07-15T01:21:33.214+02:00",
"realFlagStatus" : "OK",
"status" : "PLANNED",
"tags" : [ "foo", "bar" ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault"
}, {
"id" : "Applications/Releasecaa6882c22ff46b89abf7140359df88a",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Running Release",
"dueDate" : "2022-07-15T01:16:33.215+02:00",
"startDate" : "2022-07-14T17:16:33.215+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:16:33.215+02:00",
"queryableEndDate" : "2022-07-15T01:16:33.215+02:00",
"realFlagStatus" : "OK",
"status" : "IN_PROGRESS",
"tags" : [ "bar" ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault"
}, {
"id" : "Applications/Release9303b354aba041eea4e2486ed81f80c2",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Failed Release",
"dueDate" : "2022-07-15T01:11:33.215+02:00",
"startDate" : "2022-07-14T17:11:33.215+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:11:33.215+02:00",
"queryableEndDate" : "2022-07-15T01:11:33.215+02:00",
"realFlagStatus" : "OK",
"status" : "FAILED",
"tags" : [ "foo" ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault"
} ]
},
"archived" : {
"page" : 0,
"size" : 2,
"releases" : [ {
"id" : "Applications/Release4c0a37c875694c97b30fa971fc1ee03c",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Completed Release",
"startDate" : "2022-07-14T09:21:33.215+02:00",
"endDate" : "2022-07-14T17:21:33.215+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T09:21:33.215+02:00",
"queryableEndDate" : "2022-07-14T17:21:33.215+02:00",
"realFlagStatus" : "OK",
"status" : "COMPLETED",
"tags" : [ "bar" ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault"
}, {
"id" : "Applications/Release18a1237a6df6409b941ab62a245141cc",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Aborted Release",
"startDate" : "2022-07-14T08:21:33.215+02:00",
"endDate" : "2022-07-14T16:21:33.215+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T08:21:33.215+02:00",
"queryableEndDate" : "2022-07-14T16:21:33.215+02:00",
"realFlagStatus" : "OK",
"status" : "ABORTED",
"tags" : [ "foo" ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault"
} ]
}
}
Count releases by criteria
To count releases matching a specific search criteria grouped by database, send this request:
POST /api/v1/releases/count
{
"title" : null,
"tags" : null,
"taskTags" : null,
"timeFrame" : null,
"from" : null,
"to" : null,
"active" : true,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : true,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderDirection" : null,
"riskStatusWithThresholds" : null
}
$ curl 'http://localhost:5516/api/v1/releases/count' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"title" : null,
"tags" : null,
"taskTags" : null,
"timeFrame" : null,
"from" : null,
"to" : null,
"active" : true,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : true,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderDirection" : null,
"riskStatusWithThresholds" : null
}'
$ echo '{
"title" : null,
"tags" : null,
"taskTags" : null,
"timeFrame" : null,
"from" : null,
"to" : null,
"active" : true,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : true,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderDirection" : null,
"riskStatusWithThresholds" : null
}' | http POST 'http://localhost:5516/api/v1/releases/count' \
'Content-Type:application/json' \
'Accept:application/json'
The following filters are available to be specified in the request body:
Path | Type | Description |
---|---|---|
|
|
Case-insensitive matches the part of the release title |
|
|
Matches the releases containing all of the specified tags |
|
|
The time-frame to search releases in. Valid values: LAST_MONTH, LAST_THREE_MONTHS, LAST_SIX_MONTHS, LAST_YEAR. Specify RANGE to filter by a custom from-to date range |
|
|
Matches the releases with end date after or equal to this date |
|
|
Matches the releases with start date before this date |
|
|
Matches the releases with the IN_PROGRESS, FAILED, FAILING or PAUSED status |
|
|
Matches the releases with the PLANNED status |
|
|
Matches the releases with the IN_PROGRESS status |
|
|
Matches the releases with the PAUSED status |
|
|
Matches the releases with the FAILING status |
|
|
Matches the releases with the FAILED status |
|
|
Matches the releases with the COMPLETED or ABORTED status |
|
|
Matches the releases with the COMPLETED status |
|
|
Matches the releases with the ABORTED status |
|
|
Matches the releases with me as the owner |
|
|
Matches the releases which need attention or are at risk |
|
|
Matches the releases which have been archived |
|
|
Matches the releases stored under this folder |
|
|
The order of the returning set: risk, start_date, end_date, title (only available for templates) |
|
|
The order direction of the returning set: ASC, DESC |
The response contains number of releases matching a specific search criteria grouped by status and database (live, archived) with combined results (all):
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 402
{
"live" : {
"total" : 3,
"byStatus" : {
"FAILED" : 1,
"IN_PROGRESS" : 1,
"PLANNED" : 1
}
},
"archived" : {
"total" : 2,
"byStatus" : {
"ABORTED" : 1,
"COMPLETED" : 1
}
},
"all" : {
"total" : 5,
"byStatus" : {
"IN_PROGRESS" : 1,
"COMPLETED" : 1,
"ABORTED" : 1,
"PLANNED" : 1,
"FAILED" : 1
}
}
}
Find phase by ID
To find a phase using a specific ID, send this request:
GET /api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e
$ curl 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full phase identifier; for example, Applications/Release1/Phase2 |
The response contains the phase as JSON:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 427
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#00FF00"
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Phase'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The list of tasks in this phase. |
|
|
The release this phase belongs to. |
|
|
The state the phase is in. |
|
|
The color of the phase top bar in the UI. Format: #(hex value); for example '#009CDB' |
|
|
If given, then this phase has been copied as a part of restart phase operation based on this id |
Find task by ID
To find a task using a specific ID, send this request:
GET /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
The response contains the task as JSON:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1087
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"owner" : "admin",
"startDate" : "2022-07-14T17:21:56.090+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "IN_PROGRESS",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
Search phases in a release by title
To find a phase in a release using a specific title, send this request:
GET /api/v1/phases/byTitle?phaseTitle=find%20me&releaseId=Applications/Release162151faba694d03aa3065665cf26f21
$ curl 'http://localhost:5516/api/v1/phases/byTitle?phaseTitle=find%20me&releaseId=Applications/Release162151faba694d03aa3065665cf26f21' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/phases/byTitle?phaseTitle=find%20me&releaseId=Applications/Release162151faba694d03aa3065665cf26f21' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The phase title |
|
Full phase identifier; for example, Applications/Release1/Phase2 |
The response contains a list of phases with the specified title:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 348
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "find me",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#00FF00"
} ]
Search phases in a release
To find a phase in a release send this request:
GET /api/v1/phases/search?phaseTitle=DEV&releaseId=Applications/Release162151faba694d03aa3065665cf26f21&phaseVersion=ALL
$ curl 'http://localhost:5516/api/v1/phases/search?phaseTitle=DEV&releaseId=Applications/Release162151faba694d03aa3065665cf26f21&phaseVersion=ALL' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/phases/search?phaseTitle=DEV&releaseId=Applications/Release162151faba694d03aa3065665cf26f21&phaseVersion=ALL' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Part of a phase title |
|
(Full phase identifier; for example, Applications/Release1/Phase2 |
|
Choose between [LATEST, ORIGINAL, ALL] to narrow down search for specific version |
The response contains a list of phases with the specified title:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 344
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "DEV",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#00FF00"
} ]
Search tasks in a release by title
To find a task in a release using a specific title, send this request:
GET /api/v1/tasks/byTitle?taskTitle=find%20me&phaseTitle=phase%20title&releaseId=Applications/Release162151faba694d03aa3065665cf26f21
$ curl 'http://localhost:5516/api/v1/tasks/byTitle?taskTitle=find%20me&phaseTitle=phase%20title&releaseId=Applications/Release162151faba694d03aa3065665cf26f21' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/tasks/byTitle?taskTitle=find%20me&phaseTitle=phase%20title&releaseId=Applications/Release162151faba694d03aa3065665cf26f21' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The task title |
|
The phase title |
|
Full identifier of the release; for example, Applications/Release1 |
The response contains a list of tasks with the specified title:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 971
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "find me",
"owner" : "admin",
"startDate" : "2022-07-14T17:21:49.093+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "IN_PROGRESS",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
} ]
Listing planned or active releases
To list a page of planned or active (in_progress, failed, failing) releases send this request:
GET /api/v1/releases?page=0&resultsPerPage=2&depth=1
$ curl 'http://localhost:5516/api/v1/releases?page=0&resultsPerPage=2&depth=1' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/releases?page=0&resultsPerPage=2&depth=1' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The page to fetch, zero-based; default value is 0 |
|
Number of results per page, default value is 100 |
|
The depth of object tree, zero-based; default value is 1. Items fetched with depth 0 contain only basic properties like 'id' and 'type'. Items fetched with depth 1 contain simple properties (). Collections and references to other items are fetched only for basic properties. |
The response contains a page of planned or active releases fetched with given depth, sorted ascending by start date and title:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 2542
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"realFlagStatus" : "OK",
"status" : "PLANNED",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ ],
"teams" : [ ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
}, {
"id" : "Applications/Releasecaa6882c22ff46b89abf7140359df88a",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Applications/Releasecaa6882c22ff46b89abf7140359df88a",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"realFlagStatus" : "OK",
"status" : "IN_PROGRESS",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ ],
"teams" : [ ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
} ]
Listing templates
To list a page of release templates send this request:
GET /api/v1/templates?title=Test%20template&tag=tag1&page=0&resultsPerPage=2&depth=1
$ curl 'http://localhost:5516/api/v1/templates?title=Test%20template&tag=tag1&page=0&resultsPerPage=2&depth=1' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/templates?title=Test%20template&tag=tag1&page=0&resultsPerPage=2&depth=1' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The page to fetch, zero-based; default value is 0 |
|
Number of results per page, default value is 100 |
|
The depth of object tree, zero-based; default value is 1. Items fetched with depth 0 contain only basic properties like 'id' and 'type'. Items fetched with depth 1 contain simple properties (). Collections and references to other items are fetched only for basic properties. |
|
Title of the release |
|
Tag of the release |
The response contains a page of release templates fetched with given depth, sorted ascending by title:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 2504
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Test template 1",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ "tag1", "tag2", "tag3" ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ ],
"teams" : [ ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
}, {
"id" : "Applications/Releasecaa6882c22ff46b89abf7140359df88a",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Test template 2",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ "tag1", "tag2" ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ ],
"teams" : [ ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
} ]
Release life cycle
For a detailed description about the release and task life cycle, refer to XL Release documentation
Create a release from template
If you use the API, you cannot create a release without an existing template. |
To create a new release from a template, send this request:
POST /api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21/create
{
"releaseTitle" : "release from api",
"folderId" : "Applications/Folder01345a690c16b345168751d62934e912",
"variables" : { },
"releaseVariables" : { },
"releasePasswordVariables" : { },
"scheduledStartDate" : null,
"autoStart" : false,
"startedFromTaskId" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"releaseOwner" : null
}
$ curl 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21/create' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"releaseTitle" : "release from api",
"folderId" : "Applications/Folder01345a690c16b345168751d62934e912",
"variables" : { },
"releaseVariables" : { },
"releasePasswordVariables" : { },
"scheduledStartDate" : null,
"autoStart" : false,
"startedFromTaskId" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"releaseOwner" : null
}'
$ echo '{
"releaseTitle" : "release from api",
"folderId" : "Applications/Folder01345a690c16b345168751d62934e912",
"variables" : { },
"releaseVariables" : { },
"releasePasswordVariables" : { },
"scheduledStartDate" : null,
"autoStart" : false,
"startedFromTaskId" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"releaseOwner" : null
}' | http POST 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21/create' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full template identifier; for example, Applications/Release1 |
Path | Type | Description |
---|---|---|
|
|
Release title |
|
|
Release variables |
|
|
Release variables (deprecated - use 'variables') |
|
|
Release password variables (deprecated - use 'variables') |
|
|
Date when the release is supposed to start. |
|
|
If true, the release will automatically start at the scheduledStartDate. |
|
|
If not null, specifies the id of the folder where the release is to be created. |
|
|
If not null, specifies the id the task that created the release, useful when creating releases from scripts |
To create and start the release immediately, use /start instead of /create in the curl command. To schedule a release to start in the future,
set autoStart to true and adjust the scheduledStartDate to the desired date and time.
|
The response contains the new release.
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 3186
{
"id" : "Applications/Folder01345a690c16b345168751d62934e912/Release2f5e37e0dc1946c4a5c5c1ff24d6c2db",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "release from api",
"owner" : "admin",
"scheduledStartDate" : "2022-07-14T17:22:02.099+02:00",
"dueDate" : "2022-07-15T01:22:02.099+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"rootReleaseId" : "Applications/Release162151faba694d03aa3065665cf26f21",
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:22:02.099+02:00",
"queryableEndDate" : "2022-07-15T01:22:02.099+02:00",
"realFlagStatus" : "OK",
"status" : "PLANNED",
"tags" : [ ],
"variables" : [ ],
"calendarLinkToken" : "-6831504140993277999",
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"originTemplateId" : "Applications/Release162151faba694d03aa3065665cf26f21",
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"startedFromTaskId" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ "folder#edit_variables", "release#edit_precondition", "release#edit", "folder#edit_configuration", "template#edit", "release#edit_security", "group#view", "release#lock_task", "delivery_pattern#view", "group#edit", "template#lock_task", "folder#view", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "dashboard#view", "release#edit_task", "release#task_transition", "release#edit_task_attachments", "delivery_pattern#edit", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "delivery#edit", "template#edit_security", "template#create_release", "release#edit_task_description", "trigger#edit_trigger", "release#view", "folder#edit_notifications", "delivery#view", "delivery#edit_tracked_item", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "template#edit_triggers", "template#edit_precondition", "dashboard#edit", "folder#edit_security", "release#abort", "folder#edit", "template#edit_failure_handler" ],
"teams" : [ "Template Owner", "Release Admin", "Folder Owner" ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"folderVariables" : {
"id" : "Applications/Folder01345a690c16b345168751d62934e912/variables",
"type" : "xlrelease.FolderVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
}
All the variables in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Release'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The triggers that may start a release from a template. (Templates only) |
|
|
The teams configured on the release. |
|
|
File attachments of the release. |
|
|
The list of phases in the release. |
|
|
The calculated flag status, derived from the flags from the release and its tasks. |
|
|
The state the release is in. |
|
|
The tags of the release. Tags can be used for grouping and querying. |
|
|
List of variable CIs representing variables in this release or template |
|
|
Releases automatically abort when a task fails if this property is set to true. |
|
|
Allows the usage of passwords in non-password fields. Passwords values are masked in the UI and logging output but are decrypted before the task execution. |
|
|
Disable all notifications for this release. |
|
|
If set to false, a trigger can’t create a release if the previous one it created is still running. |
|
|
The ID of the template that created this release. |
|
|
True if release was created by a trigger. |
|
|
The credentials of this user are used to run automated scripts in this release. |
|
|
The password of the user that lends his credentials to run the scripts. |
|
|
Extensions of this release, e.g. 'Release contents dashboard' |
|
|
The Create Release task from which this release was created, if any |
|
|
If true, the release will automatically start at scheduledStartDate. |
|
|
The comment to associate with the action |
|
|
Map from property name to a variable name that replaces that property |
|
|
Risk score |
|
|
Total risk score |
|
|
Risk profile used in risk calculations |
If you want to create a release from a template that contains variables that require value, you must specify a value for each variable. For example:
{
"releaseTitle": "release from api",
"variables" : {
"listVar": [ "a", "b" ],
}
}
or if you’re using only string variables and older version of XL Release:
{
"releaseTitle": "release from api",
"releaseVariables": {
"variable1": "value1"
},
"releasePasswordVariables": {
"passwordVariable": "passwordValue"
}
}
To create a new release from a template with variables, send this request:
POST /api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21/create
{
"releaseTitle" : "release from api",
"folderId" : "Applications/Folder16471301a63401435604e56d1303c451",
"variables" : {
"listVar" : [ "a", "b" ],
"stringVar" : "providedValue",
"passwordVar" : "providedValue"
},
"releaseVariables" : { },
"releasePasswordVariables" : { },
"scheduledStartDate" : null,
"autoStart" : false,
"startedFromTaskId" : null,
"releaseOwner" : null
}
$ curl 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21/create' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"releaseTitle" : "release from api",
"folderId" : "Applications/Folder16471301a63401435604e56d1303c451",
"variables" : {
"listVar" : [ "a", "b" ],
"stringVar" : "providedValue",
"passwordVar" : "providedValue"
},
"releaseVariables" : { },
"releasePasswordVariables" : { },
"scheduledStartDate" : null,
"autoStart" : false,
"startedFromTaskId" : null,
"releaseOwner" : null
}'
$ echo '{
"releaseTitle" : "release from api",
"folderId" : "Applications/Folder16471301a63401435604e56d1303c451",
"variables" : {
"listVar" : [ "a", "b" ],
"stringVar" : "providedValue",
"passwordVar" : "providedValue"
},
"releaseVariables" : { },
"releasePasswordVariables" : { },
"scheduledStartDate" : null,
"autoStart" : false,
"startedFromTaskId" : null,
"releaseOwner" : null
}' | http POST 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21/create' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full template identifier; for example, Applications/Release1 |
Path | Type | Description |
---|---|---|
|
|
Release title |
|
|
Release variables |
|
|
Release variables (deprecated - use 'variables') |
|
|
Release password variables (deprecated - use 'variables') |
|
|
Date when the release is supposed to start. |
|
|
If true, the release will automatically start at the scheduledStartDate. |
|
|
If not null, specifies the id of the folder where the release is to be created. |
you will receive following response:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 4014
{
"id" : "Applications/Folder16471301a63401435604e56d1303c451/Release1254cbfad5e8478fab638e50b199eaa2",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "release from api",
"owner" : "admin",
"scheduledStartDate" : "2022-07-14T17:22:05.962+02:00",
"dueDate" : "2022-07-15T01:22:05.962+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:22:05.962+02:00",
"queryableEndDate" : "2022-07-15T01:22:05.962+02:00",
"realFlagStatus" : "OK",
"status" : "PLANNED",
"tags" : [ ],
"variables" : [ {
"id" : "Applications/Folder16471301a63401435604e56d1303c451/Release1254cbfad5e8478fab638e50b199eaa2/Variable7c93304487e44901a306a0ceb68d76b8",
"type" : "xlrelease.StringVariable",
"key" : "stringVar",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "providedValue",
"multiline" : false
}, {
"id" : "Applications/Folder16471301a63401435604e56d1303c451/Release1254cbfad5e8478fab638e50b199eaa2/Variable48b3ca2c535b4968b54b7a31650b829b",
"type" : "xlrelease.PasswordStringVariable",
"key" : "passwordVar",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "********",
"multiline" : false
}, {
"id" : "Applications/Folder16471301a63401435604e56d1303c451/Release1254cbfad5e8478fab638e50b199eaa2/Variablea3f850e535f24ea69587bc5b51e8c29f",
"type" : "xlrelease.ListStringVariable",
"key" : "listVar",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : [ "a", "b" ]
} ],
"calendarLinkToken" : "912055062575792578",
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"originTemplateId" : "Applications/Release162151faba694d03aa3065665cf26f21",
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ "folder#edit_variables", "release#edit_precondition", "release#edit", "folder#edit_configuration", "template#edit", "release#edit_security", "group#view", "release#lock_task", "delivery_pattern#view", "group#edit", "template#lock_task", "folder#view", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "dashboard#view", "release#edit_task", "release#task_transition", "release#edit_task_attachments", "delivery_pattern#edit", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "delivery#edit", "template#edit_security", "template#create_release", "release#edit_task_description", "trigger#edit_trigger", "release#view", "folder#edit_notifications", "delivery#view", "delivery#edit_tracked_item", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "template#edit_triggers", "template#edit_precondition", "dashboard#edit", "folder#edit_security", "release#abort", "folder#edit", "template#edit_failure_handler" ],
"teams" : [ "Template Owner", "Release Admin", "Folder Owner" ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"folderVariables" : {
"id" : "Applications/Folder16471301a63401435604e56d1303c451/variables",
"type" : "xlrelease.FolderVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
}
Start a planned release
To start a planned release, send this request:
POST /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/start
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/start' -i -X POST \
-H 'Accept: application/json'
$ http POST 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/start' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
You will receive the same response as in Create a release from template
Get active tasks
To retrieve a list of active tasks from a release, send this request:
GET /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/active-tasks
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/active-tasks' -i -X GET \
-H 'Content-Type: application/json'
$ http GET 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/active-tasks' \
'Content-Type:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
The response contains a list of active tasks:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1070
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"startDate" : "2022-07-14T17:21:31.171+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "IN_PROGRESS",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
} ]
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
Assign a task to a user
To assign a task to a user, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/assign/admin
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/assign/admin' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
$ http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/assign/admin' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
|
The user name of the assigned user |
The response contains the task as JSON:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1034
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"owner" : "admin",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
Add a comment to a task
To add a comment to a task, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/comment
{
"comment" : "Important step in our pipeline"
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/comment' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"comment" : "Important step in our pipeline"
}'
$ echo '{
"comment" : "Important step in our pipeline"
}' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/comment' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
Path | Type | Description |
---|---|---|
|
|
The comment to associate with the action |
The response contains the modified task with the added comment:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1405
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/Commentc4db7b6c2e28484aa8ce191aee4e5b98",
"type" : "xlrelease.Comment",
"text" : "Important step in our pipeline",
"author" : "admin",
"date" : "2022-07-14T17:22:00.980+02:00",
"creationDate" : "2022-07-14T17:22:00.980+02:00"
} ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}
Complete a task
To complete a task, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/complete
{
"comment" : "Task completed!"
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/complete' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"comment" : "Task completed!"
}'
$ echo '{
"comment" : "Task completed!"
}' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/complete' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
Path | Type | Description |
---|---|---|
|
|
The comment to associate with the action |
The response contains the completed task with the added comment.
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1531
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"owner" : "admin",
"startDate" : "2022-07-14T17:21:52.954+02:00",
"endDate" : "2022-07-14T17:21:53.211+02:00",
"flagStatus" : "OK",
"flagComment" : "",
"overdueNotified" : false,
"comments" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/Commente48b7359a3fe4015b21530f5b15847b3",
"type" : "xlrelease.Comment",
"text" : "Task completed!",
"author" : "admin",
"date" : "2022-07-14T17:21:53.220+02:00",
"creationDate" : "2022-07-14T17:21:53.220+02:00"
} ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "COMPLETED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
Reopen a task that has been completed in advance
To reopen a task that has been completed in advance, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/reopen
{
"comment" : "Reopen a task that has been completed in advance."
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/reopen' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"comment" : "Reopen a task that has been completed in advance."
}'
$ echo '{
"comment" : "Reopen a task that has been completed in advance."
}' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/reopen' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
Path | Type | Description |
---|---|---|
|
|
The comment to associate with the action |
The response contains the planned task with the added comment.
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1445
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"owner" : "admin",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/Comment9b7fd0984ce84a14982ce41a24e9f6b8",
"type" : "xlrelease.Comment",
"text" : "Reopen a task that has been completed in advance.",
"author" : "admin",
"date" : "2022-07-14T17:21:58.030+02:00",
"creationDate" : "2022-07-14T17:21:58.030+02:00"
} ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
Fail a task
To fail a task, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/fail
{
"comment" : "Task failed :-("
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/fail' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"comment" : "Task failed :-("
}'
$ echo '{
"comment" : "Task failed :-("
}' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/fail' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
Path | Type | Description |
---|---|---|
|
|
The comment to associate with the action |
The response contains the failed task with the added comment:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1459
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"owner" : "admin",
"startDate" : "2022-07-14T17:21:57.244+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/Comment616c3d3601c0458389085684d2926f92",
"type" : "xlrelease.Comment",
"text" : "Task failed :-(",
"author" : "admin",
"date" : "2022-07-14T17:21:57.496+02:00",
"creationDate" : "2022-07-14T17:21:57.496+02:00"
} ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "FAILED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 1,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
Retry a failed task
To retry a failed task, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/retry
{
"comment" : "Retry failed task."
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/retry' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"comment" : "Retry failed task."
}'
$ echo '{
"comment" : "Retry failed task."
}' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/retry' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
Path | Type | Description |
---|---|---|
|
|
The comment to associate with the action |
The response contains the running task with the added comment:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1467
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"owner" : "admin",
"startDate" : "2022-07-14T17:21:50.799+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/Commente429cb681f0c4b6ba0ee641381c2080e",
"type" : "xlrelease.Comment",
"text" : "Retry failed task.",
"author" : "admin",
"date" : "2022-07-14T17:21:50.806+02:00",
"creationDate" : "2022-07-14T17:21:50.806+02:00"
} ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "IN_PROGRESS",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
Skip a task
To skip a task, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/skip
{
"comment" : "Task skipped"
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/skip' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"comment" : "Task skipped"
}'
$ echo '{
"comment" : "Task skipped"
}' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/skip' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
Path | Type | Description |
---|---|---|
|
|
The comment to associate with the action |
The response contains the skipped task and the added comment:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1526
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"owner" : "admin",
"startDate" : "2022-07-14T17:22:01.190+02:00",
"endDate" : "2022-07-14T17:22:01.491+02:00",
"flagStatus" : "OK",
"flagComment" : "",
"overdueNotified" : false,
"comments" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/Comment2b6968d73b35410d82f1eaa00e8d0809",
"type" : "xlrelease.Comment",
"text" : "Task skipped",
"author" : "admin",
"date" : "2022-07-14T17:22:01.497+02:00",
"creationDate" : "2022-07-14T17:22:01.497+02:00"
} ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "SKIPPED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
Start a task that is waiting for input
To start a task that is waiting for input, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/start
{
"variables" : [ {
"key" : "title",
"value" : "value1",
"type" : "xlrelease.StringVariable",
"id" : "Applications/ReleasesTest/Release1/Variable1"
} ]
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/start' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"variables" : [ {
"key" : "title",
"value" : "value1",
"type" : "xlrelease.StringVariable",
"id" : "Applications/ReleasesTest/Release1/Variable1"
} ]
}'
$ echo '{
"variables" : [ {
"key" : "title",
"value" : "value1",
"type" : "xlrelease.StringVariable",
"id" : "Applications/ReleasesTest/Release1/Variable1"
} ]
}' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/start' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
Path | Type | Description |
---|---|---|
|
|
List of variables |
The response contains the task updated:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1040
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.UserInputTask",
"title" : "This task ${title}",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "WAITING_FOR_INPUT",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false,
"variables" : [ "Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b" ]
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
|
|
List of variables |
Abort a release
If a release is in status IN_PROGRESS
, you can stop and abort it by using the following command:
POST /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/abort
{
"abortComment" : "Abort comment"
}
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/abort' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"abortComment" : "Abort comment"
}'
$ echo '{
"abortComment" : "Abort comment"
}' | http POST 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/abort' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
The response contains the release aborted:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1333
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Running release, don't abort me",
"endDate" : "2022-07-14T17:21:22.972+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableEndDate" : "2022-07-14T17:21:22.972+02:00",
"realFlagStatus" : "OK",
"status" : "ABORTED",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"abortComment" : "Abort comment",
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { },
"blackout" : { }
}
}
Resume release
Resume a release that had been paused as part of the restart operation.
POST /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/resume
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/resume' -i -X POST \
-H 'Accept: application/json'
$ http POST 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/resume' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
The response contains the resumed release:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 4572
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"startDate" : "2022-07-14T17:21:22.051+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"endDate" : "2022-07-14T17:21:21.729+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "SKIPPED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
} ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "SKIPPED"
}, {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase53228aef3564406aa3933efb0f6dfe26",
"type" : "xlrelease.Phase",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase53228aef3564406aa3933efb0f6dfe26",
"startDate" : "2022-07-14T17:21:22.054+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase53228aef3564406aa3933efb0f6dfe26/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase53228aef3564406aa3933efb0f6dfe26/Task97c27091a9b342599e1b631dc6d44726",
"startDate" : "2022-07-14T17:21:22.058+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase53228aef3564406aa3933efb0f6dfe26",
"facets" : [ ],
"attachments" : [ ],
"status" : "IN_PROGRESS",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
} ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "IN_PROGRESS"
} ],
"queryableStartDate" : "2022-07-14T17:21:22.051+02:00",
"realFlagStatus" : "OK",
"status" : "IN_PROGRESS",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { },
"blackout" : { }
}
}
Restart a phase
Restarts the release from a given phase and task.
POST /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/restart?fromPhaseId=Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e&fromTaskId=Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726&phaseVersion=ALL&resume=true
fromPhaseId=Applications%2FRelease162151faba694d03aa3065665cf26f21%2FPhase520d9bb734c8490cad6818f736da7a5e&fromTaskId=Applications%2FRelease162151faba694d03aa3065665cf26f21%2FPhase520d9bb734c8490cad6818f736da7a5e%2FTask97c27091a9b342599e1b631dc6d44726&phaseVersion=ALL&resume=true
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/restart?fromPhaseId=Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e&fromTaskId=Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726&phaseVersion=ALL&resume=true' -i -X POST \
-H 'Accept: application/json'
$ http POST 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/restart?fromPhaseId=Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e&fromTaskId=Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726&phaseVersion=ALL&resume=true' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
Parameter | Description |
---|---|
|
Full identifier of the phase; for example, Applications/Release1/Phase11 |
|
Full identifier of the task; for example, Applications/Release1/Phase11/Task111 |
|
'LATEST', or 'ORIGINAL' or old behavior 'ALL'. Determines which version to copy of the phase. |
|
When true resumes the paused release immediately |
The response contains the restarted release:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 4840
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"startDate" : "2022-07-14T17:21:25.641+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"startDate" : "2022-07-14T17:21:25.596+02:00",
"endDate" : "2022-07-14T17:21:25.596+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"startDate" : "2022-07-14T17:21:25.318+02:00",
"endDate" : "2022-07-14T17:21:25.597+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "SKIPPED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
} ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "SKIPPED"
}, {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phasef5ec6561c53c456fb88ab49e97013d47",
"type" : "xlrelease.Phase",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e (1)",
"startDate" : "2022-07-14T17:21:25.641+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phasef5ec6561c53c456fb88ab49e97013d47/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"startDate" : "2022-07-14T17:21:25.641+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phasef5ec6561c53c456fb88ab49e97013d47",
"facets" : [ ],
"attachments" : [ ],
"status" : "IN_PROGRESS",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
} ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "IN_PROGRESS",
"originId" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e"
} ],
"queryableStartDate" : "2022-07-14T17:21:25.641+02:00",
"realFlagStatus" : "OK",
"status" : "IN_PROGRESS",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 1,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { },
"blackout" : { }
}
}
Building templates and releases
For a details description on templates and releases, refer to Core concepts of XL Release
Templates
Create a template
To create a new template, send this request:
POST /api/v1/templates/?folderId=Applications/Folder01345a690c16b345168751d62934e912
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"scheduledStartDate" : "2022-07-14T17:22:02.950+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:22:02.950+02:00",
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"globalVariables" : null,
"folderVariables" : null
}
}
$ curl 'http://localhost:5516/api/v1/templates/?folderId=Applications/Folder01345a690c16b345168751d62934e912' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"scheduledStartDate" : "2022-07-14T17:22:02.950+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:22:02.950+02:00",
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"globalVariables" : null,
"folderVariables" : null
}
}'
$ echo '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"scheduledStartDate" : "2022-07-14T17:22:02.950+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:22:02.950+02:00",
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"globalVariables" : null,
"folderVariables" : null
}
}' | http POST 'http://localhost:5516/api/v1/templates/?folderId=Applications/Folder01345a690c16b345168751d62934e912' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following fields:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Release'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The triggers that may start a release from a template. (Templates only) |
|
|
The teams configured on the release. |
|
|
File attachments of the release. |
|
|
The list of phases in the release. |
|
|
The calculated flag status, derived from the flags from the release and its tasks. |
|
|
The state the release is in. |
|
|
The tags of the release. Tags can be used for grouping and querying. |
|
|
List of variable CIs representing variables in this release or template |
|
|
Releases automatically abort when a task fails if this property is set to true. |
|
|
Allows the usage of passwords in non-password fields. Passwords values are masked in the UI and logging output but are decrypted before the task execution. |
|
|
Disable all notifications for this release. |
|
|
If set to false, a trigger can’t create a release if the previous one it created is still running. |
|
|
The ID of the template that created this release. |
|
|
True if release was created by a trigger. |
|
|
The credentials of this user are used to run automated scripts in this release. |
|
|
The password of the user that lends his credentials to run the scripts. |
|
|
Extensions of this release, e.g. 'Release contents dashboard' |
|
|
The Create Release task from which this release was created, if any |
|
|
If true, the release will automatically start at scheduledStartDate. |
|
|
The comment to associate with the action |
|
|
Map from property name to a variable name that replaces that property |
|
|
Risk score |
|
|
Total risk score |
|
|
Risk profile used in risk calculations |
Using the following query parameters:
Parameter | Description |
---|---|
|
If not null, specifies the id of the folder where the template is to be created |
The response contains the template JSON:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 5009
{
"id" : "Applications/Folder01345a690c16b345168751d62934e912/Release2ed2d5bff25b4a609f46ca07ed32a23a",
"type" : "xlrelease.Release",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"scheduledStartDate" : "2022-07-14T17:22:02.950+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ {
"id" : "Applications/Folder01345a690c16b345168751d62934e912/Teamca93b4d331b2470cba5778e361ff92bc",
"type" : "xlrelease.Team",
"teamName" : "Release Admin",
"members" : [ "admin" ],
"roles" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#edit_task_attachments", "release#task_transition", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "release#edit_failure_handler", "folder#view", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ]
}, {
"id" : "Applications/Folder01345a690c16b345168751d62934e912/Team30a7f64bc76044cd812ecc316e2ed06c",
"type" : "xlrelease.Team",
"teamName" : "Folder Owner",
"members" : [ "admin" ],
"roles" : [ ],
"permissions" : [ "folder#edit_variables", "delivery_pattern#edit", "folder#edit_configuration", "delivery#edit", "group#view", "folder#edit_notifications", "delivery_pattern#view", "group#edit", "delivery#view", "delivery#edit_tracked_item", "folder#view", "folder#edit_security", "dashboard#edit", "folder#edit", "dashboard#view" ]
}, {
"id" : "Applications/Folder01345a690c16b345168751d62934e912/Team451a7739143a49d5859db81e453932fb",
"type" : "xlrelease.Team",
"teamName" : "Template Owner",
"members" : [ "admin" ],
"roles" : [ ],
"permissions" : [ "template#edit", "trigger#view_trigger", "template#lock_task", "template#view", "folder#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ]
} ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ {
"id" : "Applications/Folder01345a690c16b345168751d62934e912/Release2ed2d5bff25b4a609f46ca07ed32a23a/Phase96552275c1b74f06b764f5e7db161c98",
"type" : "xlrelease.Phase",
"title" : "New Phase",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Folder01345a690c16b345168751d62934e912/Release2ed2d5bff25b4a609f46ca07ed32a23a",
"status" : "PLANNED"
} ],
"queryableStartDate" : "2022-07-14T17:22:02.950+02:00",
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ "folder#edit_variables", "release#edit_precondition", "release#edit", "folder#edit_configuration", "template#edit", "release#edit_security", "group#view", "release#lock_task", "delivery_pattern#view", "group#edit", "template#lock_task", "folder#view", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "dashboard#view", "release#edit_task", "release#task_transition", "release#edit_task_attachments", "delivery_pattern#edit", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "delivery#edit", "template#edit_security", "template#create_release", "release#edit_task_description", "trigger#edit_trigger", "release#view", "folder#edit_notifications", "delivery#view", "delivery#edit_tracked_item", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "template#edit_triggers", "template#edit_precondition", "dashboard#edit", "folder#edit_security", "release#abort", "folder#edit", "template#edit_failure_handler" ],
"teams" : [ "Template Owner", "Release Admin", "Folder Owner" ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"folderVariables" : {
"id" : "Applications/Folder01345a690c16b345168751d62934e912/variables",
"type" : "xlrelease.FolderVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Release'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The triggers that may start a release from a template. (Templates only) |
|
|
The teams configured on the release. |
|
|
File attachments of the release. |
|
|
The list of phases in the release. |
|
|
The calculated flag status, derived from the flags from the release and its tasks. |
|
|
The state the release is in. |
|
|
The tags of the release. Tags can be used for grouping and querying. |
|
|
List of variable CIs representing variables in this release or template |
|
|
Releases automatically abort when a task fails if this property is set to true. |
|
|
Allows the usage of passwords in non-password fields. Passwords values are masked in the UI and logging output but are decrypted before the task execution. |
|
|
Disable all notifications for this release. |
|
|
If set to false, a trigger can’t create a release if the previous one it created is still running. |
|
|
The ID of the template that created this release. |
|
|
True if release was created by a trigger. |
|
|
The credentials of this user are used to run automated scripts in this release. |
|
|
The password of the user that lends his credentials to run the scripts. |
|
|
Extensions of this release, e.g. 'Release contents dashboard' |
|
|
The Create Release task from which this release was created, if any |
|
|
If true, the release will automatically start at scheduledStartDate. |
|
|
The comment to associate with the action |
|
|
Map from property name to a variable name that replaces that property |
|
|
Risk score |
|
|
Total risk score |
|
|
Risk profile used in risk calculations |
Import a template, serialized in XLR format, or a Releasefile (Releasefile.groovy) inside a .zip file
You can also import templates that were previously exported using XL Release. Send the .xlr
or .zip
file to /api/v1/templates/import
with header Content-type: multipart/form-data
. It’s possible to add the query parameter folderId
to specify under which folder the template will be imported.
To import a template, send this request:
$ curl 'http://localhost:5516/api/v1/templates/import' --form file=@template.xlr
$ http -f POST http://localhost:5516/api/v1/templates/import file@template.xlr
Refer to Release life cycle for more information about starting the release
Make a template copy
It’s possible to duplicate a template in the same folder where it lives:
POST /api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21/copy
{
"title" : "My template copy title",
"description" : "My template copy description"
}
$ curl 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21/copy' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"title" : "My template copy title",
"description" : "My template copy description"
}'
$ echo '{
"title" : "My template copy title",
"description" : "My template copy description"
}' | http POST 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21/copy' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following request:
Parameter | Description |
---|---|
|
Full template identifier; for example, Applications/Release1 |
Path | Type | Description |
---|---|---|
|
|
The new title of the template. Mandatory |
|
|
The new description. Optional |
The response contains the template JSON:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1287
{
"id" : "Applications/Release1dcabf006ebf48e1ad8d0553e6a7073c",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "My template copy title",
"description" : "My template copy description",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"riskProfile" : "Configuration/riskProfiles/RiskProfileDefault",
"$metadata" : {
"security" : {
"permissions" : [ ],
"teams" : [ ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
}
Phases
The following operations are valid for both templates and releases.
Add a phase to a release
After creating a new template or a release, you can add phases to it. To add a new phase, send this request:
POST /api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/phase
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#00FF00"
}
$ curl 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/phase' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#00FF00"
}'
$ echo '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#00FF00"
}' | http POST 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/phase' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the template/release; for example, Applications/Release1 |
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Phase'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The list of tasks in this phase. |
|
|
The release this phase belongs to. |
|
|
The state the phase is in. |
|
|
The color of the phase top bar in the UI. Format: #(hex value); for example '#009CDB' |
|
|
If given, then this phase has been copied as a part of restart phase operation based on this id |
The response contains the created phase:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 427
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phased3dd3a1eb312486d8213fb048a2217ad",
"type" : "xlrelease.Phase",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#00FF00"
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Phase'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The list of tasks in this phase. |
|
|
The release this phase belongs to. |
|
|
The state the phase is in. |
|
|
The color of the phase top bar in the UI. Format: #(hex value); for example '#009CDB' |
|
|
If given, then this phase has been copied as a part of restart phase operation based on this id |
Copy a phase in a release
You can easily copy a phase and paste into desirable position. XLR has several restrictions for copying a phase:
-
Position should be next to planned or in progress phase.
-
You cannot copy completed phase
Usage example:
POST /api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/copy?targetPosition=1
targetPosition=1
$ curl 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/copy?targetPosition=1' -i -X POST \
-H 'Accept: application/json'
$ http POST 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/copy?targetPosition=1' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the phase; for example, Applications/Release1/Phase2 |
Using the following query parameters:
Parameter | Description |
---|---|
|
Phase position into release |
The response contains the created phase:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1554
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase0a2c2113cb3249909c7e350526341fd9",
"type" : "xlrelease.Phase",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e (copy)",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase0a2c2113cb3249909c7e350526341fd9/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.GateTask",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase0a2c2113cb3249909c7e350526341fd9",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false,
"conditions" : [ ],
"dependencies" : [ ]
} ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#00FF00"
}
Update phase in a release
To update a phase in a release or in a template, send this request:
PUT /api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "new title",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#FFFF00"
}
$ curl 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "new title",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#FFFF00"
}'
$ echo '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "new title",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#FFFF00"
}' | http PUT 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full phase identifier; for example, Applications/Release1/Phase2 |
Using the following query parameters:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Phase'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The list of tasks in this phase. |
|
|
The release this phase belongs to. |
|
|
The state the phase is in. |
|
|
The color of the phase top bar in the UI. Format: #(hex value); for example '#009CDB' |
|
|
If given, then this phase has been copied as a part of restart phase operation based on this id |
The response contains the updated phase:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 346
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"type" : "xlrelease.Phase",
"title" : "new title",
"flagStatus" : "OK",
"overdueNotified" : false,
"tasks" : [ ],
"release" : "Applications/Release162151faba694d03aa3065665cf26f21",
"status" : "PLANNED",
"color" : "#FFFF00"
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Phase'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The list of tasks in this phase. |
|
|
The release this phase belongs to. |
|
|
The state the phase is in. |
|
|
The color of the phase top bar in the UI. Format: #(hex value); for example '#009CDB' |
|
|
If given, then this phase has been copied as a part of restart phase operation based on this id |
Tasks
Add a task in a phase or in another task
To add a new task in a phase or in another task, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/tasks
{
"id" : "null",
"type" : "xlrelease.UserInputTask",
"title" : "input task"
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/tasks' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "null",
"type" : "xlrelease.UserInputTask",
"title" : "input task"
}'
$ echo '{
"id" : "null",
"type" : "xlrelease.UserInputTask",
"title" : "input task"
}' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/tasks' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task container: either a Phase, a ParallelGroup or a SequentialGroup; for example Applications/Release1/Phase2 |
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the task. |
You can use more fields in the request like status , overdueNotified , etc…
|
The response contains the created task:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 926
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Taske04d0a8006d6409a918f80a562ac4639",
"type" : "xlrelease.UserInputTask",
"title" : "input task",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false,
"variables" : [ ]
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
|
|
List of variables |
Add a task to a specific position inside a phase
To add a new task to a specified position, send this request:
POST /api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/tasks?position=0
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.UserInputTask",
"title" : "input task",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}
$ curl 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/tasks?position=0' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.UserInputTask",
"title" : "input task",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}'
$ echo '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.UserInputTask",
"title" : "input task",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}' | http POST 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/tasks?position=0' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The position in the phase, zero-based; leave empty to add the task to the end of the phase |
Parameter | Description |
---|---|
|
Full identifier of the task container: either a Phase, a ParallelGroup or a SequentialGroup; for example Applications/Release1/Phase2 |
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
The response contains the created task:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 926
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task33ebdc07ee91472e988368ea4afad452",
"type" : "xlrelease.UserInputTask",
"title" : "input task",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false,
"variables" : [ ]
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
|
|
List of variables |
Copy a task to a specific position inside a phase
To copy a task to a specified position, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/copy/?targetContainerId=Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e&targetPosition=1
targetContainerId=Applications%2FRelease162151faba694d03aa3065665cf26f21%2FPhase520d9bb734c8490cad6818f736da7a5e&targetPosition=1
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/copy/?targetContainerId=Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e&targetPosition=1' -i -X POST
$ http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/copy/?targetContainerId=Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e&targetPosition=1'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
Using the following query parameters:
Parameter | Description |
---|---|
|
Full identifier of the task container; for example, Applications/Release1/Phase3 |
|
Position within task container |
The response contains the created task:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1070
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Taskc1ca17e16e224ab98240b0b6ffd3ef73",
"type" : "xlrelease.GateTask",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726 (copy)",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false,
"conditions" : [ ],
"dependencies" : [ ]
}
Update the task for a specific ID
To update a task for a specific ID, send this request:
PUT /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "new title"
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "new title"
}'
$ echo '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "new title"
}' | http PUT 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The updated task object; only top-level properties will be updated. |
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the task. |
The response contains the updated task:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 895
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.Task",
"title" : "new title",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Task'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
Task types
In XL Release each task has a type: some tasks are manual and some tasks can be automatic. See Task types for the list of types and explanation about them.
From the technical point of view there are core task types like: xlrelease.Task
, xlrelease.ParallelGroup
, and "extension" tasks introduced by the plugins. For the extension tasks the type is always the same: xlrelease.CustomScriptTask
. This kind of task always contains a child property called pythonScript
which contains the actual type and custom properties of the task. That is also why when you create a new custom task you extend from type xlrelease.PythonScript
and not from xlrelease.CustomScriptTask
. See Create custom task types. For example, here is a model of a Jenkins build task (showing only important fields):
{
"id": "Applications/Folder6723679/Release640465921/Phase394617260/Task110995606",
"type": "xlrelease.CustomScriptTask",
"pythonScript": {
"type": "jenkins.Build"
"id": "Applications/Folder6723679/Release640465921/Phase394617260/Task110995606/PythonScript",
"jenkinsServer": "Configuration/Custom/Configuration8602147",
"buildStatus": "SUCCESS",
"buildNumber": "5"
}
}
Here is the list of the types that you get in a default installation of XL Release.
Task | Task Type | Extension Type |
---|---|---|
Gate |
xlrelease.GateTask |
- |
Manual |
xlrelease.Task |
- |
User Input |
xlrelease.UserInputTask |
- |
Create Release |
xlrelease.CreateReleaseTask |
- |
Jenkins |
xlrelease.CustomScriptTask |
jenkins.Build |
JIRA Create Issue |
xlrelease.CustomScriptTask |
jira.CreateIssue |
JIRA Create Subtask |
xlrelease.CustomScriptTask |
jira.CreateSubtask |
JIRA Query |
xlrelease.CustomScriptTask |
jira.Query |
Jira Update Issue |
xlrelease.CustomScriptTask |
jira.UpdateIssue |
Jira Update Issues |
xlrelease.CustomScriptTask |
jira.UpdateIssues |
Jira Update Issues by Query |
xlrelease.CustomScriptTask |
jira.UpdateIssuesByQuery |
Jira Query |
xlrelease.CustomScriptTask |
jira.Query |
Notification |
xlrelease.NotificationTask |
- |
Remote Unix script |
xlrelease.CustomScriptTask |
remoteScript.Unix |
Remote Win script |
xlrelease.CustomScriptTask |
remoteScript.Windows |
Remote Win SSH script |
xlrelease.CustomScriptTask |
remoteScript.WindowsSsh |
Remote Z/os script |
xlrelease.CustomScriptTask |
remoteScript.Zos |
Jython script |
xlrelease.ScriptTask |
- |
Groovy script |
xlrelease.GroovyScriptTask |
- |
Webhook XML |
xlrelease.CustomScriptTask |
webhook.XmlWebhook |
Webhook JSON |
xlrelease.CustomScriptTask |
webhook.JsonWebhook |
XL Deploy |
xlrelease.CustomScriptTask |
xldeploy.Deploy |
Change task type
You can change the type of a task. The target task type can be a core task type such as xlrelease.GateTask
or a custom script definition type such as jenkins.Build
.
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/changeType?targetType=xlrelease.GateTask
targetType=xlrelease.GateTask
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/changeType?targetType=xlrelease.GateTask' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
$ http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/changeType?targetType=xlrelease.GateTask' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Target task type; for example, targetType=xlrelease.Task or targetType=jenkins.Build |
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
The response contains the updated task:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1063
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"type" : "xlrelease.GateTask",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"flagStatus" : "OK",
"overdueNotified" : false,
"comments" : [ ],
"container" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e",
"facets" : [ ],
"attachments" : [ ],
"status" : "PLANNED",
"watchers" : [ ],
"waitForScheduledStartDate" : true,
"delayDuringBlackout" : false,
"postponedDueToBlackout" : false,
"postponedUntilEnvironmentsAreReserved" : false,
"hasBeenFlagged" : false,
"hasBeenDelayed" : false,
"taskFailureHandlerEnabled" : false,
"failuresCount" : 0,
"variableMapping" : { },
"externalVariableMapping" : { },
"tags" : [ ],
"dueSoonNotified" : false,
"locked" : false,
"checkAttributes" : false,
"conditions" : [ ],
"dependencies" : [ ]
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.GateTask'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The comments on the task. |
|
|
The phase or task this task is contained in. |
|
|
Facets applied to the task. |
|
|
List of file attachments on this task. |
|
|
The state the task is in. |
|
|
The name of the team this task is assigned to. |
|
|
The watchers assigned to this task. |
|
|
The task is not started until the scheduledStartDate is reached if set to true. |
|
|
The task is to be delayed when a blackout period is active. |
|
|
A snippet of code that is evaluated when the task is started. |
|
|
A snippet of code that is evaluated when the task is failed. |
|
|
The failed script will be executed. |
|
|
Task recovery operation performed after task failure. |
|
|
The number of times this task has failed. |
|
|
Map from property name to a variable name that replaces that property |
|
|
Similar to variableMapping, but only for password variables with external values and it is managed internally. |
|
|
The tags of the task. Tags can be used for grouping and querying. |
|
|
The task is locked |
|
|
Check attributes on task execution |
|
|
Conditions |
|
|
Dependencies |
Lock/unlock task
Lock task
To lock a task, send this request:
PUT /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/lock
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/lock' -i -X PUT \
-H 'Accept: application/json'
$ http PUT 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/lock' \
'Accept:application/json'
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Unlock task
To unlock a task, send this request:
DELETE /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/lock
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/lock' -i -X DELETE \
-H 'Accept: application/json'
$ http DELETE 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/lock' \
'Accept:application/json'
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Gate tasks
Add a condition to a gate task
To add a condition to a gate task, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/conditions
{
"title" : "this must be true to go on",
"checked" : false
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/conditions' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"title" : "this must be true to go on",
"checked" : false
}'
$ echo '{
"title" : "this must be true to go on",
"checked" : false
}' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/conditions' \
'Content-Type:application/json' \
'Accept:application/json'
Path | Type | Description |
---|---|---|
|
|
Title of condition |
|
|
Condition checked |
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
The response contains the created gate condition:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 289
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/GateCondition6d826706ec9041968db3be8218c31d7f",
"type" : "xlrelease.GateCondition",
"title" : "this must be true to go on",
"checked" : false
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.GateCondition'. |
|
|
Title |
|
|
Checked |
Update a condition on a gate task
To (un)check the condition on a gate task, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/GateCondition1
{
"title" : "my first condition",
"checked" : true
}
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/GateCondition1' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"title" : "my first condition",
"checked" : true
}'
$ echo '{
"title" : "my first condition",
"checked" : true
}' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/GateCondition1' \
'Content-Type:application/json' \
'Accept:application/json'
Path | Type | Description |
---|---|---|
|
|
Title of condition |
|
|
Condition checked |
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the condition; for example, Applications/Release1/Phase2/Task3/GateCondition1 |
The response contains the updated gate condition:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 249
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/GateCondition1",
"type" : "xlrelease.GateCondition",
"title" : "my first condition",
"checked" : true
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.GateCondition'. |
|
|
Title |
|
|
Checked |
Delete a condition from a gate task
To delete a condition from a gate task, send this request:
DELETE /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/GateCondition1
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/GateCondition1' -i -X DELETE
$ http DELETE 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/GateCondition1'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the condition; for example, Applications/Release1/Phase2/Task3/GateCondition1 |
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Add a dependency to a gate task
To add a dependency to a gate task, send this request:
POST /api/v1/tasks/Applications/Releasecaa6882c22ff46b89abf7140359df88a/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/dependencies/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Releasecaa6882c22ff46b89abf7140359df88a/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/dependencies/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
$ http POST 'http://localhost:5516/api/v1/tasks/Applications/Releasecaa6882c22ff46b89abf7140359df88a/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/dependencies/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the gate task; for example, Applications/Release1/Phase2/Task3 |
|
Full identifier of the release, phase or task that the gate will depend on, or a variable which will resolve to such an identifier. When using a variable you can also combine variables, for example "Applications/${shortReleaseId}". Note that in this case you need to do URL encoding of the variable name. |
The response contains the new dependency:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 688
{
"id" : "Applications/Releasecaa6882c22ff46b89abf7140359df88a/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/Dependency7f8df83c99d44073ad649868c7d7d5e8",
"type" : "xlrelease.Dependency",
"gateTask" : "Applications/Releasecaa6882c22ff46b89abf7140359df88a/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"target" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"targetId" : "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726",
"archivedAsResolved" : false
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Dependency'. |
|
|
The source gate task from the dependency. |
|
|
The target of the dependency (release, phase, or task). |
|
|
The target ID of the dependency (when it is filled, the |
|
|
The target title once it is archived. |
|
|
The target ID once it is archived. |
|
|
Shows if the plan item was |
Delete a dependency to a gate task
To delete a dependency to a gate task, send this request:
DELETE /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/Dependency76ad0473a3a24ee1b961948db4532857
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/Dependency76ad0473a3a24ee1b961948db4532857' -i -X DELETE
$ http DELETE 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/Dependency76ad0473a3a24ee1b961948db4532857'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the dependency; for example, Applications/Release1/Phase2/Task3/Dependency0 |
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Attachments
Download an attachment
To download an attachment, send this request:
GET /api/v1/releases/attachments/Applications/Release162151faba694d03aa3065665cf26f21/Attachment313f941a22104133bd7008a605cdaa65
$ curl 'http://localhost:5516/api/v1/releases/attachments/Applications/Release162151faba694d03aa3065665cf26f21/Attachment313f941a22104133bd7008a605cdaa65' -i -X GET \
-H 'Accept: application/octet-stream'
$ http GET 'http://localhost:5516/api/v1/releases/attachments/Applications/Release162151faba694d03aa3065665cf26f21/Attachment313f941a22104133bd7008a605cdaa65' \
'Accept:application/octet-stream'
Using the following parameter:
Parameter | Description |
---|---|
|
Full identifier of the attachment; for example, Applications/Release1/Attachment1 |
You will receive the attachment file in the response.
Add attachments to a task
To upload a list of attachments to a task, send this request:
POST /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/attachments
-----011000010111000001101001
Content-Disposition: form-data; name="xlr"; filename="Dummy.xml"
Content-Type: application/xml
-----011000010111000001101001--
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/attachments' -i -X POST \
-H 'Content-Type: multipart/form-data;boundary=---011000010111000001101001' \
-H 'Accept: multipart/form-data, application/json' \
-d '-----011000010111000001101001
Content-Disposition: form-data; name="xlr"; filename="Dummy.xml"
Content-Type: application/xml
-----011000010111000001101001--
'
$ echo '-----011000010111000001101001
Content-Disposition: form-data; name="xlr"; filename="Dummy.xml"
Content-Type: application/xml
-----011000010111000001101001--
' | http POST 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/attachments' \
'Content-Type:multipart/form-data;boundary=---011000010111000001101001' \
'Accept:multipart/form-data, application/json'
Using the following parameter:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
You will receive a response containing a list of uploaded attachments:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 396
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Attachmentb15146598efa45dab8c0c58b49a0afbb",
"type" : "xlrelease.Attachment",
"contentType" : "application/xml",
"exportFilename" : "attachments/Attachmentb15146598efa45dab8c0c58b49a0afbb-Dummy.xml",
"fileUri" : "sql:Applications%2FRelease162151faba694d03aa3065665cf26f21%2FAttachmentb15146598efa45dab8c0c58b49a0afbb"
} ]
Delete attachment from a task
To delete an attachment from a task, send this request:
DELETE /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/attachments/Applications/Release162151faba694d03aa3065665cf26f21/Attachment88ec5d2114a14dd8a278f156eaa72243
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/attachments/Applications/Release162151faba694d03aa3065665cf26f21/Attachment88ec5d2114a14dd8a278f156eaa72243' -i -X DELETE \
-H 'Accept: application/json'
$ http DELETE 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/attachments/Applications/Release162151faba694d03aa3065665cf26f21/Attachment88ec5d2114a14dd8a278f156eaa72243' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
|
Full identifier of the attachment; for example, Applications/Release1/Attachment1 |
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Properties
Update template properties
To update the properties of a template, send this request:
PUT /api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"scheduledStartDate" : "2022-07-14T17:22:02.697+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:22:02.697+02:00",
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"globalVariables" : null,
"folderVariables" : null
}
}
$ curl 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"scheduledStartDate" : "2022-07-14T17:22:02.697+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:22:02.697+02:00",
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"globalVariables" : null,
"folderVariables" : null
}
}'
$ echo '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"scheduledStartDate" : "2022-07-14T17:22:02.697+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:22:02.697+02:00",
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"globalVariables" : null,
"folderVariables" : null
}
}' | http PUT 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full template identifier; for example, Applications/Release1 |
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Release'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The triggers that may start a release from a template. (Templates only) |
|
|
The teams configured on the release. |
|
|
File attachments of the release. |
|
|
The list of phases in the release. |
|
|
The calculated flag status, derived from the flags from the release and its tasks. |
|
|
The state the release is in. |
|
|
The tags of the release. Tags can be used for grouping and querying. |
|
|
List of variable CIs representing variables in this release or template |
|
|
Releases automatically abort when a task fails if this property is set to true. |
|
|
Allows the usage of passwords in non-password fields. Passwords values are masked in the UI and logging output but are decrypted before the task execution. |
|
|
Disable all notifications for this release. |
|
|
If set to false, a trigger can’t create a release if the previous one it created is still running. |
|
|
The ID of the template that created this release. |
|
|
True if release was created by a trigger. |
|
|
The credentials of this user are used to run automated scripts in this release. |
|
|
The password of the user that lends his credentials to run the scripts. |
|
|
Extensions of this release, e.g. 'Release contents dashboard' |
|
|
The Create Release task from which this release was created, if any |
|
|
If true, the release will automatically start at scheduledStartDate. |
|
|
The comment to associate with the action |
|
|
Map from property name to a variable name that replaces that property |
|
|
Risk score |
|
|
Total risk score |
|
|
Risk profile used in risk calculations |
The response the updated template:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1316
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "Applications/Release162151faba694d03aa3065665cf26f21",
"scheduledStartDate" : "2022-07-14T17:22:02.697+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:22:02.697+02:00",
"realFlagStatus" : "OK",
"status" : "TEMPLATE",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"security" : {
"permissions" : [ ],
"teams" : [ ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Release'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The triggers that may start a release from a template. (Templates only) |
|
|
The teams configured on the release. |
|
|
File attachments of the release. |
|
|
The list of phases in the release. |
|
|
The calculated flag status, derived from the flags from the release and its tasks. |
|
|
The state the release is in. |
|
|
The tags of the release. Tags can be used for grouping and querying. |
|
|
List of variable CIs representing variables in this release or template |
|
|
Releases automatically abort when a task fails if this property is set to true. |
|
|
Allows the usage of passwords in non-password fields. Passwords values are masked in the UI and logging output but are decrypted before the task execution. |
|
|
Disable all notifications for this release. |
|
|
If set to false, a trigger can’t create a release if the previous one it created is still running. |
|
|
The ID of the template that created this release. |
|
|
True if release was created by a trigger. |
|
|
The credentials of this user are used to run automated scripts in this release. |
|
|
The password of the user that lends his credentials to run the scripts. |
|
|
Extensions of this release, e.g. 'Release contents dashboard' |
|
|
The Create Release task from which this release was created, if any |
|
|
If true, the release will automatically start at scheduledStartDate. |
|
|
The comment to associate with the action |
|
|
Map from property name to a variable name that replaces that property |
|
|
Risk score |
|
|
Total risk score |
|
|
Risk profile used in risk calculations |
Update release properties
To update the properties of a release, send this request:
PUT /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"title" : "new title",
"scheduledStartDate" : "2022-07-14T17:21:27.049+02:00",
"dueDate" : "2022-07-14T17:21:27.049+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:21:27.049+02:00",
"queryableEndDate" : "2022-07-14T17:21:27.049+02:00",
"realFlagStatus" : "OK",
"status" : "PLANNED",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"globalVariables" : null,
"folderVariables" : null
}
}
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"title" : "new title",
"scheduledStartDate" : "2022-07-14T17:21:27.049+02:00",
"dueDate" : "2022-07-14T17:21:27.049+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:21:27.049+02:00",
"queryableEndDate" : "2022-07-14T17:21:27.049+02:00",
"realFlagStatus" : "OK",
"status" : "PLANNED",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"globalVariables" : null,
"folderVariables" : null
}
}'
$ echo '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"title" : "new title",
"scheduledStartDate" : "2022-07-14T17:21:27.049+02:00",
"dueDate" : "2022-07-14T17:21:27.049+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:21:27.049+02:00",
"queryableEndDate" : "2022-07-14T17:21:27.049+02:00",
"realFlagStatus" : "OK",
"status" : "PLANNED",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"globalVariables" : null,
"folderVariables" : null
}
}' | http PUT 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Release'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The triggers that may start a release from a template. (Templates only) |
|
|
The teams configured on the release. |
|
|
File attachments of the release. |
|
|
The list of phases in the release. |
|
|
The calculated flag status, derived from the flags from the release and its tasks. |
|
|
The state the release is in. |
|
|
The tags of the release. Tags can be used for grouping and querying. |
|
|
List of variable CIs representing variables in this release or template |
|
|
Releases automatically abort when a task fails if this property is set to true. |
|
|
Allows the usage of passwords in non-password fields. Passwords values are masked in the UI and logging output but are decrypted before the task execution. |
|
|
Disable all notifications for this release. |
|
|
If set to false, a trigger can’t create a release if the previous one it created is still running. |
|
|
The ID of the template that created this release. |
|
|
True if release was created by a trigger. |
|
|
The credentials of this user are used to run automated scripts in this release. |
|
|
The password of the user that lends his credentials to run the scripts. |
|
|
Extensions of this release, e.g. 'Release contents dashboard' |
|
|
The Create Release task from which this release was created, if any |
|
|
If true, the release will automatically start at scheduledStartDate. |
|
|
The comment to associate with the action |
|
|
Map from property name to a variable name that replaces that property |
|
|
Risk score |
|
|
Total risk score |
|
|
Risk profile used in risk calculations |
The response contains the updated release:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1375
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21",
"type" : "xlrelease.Release",
"$scmTraceabilityDataId" : "0",
"title" : "new title",
"scheduledStartDate" : "2022-07-14T17:21:27.049+02:00",
"dueDate" : "2022-07-14T17:21:27.049+02:00",
"flagStatus" : "OK",
"overdueNotified" : false,
"maxConcurrentReleases" : 100,
"releaseTriggers" : [ ],
"teams" : [ ],
"memberViewers" : [ ],
"roleViewers" : [ ],
"attachments" : [ ],
"phases" : [ ],
"queryableStartDate" : "2022-07-14T17:21:27.049+02:00",
"queryableEndDate" : "2022-07-14T17:21:27.049+02:00",
"realFlagStatus" : "OK",
"status" : "PLANNED",
"tags" : [ ],
"variables" : [ ],
"calendarPublished" : false,
"tutorial" : false,
"abortOnFailure" : false,
"allowPasswordsInAllFields" : false,
"disableNotifications" : false,
"allowConcurrentReleasesFromTrigger" : true,
"runningTriggeredReleasesCount" : 0,
"createdFromTrigger" : false,
"extensions" : [ ],
"autoStart" : false,
"automatedResumeCount" : 0,
"variableMapping" : { },
"riskScore" : "000",
"totalRiskScore" : "0000",
"$metadata" : {
"security" : {
"permissions" : [ ],
"teams" : [ ]
},
"globalVariables" : {
"id" : "Configuration/variables/global",
"type" : "xlrelease.GlobalVariables",
"variables" : [ ]
},
"serverUrl" : { }
}
}
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Release'. |
|
|
The title of the item. |
|
|
The description of the item. |
|
|
The owner of the item. |
|
|
The date that the item is supposed to start. |
|
|
The date that the item is supposed to end. |
|
|
The actual start date. |
|
|
The actual end date. |
|
|
The time that the item is supposed to take to complete, in seconds. |
|
|
Flags indicate that an item needs attention. |
|
|
The reason the item is flagged. |
|
|
The triggers that may start a release from a template. (Templates only) |
|
|
The teams configured on the release. |
|
|
File attachments of the release. |
|
|
The list of phases in the release. |
|
|
The calculated flag status, derived from the flags from the release and its tasks. |
|
|
The state the release is in. |
|
|
The tags of the release. Tags can be used for grouping and querying. |
|
|
List of variable CIs representing variables in this release or template |
|
|
Releases automatically abort when a task fails if this property is set to true. |
|
|
Allows the usage of passwords in non-password fields. Passwords values are masked in the UI and logging output but are decrypted before the task execution. |
|
|
Disable all notifications for this release. |
|
|
If set to false, a trigger can’t create a release if the previous one it created is still running. |
|
|
The ID of the template that created this release. |
|
|
True if release was created by a trigger. |
|
|
The credentials of this user are used to run automated scripts in this release. |
|
|
The password of the user that lends his credentials to run the scripts. |
|
|
Extensions of this release, e.g. 'Release contents dashboard' |
|
|
The Create Release task from which this release was created, if any |
|
|
If true, the release will automatically start at scheduledStartDate. |
|
|
The comment to associate with the action |
|
|
Map from property name to a variable name that replaces that property |
|
|
Risk score |
|
|
Total risk score |
|
|
Risk profile used in risk calculations |
Delete commands for task, phase, template, or release
Delete a task
To delete a task, send this request:
DELETE /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726' -i -X DELETE
$ http DELETE 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Delete a phase
To delete a phase, send this request:
DELETE /api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e
$ curl 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e' -i -X DELETE
$ http DELETE 'http://localhost:5516/api/v1/phases/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e'
Using the following parameters:
Parameter | Description |
---|---|
|
Full phase identifier; for example, Applications/Release1/Phase2 |
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Delete template
To delete a template, send this request:
DELETE /api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21
$ curl 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21' -i -X DELETE
$ http DELETE 'http://localhost:5516/api/v1/templates/Applications/Release162151faba694d03aa3065665cf26f21'
Using the following parameters:
Parameter | Description |
---|---|
|
Full template identifier; for example, Applications/Release1 |
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Delete release
To delete a release, it must be in aborted or done status.
|
To delete a release, send this request:
DELETE /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21' -i -X DELETE
$ http DELETE 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
You cannot delete a phase from a template or release. |
Export template
To export template in .xlr format, send this request:
Do not use -i with curl |
GET /api/v1/templates/zip/Applications/Release3190b0d2b8be49569a4cacad0e271040
$ curl 'http://localhost:5516/api/v1/templates/zip/Applications/Release3190b0d2b8be49569a4cacad0e271040' -i -X GET \
-H 'Accept: */*'
$ http GET 'http://localhost:5516/api/v1/templates/zip/Applications/Release3190b0d2b8be49569a4cacad0e271040' \
'Accept:*/*'
The response contains the zip file content:
HTTP/1.1 200 OK
Content-Language: en
Content-Disposition: attachment; filename="Test template 1.xlr"
Content-Type: application/zip
We didn’t display response of the zip file in this example. |
Folders
In XL Release folders can be used to organize templates and releases. You can operate with folders using the Folders API.
Listing the root folders
To list the root folders, send this request:
GET /api/v1/folders/list?depth=4
$ curl 'http://localhost:5516/api/v1/folders/list?depth=4' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/folders/list?depth=4' \
'Accept:application/json'
You receive a response containing a list of folders:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1438
[ {
"id" : "Applications/Folder7094dd92e80447fb821591dd7126228e",
"type" : "xlrelease.Folder",
"$token" : "d0652a5a-ebe5-4a84-9c50-f8ebe4f2a6aa",
"title" : "Microservices",
"children" : [ ],
"$metadata" : {
"security" : {
"permissions" : [ "folder#edit_variables", "release#edit_precondition", "release#edit", "folder#edit_configuration", "template#edit", "release#edit_security", "group#view", "release#lock_task", "delivery_pattern#view", "group#edit", "template#lock_task", "folder#view", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "dashboard#view", "release#edit_task", "release#task_transition", "release#edit_task_attachments", "delivery_pattern#edit", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "delivery#edit", "template#edit_security", "template#create_release", "release#edit_task_description", "trigger#edit_trigger", "release#view", "folder#edit_notifications", "delivery#view", "delivery#edit_tracked_item", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "template#edit_triggers", "template#edit_precondition", "dashboard#edit", "folder#edit_security", "release#abort", "folder#edit", "template#edit_failure_handler" ],
"teams" : [ "Template Owner", "Release Admin", "Folder Owner" ]
}
}
} ]
All the folders in the response and their description and properties:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Folder'. |
|
|
User provided title of the folder |
|
|
Sub-folders of this folder |
Creating folders
You can create a new sub-folder under any folder, including the Applications
root folder.
For example, to create a top-level folder titled "New folder", send this request:
POST /api/v1/folders/Applications
{
"id" : null,
"type" : "xlrelease.Folder",
"title" : "New folder",
"children" : [ ]
}
$ curl 'http://localhost:5516/api/v1/folders/Applications' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"id" : null,
"type" : "xlrelease.Folder",
"title" : "New folder",
"children" : [ ]
}'
$ echo '{
"id" : null,
"type" : "xlrelease.Folder",
"title" : "New folder",
"children" : [ ]
}' | http POST 'http://localhost:5516/api/v1/folders/Applications' \
'Content-Type:application/json'
Using the following parameters:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.Folder'. |
|
|
User provided title of the folder |
|
|
Sub-folders of this folder |
You receive the created folder as a response containing its normal fields.
Listing folders inside another folder
To receive a list of all the folders that are contained by another folder, send this request:
GET /api/v1/folders/Applications/Folderb8e602a101364cbdacdc0d7e99cfbba8/list
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folderb8e602a101364cbdacdc0d7e99cfbba8/list' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/folders/Applications/Folderb8e602a101364cbdacdc0d7e99cfbba8/list' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The (optional) depth to search for; defaults at 1 |
|
The (optional) boolean to decorate the folders with the effective permissions; defaults with false |
|
The (optional) page of results to return; defaults at 0 |
|
The (optional) the number of results per page; defaults at 50 |
Parameter | Description |
---|---|
|
The parent folder to retrieve from |
Find a folder
You can search for folders by title using nested paths. To find a folder using a specific title, send this request:
GET /api/v1/folders/find?byPath=Microservices/QA
$ curl 'http://localhost:5516/api/v1/folders/find?byPath=Microservices/QA' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/folders/find?byPath=Microservices/QA' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The path for the folder to search on |
|
The (optional) depth to search for; defaults at 1 |
Get folder
To find a folder using a specific folder ID, send this request:
GET /api/v1/folders/Applications/Foldercbf7b8e4005e4c0eb8969c091c29500a/Folderf5bd18fbfb7b4085b9aaee35042f93c9
$ curl 'http://localhost:5516/api/v1/folders/Applications/Foldercbf7b8e4005e4c0eb8969c091c29500a/Folderf5bd18fbfb7b4085b9aaee35042f93c9' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/folders/Applications/Foldercbf7b8e4005e4c0eb8969c091c29500a/Folderf5bd18fbfb7b4085b9aaee35042f93c9' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The id of the folder |
Parameter | Description |
---|---|
|
The (optional) depth to search for; defaults at 1 |
Templates and releases
You can retrieve templates and releases within specific folders.
To find templates in a folder, send this request:
GET /api/v1/folders/Applications/Folder1f3d21b492eb4b1cbf369eeae407b0d6/Folderd98e486fdf9b4575acee64598f31b2e4/templates
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folder1f3d21b492eb4b1cbf369eeae407b0d6/Folderd98e486fdf9b4575acee64598f31b2e4/templates' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/folders/Applications/Folder1f3d21b492eb4b1cbf369eeae407b0d6/Folderd98e486fdf9b4575acee64598f31b2e4/templates' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The id of the folder |
Parameter | Description |
---|---|
|
The (optional) depth to search for; defaults at 1 |
|
The (optional) page of results to return; defaults at 0 |
|
The (optional) the number of results per page; defaults at 50 |
If you want to search for releases:
POST /api/v1/folders/Applications/Folderca9dc386795b437eaf064123c0cc0480/Folderb81e03834c1b4912b787e0644a23a713/releases
{
"title" : null,
"tags" : null,
"taskTags" : null,
"timeFrame" : null,
"from" : null,
"to" : null,
"active" : false,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : false,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderBy" : "risk",
"orderDirection" : null,
"riskStatusWithThresholds" : null
}
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folderca9dc386795b437eaf064123c0cc0480/Folderb81e03834c1b4912b787e0644a23a713/releases' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"title" : null,
"tags" : null,
"taskTags" : null,
"timeFrame" : null,
"from" : null,
"to" : null,
"active" : false,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : false,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderBy" : "risk",
"orderDirection" : null,
"riskStatusWithThresholds" : null
}'
$ echo '{
"title" : null,
"tags" : null,
"taskTags" : null,
"timeFrame" : null,
"from" : null,
"to" : null,
"active" : false,
"planned" : true,
"inProgress" : false,
"paused" : false,
"failing" : false,
"failed" : false,
"inactive" : false,
"completed" : false,
"aborted" : false,
"onlyMine" : false,
"onlyFlagged" : false,
"onlyArchived" : false,
"parentId" : null,
"orderBy" : "risk",
"orderDirection" : null,
"riskStatusWithThresholds" : null
}' | http POST 'http://localhost:5516/api/v1/folders/Applications/Folderca9dc386795b437eaf064123c0cc0480/Folderb81e03834c1b4912b787e0644a23a713/releases' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The id of the folder |
Parameter | Description |
---|---|
|
The (optional) page to search for; defaults at 0 |
|
The (optional) the number of results per page; defaults at 50 |
|
The (optional) depth to search for; defaults at 1 |
Path | Type | Description |
---|---|---|
|
|
Case-insensitive matches the part of the release title |
|
|
Matches the releases containing all of the specified tags |
|
|
The time-frame to search releases in. Valid values: LAST_MONTH, LAST_THREE_MONTHS, LAST_SIX_MONTHS, LAST_YEAR. Specify RANGE to filter by a custom from-to date range |
|
|
Matches the releases with end date after or equal to this date |
|
|
Matches the releases with start date before this date |
|
|
Matches the releases with the IN_PROGRESS, FAILED, FAILING or PAUSED status |
|
|
Matches the releases with the PLANNED status |
|
|
Matches the releases with the IN_PROGRESS status |
|
|
Matches the releases with the PAUSED status |
|
|
Matches the releases with the FAILING status |
|
|
Matches the releases with the FAILED status |
|
|
Matches the releases with the COMPLETED or ABORTED status |
|
|
Matches the releases with the COMPLETED status |
|
|
Matches the releases with the ABORTED status |
|
|
Matches the releases with me as the owner |
|
|
Matches the releases which need attention or are at risk |
|
|
Matches the releases which have been archived |
|
|
Matches the releases stored under this folder |
|
|
The order of the returning set: risk, start_date, end_date, title (only available for templates) |
|
|
The order direction of the returning set: ASC, DESC |
Move templates
Templates can be moved from one folder to another folder.
Because folders have their own permissions, you can use an optional parameter called mergePermissions
to merge source folder and target folder permissions.
To move a template from one folder to another, send this request:
POST /api/v1/folders/Applications/Folderb421d8c5f298406b8de593559409f881/templates/Applications/Folder2f6b03386c5c4722a87be73e0278a952/Release1
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folderb421d8c5f298406b8de593559409f881/templates/Applications/Folder2f6b03386c5c4722a87be73e0278a952/Release1' -i -X POST \
-H 'Accept: application/json'
$ http POST 'http://localhost:5516/api/v1/folders/Applications/Folderb421d8c5f298406b8de593559409f881/templates/Applications/Folder2f6b03386c5c4722a87be73e0278a952/Release1' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The target folder the template will be moved to |
|
The id of the template to be moved |
Add folder inside folder
To create nested folders, send this request:
POST /api/v1/folders/Applications/Folder734fedfe90d64ed894ae7c70ea3a5aa3
{
"id" : null,
"type" : "xlrelease.Folder",
"title" : "QA",
"children" : [ ]
}
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folder734fedfe90d64ed894ae7c70ea3a5aa3' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : null,
"type" : "xlrelease.Folder",
"title" : "QA",
"children" : [ ]
}'
$ echo '{
"id" : null,
"type" : "xlrelease.Folder",
"title" : "QA",
"children" : [ ]
}' | http POST 'http://localhost:5516/api/v1/folders/Applications/Folder734fedfe90d64ed894ae7c70ea3a5aa3' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The id of the folder to create the folder in |
Delete folders
To delete a folder, send this request:
DELETE /api/v1/folders/Applications/Foldere0783830192d4c64b3048a83cbc1d285
$ curl 'http://localhost:5516/api/v1/folders/Applications/Foldere0783830192d4c64b3048a83cbc1d285' -i -X DELETE
$ http DELETE 'http://localhost:5516/api/v1/folders/Applications/Foldere0783830192d4c64b3048a83cbc1d285'
Using the following parameters:
Parameter | Description |
---|---|
|
The id of the folder to delete |
Move folders
To move folders inside another folder, send this request:
POST /api/v1/folders/Applications/Folder55207cb2e1f4472bafa8b6d25e77593d/move?newParentId=Applications/Folder4a123d7a3d22464b9ebf0e4645f2a47e
newParentId=Applications%2FFolder4a123d7a3d22464b9ebf0e4645f2a47e
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folder55207cb2e1f4472bafa8b6d25e77593d/move?newParentId=Applications/Folder4a123d7a3d22464b9ebf0e4645f2a47e' -i -X POST \
-H 'Accept: application/json'
$ http POST 'http://localhost:5516/api/v1/folders/Applications/Folder55207cb2e1f4472bafa8b6d25e77593d/move?newParentId=Applications/Folder4a123d7a3d22464b9ebf0e4645f2a47e' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The id of the folder to move |
Parameter | Description |
---|---|
|
The id of the parent folder the folder will be moved under |
Note that you cannot move a folder if it contains active releases or templates with active triggers.
Rename folders
To rename a folder, send this request:
POST /api/v1/folders/Applications/Folderd4d9b4047a8c4429b91bab6c376cac8b/rename?newName=Microservices%20II
newName=Microservices+II
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folderd4d9b4047a8c4429b91bab6c376cac8b/rename?newName=Microservices%20II' -i -X POST \
-H 'Accept: application/json'
$ http POST 'http://localhost:5516/api/v1/folders/Applications/Folderd4d9b4047a8c4429b91bab6c376cac8b/rename?newName=Microservices%20II' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
The id of the folder to move |
Parameter | Description |
---|---|
|
The new name of the folder |
Working with variables
For a detailed description about variables, refer to Variables in XL Release
Types of variables
Variable | XL-Release type | Example value |
---|---|---|
String |
xlrelease.StringVariable |
"Hello variable" |
Boolean |
xlrelease.BooleanVariable |
False |
Integer |
xlrelease.IntegerVariable |
1 |
List string |
xlrelease.ListStringVariable |
["first","second"] |
Map string string |
xlrelease.MapStringStringVariable |
<"Key","value"> |
Set string |
xlrelease.SetStringVariable |
("unique","value") |
Password |
xlrelease.PasswordStringVariable |
"myH4x0rP455w0rd" |
Date |
xlrelease.DateVariable |
"2017-07-17T10:31:00+01:00" |
CRUD on variables
Variables on release or templates
The following operations are available for both templates and releases. You can use either /templates
for templates or /releases
for releases in each curl
command.
List all release/template variables
To get the list of all the variables inside a template or release, send this request:
GET /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variables
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variables' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variables' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
The response contains a list of variables:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 294
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b",
"type" : "xlrelease.StringVariable",
"key" : "var1",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "value1",
"multiline" : false
} ]
All the variables in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.StringVariable'. |
|
|
If set, this field contains the folder that this configuration belongs to. |
|
|
The unique name of the variable in the way it is used in template or release, without curly braces |
|
|
Shows if an empty value is a valid value for this variable |
|
|
Shows if this variable will be shown on create release page |
|
|
Label of the variable |
|
|
Description of the variable |
|
|
Configuration of the variable values provider |
|
|
Determines whether the variable value is inherited from the template variable. Used in the Create Release Task only. |
|
|
Value of the release variable or default value of the template variable |
|
|
If checked variable value will be multiline text |
List all release/template variable values
To get the list of all interpolated variable values inside a template or release, send this request:
GET /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variableValues
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variableValues' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variableValues' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
The response contains map with interpolated variable values:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 53
{
"${var1ref}" : "value1",
"${var1}" : "value1"
}
Find release/template variable by ID
To get the information for only a specific variable inside a release or a template, send this request:
GET /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the variable; for example, Applications/Release1/Variable1 |
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.StringVariable'. |
|
|
If set, this field contains the folder that this configuration belongs to. |
|
|
The unique name of the variable in the way it is used in template or release, without curly braces |
|
|
Shows if an empty value is a valid value for this variable |
|
|
Shows if this variable will be shown on create release page |
|
|
Label of the variable |
|
|
Description of the variable |
|
|
Configuration of the variable values provider |
|
|
Determines whether the variable value is inherited from the template variable. Used in the Create Release Task only. |
|
|
Value of the release variable or default value of the template variable |
|
|
If checked variable value will be multiline text |
Create new release/template variable
To add a new variable into your Applications/ReleasesTest/Release1
release:
The new variable will contain a String
, so make sure the type is xlrelease.StringVariable
.
Do the following command:
POST /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variables
{
"id" : null,
"key" : "newVar",
"type" : "xlrelease.StringVariable",
"requiresValue" : false,
"showOnReleaseStart" : false,
"value" : "new value",
"label" : null,
"description" : null,
"multiline" : false,
"inherited" : false,
"externalVariableValue" : null,
"valueProvider" : null
}
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variables' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"id" : null,
"key" : "newVar",
"type" : "xlrelease.StringVariable",
"requiresValue" : false,
"showOnReleaseStart" : false,
"value" : "new value",
"label" : null,
"description" : null,
"multiline" : false,
"inherited" : false,
"externalVariableValue" : null,
"valueProvider" : null
}'
$ echo '{
"id" : null,
"key" : "newVar",
"type" : "xlrelease.StringVariable",
"requiresValue" : false,
"showOnReleaseStart" : false,
"value" : "new value",
"label" : null,
"description" : null,
"multiline" : false,
"inherited" : false,
"externalVariableValue" : null,
"valueProvider" : null
}' | http POST 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variables' \
'Content-Type:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
The unique name of the variable in the way it is used in template or release, without curly braces |
|
|
Value of the release variable or default value of the template variable |
|
|
Shows if an empty value is a valid value for this variable |
|
|
Shows if this variable will be shown on create release page |
The response is similar to previous case
Delete new release/template variable
To delete variables, you can send this request:
DELETE /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b' -i -X DELETE \
-H 'Accept: application/json'
$ http DELETE 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the variable; for example, Applications/Release1/Variable1 |
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Update variable
To update a single variable, send this request:
PUT /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b",
"type" : "xlrelease.StringVariable",
"key" : "var1",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "updated value",
"multiline" : false
}
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b",
"type" : "xlrelease.StringVariable",
"key" : "var1",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "updated value",
"multiline" : false
}'
$ echo '{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b",
"type" : "xlrelease.StringVariable",
"key" : "var1",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "updated value",
"multiline" : false
}' | http PUT 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b' \
'Content-Type:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the variable; for example, Applications/Release1/Variable1 |
Update variables
You can also update several variables in the same request by executing the following command:
PUT /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variables
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b",
"type" : "xlrelease.StringVariable",
"key" : "var1",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "updated value",
"multiline" : false
} ]
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variables' -i -X PUT \
-H 'Content-Type: application/json' \
-d '[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b",
"type" : "xlrelease.StringVariable",
"key" : "var1",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "updated value",
"multiline" : false
} ]'
$ echo '[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b",
"type" : "xlrelease.StringVariable",
"key" : "var1",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "updated value",
"multiline" : false
} ]' | http PUT 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/variables' \
'Content-Type:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
The response contains a list of updated variables:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 301
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b",
"type" : "xlrelease.StringVariable",
"key" : "var1",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "updated value",
"multiline" : false
} ]
Advanced
Variable values
To get all the possible values that you can use in an specific variable, send this request:
GET /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b/possibleValues
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b/possibleValues' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b/possibleValues' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the variable; for example, Applications/Release1/Variable1 |
The response contains the list of values:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 32
[ "value1", "value2", "value3" ]
Verify variable usage
To verify if a variable is used inside a release, send this request:
GET /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b/used
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b/used' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b/used' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the variable; for example, Applications/Release1/Variable1 |
The response contains true
if variable is used, false
otherwise:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 5
false
Replacing a variable
To replace one or more variables, send this request:
POST /api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b/replace
{
"variable" : "${var2}",
"value" : "value2"
}
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b/replace' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"variable" : "${var2}",
"value" : "value2"
}'
$ echo '{
"variable" : "${var2}",
"value" : "value2"
}' | http POST 'http://localhost:5516/api/v1/releases/Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b/replace' \
'Content-Type:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the variable; for example, Applications/Release1/Variable1 |
Path | Type | Description |
---|---|---|
|
|
Variable key with placeholder |
|
|
The new value |
The response:
HTTP/1.1 204 No Content
Content-Language: en
Variables used by a task
To get the variables used inside a task using the TaskApi
, send this request:
GET /api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/variables
$ curl 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/variables' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/tasks/Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726/variables' \
'Accept:application/json'
With the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the task; for example, Applications/Release1/Phase2/Task3 |
The response contains a list with the variables used in the task:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 295
[ {
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Variable4d6814d312344aa68a36974e714bac0b",
"type" : "xlrelease.StringVariable",
"key" : "title",
"requiresValue" : true,
"showOnReleaseStart" : true,
"inherited" : false,
"value" : "value1",
"multiline" : false
} ]
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.StringVariable'. |
|
|
If set, this field contains the folder that this configuration belongs to. |
|
|
The unique name of the variable in the way it is used in template or release, without curly braces |
|
|
Shows if an empty value is a valid value for this variable |
|
|
Shows if this variable will be shown on create release page |
|
|
Label of the variable |
|
|
Description of the variable |
|
|
Configuration of the variable values provider |
|
|
Determines whether the variable value is inherited from the template variable. Used in the Create Release Task only. |
|
|
Value of the release variable or default value of the template variable |
|
|
If checked variable value will be multiline text |
Global variables
List global variables
To list all the global variables, send this request:
GET /api/v1/config/Configuration/variables/global
$ curl 'http://localhost:5516/api/v1/config/Configuration/variables/global' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/config/Configuration/variables/global' \
'Accept:application/json'
The response contains all the global variables defined in the system:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 508
[ {
"id" : "Configuration/variables/global/Variable1",
"type" : "xlrelease.StringVariable",
"key" : "global.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "value",
"multiline" : false
}, {
"id" : "Configuration/variables/global/Variable2",
"type" : "xlrelease.StringVariable",
"key" : "global.var1ref",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "${global.var1}",
"multiline" : false
} ]
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.StringVariable'. |
|
|
If set, this field contains the folder that this configuration belongs to. |
|
|
The unique name of the variable in the way it is used in template or release, without curly braces |
|
|
Shows if an empty value is a valid value for this variable |
|
|
Shows if this variable will be shown on create release page |
|
|
Label of the variable |
|
|
Description of the variable |
|
|
Configuration of the variable values provider |
|
|
Determines whether the variable value is inherited from the template variable. Used in the Create Release Task only. |
|
|
Value of the release variable or default value of the template variable |
|
|
If checked variable value will be multiline text |
List global variable values
To list all interpolated global variable values, send this request:
GET /api/v1/config/Configuration/variableValues/global
$ curl 'http://localhost:5516/api/v1/config/Configuration/variableValues/global' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/config/Configuration/variableValues/global' \
'Accept:application/json'
The response contains map with interpolated values of all the global variables defined in the system:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 65
{
"${global.var1ref}" : "value",
"${global.var1}" : "value"
}
Find global variable by ID
To obtain a specific global variable
, send this request:
GET /api/v1/config/Configuration/variables/global/Variable1
$ curl 'http://localhost:5516/api/v1/config/Configuration/variables/global/Variable1' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/config/Configuration/variables/global/Variable1' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the global variable; for example, Configuration/variables/global/Variable1 |
The response contains the global variable:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 245
{
"id" : "Configuration/variables/global/Variable1",
"type" : "xlrelease.StringVariable",
"key" : "global.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "value",
"multiline" : false
}
Create global variable
To add new global variable
, send this request:
POST /api/v1/config/Configuration/variables/global
{
"id" : null,
"key" : "global.newVar",
"type" : "xlrelease.StringVariable",
"requiresValue" : false,
"showOnReleaseStart" : false,
"value" : "new value",
"label" : null,
"description" : null,
"multiline" : false,
"inherited" : false,
"externalVariableValue" : null,
"valueProvider" : null
}
$ curl 'http://localhost:5516/api/v1/config/Configuration/variables/global' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"id" : null,
"key" : "global.newVar",
"type" : "xlrelease.StringVariable",
"requiresValue" : false,
"showOnReleaseStart" : false,
"value" : "new value",
"label" : null,
"description" : null,
"multiline" : false,
"inherited" : false,
"externalVariableValue" : null,
"valueProvider" : null
}'
$ echo '{
"id" : null,
"key" : "global.newVar",
"type" : "xlrelease.StringVariable",
"requiresValue" : false,
"showOnReleaseStart" : false,
"value" : "new value",
"label" : null,
"description" : null,
"multiline" : false,
"inherited" : false,
"externalVariableValue" : null,
"valueProvider" : null
}' | http POST 'http://localhost:5516/api/v1/config/Configuration/variables/global' \
'Content-Type:application/json'
All the variables in the response and their description:
Path | Type | Description |
---|---|---|
|
|
The unique name of the variable in the way it is used in template or release, without curly braces |
|
|
Value of the release variable or default value of the template variable |
|
|
Shows if an empty value is a valid value for this variable |
|
|
Shows if this variable will be shown on create release page |
The response contains the added global variable:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 282
{
"id" : "Configuration/variables/global/Variable3b5d27c94d324b56bf9418842d7b87c6",
"type" : "xlrelease.StringVariable",
"key" : "global.newVar",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "new value",
"multiline" : false
}
Update global variable
To update a global variable
, send this request:
PUT /api/v1/config/Configuration/variables/global/Variable1
{
"id" : "Configuration/variables/global/Variable1",
"type" : "xlrelease.StringVariable",
"key" : "global.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "updated value",
"multiline" : false
}
$ curl 'http://localhost:5516/api/v1/config/Configuration/variables/global/Variable1' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{
"id" : "Configuration/variables/global/Variable1",
"type" : "xlrelease.StringVariable",
"key" : "global.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "updated value",
"multiline" : false
}'
$ echo '{
"id" : "Configuration/variables/global/Variable1",
"type" : "xlrelease.StringVariable",
"key" : "global.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "updated value",
"multiline" : false
}' | http PUT 'http://localhost:5516/api/v1/config/Configuration/variables/global/Variable1' \
'Content-Type:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the global variable; for example, Configuration/variables/global/Variable1 |
All the variables in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.StringVariable'. |
|
|
If set, this field contains the folder that this configuration belongs to. |
|
|
The unique name of the variable in the way it is used in template or release, without curly braces |
|
|
Shows if an empty value is a valid value for this variable |
|
|
Shows if this variable will be shown on create release page |
|
|
Label of the variable |
|
|
Description of the variable |
|
|
Configuration of the variable values provider |
|
|
Determines whether the variable value is inherited from the template variable. Used in the Create Release Task only. |
|
|
Value of the release variable or default value of the template variable |
|
|
If checked variable value will be multiline text |
The response contains the updated global variable:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 253
{
"id" : "Configuration/variables/global/Variable1",
"type" : "xlrelease.StringVariable",
"key" : "global.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "updated value",
"multiline" : false
}
Delete global variable
To delete a global variable
, send this request
DELETE /api/v1/config/Configuration/variables/global/Variable1
$ curl 'http://localhost:5516/api/v1/config/Configuration/variables/global/Variable1' -i -X DELETE
$ http DELETE 'http://localhost:5516/api/v1/config/Configuration/variables/global/Variable1'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the global variable; for example, Configuration/variables/global/Variable1 |
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Folder variables
List folder variables
To get the list of all the variables inside a folder, send this request:
GET /api/v1/folders/Applications/Folderd79cfed6de1543a4a510dacce596acfb/Folder667cbe5d0a874e6e90191fc6bd7c01dc/variables?folderOnly=false
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folderd79cfed6de1543a4a510dacce596acfb/Folder667cbe5d0a874e6e90191fc6bd7c01dc/variables?folderOnly=false' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/folders/Applications/Folderd79cfed6de1543a4a510dacce596acfb/Folder667cbe5d0a874e6e90191fc6bd7c01dc/variables?folderOnly=false' \
'Accept:application/json'
The response contains all the variables defined in the folder:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 684
[ {
"id" : "Variable98991b9a4b6f4b5a9a122a0adb2b51ad",
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Folderd79cfed6de1543a4a510dacce596acfb",
"key" : "folder.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "value",
"multiline" : false
}, {
"id" : "Variable62fa953ec0504c078f3b353de38fd6c8",
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Folderd79cfed6de1543a4a510dacce596acfb/Folder667cbe5d0a874e6e90191fc6bd7c01dc",
"key" : "folder.var2",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "${folder.var1}",
"multiline" : false
} ]
All the fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.StringVariable'. |
|
|
If set, this field contains the folder that this configuration belongs to. |
|
|
The unique name of the variable in the way it is used in template or release, without curly braces |
|
|
Shows if an empty value is a valid value for this variable |
|
|
Shows if this variable will be shown on create release page |
|
|
Label of the variable |
|
|
Description of the variable |
|
|
Configuration of the variable values provider |
|
|
Determines whether the variable value is inherited from the template variable. Used in the Create Release Task only. |
|
|
Value of the release variable or default value of the template variable |
|
|
If checked variable value will be multiline text |
List folder variable values
To list all interpolated global variable values, send this request:
GET /api/v1/folders/Applications/Folderb57efb85e1da4ab38ee806af3209b27a/Folder31ad2b11eb2841218c59f620be560937/variableValues?folderOnly=false
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folderb57efb85e1da4ab38ee806af3209b27a/Folder31ad2b11eb2841218c59f620be560937/variableValues?folderOnly=false' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/folders/Applications/Folderb57efb85e1da4ab38ee806af3209b27a/Folder31ad2b11eb2841218c59f620be560937/variableValues?folderOnly=false' \
'Accept:application/json'
The response contains map with interpolated values of all the variables defined in the folder:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 62
{
"${folder.var2}" : "value",
"${folder.var1}" : "value"
}
Find folder variable by ID
To obtain a specific folder variable
, send this request:
GET /api/v1/folders/Applications/Folderb6ae7bcca68f4f94ad6dcfe9b8e5440a/Variable466ac1dc8b7f431aa20a904d4b76b741
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folderb6ae7bcca68f4f94ad6dcfe9b8e5440a/Variable466ac1dc8b7f431aa20a904d4b76b741' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/folders/Applications/Folderb6ae7bcca68f4f94ad6dcfe9b8e5440a/Variable466ac1dc8b7f431aa20a904d4b76b741' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
The id of the folder |
|
The id of the folder variable |
The response contains the folder variable:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 315
{
"id" : "Variable466ac1dc8b7f431aa20a904d4b76b741",
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Folderb6ae7bcca68f4f94ad6dcfe9b8e5440a",
"key" : "folder.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "value",
"multiline" : false
}
Create folder variable
To add new folder variable
, send this request:
POST /api/v1/folders/Applications/Foldere3eadc1147484303b8d0d327753c15fe/variables
{
"id" : null,
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Foldere3eadc1147484303b8d0d327753c15fe",
"key" : "folder.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "value",
"multiline" : false
}
$ curl 'http://localhost:5516/api/v1/folders/Applications/Foldere3eadc1147484303b8d0d327753c15fe/variables' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"id" : null,
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Foldere3eadc1147484303b8d0d327753c15fe",
"key" : "folder.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "value",
"multiline" : false
}'
$ echo '{
"id" : null,
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Foldere3eadc1147484303b8d0d327753c15fe",
"key" : "folder.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "value",
"multiline" : false
}' | http POST 'http://localhost:5516/api/v1/folders/Applications/Foldere3eadc1147484303b8d0d327753c15fe/variables' \
'Content-Type:application/json'
All the variables in the response and their description:
Path | Type | Description |
---|---|---|
|
|
The unique name of the variable in the way it is used in template or release, without curly braces |
|
|
Value of the release variable or default value of the template variable |
|
|
Shows if an empty value is a valid value for this variable |
|
|
Shows if this variable will be shown on create release page |
The response contains the added folder variable:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 315
{
"id" : "Variablea2a99b5e95df424186d5975ce7049144",
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Foldere3eadc1147484303b8d0d327753c15fe",
"key" : "folder.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "value",
"multiline" : false
}
Update folder variable
To update a folder variable
, send this request:
PUT /api/v1/folders/Applications/Foldere4ccc28dddd54653b8307bf331f4113b/Variableca34ac3a95ed4ef4aacf86e09c35c26b
{
"id" : "Variableca34ac3a95ed4ef4aacf86e09c35c26b",
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Foldere4ccc28dddd54653b8307bf331f4113b",
"key" : "folder.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "new value",
"multiline" : false
}
$ curl 'http://localhost:5516/api/v1/folders/Applications/Foldere4ccc28dddd54653b8307bf331f4113b/Variableca34ac3a95ed4ef4aacf86e09c35c26b' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{
"id" : "Variableca34ac3a95ed4ef4aacf86e09c35c26b",
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Foldere4ccc28dddd54653b8307bf331f4113b",
"key" : "folder.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "new value",
"multiline" : false
}'
$ echo '{
"id" : "Variableca34ac3a95ed4ef4aacf86e09c35c26b",
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Foldere4ccc28dddd54653b8307bf331f4113b",
"key" : "folder.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "new value",
"multiline" : false
}' | http PUT 'http://localhost:5516/api/v1/folders/Applications/Foldere4ccc28dddd54653b8307bf331f4113b/Variableca34ac3a95ed4ef4aacf86e09c35c26b' \
'Content-Type:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
The id of the folder |
|
The id of the folder variable |
All the variables in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.StringVariable'. |
|
|
If set, this field contains the folder that this configuration belongs to. |
|
|
The unique name of the variable in the way it is used in template or release, without curly braces |
|
|
Shows if an empty value is a valid value for this variable |
|
|
Shows if this variable will be shown on create release page |
|
|
Label of the variable |
|
|
Description of the variable |
|
|
Configuration of the variable values provider |
|
|
Determines whether the variable value is inherited from the template variable. Used in the Create Release Task only. |
|
|
Value of the release variable or default value of the template variable |
|
|
If checked variable value will be multiline text |
The response contains the updated folder variable:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 319
{
"id" : "Variableca34ac3a95ed4ef4aacf86e09c35c26b",
"type" : "xlrelease.StringVariable",
"folderId" : "Applications/Foldere4ccc28dddd54653b8307bf331f4113b",
"key" : "folder.var1",
"requiresValue" : false,
"showOnReleaseStart" : false,
"inherited" : false,
"value" : "new value",
"multiline" : false
}
Delete folder variable
To delete a folder variable
, send this request
DELETE /api/v1/folders/Applications/Folder68ece0262c584a1a875ddc60174822de/Variablefbd8752e28bc4dcaa943b8a8b989d596
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folder68ece0262c584a1a875ddc60174822de/Variablefbd8752e28bc4dcaa943b8a8b989d596' -i -X DELETE \
-H 'Accept: application/json'
$ http DELETE 'http://localhost:5516/api/v1/folders/Applications/Folder68ece0262c584a1a875ddc60174822de/Variablefbd8752e28bc4dcaa943b8a8b989d596' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
The id of the folder |
|
The id of the folder variable |
You will receive this empty response:
HTTP/1.1 204 No Content
Content-Language: en
Shared configuration
All the configuration objects can be created globally or inside a folder. The folderId
field in the configuration object stores the id of the folder where you can create the configuration.
Searching for configuration objects
The Configuration API
allows you to search for configuration objects using the following url:
GET /api/v1/config/byTypeAndTitle?configurationType=jira.Server&title=my%20JIRA%20server&folderId=Applications/Folderd4a535d2e4c948f5b9c9f93a39aeb3b4&folderOnly=true
$ curl 'http://localhost:5516/api/v1/config/byTypeAndTitle?configurationType=jira.Server&title=my%20JIRA%20server&folderId=Applications/Folderd4a535d2e4c948f5b9c9f93a39aeb3b4&folderOnly=true' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/config/byTypeAndTitle?configurationType=jira.Server&title=my%20JIRA%20server&folderId=Applications/Folderd4a535d2e4c948f5b9c9f93a39aeb3b4&folderOnly=true' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Type of the Configuration object |
|
The title of the Configuration object |
|
The (optional) id of a possible folder that has configurations |
|
The (optional) folderOnly gets the configurations of a folder (true), or a folder including all of its parents configurations (false) |
The response contains a list of configuration objects that match the criteria:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 413
[ {
"id" : "Configuration/Custom/Configuration8e9b81647c3d416e90b39eaa4d575c5e",
"type" : "jira.Server",
"folderId" : "Applications/Folderd4a535d2e4c948f5b9c9f93a39aeb3b4",
"title" : "my JIRA server",
"variableMapping" : { },
"url" : "http://localhost:4323/jira",
"username" : "jira username",
"proxyHost" : "http://localhost",
"proxyPort" : "3533",
"proxyUsername" : "proxyUsername value"
} ]
If the configuration is created globally, the folderId
field will not be in the body of
the response.
Get configuration object
To retrieve the configuration object for a given ID, execute the following command:
GET /api/v1/config/Configuration/Custom/Configurationa9041d081d2a426eaa68e1479f1399fd
$ curl 'http://localhost:5516/api/v1/config/Configuration/Custom/Configurationa9041d081d2a426eaa68e1479f1399fd' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/config/Configuration/Custom/Configurationa9041d081d2a426eaa68e1479f1399fd' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the configuration instance; for example, Configuration/Custom/Configuration1 |
The response contains the configuration object:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 479
{
"id" : "Configuration/Custom/Configurationa9041d081d2a426eaa68e1479f1399fd",
"type" : "jira.Server",
"folderId" : "Applications/Folder3b1c39aee860443e8f85356203ce23f9",
"title" : "Jira server configuration",
"variableMapping" : { },
"url" : "http://localhost:4323/jira",
"username" : "jira username",
"password" : "********",
"proxyHost" : "http://localhost",
"proxyPort" : "3533",
"proxyUsername" : "proxyUsername value",
"proxyPassword" : "********"
}
If the configuration is created globally, the folderId
field will not be in the body of
the response.
Create configuration
To create a new configuration object, execute the following command:
POST /api/v1/config
{
"id" : "null",
"type" : "jira.Server",
"folderId" : "Applications/Folder9dfc9ace01b746faaeac347fabfa8610",
"title" : "Jira server configuration",
"variableMapping" : { },
"url" : "http://localhost:4323/jira",
"username" : "jira username",
"password" : "jira password",
"proxyHost" : "http://localhost",
"proxyPort" : "3533",
"proxyUsername" : "proxyUsername value",
"proxyPassword" : "proxyPassword value"
}
$ curl 'http://localhost:5516/api/v1/config' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "null",
"type" : "jira.Server",
"folderId" : "Applications/Folder9dfc9ace01b746faaeac347fabfa8610",
"title" : "Jira server configuration",
"variableMapping" : { },
"url" : "http://localhost:4323/jira",
"username" : "jira username",
"password" : "jira password",
"proxyHost" : "http://localhost",
"proxyPort" : "3533",
"proxyUsername" : "proxyUsername value",
"proxyPassword" : "proxyPassword value"
}'
$ echo '{
"id" : "null",
"type" : "jira.Server",
"folderId" : "Applications/Folder9dfc9ace01b746faaeac347fabfa8610",
"title" : "Jira server configuration",
"variableMapping" : { },
"url" : "http://localhost:4323/jira",
"username" : "jira username",
"password" : "jira password",
"proxyHost" : "http://localhost",
"proxyPort" : "3533",
"proxyUsername" : "proxyUsername value",
"proxyPassword" : "proxyPassword value"
}' | http POST 'http://localhost:5516/api/v1/config' \
'Content-Type:application/json' \
'Accept:application/json'
The response contains the created configuration object:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 479
{
"id" : "Configuration/Custom/Configuration627583ad942c4b5fa370a8a8e67e982f",
"type" : "jira.Server",
"folderId" : "Applications/Folder9dfc9ace01b746faaeac347fabfa8610",
"title" : "Jira server configuration",
"variableMapping" : { },
"url" : "http://localhost:4323/jira",
"username" : "jira username",
"password" : "********",
"proxyHost" : "http://localhost",
"proxyPort" : "3533",
"proxyUsername" : "proxyUsername value",
"proxyPassword" : "********"
}
If a global configuration is needed, remove the folderId
field from the body of the request.
Update configuration
To update a configuration object with a given ID, execute the following command:
PUT /api/v1/config/Configuration/Custom/Configurationb7e79ef751d148ffa8b49be30552c3bf
{
"id" : "Configuration1",
"type" : "jira.Server",
"folderId" : "Applications/Folderec442fe87fcc488a93f77564a92ce1db",
"title" : "Changed jira title",
"variableMapping" : { },
"url" : "http://localhost:8438/jira-server",
"username" : "jira username",
"password" : "jira password",
"proxyHost" : "http://localhost",
"proxyPort" : "3533",
"proxyUsername" : "proxyUsername value",
"proxyPassword" : "proxyPassword value"
}
$ curl 'http://localhost:5516/api/v1/config/Configuration/Custom/Configurationb7e79ef751d148ffa8b49be30552c3bf' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "Configuration1",
"type" : "jira.Server",
"folderId" : "Applications/Folderec442fe87fcc488a93f77564a92ce1db",
"title" : "Changed jira title",
"variableMapping" : { },
"url" : "http://localhost:8438/jira-server",
"username" : "jira username",
"password" : "jira password",
"proxyHost" : "http://localhost",
"proxyPort" : "3533",
"proxyUsername" : "proxyUsername value",
"proxyPassword" : "proxyPassword value"
}'
$ echo '{
"id" : "Configuration1",
"type" : "jira.Server",
"folderId" : "Applications/Folderec442fe87fcc488a93f77564a92ce1db",
"title" : "Changed jira title",
"variableMapping" : { },
"url" : "http://localhost:8438/jira-server",
"username" : "jira username",
"password" : "jira password",
"proxyHost" : "http://localhost",
"proxyPort" : "3533",
"proxyUsername" : "proxyUsername value",
"proxyPassword" : "proxyPassword value"
}' | http PUT 'http://localhost:5516/api/v1/config/Configuration/Custom/Configurationb7e79ef751d148ffa8b49be30552c3bf' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the configuration instance; for example, Configuration/Custom/Configuration1 |
The response contains the updated configuration object:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 479
{
"id" : "Configuration/Custom/Configurationb7e79ef751d148ffa8b49be30552c3bf",
"type" : "jira.Server",
"folderId" : "Applications/Folderec442fe87fcc488a93f77564a92ce1db",
"title" : "Changed jira title",
"variableMapping" : { },
"url" : "http://localhost:8438/jira-server",
"username" : "jira username",
"password" : "********",
"proxyHost" : "http://localhost",
"proxyPort" : "3533",
"proxyUsername" : "proxyUsername value",
"proxyPassword" : "********"
}
Delete configuration
To delete a configuration object with a given ID, execute the following command:
DELETE /api/v1/config/Configuration/Custom/Configurationca6aaac35e6244658d4f145cba4494ba
$ curl 'http://localhost:5516/api/v1/config/Configuration/Custom/Configurationca6aaac35e6244658d4f145cba4494ba' -i -X DELETE \
-H 'Accept: application/json'
$ http DELETE 'http://localhost:5516/api/v1/config/Configuration/Custom/Configurationca6aaac35e6244658d4f145cba4494ba' \
'Accept:application/json'
Using the following parameters:
Parameter | Description |
---|---|
|
Full identifier of the configuration instance; for example, Configuration/Custom/Configuration1 |
The response is empty with the status code 204
.
System message configuration
Get system message configuration
To retrieve the system message configuration, execute the following command:
GET /api/v1/config/system-message
$ curl 'http://localhost:5516/api/v1/config/system-message' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/config/system-message' \
'Accept:application/json'
The response contain system message configuration:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 149
{
"id" : "Configuration/settings/SystemMessageSettings",
"type" : "xlrelease.SystemMessageSettings",
"enabled" : false,
"automated" : false
}
Update an system message configuration
To update system message configuration, send the following request:
PUT /api/v1/config/system-message
{
"id" : "Configuration/settings/SystemMessageSettings",
"type" : "xlrelease.SystemMessageSettings",
"enabled" : true,
"message" : "The system will be down from 11.12.2018 - 01.01.2019",
"automated" : false
}
$ curl 'http://localhost:5516/api/v1/config/system-message' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "Configuration/settings/SystemMessageSettings",
"type" : "xlrelease.SystemMessageSettings",
"enabled" : true,
"message" : "The system will be down from 11.12.2018 - 01.01.2019",
"automated" : false
}'
$ echo '{
"id" : "Configuration/settings/SystemMessageSettings",
"type" : "xlrelease.SystemMessageSettings",
"enabled" : true,
"message" : "The system will be down from 11.12.2018 - 01.01.2019",
"automated" : false
}' | http PUT 'http://localhost:5516/api/v1/config/system-message' \
'Content-Type:application/json' \
'Accept:application/json'
The response contain updated system message configuration:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 218
{
"id" : "Configuration/settings/SystemMessageSettings",
"type" : "xlrelease.SystemMessageSettings",
"enabled" : true,
"message" : "The system will be down from 11.12.2018 - 01.01.2019",
"automated" : false
}
Working with DSL
In XL Release you can use DSL code to define releases. It is possible to export DSL code from an existing template.
dashboards and activity logs are not exported. |
Exporting template as DSL
To export DSL code of a template send this request:
GET /api/v1/dsl/export/Applications/Release162151faba694d03aa3065665cf26f21?exportTemplate=false
$ curl 'http://localhost:5516/api/v1/dsl/export/Applications/Release162151faba694d03aa3065665cf26f21?exportTemplate=false' -i -X GET
$ http GET 'http://localhost:5516/api/v1/dsl/export/Applications/Release162151faba694d03aa3065665cf26f21?exportTemplate=false'
Using the following parameters:
Parameter | Description |
---|---|
|
Full template identifier; for example, Applications/Release1 |
Parameter | Description |
---|---|
|
The (optional) boolean to render the DSL as template, otherwise will render as release |
You will receive a zip file with the name of the template. Inside of it will be the DSL file ("Releasefile.groovy") and attachments ("attachments/" directory) if any exist.
Previewing the template DSL
To preview the DSL code of a template send this request:
GET /api/v1/dsl/preview/Applications/Release162151faba694d03aa3065665cf26f21?exportTemplate=false
$ curl 'http://localhost:5516/api/v1/dsl/preview/Applications/Release162151faba694d03aa3065665cf26f21?exportTemplate=false' -i -X GET
$ http GET 'http://localhost:5516/api/v1/dsl/preview/Applications/Release162151faba694d03aa3065665cf26f21?exportTemplate=false'
Using the following parameters:
Parameter | Description |
---|---|
|
Full template identifier; for example, Applications/Release1 |
Parameter | Description |
---|---|
|
The (optional) boolean to render the DSL as template, otherwise will render as release |
You will receive the DSL code that defines a template as string:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: text/plain;charset=UTF-8
Content-Length: 1132
// Exported from: http://jenkins-slave8-xlr:0/#/templates/Release162151faba694d03aa3065665cf26f21/code
// Release version: 10.1.17-SNAPSHOT
// Date created: Thu Jul 14 17:21:08 CEST 2022
xlr {
release('Sample XLR template') {
variables {
stringVariable('manualTaskTitle') {
value 'Manual task title'
}
passwordVariable('jiraPassword') {
value '{aes:v0}TwWz5HVywYOEFqAeYSAUf0apla4YBR7ovSbs1Isj17A='
}
mapVariable('foundIssues') {
}
}
description 'XLR template to demonstrate DSL export functionality'
phases {
phase('Sample phase') {
tasks {
manual('${manualTaskTitle}') {
}
custom('Query JIRA') {
script {
type 'jira.Query'
jiraServer 'XL JIRA test instance'
username '${jiraUser}'
password variable('jiraPassword')
query 'project = "XL Release" AND status = "OPEN" ORDER BY createdDate DESC'
issues variable('foundIssues')
}
}
}
}
}
}
}
Security API
User management
All API calls under User management
require the security#edit
global role. If you do not have that permission, you can still get information about your username, edit your profile and change password.
Finding users
To list all the users:
GET /api/v1/users
$ curl 'http://localhost:5516/api/v1/users' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/users' \
'Accept:application/json'
This will return a list of the first 100 users by default. You can use the parameters page
and resultsPerPage
to retrieve new users.
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 576
[ {
"username" : "admin",
"external" : false,
"profileId" : "admin",
"email" : "",
"fullName" : "Release Administrator",
"loginAllowed" : true,
"dateFormat" : null,
"timeFormat" : null,
"firstDayOfWeek" : 0,
"lastActive" : null,
"analyticsEnabled" : true
}, {
"username" : "user1",
"external" : false,
"profileId" : "user1",
"email" : "email@mail.com",
"fullName" : "John Doe",
"loginAllowed" : false,
"dateFormat" : "M/d/yy",
"timeFormat" : "HH:mm",
"firstDayOfWeek" : 0,
"lastActive" : 1540378800000,
"analyticsEnabled" : true
} ]
You can also search for users using query parameters:
GET /api/v1/users?email=email@mail.com&lastActiveBefore=1540380600000
$ curl 'http://localhost:5516/api/v1/users?email=email@mail.com&lastActiveBefore=1540380600000' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/users?email=email@mail.com&lastActiveBefore=1540380600000' \
'Accept:application/json'
See the following table for all the different applicable query parameters:
Parameter | Description |
---|---|
|
Email of the user. |
|
Name of the user. |
|
Is login allowed for the user. |
|
Select users last active after this timestamp |
|
Select users last active before this timestamp |
|
The (optional) page of results to return. Default value is 0. |
|
The (optional) number of results per page. Default value is 100. |
The response fields explained:
Path | Type | Description |
---|---|---|
|
|
The username. |
|
|
Flag that specifies if the user is coming from an external source. |
|
|
The CI ID of the user profile. |
|
|
The email of the user. |
|
|
The full name of the user. |
|
|
Whether user is allowed to login or not |
|
|
The profile setting for the date format. |
|
|
The profile setting for the time format. |
|
|
The profile setting for the first day of week. |
|
|
The timestamp corresponding to the last time this user interacted with XL Release |
|
|
The profile settings for opt-out from anonymous product usage analytics and guides |
Get a single user
If you know the username, you can get the user information as follows:
GET /api/v1/users/user1
$ curl 'http://localhost:5516/api/v1/users/user1' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/users/user1' \
'Accept:application/json'
Parameter | Description |
---|---|
|
The username to retrieve information from. |
Create new users
You can create single users as follows:
POST /api/v1/users/user2
{
"password" : "Passw0rd!",
"loginAllowed" : true,
"fullName" : "My new User"
}
$ curl 'http://localhost:5516/api/v1/users/user2' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"password" : "Passw0rd!",
"loginAllowed" : true,
"fullName" : "My new User"
}'
$ echo '{
"password" : "Passw0rd!",
"loginAllowed" : true,
"fullName" : "My new User"
}' | http POST 'http://localhost:5516/api/v1/users/user2' \
'Content-Type:application/json'
Path | Type | Description |
---|---|---|
|
|
The email of the user. |
|
|
The full name of the user. |
|
|
The login permission for the user. |
|
|
The profile setting for the date format. |
|
|
The profile setting for the time format. |
|
|
The profile setting for the first day of week. |
Parameter | Description |
---|---|
|
The username from the user to be created. |
User preferences
Option | Possible values |
---|---|
dateFormat |
Empty, "M/d/yy", "dd/MM/yy", "yy/MM/dd" |
timeFormat |
Empty, "HH:mm", "h:mm a" |
firstDayOfWeek |
-1, 0, 1 |
For more information about these settings, see Personal settings
Update users
To update a single user:
PUT /api/v1/users/user1
{
"loginAllowed" : false,
"dateFormat" : "M/d/yy",
"timeFormat" : "h:mm a",
"firstDayOfWeek" : 0
}
$ curl 'http://localhost:5516/api/v1/users/user1' -i -X PUT \
-H 'Content-Type: application/json' \
-d '{
"loginAllowed" : false,
"dateFormat" : "M/d/yy",
"timeFormat" : "h:mm a",
"firstDayOfWeek" : 0
}'
$ echo '{
"loginAllowed" : false,
"dateFormat" : "M/d/yy",
"timeFormat" : "h:mm a",
"firstDayOfWeek" : 0
}' | http PUT 'http://localhost:5516/api/v1/users/user1' \
'Content-Type:application/json'
Path | Type | Description |
---|---|---|
|
|
The email of the user. |
|
|
The full name of the user. |
|
|
The login permission for the user. |
|
|
The profile setting for the date format. |
|
|
The profile setting for the time format. |
|
|
The profile setting for the first day of week. |
Parameter | Description |
---|---|
|
The username from the user to be updated. |
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 265
{
"username" : "user1",
"external" : false,
"profileId" : null,
"email" : null,
"fullName" : null,
"loginAllowed" : false,
"dateFormat" : "M/d/yy",
"timeFormat" : "h:mm a",
"firstDayOfWeek" : 0,
"lastActive" : null,
"analyticsEnabled" : true
}
You cannot set or change the password with this operation, see Change password section. |
It is also possible to do a multiple user update by passing a list of users to update:
PUT /api/v1/users
[ {
"username" : "user1",
"loginAllowed" : false,
"dateFormat" : "M/d/yy",
"timeFormat" : "h:mm a",
"firstDayOfWeek" : 0
} ]
$ curl 'http://localhost:5516/api/v1/users' -i -X PUT \
-H 'Content-Type: application/json' \
-d '[ {
"username" : "user1",
"loginAllowed" : false,
"dateFormat" : "M/d/yy",
"timeFormat" : "h:mm a",
"firstDayOfWeek" : 0
} ]'
$ echo '[ {
"username" : "user1",
"loginAllowed" : false,
"dateFormat" : "M/d/yy",
"timeFormat" : "h:mm a",
"firstDayOfWeek" : 0
} ]' | http PUT 'http://localhost:5516/api/v1/users' \
'Content-Type:application/json'
Change password
POST /api/v1/users/user1/password
{
"currentPassword" : "myPassword",
"newPassword" : "Passw0rd!"
}
$ curl 'http://localhost:5516/api/v1/users/user1/password' -i -X POST \
-H 'Content-Type: application/json' \
-d '{
"currentPassword" : "myPassword",
"newPassword" : "Passw0rd!"
}'
$ echo '{
"currentPassword" : "myPassword",
"newPassword" : "Passw0rd!"
}' | http POST 'http://localhost:5516/api/v1/users/user1/password' \
'Content-Type:application/json'
Path | Type | Description |
---|---|---|
|
|
The current password of the user, only required if you change your own password. |
|
|
The new password of the user. |
Parameter | Description |
---|---|
|
The username from the user to change password. |
You cannot change the password for an external user, it will return a 400 Bad request HTTP code. |
Delete a user
If you want to delete a user:
DELETE /api/v1/users/user3
$ curl 'http://localhost:5516/api/v1/users/user3' -i -X DELETE
$ http DELETE 'http://localhost:5516/api/v1/users/user3'
Parameter | Description |
---|---|
|
The username of the user to be deleted. |
You can also use this API call to delete user profiles of external users.
Global Roles & Permissions
List all permissions
To list global permissions, execute this command:
GET /api/v1/global-permissions
$ curl 'http://localhost:5516/api/v1/global-permissions' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/global-permissions' \
'Accept:application/json'
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 352
[ "admin", "security#edit", "security#view", "report#view", "template#create", "release#create", "reports#view", "all#audit", "dashboard#create", "global_variables#edit", "folder#create_top_level", "global_calendar#edit_blackout", "risk_profile#edit", "environment#edit", "environment#view", "application#edit", "application#view", "reservation#edit" ]
List all roles
To list global roles, execute this command:
GET /api/v1/roles?page=0&resultsPerPage=2
$ curl 'http://localhost:5516/api/v1/roles?page=0&resultsPerPage=2' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/roles?page=0&resultsPerPage=2' \
'Accept:application/json'
which returns:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 354
[ {
"name" : "Developers",
"id" : "1dddcccb-d65b-4441-a482-06ad63bae4ae",
"permissions" : [ ],
"principals" : [ {
"username" : "devans",
"fullname" : null
} ]
}, {
"name" : "RoleWithAdminPermission",
"id" : "0",
"permissions" : [ ],
"principals" : [ {
"username" : "admin",
"fullname" : "Release Administrator"
} ]
} ]
Get a single role
To retrieve information for a single role, execute this command:
GET /api/v1/roles/Developers
$ curl 'http://localhost:5516/api/v1/roles/Developers' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/roles/Developers' \
'Accept:application/json'
with the following path parameters:
Parameter | Description |
---|---|
|
Name of the role |
which returns:
HTTP/1.1 200 OK
X-Total-Count: 1
Content-Language: en
Content-Type: application/json
Content-Length: 176
{
"name" : "Developers",
"id" : "47d79c5e-3a4a-4189-bb2d-79f37dd1383f",
"permissions" : [ ],
"principals" : [ {
"username" : "devans",
"fullname" : null
} ]
}
Response fields and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains name of the role. |
|
|
This field contains id of the role |
|
|
This field contains permissions granted to the role. |
|
|
This field contains principals. |
|
|
This field contains principals username. |
|
|
This field contains principals fullname. |
Create a new role
To create a single role, execute this command:
POST /api/v1/roles/Testers
{
"name" : "Testers",
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}
$ curl 'http://localhost:5516/api/v1/roles/Testers' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"name" : "Testers",
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}'
$ echo '{
"name" : "Testers",
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}' | http POST 'http://localhost:5516/api/v1/roles/Testers' \
'Content-Type:application/json' \
'Accept:application/json'
with the following path parameters:
Parameter | Description |
---|---|
|
Name of the role |
Request fields and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains name of the role. |
|
|
This field contains id of the role |
|
|
This field contains permissions granted to the role. |
|
|
This field contains principals. |
|
|
This field contains principals username. |
|
|
This field contains principals fullname. |
Create a list of roles
To create multiple roles, execute this command:
POST /api/v1/roles
[ {
"name" : "Testers",
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}, {
"name" : "Admins",
"id" : null,
"permissions" : [ "admin" ],
"principals" : [ {
"username" : "jcoltrane",
"fullname" : "jcoltrane Smith"
} ]
} ]
$ curl 'http://localhost:5516/api/v1/roles' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '[ {
"name" : "Testers",
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}, {
"name" : "Admins",
"id" : null,
"permissions" : [ "admin" ],
"principals" : [ {
"username" : "jcoltrane",
"fullname" : "jcoltrane Smith"
} ]
} ]'
$ echo '[ {
"name" : "Testers",
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}, {
"name" : "Admins",
"id" : null,
"permissions" : [ "admin" ],
"principals" : [ {
"username" : "jcoltrane",
"fullname" : "jcoltrane Smith"
} ]
} ]' | http POST 'http://localhost:5516/api/v1/roles' \
'Content-Type:application/json' \
'Accept:application/json'
Request fields and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains name of the role. |
|
|
This field contains id of the role |
|
|
This field contains permissions granted to the role. |
|
|
This field contains principals. |
|
|
This field contains principals username. |
|
|
This field contains principals fullname. |
Update a role
To update a role, execute this command:
PUT /api/v1/roles/Developers
{
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}
$ curl 'http://localhost:5516/api/v1/roles/Developers' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}'
$ echo '{
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}' | http PUT 'http://localhost:5516/api/v1/roles/Developers' \
'Content-Type:application/json' \
'Accept:application/json'
with the following path parameters:
Parameter | Description |
---|---|
|
Name of the role |
Request fields and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains name of the role. |
|
|
This field contains id of the role |
|
|
This field contains permissions granted to the role. |
|
|
This field contains principals. |
|
|
This field contains principals username. |
|
|
This field contains principals fullname. |
Update a list of roles
To update a list of roles, execute this command:
PUT /api/v1/roles
[ {
"name" : "Developers",
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}, {
"name" : "Operations",
"id" : null,
"permissions" : [ "admin" ],
"principals" : [ {
"username" : "mdavis",
"fullname" : "mdavis Smith"
} ]
} ]
$ curl 'http://localhost:5516/api/v1/roles' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '[ {
"name" : "Developers",
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}, {
"name" : "Operations",
"id" : null,
"permissions" : [ "admin" ],
"principals" : [ {
"username" : "mdavis",
"fullname" : "mdavis Smith"
} ]
} ]'
$ echo '[ {
"name" : "Developers",
"id" : null,
"permissions" : [ "release#create", "template#create" ],
"principals" : [ {
"username" : "devans",
"fullname" : "devans Smith"
} ]
}, {
"name" : "Operations",
"id" : null,
"permissions" : [ "admin" ],
"principals" : [ {
"username" : "mdavis",
"fullname" : "mdavis Smith"
} ]
} ]' | http PUT 'http://localhost:5516/api/v1/roles' \
'Content-Type:application/json' \
'Accept:application/json'
Request fields and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains name of the role. |
|
|
This field contains id of the role |
|
|
This field contains permissions granted to the role. |
|
|
This field contains principals. |
|
|
This field contains principals username. |
|
|
This field contains principals fullname. |
Rename role
To rename a role, execute this command:
POST /api/v1/roles/Developers/rename?newName=New%20Developers
newName=New+Developers
$ curl 'http://localhost:5516/api/v1/roles/Developers/rename?newName=New%20Developers' -i -X POST
$ http POST 'http://localhost:5516/api/v1/roles/Developers/rename?newName=New%20Developers'
with the following path parameters:
Parameter | Description |
---|---|
|
Name of the role |
and request parameters and their description:
Parameter | Description |
---|---|
|
New name of the role |
Delete role
To delete a role, execute this command:
DELETE /api/v1/roles/Developers
$ curl 'http://localhost:5516/api/v1/roles/Developers' -i -X DELETE
$ http DELETE 'http://localhost:5516/api/v1/roles/Developers'
with the following path parameters:
Parameter | Description |
---|---|
|
Name of the role |
Folder / template / release permissions
Note that:
-
Call to folders returns permissions for folders, templates and releases.
-
Call to templates returns permissions for templates and releases.
-
Call to releases returns permissions for releases only.
List possible permissions on a folder
To list permissions that can be used on a folder, execute this command:
GET /api/v1/folders/permissions
$ curl 'http://localhost:5516/api/v1/folders/permissions' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/folders/permissions' \
'Accept:application/json'
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 888
[ "folder#view", "folder#edit", "folder#edit_security", "folder#edit_teams", "folder#edit_notifications", "folder#edit_configuration", "folder#edit_variables", "template#create_release", "template#view", "template#edit", "template#edit_security", "template#edit_triggers", "release#view", "release#edit", "release#edit_security", "release#start", "release#abort", "release#edit_task", "release#edit_task_script", "release#edit_task_input_output_properties", "release#edit_task_configuration_facet", "release#reassign_task", "release#edit_blackout", "release#task_transition", "release#edit_task_tags", "release#edit_task_attachments", "release#edit_task_description", "release#edit_task_dates", "release#edit_task_flag", "release#lock_task", "template#lock_task", "release#edit_failure_handler", "template#edit_failure_handler", "release#edit_precondition", "template#edit_precondition" ]
List possible permissions on a template
To list permissions that can be used on a folder, execute this command:
GET /api/v1/templates/permissions
$ curl 'http://localhost:5516/api/v1/templates/permissions' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/templates/permissions' \
'Accept:application/json'
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 730
[ "template#create_release", "template#view", "template#edit", "template#edit_security", "template#edit_triggers", "release#view", "release#edit", "release#edit_security", "release#start", "release#abort", "release#edit_task", "release#edit_task_script", "release#edit_task_input_output_properties", "release#edit_task_configuration_facet", "release#reassign_task", "release#edit_blackout", "release#task_transition", "release#edit_task_tags", "release#edit_task_attachments", "release#edit_task_description", "release#edit_task_dates", "release#edit_task_flag", "release#lock_task", "template#lock_task", "release#edit_failure_handler", "template#edit_failure_handler", "release#edit_precondition", "template#edit_precondition" ]
List possible permissions on a release
To list permissions that can be used on a folder, execute this command:
GET /api/v1/releases/permissions
$ curl 'http://localhost:5516/api/v1/releases/permissions' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/releases/permissions' \
'Accept:application/json'
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 532
[ "release#view", "release#edit", "release#edit_security", "release#start", "release#abort", "release#edit_task", "release#edit_task_script", "release#edit_task_input_output_properties", "release#edit_task_configuration_facet", "release#reassign_task", "release#edit_blackout", "release#task_transition", "release#edit_task_tags", "release#edit_task_attachments", "release#edit_task_description", "release#edit_task_dates", "release#edit_task_flag", "release#lock_task", "release#edit_failure_handler", "release#edit_precondition" ]
List all teams
Get all teams and permissions on a folder
To list teams and permissions on a folder, execute this command:
GET /api/v1/folders/Applications/Folder2ee768fd64cc4245ac4a873fd2afc0f7/teams
$ curl 'http://localhost:5516/api/v1/folders/Applications/Folder2ee768fd64cc4245ac4a873fd2afc0f7/teams' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/folders/Applications/Folder2ee768fd64cc4245ac4a873fd2afc0f7/teams' \
'Accept:application/json'
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 2098
[ {
"id" : "Applications/Folder2ee768fd64cc4245ac4a873fd2afc0f7/Team88bea90b70554ed8886dfd9f85355e2e",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "trigger#view_trigger", "template#lock_task", "template#view", "folder#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
}, {
"id" : "Applications/Folder2ee768fd64cc4245ac4a873fd2afc0f7/Team05d4bdacc799431ead29be15e3bee8ef",
"teamName" : "Release Admin",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#edit_task_attachments", "release#task_transition", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "release#edit_failure_handler", "folder#view", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
}, {
"id" : "Applications/Folder2ee768fd64cc4245ac4a873fd2afc0f7/Team3a0efb71ad824b579e4c48bd37a9d1cc",
"teamName" : "Folder Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "folder#edit_variables", "delivery_pattern#edit", "folder#edit_configuration", "delivery#edit", "group#view", "folder#edit_notifications", "delivery_pattern#view", "group#edit", "delivery#view", "delivery#edit_tracked_item", "folder#view", "folder#edit_security", "dashboard#edit", "folder#edit", "dashboard#view" ],
"systemTeam" : true
} ]
See the following table for applicable path parameters:
Parameter | Description |
---|---|
|
The folder Id |
The response fields explained:
Path | Type | Description |
---|---|---|
|
|
Id of the team |
|
|
Name of the team |
|
|
Team members. Can be roles and principals. |
|
|
Team member username. |
|
|
Team member full name. Can be null (for roles or users with just username). |
|
|
Team member type. Can be ROLE or PRINCIPAL. |
|
|
Id of the role. Can be null (for member type PRINCIPAL). |
|
|
Names of the team permissions. |
|
|
Marks teams provided by the system. |
Get all teams and permissions on a template
To list teams and permissions on a template, execute this command:
GET /api/v1/templates/Applications/Release73dcf7958286430890f51bf23a41da9c/teams
$ curl 'http://localhost:5516/api/v1/templates/Applications/Release73dcf7958286430890f51bf23a41da9c/teams' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/templates/Applications/Release73dcf7958286430890f51bf23a41da9c/teams' \
'Accept:application/json'
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1945
[ {
"id" : "Applications/Release73dcf7958286430890f51bf23a41da9c/Team0453ce60393b4bd1b7c2fae55a26c102",
"teamName" : "Test team",
"members" : [ {
"name" : "fred",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit" ],
"systemTeam" : false
}, {
"id" : "Applications/Release73dcf7958286430890f51bf23a41da9c/Team8603b22c60a24bc5913150d75990f1eb",
"teamName" : "Development team",
"members" : [ {
"name" : "john",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#view" ],
"systemTeam" : false
}, {
"id" : "Applications/Release73dcf7958286430890f51bf23a41da9c/Teamd37581704f94468e97fc3a875399f6b6",
"teamName" : "Release Admin",
"members" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#task_transition", "release#edit_task_attachments", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
}, {
"id" : "Applications/Release73dcf7958286430890f51bf23a41da9c/Teame669ccdf2a8942c4a5664833e4317ea0",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "template#lock_task", "template#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
} ]
See the following table for applicable path parameters:
Parameter | Description |
---|---|
|
Full template identifier; for example, Applications/Release1 |
The response fields explained:
Path | Type | Description |
---|---|---|
|
|
Id of the team |
|
|
Name of the team |
|
|
Team members. Can be roles and principals. |
|
|
Team member username. |
|
|
Team member full name. Can be null (for roles or users with just username). |
|
|
Team member type. Can be ROLE or PRINCIPAL. |
|
|
Id of the role. Can be null (for member type PRINCIPAL). |
|
|
Names of the team permissions. |
|
|
Marks teams provided by the system. |
Get all teams and permissions on a release
To list teams and permissions on a release, execute this command:
GET /api/v1/releases/Applications/Releasedb4973a8e4394b17b3a3a2d3a5949725/teams
$ curl 'http://localhost:5516/api/v1/releases/Applications/Releasedb4973a8e4394b17b3a3a2d3a5949725/teams' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/releases/Applications/Releasedb4973a8e4394b17b3a3a2d3a5949725/teams' \
'Accept:application/json'
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1945
[ {
"id" : "Applications/Releasedb4973a8e4394b17b3a3a2d3a5949725/Team72fec8b49b9c43af82f8b03cce90e641",
"teamName" : "Development team",
"members" : [ {
"name" : "john",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#view" ],
"systemTeam" : false
}, {
"id" : "Applications/Releasedb4973a8e4394b17b3a3a2d3a5949725/Team9f6b5f4e722e415d8d4e2cb0325331b4",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "template#lock_task", "template#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
}, {
"id" : "Applications/Releasedb4973a8e4394b17b3a3a2d3a5949725/Team9c1b9e047add427eaf6755cd6f67cd02",
"teamName" : "Test team",
"members" : [ {
"name" : "fred",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit" ],
"systemTeam" : false
}, {
"id" : "Applications/Releasedb4973a8e4394b17b3a3a2d3a5949725/Teamd7be8a903dca44d18c25d964a41bed17",
"teamName" : "Release Admin",
"members" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#task_transition", "release#edit_task_attachments", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
} ]
See the following table for applicable path parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
The response fields explained:
Path | Type | Description |
---|---|---|
|
|
Id of the team |
|
|
Name of the team |
|
|
Team members. Can be roles and principals. |
|
|
Team member username. |
|
|
Team member full name. Can be null (for roles or users with just username). |
|
|
Team member type. Can be ROLE or PRINCIPAL. |
|
|
Id of the role. Can be null (for member type PRINCIPAL). |
|
|
Names of the team permissions. |
|
|
Marks teams provided by the system. |
Update teams
Set all teams and permissions on a folder
This API does not support partial updates. You must include all teams and the system teams (Template Owner
, Release Admin
, and Folder Owner
).
To set all teams and permissions on a folder, execute this command:
POST /api/v1/folders/Applications/Foldere5559fc3ad864fbab4f5c899343991a0/teams
[ {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Teamd07e1efd638d46ec984e38cbcc65a8e3",
"teamName" : "Release Admin",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#edit_task_attachments", "release#task_transition", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "release#edit_failure_handler", "folder#view", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
}, {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Team6cd16ce969184354852d1e83bf62662d",
"teamName" : "Folder Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "folder#edit_variables", "delivery_pattern#edit", "folder#edit_configuration", "delivery#edit", "group#view", "folder#edit_notifications", "delivery_pattern#view", "group#edit", "delivery#view", "delivery#edit_tracked_item", "folder#view", "folder#edit_security", "dashboard#edit", "folder#edit", "dashboard#view", "release#edit" ],
"systemTeam" : true
}, {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Team48b513ac178c4a83964d188c9225b1e5",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "trigger#view_trigger", "template#lock_task", "template#view", "folder#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
} ]
$ curl 'http://localhost:5516/api/v1/folders/Applications/Foldere5559fc3ad864fbab4f5c899343991a0/teams' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '[ {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Teamd07e1efd638d46ec984e38cbcc65a8e3",
"teamName" : "Release Admin",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#edit_task_attachments", "release#task_transition", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "release#edit_failure_handler", "folder#view", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
}, {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Team6cd16ce969184354852d1e83bf62662d",
"teamName" : "Folder Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "folder#edit_variables", "delivery_pattern#edit", "folder#edit_configuration", "delivery#edit", "group#view", "folder#edit_notifications", "delivery_pattern#view", "group#edit", "delivery#view", "delivery#edit_tracked_item", "folder#view", "folder#edit_security", "dashboard#edit", "folder#edit", "dashboard#view", "release#edit" ],
"systemTeam" : true
}, {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Team48b513ac178c4a83964d188c9225b1e5",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "trigger#view_trigger", "template#lock_task", "template#view", "folder#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
} ]'
$ echo '[ {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Teamd07e1efd638d46ec984e38cbcc65a8e3",
"teamName" : "Release Admin",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#edit_task_attachments", "release#task_transition", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "release#edit_failure_handler", "folder#view", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
}, {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Team6cd16ce969184354852d1e83bf62662d",
"teamName" : "Folder Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "folder#edit_variables", "delivery_pattern#edit", "folder#edit_configuration", "delivery#edit", "group#view", "folder#edit_notifications", "delivery_pattern#view", "group#edit", "delivery#view", "delivery#edit_tracked_item", "folder#view", "folder#edit_security", "dashboard#edit", "folder#edit", "dashboard#view", "release#edit" ],
"systemTeam" : true
}, {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Team48b513ac178c4a83964d188c9225b1e5",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "trigger#view_trigger", "template#lock_task", "template#view", "folder#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
} ]' | http POST 'http://localhost:5516/api/v1/folders/Applications/Foldere5559fc3ad864fbab4f5c899343991a0/teams' \
'Content-Type:application/json' \
'Accept:application/json'
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 2114
[ {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Teamd07e1efd638d46ec984e38cbcc65a8e3",
"teamName" : "Release Admin",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#edit_task_attachments", "release#task_transition", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "release#edit_failure_handler", "folder#view", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
}, {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Team6cd16ce969184354852d1e83bf62662d",
"teamName" : "Folder Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "folder#edit_variables", "delivery_pattern#edit", "folder#edit_configuration", "delivery#edit", "group#view", "folder#edit_notifications", "delivery_pattern#view", "group#edit", "delivery#view", "delivery#edit_tracked_item", "folder#view", "folder#edit_security", "dashboard#edit", "folder#edit", "dashboard#view", "release#edit" ],
"systemTeam" : true
}, {
"id" : "Applications/Foldere5559fc3ad864fbab4f5c899343991a0/Team48b513ac178c4a83964d188c9225b1e5",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "trigger#view_trigger", "template#lock_task", "template#view", "folder#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
} ]
See the following table for applicable path parameters:
Parameter | Description |
---|---|
|
The folder Id |
The response fields explained:
Path | Type | Description |
---|---|---|
|
|
Id of the team |
|
|
Name of the team |
|
|
Team members. Can be roles and principals. |
|
|
Team member username. |
|
|
Team member full name. Can be null (for roles or users with just username). |
|
|
Team member type. Can be ROLE or PRINCIPAL. |
|
|
Id of the role. Can be null (for member type PRINCIPAL). |
|
|
Names of the team permissions. |
|
|
Marks teams provided by the system. |
Set all teams and permissions on a template
This API does not support partial updates. You must include all teams and the system teams (Template Owner
and Release Admin
).
To set all teams and permissions on a template
POST /api/v1/templates/Applications/Release97a0f69bcaef461c8e2554bc53f2855c/teams
[ {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team312da2f37c8749b5ae8ca3a360a94475",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
}, {
"name" : "mdavis",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "template#lock_task", "template#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Teamf2e13405ce5f465fac4c9d9c6256d054",
"teamName" : "Release Admin",
"members" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#task_transition", "release#edit_task_attachments", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team563825798c574ff0a225a58123a2b847",
"teamName" : "Development team",
"members" : [ {
"name" : "john",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#view" ],
"systemTeam" : false
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team378175d1f79546cfb06506871d07e3ad",
"teamName" : "Test team",
"members" : [ {
"name" : "fred",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit" ],
"systemTeam" : false
} ]
$ curl 'http://localhost:5516/api/v1/templates/Applications/Release97a0f69bcaef461c8e2554bc53f2855c/teams' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '[ {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team312da2f37c8749b5ae8ca3a360a94475",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
}, {
"name" : "mdavis",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "template#lock_task", "template#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Teamf2e13405ce5f465fac4c9d9c6256d054",
"teamName" : "Release Admin",
"members" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#task_transition", "release#edit_task_attachments", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team563825798c574ff0a225a58123a2b847",
"teamName" : "Development team",
"members" : [ {
"name" : "john",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#view" ],
"systemTeam" : false
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team378175d1f79546cfb06506871d07e3ad",
"teamName" : "Test team",
"members" : [ {
"name" : "fred",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit" ],
"systemTeam" : false
} ]'
$ echo '[ {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team312da2f37c8749b5ae8ca3a360a94475",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
}, {
"name" : "mdavis",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "template#lock_task", "template#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Teamf2e13405ce5f465fac4c9d9c6256d054",
"teamName" : "Release Admin",
"members" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#task_transition", "release#edit_task_attachments", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team563825798c574ff0a225a58123a2b847",
"teamName" : "Development team",
"members" : [ {
"name" : "john",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#view" ],
"systemTeam" : false
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team378175d1f79546cfb06506871d07e3ad",
"teamName" : "Test team",
"members" : [ {
"name" : "fred",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit" ],
"systemTeam" : false
} ]' | http POST 'http://localhost:5516/api/v1/templates/Applications/Release97a0f69bcaef461c8e2554bc53f2855c/teams' \
'Content-Type:application/json' \
'Accept:application/json'
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 2044
[ {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team312da2f37c8749b5ae8ca3a360a94475",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
}, {
"name" : "mdavis",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "template#lock_task", "template#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Teamf2e13405ce5f465fac4c9d9c6256d054",
"teamName" : "Release Admin",
"members" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#task_transition", "release#edit_task_attachments", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team563825798c574ff0a225a58123a2b847",
"teamName" : "Development team",
"members" : [ {
"name" : "john",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#view" ],
"systemTeam" : false
}, {
"id" : "Applications/Release97a0f69bcaef461c8e2554bc53f2855c/Team378175d1f79546cfb06506871d07e3ad",
"teamName" : "Test team",
"members" : [ {
"name" : "fred",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit" ],
"systemTeam" : false
} ]
See the following table for applicable path parameters:
Parameter | Description |
---|---|
|
Full template identifier; for example, Applications/Release1 |
The response fields explained:
Path | Type | Description |
---|---|---|
|
|
Id of the team |
|
|
Name of the team |
|
|
Team members. Can be roles and principals. |
|
|
Team member username. |
|
|
Team member full name. Can be null (for roles or users with just username). |
|
|
Team member type. Can be ROLE or PRINCIPAL. |
|
|
Id of the role. Can be null (for member type PRINCIPAL). |
|
|
Names of the team permissions. |
|
|
Marks teams provided by the system. |
Set all teams and permissions on a release
This API does not support partial updates. You must include all teams and the system teams (Template Owner
and Release Admin
).
To set all teams and permissions on a release, execute this command:
POST /api/v1/releases/Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/teams
[ {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Team7317177a4970422e9031367bbab62d55",
"teamName" : "Development team",
"members" : [ {
"name" : "john",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
}, {
"name" : "mdavis",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#view" ],
"systemTeam" : false
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Teamb490f059a4214b51953b5c655d2a2a32",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "template#lock_task", "template#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Teamcb048135fd2d47fcb65b970d958e9892",
"teamName" : "Test team",
"members" : [ {
"name" : "fred",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit" ],
"systemTeam" : false
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Team2c68a6eb336740fa8905bdec5af31a7f",
"teamName" : "Release Admin",
"members" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#task_transition", "release#edit_task_attachments", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
} ]
$ curl 'http://localhost:5516/api/v1/releases/Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/teams' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '[ {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Team7317177a4970422e9031367bbab62d55",
"teamName" : "Development team",
"members" : [ {
"name" : "john",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
}, {
"name" : "mdavis",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#view" ],
"systemTeam" : false
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Teamb490f059a4214b51953b5c655d2a2a32",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "template#lock_task", "template#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Teamcb048135fd2d47fcb65b970d958e9892",
"teamName" : "Test team",
"members" : [ {
"name" : "fred",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit" ],
"systemTeam" : false
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Team2c68a6eb336740fa8905bdec5af31a7f",
"teamName" : "Release Admin",
"members" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#task_transition", "release#edit_task_attachments", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
} ]'
$ echo '[ {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Team7317177a4970422e9031367bbab62d55",
"teamName" : "Development team",
"members" : [ {
"name" : "john",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
}, {
"name" : "mdavis",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#view" ],
"systemTeam" : false
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Teamb490f059a4214b51953b5c655d2a2a32",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "template#lock_task", "template#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Teamcb048135fd2d47fcb65b970d958e9892",
"teamName" : "Test team",
"members" : [ {
"name" : "fred",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit" ],
"systemTeam" : false
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Team2c68a6eb336740fa8905bdec5af31a7f",
"teamName" : "Release Admin",
"members" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#task_transition", "release#edit_task_attachments", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
} ]' | http POST 'http://localhost:5516/api/v1/releases/Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/teams' \
'Content-Type:application/json' \
'Accept:application/json'
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 2044
[ {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Team7317177a4970422e9031367bbab62d55",
"teamName" : "Development team",
"members" : [ {
"name" : "john",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
}, {
"name" : "mdavis",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#view" ],
"systemTeam" : false
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Teamb490f059a4214b51953b5c655d2a2a32",
"teamName" : "Template Owner",
"members" : [ {
"name" : "admin",
"fullName" : "Release Administrator",
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "template#edit", "template#lock_task", "template#view", "template#edit_security", "template#create_release", "template#edit_triggers", "template#edit_precondition", "template#edit_failure_handler" ],
"systemTeam" : true
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Teamcb048135fd2d47fcb65b970d958e9892",
"teamName" : "Test team",
"members" : [ {
"name" : "fred",
"fullName" : null,
"type" : "PRINCIPAL",
"roleId" : null
} ],
"permissions" : [ "release#edit" ],
"systemTeam" : false
}, {
"id" : "Applications/Release85841b7c0d964172b4a7740a2c9d0cfa/Team2c68a6eb336740fa8905bdec5af31a7f",
"teamName" : "Release Admin",
"members" : [ ],
"permissions" : [ "release#edit_precondition", "release#edit", "release#task_transition", "release#edit_task_attachments", "trigger#view_trigger", "release#reassign_task", "release#edit_task_input_output_properties", "release#edit_task_tags", "release#edit_security", "release#edit_task_description", "trigger#edit_trigger", "release#view", "release#lock_task", "release#start", "release#edit_blackout", "template#view", "release#edit_failure_handler", "release#abort", "release#edit_task_script", "release#edit_task_configuration_facet", "release#edit_task_flag", "release#edit_task_dates", "release#edit_task" ],
"systemTeam" : true
} ]
See the following table for applicable path parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
The response fields explained:
Path | Type | Description |
---|---|---|
|
|
Id of the team |
|
|
Name of the team |
|
|
Team members. Can be roles and principals. |
|
|
Team member username. |
|
|
Team member full name. Can be null (for roles or users with just username). |
|
|
Team member type. Can be ROLE or PRINCIPAL. |
|
|
Id of the role. Can be null (for member type PRINCIPAL). |
|
|
Names of the team permissions. |
|
|
Marks teams provided by the system. |
Risk
The risk score is a calculation for the health of a release and how critical are the issues.
Release risk score
To retrieve the release risk score, send this request:
GET /api/v1/risks/Applications/Release162151faba694d03aa3065665cf26f21/Risk
$ curl 'http://localhost:5516/api/v1/risks/Applications/Release162151faba694d03aa3065665cf26f21/Risk' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/risks/Applications/Release162151faba694d03aa3065665cf26f21/Risk' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the release; for example, Applications/Release1 |
The response contains the risk score for the release:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 6796
{
"id" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"type" : "xlrelease.Risk",
"score" : 90,
"totalScore" : 170,
"riskAssessments" : [ {
"id" : "958884875",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/ReleaseDueDateRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 30,
"headline" : "Release is overdue",
"messages" : [ "Applications/Release162151faba694d03aa3065665cf26f21 is overdue since 2022-07-14T17:21:42.805" ]
}, {
"id" : "1853539255",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/ReleaseStatusFailedRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 90,
"headline" : "Release has failed",
"messages" : [ "Applications/Release162151faba694d03aa3065665cf26f21 has failed" ]
}, {
"id" : "637651852",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/MoreThanOneTaskOverDueRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "479580739",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskRetriesRiskAssessor3Retries",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "1973473540",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskRetriesRiskAssessor5Retries",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "495771742",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "1566797144",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/OneTaskOverDueRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "1876339581",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskRetriesRiskAssessorMoreThan5Retries",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "470642546",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/ReleaseFlaggedAttentionNeededRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "1727656637",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskWithTwoOrThreeFlagsAtRiskRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "548821655",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskRetriesRiskAssessor4Retries",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "2053214399",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskWithMoreThanSixFlagsAtRiskRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "224401022",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "614818165",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "911603092",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/ReleaseStatusFailingRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "1086816137",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/ReleaseFlaggedAtRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "1293500937",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskRetriesRiskAssessor2Retries",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "1110977558",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskRetriesRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 50,
"headline" : "Release contains failed tasks",
"messages" : [ "Applications/Release162151faba694d03aa3065665cf26f21/Phase520d9bb734c8490cad6818f736da7a5e/Task97c27091a9b342599e1b631dc6d44726 has failed 1 time" ]
}, {
"id" : "1532532880",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskWithOneFlagNeedsAttentionRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "538484549",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskWithOneFlagAtRiskRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
}, {
"id" : "664180805",
"type" : "xlrelease.RiskAssessment",
"riskAssessorId" : "Applications/TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor",
"risk" : "Applications/Release162151faba694d03aa3065665cf26f21/Risk",
"score" : 0,
"headline" : "Release is on track",
"messages" : [ ]
} ]
}
Global risk thresholds
Global risk thresholds are configurable thresholds that the risk score will be calculated based on. To retrieve the global risk thresholds configuration, send this request:
GET /api/v1/risks/config
$ curl 'http://localhost:5516/api/v1/risks/config' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/risks/config' \
'Accept:application/json'
The response contains the global risk thresholds configuration:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 151
{
"id" : "Configuration/risks/RiskGlobalThresholds",
"type" : "xlrelease.RiskGlobalThresholds",
"atRiskFrom" : 50,
"attentionNeededFrom" : 10
}
Risk profile
Create a risk profile
To create a new risk profile, send this request:
POST /api/v1/risks/profiles
{
"id" : null,
"type" : "xlrelease.RiskProfile",
"title" : "Risk Profile 3",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "66",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "37",
"xlrelease.ReleaseDueDateRiskAssessor" : "42",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "54",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "32",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "27",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "22",
"xlrelease.OneTaskOverDueRiskAssessor" : "39",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "86",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "56",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "75",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "73",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "28",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "63",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "69",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "33"
}
}
$ curl 'http://localhost:5516/api/v1/risks/profiles' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : null,
"type" : "xlrelease.RiskProfile",
"title" : "Risk Profile 3",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "66",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "37",
"xlrelease.ReleaseDueDateRiskAssessor" : "42",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "54",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "32",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "27",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "22",
"xlrelease.OneTaskOverDueRiskAssessor" : "39",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "86",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "56",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "75",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "73",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "28",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "63",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "69",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "33"
}
}'
$ echo '{
"id" : null,
"type" : "xlrelease.RiskProfile",
"title" : "Risk Profile 3",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "66",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "37",
"xlrelease.ReleaseDueDateRiskAssessor" : "42",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "54",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "32",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "27",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "22",
"xlrelease.OneTaskOverDueRiskAssessor" : "39",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "86",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "56",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "75",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "73",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "28",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "63",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "69",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "33"
}
}' | http POST 'http://localhost:5516/api/v1/risks/profiles' \
'Content-Type:application/json' \
'Accept:application/json'
The response contains the created risk profile object:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1205
{
"id" : "Configuration/riskProfiles/RiskProfile432ecc323e494e0799e06d648a9f5942",
"type" : "xlrelease.RiskProfile",
"title" : "Risk Profile 3",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "66",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "37",
"xlrelease.ReleaseDueDateRiskAssessor" : "42",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "54",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "32",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "27",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "22",
"xlrelease.OneTaskOverDueRiskAssessor" : "39",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "86",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "56",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "75",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "28",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "73",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "63",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "33",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "69"
}
}
Listing all risk profiles
Property name | Description | Default value |
---|---|---|
xlrelease.ReleaseFlaggedAtRiskAssessor |
Release flag red |
80 |
xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor |
Release flag amber |
30 |
xlrelease.ReleaseStatusFailedRiskAssessor |
Release state failed |
90 |
xlrelease.ReleaseStatusFailingRiskAssessor |
Release state failing |
70 |
xlrelease.ReleaseDueDateRiskAssessor |
Release past due date |
30 |
xlrelease.TaskWithOneFlagAtRiskRiskAssessor |
Task flag red (1) |
65 |
xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor |
Task flag red (2-3) |
70 |
xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor |
Task flag red (4-6) |
75 |
xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor |
Task flag red (6+) |
80 |
xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor |
Task flag amber (1) |
10 |
xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor |
Task flag amber (2-3) |
20 |
xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor |
Task flag amber (4-6) |
30 |
xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor |
Task flag amber (6+) |
40 |
xlrelease.OneTaskOverDueRiskAssessor |
Current task past due |
25 |
xlrelease.MoreThanOneTaskOverDueRiskAssessor |
Multiple tasks past due |
35 |
xlrelease.TaskRetriesRiskAssessor |
1 retry for a failed task |
50 |
xlrelease.TaskRetriesRiskAssessor2Retries |
2 retries for a failed task |
60 |
xlrelease.TaskRetriesRiskAssessor3Retries |
3 retries for a failed task |
70 |
xlrelease.TaskRetriesRiskAssessor4Retries |
4 retries for a failed task |
80 |
xlrelease.TaskRetriesRiskAssessor5Retries |
5 retries for a failed task |
90 |
xlrelease.TaskRetriesRiskAssessorMoreThan5Retries |
6+ retries for a failed task |
100 |
To retrieve the list of all risk profiles, send this request:
GET /api/v1/risks/profiles
$ curl 'http://localhost:5516/api/v1/risks/profiles' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/risks/profiles' \
'Accept:application/json'
The response contains all the risk profiles defined in the system:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 3892
[ {
"id" : "Configuration/riskProfiles/RiskProfileDefault",
"type" : "xlrelease.RiskProfile",
"title" : "Default risk profile",
"defaultProfile" : true,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "50",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "20",
"xlrelease.ReleaseDueDateRiskAssessor" : "30",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "35",
"xlrelease.TaskRetriesRiskAssessor4Retries" : "80",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "30",
"xlrelease.TaskRetriesRiskAssessor5Retries" : "90",
"xlrelease.TaskRetriesRiskAssessor3Retries" : "70",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "80",
"xlrelease.TaskRetriesRiskAssessorMoreThan5Retries" : "100",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "30",
"xlrelease.OneTaskOverDueRiskAssessor" : "25",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "90",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "65",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "80",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "40",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "70",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "70",
"xlrelease.TaskRetriesRiskAssessor2Retries" : "60",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "10",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "75"
}
}, {
"id" : "Configuration/riskProfiles/RiskProfilec98ed34a8760406cb670cc4839434010",
"type" : "xlrelease.RiskProfile",
"title" : "Risk Profile 1",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "50",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "20",
"xlrelease.ReleaseDueDateRiskAssessor" : "30",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "35",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "30",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "80",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "30",
"xlrelease.OneTaskOverDueRiskAssessor" : "25",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "90",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "65",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "80",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "40",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "70",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "70",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "10",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "75"
}
}, {
"id" : "Configuration/riskProfiles/RiskProfile0ba2ef8b403e4faea2395271d9d5dedd",
"type" : "xlrelease.RiskProfile",
"title" : "Risk Profile 2",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "67",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "37",
"xlrelease.ReleaseDueDateRiskAssessor" : "42",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "55",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "32",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "27",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "22",
"xlrelease.OneTaskOverDueRiskAssessor" : "40",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "86",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "59",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "75",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "28",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "73",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "63",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "33",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "69"
}
} ]
Fields in the response and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.RiskProfile'. |
|
|
If set, this field contains the folder that this configuration belongs to. |
|
|
The name of risk profile. |
|
|
Is this default risk profile. |
|
|
Risk Profile Assessors |
Find risk profile by ID
To find a risk profile using a specific ID, send this request:
GET /api/v1/risks/profiles/Configuration/riskProfiles/RiskProfilec553b37bdb6249c2a6bfe7fe00a50fa7
$ curl 'http://localhost:5516/api/v1/risks/profiles/Configuration/riskProfiles/RiskProfilec553b37bdb6249c2a6bfe7fe00a50fa7' -i -X GET \
-H 'Accept: application/json'
$ http GET 'http://localhost:5516/api/v1/risks/profiles/Configuration/riskProfiles/RiskProfilec553b37bdb6249c2a6bfe7fe00a50fa7' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the risk profile; for example, Configuration/riskProfiles/RiskProfile150970630496129498 |
The response contains the risk profile:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1205
{
"id" : "Configuration/riskProfiles/RiskProfilec553b37bdb6249c2a6bfe7fe00a50fa7",
"type" : "xlrelease.RiskProfile",
"title" : "Risk Profile 1",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "50",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "20",
"xlrelease.ReleaseDueDateRiskAssessor" : "30",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "35",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "30",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "80",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "30",
"xlrelease.OneTaskOverDueRiskAssessor" : "25",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "90",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "65",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "80",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "40",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "70",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "70",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "10",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "75"
}
}
Update risk profile
To update a risk profile, send this request:
PUT /api/v1/risks/profiles/Configuration/riskProfiles/RiskProfile87c67fc478f6404ca2700ee90c91d7cd
{
"id" : "Configuration/riskProfiles/RiskProfile87c67fc478f6404ca2700ee90c91d7cd",
"type" : "xlrelease.RiskProfile",
"title" : "Risk profile 2 updated",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "67",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "37",
"xlrelease.ReleaseDueDateRiskAssessor" : "38",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "55",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "28",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "47",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "22",
"xlrelease.OneTaskOverDueRiskAssessor" : "40",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "87",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "45",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "71",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "70",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "28",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "66",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "69",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "63"
}
}
$ curl 'http://localhost:5516/api/v1/risks/profiles/Configuration/riskProfiles/RiskProfile87c67fc478f6404ca2700ee90c91d7cd' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"id" : "Configuration/riskProfiles/RiskProfile87c67fc478f6404ca2700ee90c91d7cd",
"type" : "xlrelease.RiskProfile",
"title" : "Risk profile 2 updated",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "67",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "37",
"xlrelease.ReleaseDueDateRiskAssessor" : "38",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "55",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "28",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "47",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "22",
"xlrelease.OneTaskOverDueRiskAssessor" : "40",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "87",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "45",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "71",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "70",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "28",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "66",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "69",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "63"
}
}'
$ echo '{
"id" : "Configuration/riskProfiles/RiskProfile87c67fc478f6404ca2700ee90c91d7cd",
"type" : "xlrelease.RiskProfile",
"title" : "Risk profile 2 updated",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "67",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "37",
"xlrelease.ReleaseDueDateRiskAssessor" : "38",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "55",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "28",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "47",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "22",
"xlrelease.OneTaskOverDueRiskAssessor" : "40",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "87",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "45",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "71",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "70",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "28",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "66",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "69",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "63"
}
}' | http PUT 'http://localhost:5516/api/v1/risks/profiles/Configuration/riskProfiles/RiskProfile87c67fc478f6404ca2700ee90c91d7cd' \
'Content-Type:application/json' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the risk profile; for example, Configuration/riskProfiles/RiskProfile150970630496129498 |
Request fields and their description:
Path | Type | Description |
---|---|---|
|
|
This field contains ID of object. It is required but not used on update operations. When creating objects just send 'null'. |
|
|
This field represents type of 'xlrelease.RiskProfile'. |
|
|
If set, this field contains the folder that this configuration belongs to. |
|
|
The name of risk profile. |
|
|
Is this default risk profile. |
|
|
Risk Profile Assessors |
The response contains the updated risk profile object:
HTTP/1.1 200 OK
Content-Language: en
Content-Type: application/json
Content-Length: 1213
{
"id" : "Configuration/riskProfiles/RiskProfile87c67fc478f6404ca2700ee90c91d7cd",
"type" : "xlrelease.RiskProfile",
"title" : "Risk profile 2 updated",
"defaultProfile" : false,
"riskProfileAssessors" : {
"xlrelease.TaskRetriesRiskAssessor" : "67",
"xlrelease.TaskWithTwoOrThreeFlagsNeedsAttentionRiskAssessor" : "37",
"xlrelease.ReleaseDueDateRiskAssessor" : "38",
"xlrelease.MoreThanOneTaskOverDueRiskAssessor" : "55",
"xlrelease.ReleaseFlaggedAttentionNeededRiskAssessor" : "28",
"xlrelease.TaskWithMoreThanSixFlagsAtRiskRiskAssessor" : "47",
"xlrelease.TaskWithFourFiveOrSixFlagsNeedsAttentionRiskAssessor" : "22",
"xlrelease.OneTaskOverDueRiskAssessor" : "40",
"xlrelease.ReleaseStatusFailedRiskAssessor" : "87",
"xlrelease.TaskWithOneFlagAtRiskRiskAssessor" : "45",
"xlrelease.ReleaseFlaggedAtRiskAssessor" : "71",
"xlrelease.TaskWithMoreThanSixFlagsNeedsAttentionRiskAssessor" : "28",
"xlrelease.ReleaseStatusFailingRiskAssessor" : "70",
"xlrelease.TaskWithTwoOrThreeFlagsAtRiskRiskAssessor" : "66",
"xlrelease.TaskWithOneFlagNeedsAttentionRiskAssessor" : "63",
"xlrelease.TaskWithFourFiveOrSixFlagsAtRiskRiskAssessor" : "69"
}
}
Delete risk profile
To delete risk profile, send this request:
DELETE /api/v1/risks/profiles/Configuration/riskProfiles/RiskProfile0bd1de8bbfcc4f9c87612368ed73d3f3
$ curl 'http://localhost:5516/api/v1/risks/profiles/Configuration/riskProfiles/RiskProfile0bd1de8bbfcc4f9c87612368ed73d3f3' -i -X DELETE \
-H 'Accept: application/json'
$ http DELETE 'http://localhost:5516/api/v1/risks/profiles/Configuration/riskProfiles/RiskProfile0bd1de8bbfcc4f9c87612368ed73d3f3' \
'Accept:application/json'
Using the following path parameters:
Parameter | Description |
---|---|
|
Full identifier of the risk profile; for example, Configuration/riskProfiles/RiskProfile150970630496129498 |
The response is empty with the status code 204.
Risk profiles that are currently in use cannot be deleted and a 409 error will be returned if there is a call to delete such a risk profile.
Copy risk profile
To copy a risk profile, send this request: