# Rally plugin

Rally plugin
============

The Rally plugin enables you to create, read, update, delete and query Rally objects. This plugin also links to a new report that contains information from the Rally server about what was linked, updated, or created.

The plugin interacts with Rally API using PERL and JSON to perform the following tasks:

*   Create configuration to hold connection information.
    
*   Query object information.
    
*   Create, read, delete, and update objects.
    

For more information, refer to the [Rally software website](https://www.broadcom.com/products/software/value-stream-management/rally).

Plugin Version 2.0.5.2025111232

[](#_integrated_version)Integrated version
------------------------------------------

This plugin was developed and tested against version Rally Community Edition - Build 2012.03.24-3

[](#_create_rally_plugin_configurations)Create Rally plugin configurations
--------------------------------------------------------------------------

Plugin configurations are sets of parameters that apply across some or all of the plugin’s procedures. They are intended to reduce repetition of common values, create predefined sets of parameters for end users, and to securely store credentials where needed. Each configuration is given a unique name that is entered in designated parameters on procedures that use them.

### [](#_creating_plugin_configurations)Creating plugin configurations

To create plugin configurations in CloudBees CD/RO, complete the following steps:

1.  Navigate to **DevOps Essentials**  **Plugin Management**  **Plugin configurations**.
    
2.  Select **Add plugin configuration** to create a new configuration.
    
3.  In the **New Configuration** window, specify a **Name** for the configuration.
    
4.  Select the **Project** that the configuration belongs to.
    
5.  Optionally, add a **Description** for the configuration.
    
6.  Select the appropriate **Plugin** for the configuration.
    
7.  Configure the parameters per the descriptions below.
    

Depending on your plugin configuration and how you run procedures, the **Input parameters**  **Configuration name** field may behave differently in the CloudBees CD/RO UI. For more information, refer to [Differences in plugin UI behavior](/docs/cloudbees-cd-plugin-docs/latest/#plugin-ui-differences).

### [](#_rally_plugin_configuration_parameters)Rally plugin configuration parameters

 

Parameter

Description

Configuration name

Required. The unique name for this configuration.

Description

A description for this configuration.

Rally URL

Required. Provide the host name or IP address of the Rally server.

Credentials

Required. Provide your Rally account credentials (username/password) or API key (name/key). Ensure the account or API key has sufficient privileges to execute API functions.

When using an **API key**, input your key name in the **Username** field and the API key in the **Password** fields.

Debug level

Required. Levels for output: `0` for errors only, `1` for normal headers and responses, or `2+` for debugging information included.

Rally API version

Required. Rally API version to use.

[](#_create_rally_plugin_procedures)Create Rally plugin procedures
------------------------------------------------------------------

### [](#_collectreportingdata)CollectReportingData

Collects object reporting data for features and defects.

 

Parameter

Description

Configuration name

Required. A previously defined configuration for the plugin. This must reference a valid existing Rally configuration.

Report object type

Required. Type of report object; either `feature` or `defect`.

Query

A Rally RQL query string. Examples:

*   `(Description contains "development")`
    
*   `Project.Name = "dev") AND (Owner.UserName"tom@acme.com"`
    

Field mapping

Rally fields that identify the release associated with the feature or defect. For example, `state:status, projectName:releaseProjectName`.

**Multi-object Field Mapping Support:** The plugin supports both traditional comma-separated mappings and enhanced EC-SonarQube-style syntax for complex field mapping scenarios. **Multi-object Field Mapping syntax:** "rallyField":reportObjectType.targetField

These fields are used to populate target fields identified in the report object to associate the feature or defect with the release.

The mapping `projectName:releaseProjectName` indicates the Rally field projectName is mapped to the field `releaseProjectName` in the reporting system.

(Feature/Defect):

*   `rallyField:targetField,rallyField:targetField`
    

**Example:**

    . release:releaseName
    . state:status
    . storypoints:storyPoints
    . creationdate:createdOn

**Enhanced Format** (Custom Multi-Object):

`"RallyField":objectType.targetField,"RallyField":objectType.targetField`

**Example - Mixed Objects:**

    . "FormattedID":defect.defectId,
    . "Name":defect.defectName,
    . "State":defect.status,
    . "Priority":defect.priority,
    . "FormattedID":feature.featureId,
    . "Name":feature.featureName,
    . "ScheduleState":feature.status,
    . "PlanEstimate":feature.storyPoints

Fields to aggregate

The Rally fields to aggregate on. For each group, based on the Status field and additional grouping by fields, the sum of each of the specified fields are calculated and stored as separate fields.

These fields are expected to be numeric fields. However, each field can be optionally specified as `fieldName:featureFieldName`, in which case, the value is stored as **featureFieldName**.

Leave this field empty if each Rally object retrieved maps 1-to-1 with a feature or defect, or you would like to track each object separately in the reporting system.

Allow missing fields

If selected, any missing fields in **Fields** are aggregated with a `0` value. For missing fields in **Field Mapping**, the value is set to \`null.

Metadata property path

Property sheet where the run metadata is stored. If omitted, `/mySchedule/EC-Rally-%JobName%-%Report Object Type%` is used for schedule contest. For all other contexts, root is `/myProject`.

Transformation script

Provide a Perl script to transform the payload. This method is invoked by the plugin with two parameters, the context object and the payload object. The method name must be `transform`, and it must return the payload object. The following example shows the `myTimestamp` field being added to the payload object:

    sub transform {
        my ($context, $payload) = @_;
        $payload->{myTimestamp} = $context->one();
        return $payload;
    }
    
    sub one {
        my ($context) = @_;
        return time();
    }

Preview

If selected, no data is sent to the reporting system, but a preview of gathered data is generated. Use this option to test the procedure.

Base URL for drill-down

URL for the list of Rally objects being collected.

### [](#_createobject)CreateObject

Creates a new object on the Rally server.

 

Parameter

Description

Configuration name

Required. A previously defined configuration for the plugin. This must reference a valid existing Rally configuration.

Object type

Required. Specify the object type to create.

JSON

Required. Provide the JSON structure with the attributes of the object to create.

### [](#_readobject)ReadObject

Reads an object from the configured Rally server and returns the object JSON.

 

Parameter

Description

Configuration name

Required. A previously defined configuration for the plugin. This must reference a valid existing Rally configuration.

Object type

Required. Specify the object type to read.

Use FormattedID?

If selected, specify the FormattedID in the **ID** field. If not selected, use the ObjectID in the **ID** field.

ID

Required. Provide the object ID. A FormattedID example is `DE1057`, and an ObjectID example is `205918369687`.

### [](#_updateobject)UpdateObject

Updates an object on the configured Rally server.

 

Parameter

Description

Configuration name

Required. A previously defined configuration for the plugin. This must reference a valid existing Rally configuration.

Object type

Required. Specify the object type you want to update.

Use FormattedID?

If selected, specify the FormattedID in the **ID** field. If not selected, use the ObjectID in the **ID** field.

ID

Required. Provide the object ID. A FormattedID example is `DE1057`, and an ObjectID example is `205918369687`.

JSON

Required. Provide the JSON structure with the attributes of the object to update.

### [](#_deleteobject)DeleteObject

Deletes an object on the configured Rally server.

 

Parameter

Description

Configuration name

Required. A previously defined configuration for the plugin. This must reference a valid existing Rally configuration.

Object type

Required. Specify the object type to delete.

Use FormattedID?

If selected, specify the FormattedID in the **ID** field. If not selected, use the ObjectID in the **ID** field.

ID

Required. Provide the object ID. A FormattedID example is `DE1057`, and an ObjectID example is `205918369687`.

### [](#_queryobject)QueryObject

Returns a query for objects on the configured Rally server.

 

Parameter

Description

Configuration name

Required. A previously defined configuration for the plugin. This must reference a valid existing Rally configuration.

Fetch full object?

Fetch the complete JSON structure of the object.

Object type

Required. Provide the object type to query the create operation.

Order by

Specify attributes to order the results by. For example, `Priority desc,Severity`.

Page size

Number of results per page. Minimum is `1`, maximum is `100`, and default is `20`.

Query

A query string. For example:

    ((Name contains "foo") and (TargetBuild = "12345")), (Description contains "baz"))

Start index

Start index (1-based) for queries. The default is `1`.

Workspace URL

If not set, the query runs in your default workspace. To use a different workspace, provide the workspace REST URL.

If a **Project URL** is provided, you may omit the **Workspace URL** parameter because the workspace is inherited from the project.

Example **Workspace URL**:

`https://rally1.rallydev.com/slm/webservice/v2.0/workspace/<workspaceOID>`

Navigate to `https://rally1.rallydev.com/slm/webservice/v2.0/workspace` for a list of workspaces with IDs and names.

Project URL

If not set, or specified as `null`, the "parent project" in the given workspace is used. To use a different project, provide the project REST URL.

Example **Project URL**:

`https://rally1.rallydev.com/slm/webservice/v2.0/project/<projectOID>`.

Navigate to `https://rally1.rallydev.com/slm/webservice/v2.0/project` for a list of projects with IDs and names.

Project scope up

In addition to the specified project, include parent projects above the specified one. Default is **true**.

Project scope down

In addition to the specified project, include child projects below the current one. Default is **true**.

Result format

Format to store results; either JSON or a property sheet. Retrieved issues are saved under this property.

Result property

Property to store results. By default, `/myJob/result_json`.

Create summary link?

If selected, a report is generated and attached to the job/pipeline summary. Default is **true**.

Summary link property

Property to store the report.

Summary link title

Text to use for the report link.

Field list to include in report

Additional comma-separated fields to include in the report. For example, `State, CreationDate, LastUpdateDate, Iteration`.

[](#_examples_and_use_cases)Examples and use cases
--------------------------------------------------

### [](#_create_a_task)Create a task

Create a new CreateObject procedure, fill in the requested parameters with real values from your Rally server:

![Create a task](../../../cloudbees-common-sda/latest/_images/cd-plugins/ec-rally/examples/createtask-parameters.c0cde91.png)

CreateObject job:

![Create job](../../../cloudbees-common-sda/latest/_images/cd-plugins/ec-rally/examples/create-job.a78dc22.png)

CreateObject output:

![CreateObject output](../../../cloudbees-common-sda/latest/_images/cd-plugins/ec-rally/examples/create-log.b227acf.png)

### [](#_update_a_defect)Update a defect

Create a new UpdateObject procedure, fill in the requested parameters with real values from your Rally server:

![Update a defect](../../../cloudbees-common-sda/latest/_images/cd-plugins/ec-rally/examples/updatedefect-parameters.ad2dfdb.png)

UpdateObject output:

![UpdateObject output](../../../cloudbees-common-sda/latest/_images/cd-plugins/ec-rally/examples/update-log.837b730.png)

### [](#_query_for_open_defects)Query for open defects

Create a new QueryObject procedure, fill in the requested parameters with real values from your Rally server:

![QueryObject procedure](../../../cloudbees-common-sda/latest/_images/cd-plugins/ec-rally/examples/query-parameters.22c5bd6.png)

QueryObject job:

![QueryObject job](../../../cloudbees-common-sda/latest/_images/cd-plugins/ec-rally/examples/query-job.c09dfdc.png)

[](#_release_notes)Release notes
--------------------------------

### [](#_ec_rally_2_0_5)EC-Rally 2.0.5

*   Multi-object field mapping functionality for CollectReportingData procedure with EC-SonarQube-style syntax support.
    
*   Implemented multi-object payload creation for improved reporting system integration.
    
*   Multi-object backward compatibility ensuring existing field mapping(Feature/Defect) configurations continue to work seamlessly.
    
*   Improved documentation with comprehensive examples and usage patterns for enhanced field mapping.
    

### [](#_ec_rally_2_0_4)EC-Rally 2.0.4

*   The ability to store the JSON result of the QueryObject procedure to a file was implemented.
    

### [](#_ec_rally_2_0_3)EC-Rally 2.0.3

*   Improved tool tips and documentation.
    

### [](#_ec_rally_2_0_2)EC-Rally 2.0.2

*   Added support for the **CollectReportingData** procedure.
    
*   Improved **QueryObject** procedure by adding custom properties parameter and storing the corresponded properties into reports.
    

### [](#_ec_rally_2_0_1)EC-Rally 2.0.1

*   Improved plugin configuration field for plugin procedures.
    
*   Improved tool tips and documentation for **QueryObject** parameters **Workspace URL** and **Project URL**.
    

### [](#_ec_rally_2_0_0)EC-Rally 2.0.0

*   Upgraded from Perl 5.8 to Perl 5.32. The plugin is not backward compatible with CloudBees CD/RO versions prior to 10.3. Starting from this release, a new agent is required to run EC-Rally plugin procedures.
    
*   Added TestConfiguration procedure.
    

### [](#_ec_rally_1_2_0)EC-Rally 1.2.0

*   Plugin has been moved to Community.
    
*   Plugin supports new configurations now.
    

### [](#_ec_rally_1_1_4)EC-Rally 1.1.4

*   Added session validation.
    

### [](#_ec_rally_1_1_3)EC-Rally 1.1.3

*   The documentation has been migrated to the main documentation site.
    

### [](#_ec_rally_1_1_2)EC-Rally 1.1.2

*   The plugin icon has been updated.
    

### [](#_ec_rally_1_1_1)EC-Rally 1.1.1

*   Fixed issue with configurations being cached for IE.
    
*   Support API keys authorization.
    

### [](#_ec_rally_1_1_0)EC-Rally 1.1.0

*   Enable support for Rally API V2.0 (JSON)
    
*   Remove need for shared directory with agent (agent/lib) directory
    
*   Minimum Commander Server version is now 4.2
    

### [](#_ec_rally_1_0_2)EC-Rally 1.0.2

*   Added utf-8 support.
    

### [](#_ec_rally_1_0_1)EC-Rally 1.0.1

*   Procedure name(s) were changed in the step picker section
    

### [](#_ec_rally_1_0_0)EC-Rally 1.0.0

*   Configuration Management.
    
*   Procedures: CreateObject, ReadObject, UpdateObject, DeleteObject and QueryObject.
    
*   Implemented XML parameter panel
    
*   Created help page.
    
*   Added procedures to StepPicker.