External Approval Gate

The External Approval gate creates a task for the group members of the associated pipeline role, links it to the Change Management System configured on the release, and blocks until the change ticket attached to the pipeline execution is approved or rejected.

Field

Description

Gate Name

The name of the gate.

DescriptionAn optional description for the gate.

Approval Role

The pipeline role which is allowed to approve or reject the gate in FlexDeploy outside of the Chanage Management System.  Provides mitigation in event that CMS is unavailable for any reason.  Approval tasks are created for the group members of this role, and will be automatically approved or rejected based on the status of the associated ticket.  If no group member is assigned to the role, the task is assigned to a group designated as a FlexDeploy Administrator.

Precondition

An optional Groovy script which determines whether the gate or step is applicable during execution. The script has access to variables and methods listed in Pipeline Groovy Variables and Methods. You can find these variables methods using Variable Lookup help.

The script must return true if the gate is applicable, or false otherwise.  If no script is provided, the default is to return true (applicable).

CMS InstanceThe Change Management System instance to use for this external gate.
Create TicketDetermines whether to automatically create a CMS ticket when this gate is reached.  If unchecked, it is expected that the related ticket field for either the stage or the individual projects/packages is populated (either manually by the user or through a Custom Gate).  The default value for this field is initialized from the global configuration.
ScopeOnly applies when Create Ticket is checked.  Determines the scope for setting created ticket number.  If scope is Stage, the related ticket field of the stage is updated to the created ticket number.  If scope is Project/Package, a ticket will be created or each project/package in the snapshot and the corresponding related ticket field is updated.
<Ticket Fields>

Only applies when Create Ticket is checked.  Used to set the values of individual ticket fields when creating a ticket.  By default, the ticket field mapping comes from the global configuration.  Click Override settings to override for the gate, or Revert to defaults to reset to the mappings from the global configuration.

The ticket fields values are Groovy Expressions, so any literal String must be placed in double quotes.  Variables available to the expressions are:

  • EnvironmentName
  • PackageName1
  • ProjectName1
  • ProjectVersion1
  • StreamName1
  • WorkflowRequestor1
  • ReleaseName

Variables are only applicable when the ticket scope is Project/Package

One common use case is to propogate the ticket number entered or created in one stage across into future stage(s) to avoid duplicate effort.  This can be implemented by having a snapshot variable (e.g. CMS_TICKET) on the pipeline to hold the ticket, and a custom gate after the external approval gate to store the ticket number into the variable.  The future stage can use another Custom Gate to set the related ticket from the value of the snapshot variable.

Initial Stage - Custom Gate
CMS_TICKET = stgexecinfo.getRelatedTicket()
Subsequent Stage - Custom Gate
stgexecinfo.setRelatedTicket(CMS_TICKET)