Join Wintertainment 2021 to share your stories, have fun, earn community badges, and more!

PUT/projects/{ProjectId}/releases/{Id}

Applies to QAComplete 12.94 SaaS, last modified on December 06, 2021

Updates the specified release.

Use the operation to replace the contents of an existing release with new contents in QAComplete.

To update specific fields of a release, use the …/releases/{Id} (PATCH) operation. To add a new release, use the …/releases (POST) operation.

Authentication

Basic authentication using a user’s login and password. See Authentication for details.

Security Rights

The authenticating user must belong to a security group that has the Update privilege for Releases.

Request Format

To update the release, send a PUT request to the following URL:

http://{server}/rest-api/service/api/v1/projects/{ProjectId}/releases/{Id}
URL parameters

ProjectId  :  integer, required

The ID of the project, to which the release belongs.

Id  :  integer, required

The ID of the release you want to update.

Body parameters

In the request body, pass the RequestReleasePut JSON object that describes the release’s new contents:


{
  "FolderId": "int",
  "ParentId": "int",
  "Title": "string",
  "Description": "string",
  "OwnerUserId": "int",
  "AssigneeUserId": "int",
  "IsAutoAdjustEstDates": "boolean",
  "StatusCode": "string",
  "IsActive": "boolean",
  "CustomFields": [
{
  "Id": "string",
  "Name": "string",
  "Value": "string"
}
  ],
  "EstStartDate": "Date",
  "EstFinishDate": "Date",
  "SeqNum": "int"
}

Some string property values (for example, Status) are based on choice lists defined in your QAComplete project. You can find these values in Releases > Actions > Manage Choice Lists in QAComplete.

The property values you do not specify are set to their default values.

FolderId  :  integer

The ID of the folder you want to contain the release. 0, if the release should not be placed in a folder.

ParentId  :  integer

The ID of the new release’s parent release.

ReleaseType  :  string

Should be Release, Iteration, or Build.

Note: For builds and iterations, make sure to specify ParentId.

Title  :  string, required

The release’s title.

Description  :  string

The release’s description.

OwnerUserId  :  integer

The ID of the release’s owner.

AssigneeUserId  :  integer

The ID of the release’s assignee user.

IsAutoAdjustEstDates  :  boolean

Defines whether QAComplete should automatically adjust estimated dates for this release. Default value: false.

StatusCode  :  string, required

The release’s status code.

IsActive  :  boolean

Defines whether the release is active. Default value: false.

CustomFields  :  object

An array of CustomFields objects that describe custom fields and their values:


{
  "Id": "string",
  "Name": "string",
  "Value": "string"
}

Id  :  string, required

The unique identifier of the custom field. Must be in the CustomN format, where N is the custom field’s number (index).

Name  :  string

The field name.

Value  :  string

The field value.

EstStartDate  :  dateTime, required

Estimated start date for working on the release.

EstFinishDate  :  dateTime, required

Estimated finish date for working on the release.

SeqNum  :  integer, required

Number of the release in sequence.

A sample request:

PUT http://yourserver.com/rest-api/service/api/v1/projects/11873/releases/145910 HTTP/1.1
Host: yourserver.com
Connection: keep-alive
Content-Type: application/json
Accept: application/json
Authorization: Basic am9obkBleGFtcGxlLmNvbTpwQHNzd29yZA==
Content-Length: 224

       {         "Title": "Release after PUT",         "StatusCode": "Closed (Canceled)",         "SeqNum": 3,         "EstStartDate": "02/17/2017 08:00:00 AM",         "EstFinishDate": "04/17/2017 01:00:00 PM"       }      

A sample request made by using cURL:

curl -u john@example.com:p@ssword -d @release.txt -H "Content-Type: application/json" -H "Accept: application/json" http://yourserver.com/service/api/v1/projects/11873/releases/145910

Response Format

If successful, the operation responds with HTTP status code 200 and returns a JSON object with the updated release information.

A sample response:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Length: 844



{
  "id": 145910,
  "project_id": 11873,
  "folder_id": 0,
  "release_id": 145910,
  "parent_id": 0,
  "release_type": "Release",
  "title": "Release after PUT",
  "owner_user_id: 135027,
  "assignee_user_id": 0,
  "is_auto_adjust_est_dates": false,
  "date_created": "2017-01-06T09:46:32.3100000",
  "date_updated": "2017-01-06T09:46:32.3100000",
  "create_user_id": 135027,
  "update_user_id": 135027,
  "is_active": false,
  "status_code": "Closed (Canceled)",         "est_start_date": "2012-02-17T08:00:00.0000000",
  "est_finish_date": "2012-04-17T13:00:00.0000000",
  "seq_num": 2,
  "import_id": 0,
  "parent_name": "",
  "updated_user_name": "Smith, John",
  "created_user_name": "Smith, John",
  "custom_fields": [],
  "__permissions": {
"acl": 7
}

Error responses

If the operation fails, it returns the appropriate status code and (optionally) the error description in the response body.

If the project with the specified ProjectId does not exist or the authenticating user does not have rights to access the project, the operation returns the Access is denied error.

If a release with the specified Id does not exist, the operation returns the File or directory not found error.

See Also

Releases Resources

Highlight search results