Rally plugin

6 minute readExtensibilityDeveloper productivity

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.

Plugin Version 2.0.3.2024091026

Integrated version

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

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

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.

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

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.

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.

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

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

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

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

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

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

Create a task

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

CreateObject procedure

CreateObject job:

CreateObject job

CreateObject output:

CreateObject output

Update a defect

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

UpdateObject procedure

UpdateObject output:

UpdateObject output

Query for open defects

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

QueryObject procedure

QueryObject job:

QueryObject job

Release notes

EC-Rally 2.0.3

  • Improved tool tips and documentation.

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

  • 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

  • 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

  • Plugin has been moved to Community.

  • Plugin supports new configurations now.

EC-Rally 1.1.4

  • Added session validation.

EC-Rally 1.1.3

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

EC-Rally 1.1.2

  • The plugin icon has been updated.

EC-Rally 1.1.1

  • Fixed issue with configurations being cached for IE.

  • Support API keys authorization.

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

  • Added utf-8 support.

EC-Rally 1.0.1

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

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.