Internet Explorer is no longer supported. Many things will still work, but your experience will be degraded and some things won't function. Please use a modern browser such as Edge, Chrome, or Firefox.

Amazon

  • Upload Files to S3 - Transfers files to an Amazon S3 bucket.

    Upload Files to S3

    Transfers files to an Amazon S3 bucket.

    Script usage:

    AWS::Upload-Files(
    	[From: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	Bucket: <text>,
    	[To: <text>],
    	[ReducedRedundancy: <true/false>],
    	[Public: <true/false>],
    	[Encrypted: <true/false>],
    	[Credentials: <text>],
    	[AccessKey: <text>],
    	[SecretAccessKey: <text>],
    	[RegionEndpoint: <text>],
    	[PartSize: <Int64>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Source directory
    text
    From
    Value note: "$WorkingDirectory".
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Default value is "*".
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Bucket
    text
    Bucket
    This argument is required.
    Target folder
    text
    To
    The directory in the specified S3 bucket that will receive the uploaded files.
    Use reduced redundancy
    true/false
    ReducedRedundancy
    Make public
    true/false
    Public
    Encrypted
    true/false
    Encrypted
    Credentials
    text
    Credentials
    Access key
    text
    AccessKey
    Not specifying will "Use credentials".
    Secret access key
    text
    SecretAccessKey
    Not specifying will "Use credentials".
    Region endpoint
    text
    RegionEndpoint
    Part size
    Int64
    PartSize
    The size (in bytes) of individual parts for an S3 multipart upload. Default value is "5242880".

Azure

  • Deploy Azure Web App - Deploys an Azure Web App.

    Deploy Azure Web App

    Deploys an Azure Web App.

    Script usage:

    Azure::Deploy-AzureWebApp(
    	Name: <text>,
    	[Slot: <text>],
    	[Type: <text>],
    	Source: <text>,
    	[Target: <text>],
    	[DeleteAdditionalFiles: <true/false>],
    	[WaitForCompletion: <true/false>],
    	[Arguments: <text>],
    	[From: <text>],
    	[ResourceGroupName: <text>],
    	[TenantId: <text>],
    	[ApplicationId: <text>],
    	[Secret: <text>],
    	[AzPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Web App Name
    text
    Name
    This argument is required.
    Slot
    text
    Slot
    Type
    text
    Type
    Artifact Source
    text
    Source
    This argument is required.
    Target Location
    text
    Target
    This will only be used when deploying a static file to a target.
    Delete Additional Files
    true/false
    DeleteAdditionalFiles
    Default value is "true".
    Wait for Deployment to Complete
    true/false
    WaitForCompletion
    Default value is "true".
    Additional arguments
    text
    Arguments
    Raw command line arguments to pass to the Azure CLI.
    From Azure Service Principal
    text
    From
    Resource Group Name
    text
    ResourceGroupName
    Not specifying will "Use resource name from Azure resource group".
    Tenant ID
    text
    TenantId
    Not specifying will "Use resource name from Azure service credential".
    Application ID
    text
    ApplicationId
    Not specifying will "Use resource name from Azure service credential".
    Secret
    text
    Secret
    Not specifying will "Use resource name from Azure service credential".
    AZ CLI path
    text
    AzPath
    Full path to az on the server. Default value is "$AzPath".
  • Start Azure Web App - Starts an Azure Web App.

    Start Azure Web App

    Starts an Azure Web App.

    Script usage:

    Azure::Start-AzureWebApp(
    	Name: <text>,
    	[Slot: <text>],
    	[Arguments: <text>],
    	[From: <text>],
    	[ResourceGroupName: <text>],
    	[TenantId: <text>],
    	[ApplicationId: <text>],
    	[Secret: <text>],
    	[AzPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Web App Name
    text
    Name
    This argument is required.
    Slot
    text
    Slot
    Additional arguments
    text
    Arguments
    Raw command line arguments to pass to the Azure CLI.
    From Azure Service Principal
    text
    From
    Resource Group Name
    text
    ResourceGroupName
    Not specifying will "Use resource name from Azure resource group".
    Tenant ID
    text
    TenantId
    Not specifying will "Use resource name from Azure service credential".
    Application ID
    text
    ApplicationId
    Not specifying will "Use resource name from Azure service credential".
    Secret
    text
    Secret
    Not specifying will "Use resource name from Azure service credential".
    AZ CLI path
    text
    AzPath
    Full path to az on the server. Default value is "$AzPath".
  • Stop Azure Web App - Stops an Azure Web App.

    Stop Azure Web App

    Stops an Azure Web App.

    Script usage:

    Azure::Stop-AzureWebApp(
    	Name: <text>,
    	[Slot: <text>],
    	[Arguments: <text>],
    	[From: <text>],
    	[ResourceGroupName: <text>],
    	[TenantId: <text>],
    	[ApplicationId: <text>],
    	[Secret: <text>],
    	[AzPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Web App Name
    text
    Name
    This argument is required.
    Slot
    text
    Slot
    Additional arguments
    text
    Arguments
    Raw command line arguments to pass to the Azure CLI.
    From Azure Service Principal
    text
    From
    Resource Group Name
    text
    ResourceGroupName
    Not specifying will "Use resource name from Azure resource group".
    Tenant ID
    text
    TenantId
    Not specifying will "Use resource name from Azure service credential".
    Application ID
    text
    ApplicationId
    Not specifying will "Use resource name from Azure service credential".
    Secret
    text
    Secret
    Not specifying will "Use resource name from Azure service credential".
    AZ CLI path
    text
    AzPath
    Full path to az on the server. Default value is "$AzPath".
  • Swap Azure Web App Slot - Swaps slots on an Azure Web App.

    Swap Azure Web App Slot

    Swaps slots on an Azure Web App.

    Script usage:

    Azure::Swap-AzureWebAppSlot(
    	Name: <text>,
    	SourceSlot: <text>,
    	TargetSlot: <text>,
    	[PreserveVnet: <true/false>],
    	[Action: <text>],
    	[Arguments: <text>],
    	[From: <text>],
    	[ResourceGroupName: <text>],
    	[TenantId: <text>],
    	[ApplicationId: <text>],
    	[Secret: <text>],
    	[AzPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Web App Name
    text
    Name
    This argument is required.
    Source Slot
    text
    SourceSlot
    This argument is required.
    Target Slot
    text
    TargetSlot
    This argument is required.
    Preserve Vnet
    true/false
    PreserveVnet
    Action
    text
    Action
    Value note: "swap".
    Additional arguments
    text
    Arguments
    Raw command line arguments to pass to the Azure CLI.
    From Azure Service Principal
    text
    From
    Resource Group Name
    text
    ResourceGroupName
    Not specifying will "Use resource name from Azure resource group".
    Tenant ID
    text
    TenantId
    Not specifying will "Use resource name from Azure service credential".
    Application ID
    text
    ApplicationId
    Not specifying will "Use resource name from Azure service credential".
    Secret
    text
    Secret
    Not specifying will "Use resource name from Azure service credential".
    AZ CLI path
    text
    AzPath
    Full path to az on the server. Default value is "$AzPath".

Batch

  • BATCall - Executes an OtterScript Script stored in a raft.

    BATCall

    Executes an OtterScript Script stored in a raft.

    Script usage:

    Scripting::BATCall(
    	ScriptName: <text>,
    	[Arguments: <text>],
    	[EnvironmentVariables: <%(key1: value1, ...)>],
    	[Parameters: <%(key1: value1, ...)>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Script name (default)
    text
    ScriptName
    This argument is required.
    Arguments
    text
    Arguments
    Specify the commandline arguments to pass to the batch file.
    Environment variables
    %(key1: value1, ...)
    EnvironmentVariables
    Specify variables to set before running the batch script.
    Parameters
    %(key1: value1, ...)
    Parameters

BuildMaster

  • Backup Application - Exports an application to a package source.

    Backup Application

    Exports an application to a package source.

    Script usage:

    System::Backup-Application(
    	[Application: <text>],
    	PackageSource: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Application name
    text
    Application
    Default value is "$ApplicationName".
    Package source
    text
    PackageSource
    This argument is required.
  • Create Build - Creates a new build in BuildMaster of an application, and optionally waits for it to complete.

    Create Build

    Creates a new build in BuildMaster of an application, and optionally waits for it to complete.

    Script usage:

    Create-Build(
    	Application: <text>,
    	[ReleaseNumber: <text>],
    	[Pipeline: <text>],
    	[Variables: <%(key1: value1, ...)>],
    	[ForcePromotion: <true/false>],
    	[Wait: <true/false>],
    	[FailIfCannotCreate: <true/false>],
    	[DeployToFirstStage: <true/false>]
    );
    
    

    This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    This argument is required.
    For release number
    text
    ReleaseNumber
    This may be a specific release number, "latest" or "all". Default value is "latest".
    With pipeline
    text
    Pipeline
    This is used if ReleaseNumber is empty.
    Build variables
    %(key1: value1, ...)
    Variables
    Value note: "%(var1: 1000, var2: $HdarFsServer, ...)".
    Force past gate
    true/false
    ForcePromotion
    Wait for execution
    true/false
    Wait
    Default value is "True".
    Fail if nothing created
    true/false
    FailIfCannotCreate
    Deploy to first stage
    true/false
    DeployToFirstStage
    Default value is "True".

    Note: When all releases is specified, then a build in *each* release will be created.

    Note: When FailIfCannotCreate is specified, the execution will halt if there are no valid builds to create; for example, if the targeted release number doesn't exist. Otherwise, a warning will be issued.

    Example:

    Create-Build
    (
        Application: Hdars.Packager,
        ReleaseNumber: latest,
        Variables: %(ReleaseCandidate: true, PackageType: $PackageType)
    );
  • Create Release - Creates a release in another application.

    Create Release

    Creates a release in another application.

    Script usage:

    Create-Release(
    	Application: <text>,
    	[ReleaseNumber: <text>],
    	Pipeline: <text>,
    	[ReleaseName: <text>],
    	[ReleaseTemplate: <text>],
    	[Variables: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    This argument is required.
    Release number
    text
    ReleaseNumber
    Not specifying will use value: "Auto-increment".
    Pipeline name
    text
    Pipeline
    This argument is required.
    Release name
    text
    ReleaseName
    Release template
    text
    ReleaseTemplate
    Variables
    %(key1: value1, ...)
    Variables
    Value note: "%(var1: 1000, var2: $HdarFsServer, ...)".

    Example:

    Create-Release
    (
        Application: Hdars.Packager,
        ReleaseNumber: $ReleaseNumber,
        Pipeline: AutoCreate,
        ReleaseTemplate: TemplateName,
        Variables: %(TargetServer: Tst001, ReleaseType: $ReleaseType)
    );
  • Create Release Note - Attaches a release note to the current release.

    Create Release Note

    Attaches a release note to the current release.

    Script usage:

    Create-ReleaseNote(
    	[Note: <text>],
    	[Application: <text>],
    	[Release: <text>],
    	[Build: <text>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Note text (default)
    text
    Note
    Application name
    text
    Application
    Default value is "$ApplicationName".
    Release number
    text
    Release
    Default value is "$ReleaseNumber".
    Build number
    text
    Build
    Value note: "none".

    Example:

    Create-ReleaseNote Build $ReleaseNumber.$BuildNumber deployed to ProGet.;
  • Deploy Build - Deploys a build in BuildMaster of an application, and optionally waits for it to complete.

    Deploy Build

    Deploys a build in BuildMaster of an application, and optionally waits for it to complete.

    Script usage:

    Deploy-Build(
    	Application: <text>,
    	[ReleaseNumber: <text>],
    	[BuildNumber: <text>],
    	[Variables: <%(key1: value1, ...)>],
    	[From: <text>],
    	[To: <text>],
    	[Force: <true/false>],
    	[Wait: <true/false>],
    	[FailIfCannotDeploy: <true/false>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    This argument is required.
    For release number
    text
    ReleaseNumber
    This may be a specific release number, "latest" or "all". Default value is "latest".
    Build number
    text
    BuildNumber
    Select a specific build number. This may also be left blank to select all active builds. Value note: "(all active builds)".
    Deployment variables
    %(key1: value1, ...)
    Variables
    Value note: "%(var1: 1000, var2: $HdarFsServer, ...)".
    From stage
    text
    From
    To stage
    text
    To
    Force past gate
    true/false
    Force
    Wait for deployments
    true/false
    Wait
    Default value is "True".
    Fail if nothing is deployed
    true/false
    FailIfCannotDeploy

    Note: When all releases is specified, then a build in *each* release will be created.

    Note: When "from" or "to" pipeline stages are specified, only packages that come from or are going to those stages in their pipeline will be deployed.

  • Ensure Release - Ensures a release exists in another application.

    Ensure Release

    Ensures a release exists in another application.

    Script usage:

    Ensure-Release(
    	[Application: <text>],
    	[ReleaseNumber: <text>],
    	[Pipeline: <text>],
    	[ReleaseName: <text>],
    	[Variables: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    Default value is "$ApplicationName".
    Release number
    text
    ReleaseNumber
    Default value is "$ReleaseNumber".
    Pipeline name
    text
    Pipeline
    Default value is "$PipelineName".
    Release name
    text
    ReleaseName
    Variables
    %(key1: value1, ...)
    Variables
    Value note: "%(var1: 1000, var2: $HdarFsServer, ...)".

    Example:

    Ensure-Release
    (
        Application: Hdars.Packager,
        ReleaseNumber: $ReleaseNumber,
        Pipeline: AutoCreate,
        Variables: %(TargetServer: Tst001, ReleaseType: $ReleaseType)
    );
  • Manual Operation - Halts the execution until an individual or group completes a specified task.

    Manual Operation

    Halts the execution until an individual or group completes a specified task.

    Script usage:

    Perform-ManualOperation(
    	Name: <text>,
    	[Description: <text>],
    	AssignedTo: <text>,
    	[SendEmail: <true/false>],
    	[CC: <@(text)>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Task name
    text
    Name
    The name of the task that uniquely identifies it in the UI. This argument is required.
    Task description
    text
    Description
    Assigned to
    text
    AssignedTo
    The user or group who is responsible to complete the specified task. Default value is "$ExecutionUser". This argument is required.
    Send email to assignees
    true/false
    SendEmail
    CC email addresses
    @(text)
    CC
  • Reject Build - Rejects a BuildMaster build.

    Reject Build

    Rejects a BuildMaster build.

    Script usage:

    Reject-Build(
    	[Application: <text>],
    	[ReleaseNumber: <text>],
    	BuildNumber: <text>,
    	[FailIfAlreadyRejected: <true/false>],
    	[RejectionNotes: <text>]
    );
    
    

    This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    Default value is "$ApplicationName".
    With release
    text
    ReleaseNumber
    Default value is "$ReleaseNumber".
    Build number (default)
    text
    BuildNumber
    This argument is required.
    Fail if build is already rejected
    true/false
    FailIfAlreadyRejected
    Value note: "false".
    Rejection notes
    text
    RejectionNotes
    Value note: "unspecified".

    Example:

    Reject-Build $BuildToReject;
  • Set Build Number - Sets (changes) the build number of the currently executing build.

    Set Build Number

    Sets (changes) the build number of the currently executing build.

    Script usage:

    Set-BuildNumber <text>;
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    New build number (default)
    text
    BuildNumber
    This argument is required.

    Build Number in Context: This operation will do two things: change the BuildNumber in the database and create a runtime variable named $BuildNumber with the new build number. However, it will *not* update the execution context with the new BuildNumber; this means that, for some operations that rely on the BuildNumber in context (instead of looking up the BuildNumber based on the BuildId), this will likely result in a "build not found" or such error. To resolve this, explicitly pass in $BuildNumber as an argument. For example, if you create an artifact after setting the BuildNumber, explicitly pass in the BuildNumber.

    Example:

    # The build.xml file contains a project version we wish to show users in the build number
    PSCall GLOBAL::ExtractProjectVersion
    (
        buildFilePath: $WorkingDirectory\build.xml,
        OutputArg => $ProjectVersionTemp
    );
    
    # This will update the build number
    Set-BuildNumber $ExtractProjectVersion.$BuildNumber;
    
  • Set Build Variable - Creates or updates a variable on a build.

    Set Build Variable

    Creates or updates a variable on a build.

    Script usage:

    Set-BuildVariable(
    	Variable: <text>,
    	Value: <RuntimeValue>,
    	[Release: <text>],
    	[Build: <text>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Variable name (default)
    text
    Variable
    This argument is required.
    Variable value
    RuntimeValue
    Value
    This argument is required.
    Release number
    text
    Release
    Value note: "$ReleaseNumber".
    Build number
    text
    Build
    Value note: "$BuildNumber".
  • Set Configuration Variable - Creates or updates a variable in BuildMaster.

    Set Configuration Variable

    Creates or updates a variable in BuildMaster.

    Script usage:

    Set-ConfigurationVariable(
    	Variable: <text>,
    	Value: <RuntimeValue>,
    	[Application: <text>],
    	[ApplicationGroup: <text>],
    	[Deployable: <text>],
    	[Server: <text>],
    	[ServerRole: <text>],
    	[Environment: <text>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Variable name (default)
    text
    Variable
    This argument is required.
    Variable value
    RuntimeValue
    Value
    This argument is required.
    Application
    text
    Application
    Application group
    text
    ApplicationGroup
    Deployable
    text
    Deployable
    Server
    text
    Server
    Server role
    text
    ServerRole
    Environment
    text
    Environment
  • Set Release Variable - Creates or updates a variable on a release or build.

    Set Release Variable

    Creates or updates a variable on a release or build.

    Script usage:

    Set-ReleaseVariable(
    	Variable: <text>,
    	Value: <RuntimeValue>,
    	[Release: <text>],
    	[Build: <text>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Variable name (default)
    text
    Variable
    This argument is required.
    Variable value
    RuntimeValue
    Value
    This argument is required.
    Release number
    text
    Release
    Value note: "$ReleaseNumber".
    Build number
    text
    Build
    Value note: "none (create as release variable)".
  • Wait for Deployments - Waits for deployments to a pipeline stage to complete.

    Wait for Deployments

    Waits for deployments to a pipeline stage to complete.

    Script usage:

    WaitFor-Deployments(
    	Application: <text>,
    	PipelineStage: <text>,
    	[ReleaseNumber: <text>],
    	[BuildNumber: <text>]
    );
    
    

    This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    This argument is required.
    Pipeline stage
    text
    PipelineStage
    This argument is required.
    Release number
    text
    ReleaseNumber
    This may be a specific release number, "latest" or "any". Default value is "any".
    Build number
    text
    BuildNumber
    This may be a specific release number, "latest" or "any". Default value is "any".

    Example:

    WaitFor-Deployments
    (
        Application: Hdars.Packager,
        ReleaseNumber: 1.0.0,
        BuildNumber: 10,
        PipelineStage: Integration
    );

Configuration Files

  • Deploy Configuration File - Deploys an instance of a configuration file to disk after applying an optional template.

    Deploy Configuration File

    Deploys an instance of a configuration file to disk after applying an optional template.

    Script usage:

    Deploy-ConfigFile(
    	ConfigFileName: <text>,
    	[Instance: <text>],
    	[To: <text>],
    	[OutputFileName: <text>],
    	[DoNotRecoderDeployment: <true/false>],
    	[VersionNumber: <integer>]
    );
    
    

    This operation may be prefixed with ConfigFiles::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Configuration file name
    text
    ConfigFileName
    This argument is required.
    Instance
    text
    Instance
    Default value is "$PipelineStageName".
    To directory
    text
    To
    Value note: "$WorkingDirectory".
    To file name
    text
    OutputFileName
    Value note: "do not rename file".
    Do Not Record Deployment
    true/false
    DoNotRecoderDeployment
    Version Number
    integer
    VersionNumber
    Value note: "Default".

    See also:

    Databases

    • Backup Database - Uses a Database Connection to back up a database to a file on disk.

      Backup Database

      Uses a Database Connection to back up a database to a file on disk.

      Script usage:

      DB::Backup-Database(
      	Connection: <text>,
      	Name: <text>,
      	To: <text>
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Database connection
      text
      Connection
      This argument is required.
      From database name
      text
      Name
      This argument is required.
      To backup file
      text
      To
      This argument is required.
    • Build Database Updater Executable - Generates an executable file that can act as a self-installing package of database change scripts.

      Build Database Updater Executable

      Generates an executable file that can act as a self-installing package of database change scripts.

      Script usage:

      SqlServer::Bundle-SqlScripts(
      	[Directory: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	OutputFile: <text>
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      From directory
      text
      Directory
      Value note: "$WorkingDirectory".
      Include
      @(text)
      Include
      See KB#1119 to learn more about masking syntax.
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Output file
      text
      OutputFile
      This argument is required.
    • Execute Database Change Scripts - Executes change scripts associated with the current release and any change scripts from prior releases that have not been run against the database to date.

      Execute Database Change Scripts

      Executes change scripts associated with the current release and any change scripts from prior releases that have not been run against the database to date.

      Script usage:

      Execute-ChangeScripts(
      	Connection: <text>,
      	[InitializeDatabase: <true/false>],
      	[Group: <text>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Database connection
      text
      Connection
      This argument is required.
      Initialize database
      true/false
      InitializeDatabase
      Group
      text
      Group

      Note: When initialize database is true, the database will be initialized (i.e. a metadata table will be created too track change scripts) if it is required.

    • Execute Database Scripts on Disk - Finds files matching a search mask and executes those scripts against a database connection.

      Execute Database Scripts on Disk

      Finds files matching a search mask and executes those scripts against a database connection.

      Script usage:

      Execute-DatabaseScripts(
      	Connection: <text>,
      	[Directory: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Database connection
      text
      Connection
      This argument is required.
      In directory
      text
      Directory
      Value note: "$WorkingDirectory".
      Include (default)
      @(text)
      Include
      See KB#1119 to learn more about masking syntax.
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
    • Execute Database Statement - Executes a statement against a database.

      Execute Database Statement

      Executes a statement against a database.

      Script usage:

      Execute-DatabaseStatement(
      	Connection: <text>,
      	Statement: <text>,
      	[LogStatement: <true/false>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Database connection
      text
      Connection
      This argument is required.
      SQL Statement
      text
      Statement
      This argument is required.
      Log statement to execute
      true/false
      LogStatement
      Default value is "True".

      Example:

      Execute-DatabaseStatement (
          Statement: >>
          print 'Executing BuildMaster statement...'
      
          select * from sys.databases
          where owner_sid > 1
          order by name
      
          print 'Execution complete.'
      >>,
          Connection: SqlServerTesting
      );
      
    • Restore Database - Uses a Database Connection to restore a database from a file on disk.

      Restore Database

      Uses a Database Connection to restore a database from a file on disk.

      Script usage:

      Restore-Database(
      	Connection: <text>,
      	From: <text>,
      	Name: <text>,
      	[Verbose: <true/false>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Database connection
      text
      Connection
      This argument is required.
      From backup file
      text
      From
      This argument is required.
      To database name
      text
      Name
      This argument is required.
      Log database statements
      true/false
      Verbose

    Docker Compose

    • Compose-Command - Runs an arbitrary docker-compose command.

      Compose-Command

      Runs an arbitrary docker-compose command.

      Script usage:

      Docker::Compose-Command(
      	[Args: <@(text)>],
      	ProjectName: <text>,
      	[ComposeYaml: <text>],
      	[WorkingDirectory: <text>],
      	[Verbose: <true/false>],
      	[Source: <text>],
      	[DockerExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Command arguments
      @(text)
      Args
      Project name (default)
      text
      ProjectName
      This argument is required.
      Compose file (YAML)
      text
      ComposeYaml
      You can specify the path to the "docker-compose.yaml" or this can be the compose file contents, eg. $FileContents(docker-compose.yml) or $ConfigurationFileText(Integration, docker-compose.yaml). Value note: "eg. $FileContents(docker-compose.yml)".
      Working directory
      text
      WorkingDirectory
      Verbose
      true/false
      Verbose
      Default value is "False".
      Container source
      text
      Source
      Docker client path
      text
      DockerExePath
      Default value is "$DockerExePath".
    • Compose-Down - Stops containers and removes containers, networks, volumes, and images created by Docker::Compose-Up.

      Compose-Down

      Stops containers and removes containers, networks, volumes, and images created by Docker::Compose-Up.

      Script usage:

      Docker::Compose-Down(
      	[Timeout: <integer>],
      	ProjectName: <text>,
      	[ComposeYaml: <text>],
      	[WorkingDirectory: <text>],
      	[Verbose: <true/false>],
      	[AddArgs: <@(text)>],
      	[Source: <text>],
      	[DockerExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Timeout (seconds)
      integer
      Timeout
      Default value is "10".
      Project name (default)
      text
      ProjectName
      This argument is required.
      Compose file (YAML)
      text
      ComposeYaml
      You can specify the path to the "docker-compose.yaml" or this can be the compose file contents, eg. $FileContents(docker-compose.yml) or $ConfigurationFileText(Integration, docker-compose.yaml). Value note: "eg. $FileContents(docker-compose.yml)".
      Working directory
      text
      WorkingDirectory
      Verbose
      true/false
      Verbose
      Default value is "False".
      Additional docker-compose arguments
      @(text)
      AddArgs
      Container source
      text
      Source
      Docker client path
      text
      DockerExePath
      Default value is "$DockerExePath".
    • Compose-SetStatus - Starts, restarts, stops, pauses, or resumes existing containers for a service.

      Compose-SetStatus

      Starts, restarts, stops, pauses, or resumes existing containers for a service.

      Script usage:

      Docker::Compose-SetStatus(
      	Action: <integer>,
      	[Timeout: <integer>],
      	[Signal: <text>],
      	[Services: <@(text)>],
      	ProjectName: <text>,
      	[ComposeYaml: <text>],
      	[WorkingDirectory: <text>],
      	[Verbose: <true/false>],
      	[AddArgs: <@(text)>],
      	[Source: <text>],
      	[DockerExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Action
      integer
      Action
      This argument is required.
      Timeout
      integer
      Timeout
      Used for the Restart and Stop actions. Default value is "10".
      Signal
      text
      Signal
      Used for the ForceStop action. Default value is "SIGKILL".
      Services
      @(text)
      Services
      Value note: "(all services)".
      Project name (default)
      text
      ProjectName
      This argument is required.
      Compose file (YAML)
      text
      ComposeYaml
      You can specify the path to the "docker-compose.yaml" or this can be the compose file contents, eg. $FileContents(docker-compose.yml) or $ConfigurationFileText(Integration, docker-compose.yaml). Value note: "eg. $FileContents(docker-compose.yml)".
      Working directory
      text
      WorkingDirectory
      Verbose
      true/false
      Verbose
      Default value is "False".
      Additional docker-compose arguments
      @(text)
      AddArgs
      Container source
      text
      Source
      Docker client path
      text
      DockerExePath
      Default value is "$DockerExePath".
    • Compose-Up - Builds, (re)creates, and optionally starts containers for a Docker Compose project.

      Compose-Up

      Builds, (re)creates, and optionally starts containers for a Docker Compose project.

      Script usage:

      Docker::Compose-Up(
      	[Recreate: <integer>],
      	[Build: <integer>],
      	[Timeout: <integer>],
      	[StartContainers: <true/false>],
      	[Services: <@(text)>],
      	ProjectName: <text>,
      	[ComposeYaml: <text>],
      	[WorkingDirectory: <text>],
      	[Verbose: <true/false>],
      	[AddArgs: <@(text)>],
      	[Source: <text>],
      	[DockerExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Re-create containers
      integer
      Recreate
      Default value is "IfChanged".
      Build images
      integer
      Build
      Default value is "IfMissing".
      Timeout (seconds)
      integer
      Timeout
      Default value is "10".
      Start containers
      true/false
      StartContainers
      Default value is "True".
      Services
      @(text)
      Services
      Value note: "(all services)".
      Project name (default)
      text
      ProjectName
      This argument is required.
      Compose file (YAML)
      text
      ComposeYaml
      You can specify the path to the "docker-compose.yaml" or this can be the compose file contents, eg. $FileContents(docker-compose.yml) or $ConfigurationFileText(Integration, docker-compose.yaml). Value note: "eg. $FileContents(docker-compose.yml)".
      Working directory
      text
      WorkingDirectory
      Verbose
      true/false
      Verbose
      Default value is "False".
      Additional docker-compose arguments
      @(text)
      AddArgs
      Container source
      text
      Source
      Docker client path
      text
      DockerExePath
      Default value is "$DockerExePath".

    DotNet

    • Build MSBuild Project - Builds a project or solution using MSBuild.

      Build MSBuild Project

      Builds a project or solution using MSBuild.

      Script usage:

      MSBuild::Build-Project(
      	ProjectFile: <text>,
      	[Configuration: <text>],
      	[Platform: <text>],
      	[MSBuildProperties: <@(text)>],
      	[Arguments: <text>],
      	[MSBuildToolsPath: <text>],
      	[To: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project file (default)
      text
      ProjectFile
      e.g. ProjectName.csproj or SolutionName.sln". This argument is required.
      Configuration
      text
      Configuration
      Default value is "Release".
      Target platform
      text
      Platform
      MSBuild properties
      @(text)
      MSBuildProperties
      Additional properties to pass to MSBuild, formatted as key=value pairs.
      Additional arguments
      text
      Arguments
      Raw command line arguments to pass to MSBuild.
      MSBuild tools path
      text
      MSBuildToolsPath
      Full path of the directory containing the MSBuild tools to use. This is usually similar to C:\Program Files (x86)\MSBuild\14.0\Bin. If no value is supplied, the operation will use vswhere to determine the path to the latest installation of MSBuild. Default value is "$MSBuildToolsPath".
      Target directory
      text
      To
      Value note: "Default".
    • dotnet build - Builds a .NET Core/Framework/Standard project using dotnet build.

      dotnet build

      Builds a .NET Core/Framework/Standard project using dotnet build.

      Script usage:

      DotNet::Build(
      	Project: <text>,
      	[Configuration: <text>],
      	[PackageSource: <text>],
      	[Version: <text>],
      	[Framework: <text>],
      	[Runtime: <text>],
      	[Output: <text>],
      	[VSToolsPath: <text>],
      	[ForceDependencyResolution: <true/false>],
      	[Verbosity: <integer>],
      	[ContinuousIntegrationBuild: <true/false>],
      	[ImageBasedService: <text>],
      	[AdditionalArguments: <text>],
      	[EnsureDotNetInstalled: <text>],
      	[DotNetPath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project path (default)
      text
      Project
      This must be the path to either a project file, solution file, or a directory containing a project or solution file. This argument is required.
      Configuration
      text
      Configuration
      Package source
      text
      PackageSource
      If specified, this NuGet package source will be used to restore packages when building.
      Version
      text
      Version
      Value note: "not set".
      Framework
      text
      Framework
      Runtime
      text
      Runtime
      Output
      text
      Output
      Specifies an output directory for the build.
      VSToolsPath
      text
      VSToolsPath
      Some older .NET applications (especially Framework) may require MSBuild targets included with Visual Studio. Use "embedded" to try resolving these without Visual Studio, "search" to try to find the targets using the Registry, or enter a path like C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0. Value note: "not set".
      Force dependency resolution
      true/false
      ForceDependencyResolution
      Value note: "false".
      Verbosity
      integer
      Verbosity
      Default value is "Minimal".
      CI build
      true/false
      ContinuousIntegrationBuild
      Sets the ContinuousIntegrationBuild MSBuild flag, which is recommended for all official (non-local) builds. Default value is "True".
      ImageBasedService
      text
      ImageBasedService
      Additional arguments
      text
      AdditionalArguments
      Ensure dotnet installed
      text
      EnsureDotNetInstalled
      This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
      dotnet path
      text
      DotNetPath
      Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".

      Example:

      # Build ~\src\MyProject.csproj with Release configuration, restoring NuGet packages from the InternalNuGet source
      DotNet::Build ~\src\MyProject.csproj
      (
          Configuration: Release,
          PackageSource: InternalNuGet
      );
    • dotnet publish - Publishes a .NET Core/Framework/Standard project using dotnet publish.

      dotnet publish

      Publishes a .NET Core/Framework/Standard project using dotnet publish.

      Script usage:

      DotNet::Publish(
      	[SelfContained: <true/false>],
      	Project: <text>,
      	[Configuration: <text>],
      	[PackageSource: <text>],
      	[Version: <text>],
      	[Framework: <text>],
      	[Runtime: <text>],
      	[Output: <text>],
      	[VSToolsPath: <text>],
      	[ForceDependencyResolution: <true/false>],
      	[Verbosity: <integer>],
      	[ContinuousIntegrationBuild: <true/false>],
      	[ImageBasedService: <text>],
      	[AdditionalArguments: <text>],
      	[EnsureDotNetInstalled: <text>],
      	[DotNetPath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Self-contained
      true/false
      SelfContained
      Project path (default)
      text
      Project
      This must be the path to either a project file, solution file, or a directory containing a project or solution file. This argument is required.
      Configuration
      text
      Configuration
      Package source
      text
      PackageSource
      If specified, this NuGet package source will be used to restore packages when building.
      Version
      text
      Version
      Value note: "not set".
      Framework
      text
      Framework
      Runtime
      text
      Runtime
      Output
      text
      Output
      Specifies an output directory for the build.
      VSToolsPath
      text
      VSToolsPath
      Some older .NET applications (especially Framework) may require MSBuild targets included with Visual Studio. Use "embedded" to try resolving these without Visual Studio, "search" to try to find the targets using the Registry, or enter a path like C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0. Value note: "not set".
      Force dependency resolution
      true/false
      ForceDependencyResolution
      Value note: "false".
      Verbosity
      integer
      Verbosity
      Default value is "Minimal".
      CI build
      true/false
      ContinuousIntegrationBuild
      Sets the ContinuousIntegrationBuild MSBuild flag, which is recommended for all official (non-local) builds. Default value is "True".
      ImageBasedService
      text
      ImageBasedService
      Additional arguments
      text
      AdditionalArguments
      Ensure dotnet installed
      text
      EnsureDotNetInstalled
      This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
      dotnet path
      text
      DotNetPath
      Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".

      See also:

      Example:

      # Publish ~\src\MyProject.csproj with Release configuration for .net core 3.1, restoring NuGet packages from the InternalNuGet source
      DotNet::Publish ~\src\MyProject.csproj
      (
          Configuration: Release,
          Framework: netcoreapp3.1,
          Runtime: win-x64,
          PackageSource: InternalNuGet
      );
    • dotnet test - Runs unit tests on a specified test project using the dotnet test command.

      dotnet test

      Runs unit tests on a specified test project using the dotnet test command.

      Script usage:

      DotNet::Test(
      	Project: <text>,
      	[Configuration: <text>],
      	[PackageSource: <text>],
      	[Group: <text>],
      	[Framework: <text>],
      	[AdditionalArguments: <text>],
      	[EnsureDotNetInstalled: <text>],
      	[DotNetPath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project path
      text
      Project
      This must be the path to either a project file, solution file, or a directory containing a project or solution file. This argument is required.
      Configuration
      text
      Configuration
      Package source
      text
      PackageSource
      If specified, this NuGet package source will be used to restore packages when building.
      Test group
      text
      Group
      Value note: "Unit Tests".
      Framework
      text
      Framework
      Additional arguments
      text
      AdditionalArguments
      Ensure dotnet installed
      text
      EnsureDotNetInstalled
      This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
      dotnet path
      text
      DotNetPath
      Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".
    • Ensure AppSetting - Ensures a .NET application configuration file has the specified appSetting key/value pair.

      Ensure AppSetting

      Ensures a .NET application configuration file has the specified appSetting key/value pair.

      Script usage:

      DotNet::Ensure-AppSetting(
      	File: <text>,
      	Key: <text>,
      	Value: <text>,
      	[AppSettingsXPath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Config file path
      text
      File
      The file path of the configuration file, typically web.config or app.config. This argument is required.
      AppSetting key
      text
      Key
      This argument is required.
      AppSetting value
      text
      Value
      This argument is required.
      XPath for appSettings
      text
      AppSettingsXPath
      Value note: "default".

      Note: By default, the "appSettings" section must exist in the file under the "configuration" element in order to ensure the key/value pair is present. Use the AppSettingsXPath argument to select a different element instead.

      Example:

      # ensures that the application is configured to use test mode for the example third-party API
      DotNet::Ensure-AppSetting(
      	File: E:\Website\web.config,
      	Key: Accounts.ThirdParty.PaymentApi,
      	Value: https://test.example.com/api/v3
      );
      
    • Get NuGet Dependencies - Inspects a .NET build project/packages.config to return the required versions of NuGet package dependencies.

      Get NuGet Dependencies

      Inspects a .NET build project/packages.config to return the required versions of NuGet package dependencies.

      Script usage:

      DotNet::Get-Dependencies(
      	[ProjectPath: <text>],
      	[PackageId: <text>],
      	[Dependencies: <RuntimeValue>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project path
      text
      ProjectPath
      Value note: "$WorkingDirectory".
      Package ID
      text
      PackageId
      Value note: "return all packages as a map".
      Dependencies
      RuntimeValue
      Dependencies
      If PackageId is specified, the name of a text variable to receive the package version. If PackageId is not specified, the name of a map variable to received all dependency information.

      Example:

      # Store project dependencies in %depends map
      DotNet::Get-Dependencies
      (
          ProjectPath: ~\Src\MyProject,
          Dependencies => %depends
      );
    • Run dotnet Tool - Runs a dotnet tool, optionally ensuring that it is installed.

      Run dotnet Tool

      Runs a dotnet tool, optionally ensuring that it is installed.

      Script usage:

      DotNet::Tool(
      	Command: <text>,
      	[Arguments: <text>],
      	[Global: <true/false>],
      	[PackageId: <text>],
      	[Version: <text>],
      	[PackageSource: <text>],
      	[AdditionalArguments: <text>],
      	[EnsureDotNetInstalled: <text>],
      	[DotNetPath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Command (default)
      text
      Command
      This argument is required.
      Arguments
      text
      Arguments
      Global tool
      true/false
      Global
      Package ID
      text
      PackageId
      Version
      text
      Version
      Value note: "latest".
      Package source
      text
      PackageSource
      Additional arguments
      text
      AdditionalArguments
      Ensure dotnet installed
      text
      EnsureDotNetInstalled
      This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
      dotnet path
      text
      DotNetPath
      Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".

      Example:

      # Install and run the latest version of dotnetsay locally
      DotNet::Tool dotnetsay
      (
          Arguments: Hello World!,
          PackageId: dotnetsay
      );
    • Set Project Version - Sets the version elements in .NET project files to a specified value.

      Set Project Version

      Sets the version elements in .NET project files to a specified value.

      Script usage:

      DotNet::Set-ProjectVersion(
      	[FromDirectory: <text>],
      	[Include: <@(text)>],
      	[Version: <text>],
      	[AssemblyVersion: <text>],
      	[FileVersion: <text>],
      	[PackageVersion: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      From directory
      text
      FromDirectory
      Value note: "$WorkingDirectory".
      Project files to set
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Default value is "**.csproj".
      Version
      text
      Version
      Default value is "$ReleaseNumber".
      Assembly version
      text
      AssemblyVersion
      Value note: "don't set AssemblyVersion".
      File version
      text
      FileVersion
      Value note: "don't set FileVersion".
      Package version
      text
      PackageVersion
      Value note: "don't set PackageVersion".

      Note: This operation is intended to be used when generating assembly info properties from a .NET project file. To set attributes in AssemblyInfo.cs, use DotNet::WriteAssemblyVersion.

      Example:

      # Build ~\src\MyProject.csproj with Release configuration, restoring NuGet packages from the InternalNuGet source
      DotNet::SetProjectVersion
      (
          Version: $ReleaseNumber,
          AssemblyVersion: $ReleaseNumber.0
          FileVersion: $ReleaseNumber.$BuildNumber
      );
    • Transform config file - Applies a transform to an XML or JSON .NET config file.

      Transform config file

      Applies a transform to an XML or JSON .NET config file.

      Script usage:

      DotNet::Transform-Config(
      	BaseConfig: <text>,
      	TransformConfig: <text>,
      	[Target: <text>],
      	[ConfigType: <integer>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Config file to transform
      text
      BaseConfig
      This argument is required.
      Transform file
      text
      TransformConfig
      This argument is required.
      Target
      text
      Target
      Value note: "overwrite source".
      Config file type
      integer
      ConfigType
      Default value is "Auto".
    • Write Assembly Versions - Updates AssemblyVersion, AssemblyFileVersion, and AssemblyInformationalVersion Attributes (in AssemblyInfo source files).

      Write Assembly Versions

      Updates AssemblyVersion, AssemblyFileVersion, and AssemblyInformationalVersion Attributes (in AssemblyInfo source files).

      Script usage:

      DotNet::Write-AssemblyVersion(
      	[AssemblyVersion: <text>],
      	[FileVersion: <text>],
      	[InformationalVersion: <text>],
      	[FromDirectory: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Assembly version
      text
      AssemblyVersion
      Default value is "$ReleaseNumber.$PackageNumber".
      File version
      text
      FileVersion
      Value note: "same as AssemblyVersion".
      Informational version
      text
      InformationalVersion
      Value note: "same as AssemblyVersion".
      From directory
      text
      FromDirectory
      Value note: "$WorkingDirectory".
      Include
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Default value is "**\AssemblyInfo.cs".
      Exclude
      @(text)
      Exclude

      Note: This operation is intended to be used when assembly version attributes are stored directly in AssemblyInfo.cs. To set these values in the project file instead, use DotNet::SetProjectVersion.

    Files

    • Create Artifact - Collects files in the specified directory, compresses them in a zip file, and saves it to the artifact library.

      Create Artifact

      Collects files in the specified directory, compresses them in a zip file, and saves it to the artifact library.

      Script usage:

      Create-Artifact(
      	[Name: <text>],
      	[From: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[Verbose: <true/false>],
      	[IgnoreEmptyArtifact: <true/false>],
      	[Overwrite: <true/false>],
      	[IncludeSystemFiles: <true/false>],
      	[IncludeHiddenFiles: <true/false>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Artifact name (default)
      text
      Name
      Default value is "Default".
      From directory
      text
      From
      Value note: "$WorkingDirectory".
      Include files
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Default value is "**".
      Exclude files
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Verbose logging
      true/false
      Verbose
      Logs every file added to the artifact, which may be helpful for logging purposes.
      Ignore empty artifact warning
      true/false
      IgnoreEmptyArtifact
      A warning will be logged if no files are captured unless this option is set.
      Overwrite
      true/false
      Overwrite
      Value note: "false".
      Include system files
      true/false
      IncludeSystemFiles
      Value note: "false".
      Include hidden files
      true/false
      IncludeHiddenFiles
      Value note: "false".
    • Deploy Artifact - Retrieves the specified artifact from the artifact library and deploys it to a directory.

      Deploy Artifact

      Retrieves the specified artifact from the artifact library and deploys it to a directory.

      Script usage:

      Deploy-Artifact(
      	[Name: <text>],
      	[To: <text>],
      	[Application: <text>],
      	[Release: <text>],
      	[Build: <text>],
      	[DeployAsZipFile: <text>],
      	[TransferAll: <true/false>],
      	[DoNotClearTarget: <true/false>],
      	[Verbose: <true/false>],
      	[OverwriteReadOnly: <true/false>],
      	[OptimizedFileTransfer: <true/false>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Artifact name (default)
      text
      Name
      Default value is "Default".
      To directory
      text
      To
      Value note: "$WorkingDirectory".
      Application name
      text
      Application
      Value note: "$ApplicationName".
      Release number
      text
      Release
      Value note: "$ReleaseNumber".
      Build number
      text
      Build
      Valid values are specific build numbers, or "furthest" or "latest". Value note: "$BuildNumber".
      Deploy as zip file
      text
      DeployAsZipFile
      When set to "true", the This field is only used when deploying as a zip file.
      Transfer all files
      true/false
      TransferAll
      By default, files will only be transferred if the last modified date or file size has changed. If set to true, all files will be transferred regardless if they have been modified.

      This value should generally be set to false, except when it would take more time to compare the files than simply transferring and overwriting them all (i.e. the artifact contains thousands of small files).
      Do not clear target
      true/false
      DoNotClearTarget
      Verbose logging
      true/false
      Verbose
      Overwrite read-only files
      true/false
      OverwriteReadOnly
      Use optimized file transfer
      true/false
      OptimizedFileTransfer
      Transfers artifact files using a new implementation that increases performance. This feature is still experimental, so verify results before using in production. This option is ignored if TransferAllFiles is true.

      Note: Specifying "latest" as the source package number will attempt to retrieve the artifact from the most recently created build, whereas "furthest" will use the one that has been deployed to the furthest environment in the pipeline.

    • Extract-ZipFile - Extracts a zip file on a server.

      Extract-ZipFile

      Extracts a zip file on a server.

      Script usage:

      Extract-ZipFile(
      	Name: <text>,
      	[Directory: <text>],
      	[ClearTarget: <true/false>],
      	[Overwrite: <true/false>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      File name (default)
      text
      Name
      This argument is required.
      Target directory
      text
      Directory
      Clear target directory
      true/false
      ClearTarget
      Overwrite
      true/false
      Overwrite

      Example:

      # extracts archive.zip in ArchiveContents after deleting the directory contents
      Extract-ZipFile(
          Name: archive.zip,
          Directory: E:\Services\ArchiveContents,
          ClearTarget: true
      );
      
    • Generate Release Notes - Generates an HTML file containing the BuildMaster release notes and/or issues from the application's issue tracking provider.

      Generate Release Notes

      Generates an HTML file containing the BuildMaster release notes and/or issues from the application's issue tracking provider.

      Script usage:

      Generate-ReleaseNotes(
      	Name: <text>,
      	[IncludeReleaseNotes: <true/false>],
      	[IncludeIssueSummary: <true/false>],
      	[IncludeIssueDescriptions: <true/false>],
      	[ClosedIssuesOnly: <true/false>],
      	[CustomCss: <text>],
      	[Overwrite: <true/false>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      File name
      text
      Name
      This argument is required.
      Include release notes
      true/false
      IncludeReleaseNotes
      Default value is "True".
      Include issue summary
      true/false
      IncludeIssueSummary
      Default value is "True".
      Include issue descriptions
      true/false
      IncludeIssueDescriptions
      Default value is "True".
      Closed issues only
      true/false
      ClosedIssuesOnly
      Custom CSS
      text
      CustomCss
      Overwrite
      true/false
      Overwrite

      Example:

      # generates an HTML file containing this application's issues with descriptions along with release notes
      Generate-ReleaseNotes(
          Name: notes.html
      );
      

    Firewall

    • Ensure Firewall Rule - Ensures the existence of a firewall rule on a Windows server.

      Ensure Firewall Rule

      Ensures the existence of a firewall rule on a Windows server.

      Script usage:

      Firewall::Ensure-NetFirewallRule(
      	Name: <text>,
      	Profiles: <text>,
      	Port: <text>,
      	Protocol: <text>,
      	Inbound: <true/false>,
      	Allow: <true/false>,
      	[Exists: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Name
      text
      Name
      This argument is required.
      Profiles
      text
      Profiles
      Specify a comma separated list of profiles: "Public", "Private", and/or "Domain". (ex: "Public, Private"). This argument is required.
      Port or Port Range
      text
      Port
      Specify the port(s) affected by the firewall rule. Ports can be a comma separated list or a port range specified as "start-end" ex: 80-81,443. This argument is required.
      Protocol
      text
      Protocol
      Specify if the protocol is "UDP" or "TCP". This argument is required.
      Inbound
      true/false
      Inbound
      Specify if the connection is Inbound or Outbound. (Default = true). Default value is "True". This argument is required.
      Allow
      true/false
      Allow
      Select if you want to Allow or Block a connection. (Default = true). Default value is "True". This argument is required.
      Exists
      true/false
      Exists
      Default value is "True".

      Example:

      # ensures that TCP ports 80 and 443 are allowed on "Domain" and Private profiles in Window's Firewall
      Firewall::Ensure-NetFirewallRule(
          Name: OtterHttpTCP80443,
          Profiles: "Domain, Private",
          Port: "80,443",
          Protocol: TCP,
          Inbound: true,
          Allow: true
      );
      
      
      # ensures that UDP ports 5000 through 5004 and 5008 are allowed on the "Domain" profile Window's Firewall
      Firewall::Ensure-NetFirewallRule(
          Name: OtterHttpUdpTest,
          Profiles: "Domain",
          Port: "5000-5004,5008",
          Protocol: UDP,
          Inbound: true,
          Allow: true
      );
      
      # ensures that the "OtterHttpTCP80443" Window's Firewall rule is removed
      IIS::Ensure-Site(
          Name: OtterHttpTCP80443,
          Exists: false
      );
      

    General

    • Add-Comment - Adds a comment to a YouTrack issue.

      Add-Comment

      Adds a comment to a YouTrack issue.

      Script usage:

      YouTrack::Add-Comment(
      	[Query: <text>],
      	[Issues: <@(text)>],
      	Comment: <text>,
      	[From: <text>],
      	[Server: <text>],
      	[PermanentToken: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Query
      text
      Query
      The YouTrack issue query. For example, to get open issues for the release currently in context:

      Project: {$ApplicationName} Fix version: $ReleaseNumber State: -Completed

      For more information on filters, see: https://www.jetbrains.com/help/youtrack/standalone/Search-and-Command-Attributes.html.
      Issue IDs
      @(text)
      Issues
      Apply to the issue IDs directly. When this value is specified, "Query" is ignored.
      Comment
      text
      Comment
      This argument is required.
      From project
      text
      From
      YouTrack server URL
      text
      Server
      Not specifying will "Use server URL from resource".
      Permanent token
      text
      PermanentToken
      Not specifying will "Use permanent token from credential".

      Example:

      # Add a comment to issues in the current release of the current project.
      YouTrack::Add-Comment
      (
          Query: Project: {$ApplicationName} Fix version: $ReleaseNumber,
          Comment: Comment added by BuildMaster in build $BuildNumber of release $ReleaseNumber of $ApplicationName.
      );
    • Apply-Template - Applies full template transformation on a literal, a file, or a template asset.

      Apply-Template

      Applies full template transformation on a literal, a file, or a template asset.

      Script usage:

      InedoCore::Apply-Template(
      	[Asset: <text>],
      	[OutputVariable: <text>],
      	[OutputFile: <text>],
      	[Literal: <text>],
      	[InputFile: <text>],
      	[AdditionalVariables: <%(key1: value1, ...)>],
      	[NewLines: <integer>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Asset (default)
      text
      Asset
      Value note: "not using an asset".
      Store to variable
      text
      OutputVariable
      Value note: "do not store in variable".
      Output file
      text
      OutputFile
      Value note: "do not write to file".
      Literal
      text
      Literal
      Variables are not expanded within the contents of this property.
      Input file
      text
      InputFile
      Additional variables
      %(key1: value1, ...)
      AdditionalVariables
      New lines
      integer
      NewLines
      Specifies how to handle new lines in the output. When set to "Auto", it will attempt to match the format to the operating system of the server in context. Setting "Windows" or "Linux" will force newlines to match each format respectively. Setting "None" will pass through all new line characters unmodified. Default value is "Auto".

      Note: When reading from or writing to a file, there must be a valid server context.

      Example:

      # applies the a literal template and stores the result in $text
      Apply-Template
      (
          Literal: >>Hello from $ServerName!
      <% if $IsSimulation { %> This is a simulation run. <% } else { %> This is not a simulation run. <% } %>
      Thanks,
      $MyName
      >>,
          OutputVariable => $text,
          AdditionalVariables: %(MyName: Steve)
      );
      
    • Attach Package - Attaches a package to a build.

      Attach Package

      Attaches a package to a build.

      Script usage:

      Packages::Attach-Package(
      	Name: <text>,
      	[Version: <text>],
      	[Source: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Package name
      text
      Name
      This argument is required.
      Version
      text
      Version
      Value note: "latest".
      Package source
      text
      Source
      Value note: "Default".
    • Build - Runs devenv.exe (Visual Studio) to build the specified project or solution.

      Build

      Runs devenv.exe (Visual Studio) to build the specified project or solution.

      Script usage:

      DevEnv::Build(
      	ProjectFile: <text>,
      	Configuration: <text>,
      	[Arguments: <text>],
      	[DevEnvPath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project file
      text
      ProjectFile
      e.g. ProjectName.csproj or SolutionName.sln". This argument is required.
      Configuration
      text
      Configuration
      Default value is "Release". This argument is required.
      Additional arguments
      text
      Arguments
      Raw command line arguments to pass to devenv.exe.
      devenv.exe path
      text
      DevEnvPath
      Full path to devenv.exe. This is usually similar to C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.exe. If no value is supplied, the operation will use vswhere to determine the path to the latest installation of Visual Studio. Default value is "$DevEnvPath".
    • Build-Image - Builds a Docker image using a Dockerfile template and pushes it to the specified repository.

      Build-Image

      Builds a Docker image using a Dockerfile template and pushes it to the specified repository.

      Script usage:

      Docker::Build-Image(
      	[From: <text>],
      	[Repository: <text>],
      	[Tag: <text>],
      	[Dockerfile: <text>],
      	[DockerfileVariables: <%(key1: value1, ...)>],
      	[RepositoryName: <text>],
      	[DockerfileName: <text>],
      	[AdditionalArguments: <text>],
      	[AttachToBuild: <true/false>],
      	[RemoveAfterPush: <true/false>],
      	[DockerExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      From
      text
      From
      Value note: "$WorkingDirectory".
      Repository
      text
      Repository
      Default value is "$DockerRepository".
      Tag
      text
      Tag
      Default value is "$ReleaseNumber-pre.$BuildNumber".
      Dockerfile template
      text
      Dockerfile
      Addtional template variables values
      %(key1: value1, ...)
      DockerfileVariables
      Value note: "eg. %(name: value, ...)".
      Override repository name
      text
      RepositoryName
      Value note: "Do not override repository".
      Dockerfile name
      text
      DockerfileName
      The name of the Dockerfile to use when building your image; ignored when a Dockerfile template is used. Default value is "Dockerfile".
      Addtional arguments
      text
      AdditionalArguments
      Additional arguments for the docker CLI build command, such as --build-arg=ARG_NAME=value.
      Attach to build
      true/false
      AttachToBuild
      Default value is "True".
      Remove after pushing
      true/false
      RemoveAfterPush
      Docker client path
      text
      DockerExePath
      Default value is "$DockerExePath".
    • Change-IssueStates - Changes the state of YouTrack issues.

      Change-IssueStates

      Changes the state of YouTrack issues.

      Script usage:

      YouTrack::Change-IssueStates(
      	[Query: <text>],
      	[Issues: <@(text)>],
      	State: <text>,
      	[Comment: <text>],
      	[IssueStatusFieldName: <text>],
      	[From: <text>],
      	[Server: <text>],
      	[PermanentToken: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Query
      text
      Query
      The YouTrack issue query. For example, to get open issues for the release currently in context:

      Project: {$ApplicationName} Fix version: $ReleaseNumber State: -Completed

      For more information on filters, see: https://www.jetbrains.com/help/youtrack/standalone/Search-and-Command-Attributes.html.
      Issue IDs
      @(text)
      Issues
      Apply to the issue IDs directly. When this value is specified, "Query" is ignored.
      State
      text
      State
      This argument is required.
      Comment
      text
      Comment
      Value note: "none".
      Issue status custom field
      text
      IssueStatusFieldName
      Default value is "$YouTrackStatusFieldName".
      From project
      text
      From
      YouTrack server URL
      text
      Server
      Not specifying will "Use server URL from resource".
      Permanent token
      text
      PermanentToken
      Not specifying will "Use permanent token from credential".

      Example:

      # Change the state of all issues in the application's project with 'Fix version' = $ReleaseNumber to Completed.
      YouTrack::ChangeIssueStates
      (
          Query: Project: {$ApplicationName} Fix version: $ReleaseNumber,
          State: Completed
      );
    • Checkout-Code - Gets source code from a branch or commit on a git repository.

      Checkout-Code

      Gets source code from a branch or commit on a git repository.

      Script usage:

      Git::Checkout-Code(
      	[BranchOrCommit: <text>],
      	[To: <text>],
      	[RecurseSubmodules: <true/false>],
      	[CommitHash: <text>],
      	[PreserveLastModified: <true/false>],
      	[WriteMinimalGitData: <true/false>],
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[RepositoryUrl: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Commit or branch
      text
      BranchOrCommit
      Default value is "$Commit".
      To
      text
      To
      Default value is "$WorkingDirectory".
      Recurse submodules
      true/false
      RecurseSubmodules
      Default value is "True".
      Commit hash
      text
      CommitHash
      The full SHA1 hash resolved commit will be stored in this variable. This is useful when you specify a branch for the BranchOrCommit property.
      Preserve Last Modified Date
      true/false
      PreserveLastModified
      By default, Git will not set the Last Modified date of files when checking out. Selecting this option may take additional time, depending on the number of files in the repository.
      Write minimal git data
      true/false
      WriteMinimalGitData
      Writes minimal information to the .git directory in the output directory which contains the head commit and the origin url.
      Repository connection
      text
      From
      Default value is "$Repository".
      User name
      text
      UserName
      Value note: "Username from repository connection".
      Password
      text
      Password
      Value note: "Password from repository connection".
      Repository URL
      text
      RepositoryUrl
      Value note: "Repository URL from repository connection".
    • Close-Issue - Closes an issue on GitHub.

      Close-Issue

      Closes an issue on GitHub.

      Script usage:

      GitHub::Close-Issue(
      	Number: <integer>,
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Organization: <text>],
      	[Repository: <text>],
      	[ApiUrl: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Issue number
      integer
      Number
      This argument is required.
      From GitHub resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitHub resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitHub resource's credentials".
      Organization name
      text
      Organization
      Not specifying will "Use organization from Github resource".
      Repository name
      text
      Repository
      Not specifying will "Use repository from Github resource".
      API URL
      text
      ApiUrl
      Use URL from Github resource. Value note: "https://api.github.com".
    • Close-Issue - Closes an issue on GitLab.

      Close-Issue

      Closes an issue on GitLab.

      Script usage:

      GitLab::Close-Issue(
      	IssueId: <integer>,
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Namespace: <text>],
      	[Project: <text>],
      	[ApiUrl: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Issue ID
      integer
      IssueId
      This argument is required.
      From GitLab resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitLab resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitLab resource's credentials".
      Namespace
      text
      Namespace
      Not specifying will "Use namespace from GitLab resource".
      Project name
      text
      Project
      Not specifying will "Use project from GitLab resource".
      API URL
      text
      ApiUrl
      Not specifying will "Use URL from GitLab resource".
    • Concatenate-Files - Concatenates files on a server.

      Concatenate-Files

      Concatenates files on a server.

      Script usage:

      Concatenate-Files(
      	File: <text>,
      	[Directory: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[Encoding: <text>],
      	[Separator: <text>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Output file
      text
      File
      This argument is required.
      Directory
      text
      Directory
      Value note: "$WorkingDirectory".
      Include
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)".
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Encoding
      text
      Encoding
      Value note: "utf8".
      Separator
      text
      Separator

      Example:

      # concatenates all SQL files in the working directory into a 
      # single file, each script separated by a GO statement
      Concatenate-Files(
          File: all.sql,
          Include: *.sql,
          Separator: >>
      GO
      >>
      );
      
    • Copy-Files - Copies files on a server.

      Copy-Files

      Copies files on a server.

      Script usage:

      Copy-Files(
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[From: <text>],
      	To: <text>,
      	[Verbose: <true/false>],
      	[Overwrite: <true/false>],
      	[RenameFrom: <text>],
      	[RenameTo: <text>],
      	[RenameRegex: <true/false>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Include
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)".
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Source directory
      text
      From
      Value note: "$WorkingDirectory".
      Target directory
      text
      To
      This argument is required.
      Verbose
      true/false
      Verbose
      Overwrite target files
      true/false
      Overwrite
      Rename from
      text
      RenameFrom
      Rename to
      text
      RenameTo
      Use regular expression
      true/false
      RenameRegex
      Default value is "False".

      Example:

      # copy all files and all subdirectories beneath it to the target,
      # and log each individual file that is copied, and overwrite any files
      Copy-Files(
          From: E:\Source,
          To: F:\Target,
          Include: **,
          Verbose: true,
          Overwrite: true
      );
      
    • Create-Directory - Ensures that a subdirectory exists in a ProGet Asset Directory.

      Create-Directory

      Ensures that a subdirectory exists in a ProGet Asset Directory.

      Script usage:

      ProGet::Create-Directory(
      	Path: <text>,
      	[Source: <text>],
      	[Resource: <text>],
      	[EndpointUrl: <text>],
      	[ApiKey: <text>],
      	[UserName: <text>],
      	[Password: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Path (default)
      text
      Path
      This argument is required.
      Source
      text
      Source
      Secure resource (legacy)
      text
      Resource
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from secure resource".
      API key
      text
      ApiKey
      Not specifying will "Use token from secure credentials".
      User name
      text
      UserName
      Not specifying will "Use user name from secure credentials".
      Password
      text
      Password
      Not specifying will "Use password from secure credentials".

      Example:

      # ensures that the my/folder/path directory exists in the ProGet Asset Directory specified by the MyAssetDirResource secure resource
      ProGet::Create-Directory my/folder/path
      (
          Resource: MyAssetDirResource
      );
      
    • Create-File - Creates a file on a server.

      Create-File

      Creates a file on a server.

      Script usage:

      Create-File(
      	Name: <text>,
      	[Text: <text>],
      	[Overwrite: <true/false>],
      	[FileMode: <text>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      File name (default)
      text
      Name
      The path of the file to create. This argument is required.
      Text
      text
      Text
      Overwrite
      true/false
      Overwrite
      File mode
      text
      FileMode
      The octal file mode for the file. This value is ignored on Windows. Default value is "644".

      Example:

      # write the name of the current working directory to my desktop
      Create-File(
          Name: C:\Users\atripp\Desktop\workingdir.txt,
          Text: $WorkingDirectory
      );
      
    • Create-Issue - Creates an issue on a GitHub repository.

      Create-Issue

      Creates an issue on a GitHub repository.

      Script usage:

      GitHub::Create-Issue(
      	Title: <text>,
      	[Body: <text>],
      	[Labels: <@(text)>],
      	[Assignees: <@(text)>],
      	[Milestone: <text>],
      	[Number: <integer>],
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Organization: <text>],
      	[Repository: <text>],
      	[ApiUrl: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Title
      text
      Title
      This argument is required.
      Body
      text
      Body
      Labels
      @(text)
      Labels
      Assignees
      @(text)
      Assignees
      Milestone
      text
      Milestone
      Issue number
      integer
      Number
      From GitHub resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitHub resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitHub resource's credentials".
      Organization name
      text
      Organization
      Not specifying will "Use organization from Github resource".
      Repository name
      text
      Repository
      Not specifying will "Use repository from Github resource".
      API URL
      text
      ApiUrl
      Use URL from Github resource. Value note: "https://api.github.com".
    • Create-Issue - Creates an issue on a GitLab project.

      Create-Issue

      Creates an issue on a GitLab project.

      Script usage:

      GitLab::Create-Issue(
      	Title: <text>,
      	[Description: <text>],
      	[Labels: <@(text)>],
      	[Assignees: <@(text)>],
      	[Milestone: <text>],
      	[AdditionalProperties: <%(key1: value1, ...)>],
      	[IssueId: <text>],
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Namespace: <text>],
      	[Project: <text>],
      	[ApiUrl: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Title
      text
      Title
      This argument is required.
      Description
      text
      Description
      Labels
      @(text)
      Labels
      Assignees
      @(text)
      Assignees
      Milestone
      text
      Milestone
      Additional properties
      %(key1: value1, ...)
      AdditionalProperties
      Issue ID
      text
      IssueId
      From GitLab resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitLab resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitLab resource's credentials".
      Namespace
      text
      Namespace
      Not specifying will "Use namespace from GitLab resource".
      Project name
      text
      Project
      Not specifying will "Use project from GitLab resource".
      API URL
      text
      ApiUrl
      Not specifying will "Use URL from GitLab resource".
    • Create-Issue - Creates an issue in Jira.

      Create-Issue

      Creates an issue in Jira.

      Script usage:

      Jira::Create-Issue(
      	Title: <text>,
      	Type: <text>,
      	[Description: <text>],
      	[FixFor: <text>],
      	[JiraIssueId: <text>],
      	[From: <text>],
      	[Project: <text>],
      	[Server: <text>],
      	[UserName: <text>],
      	[ApiToken: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Title
      text
      Title
      This argument is required.
      Type
      text
      Type
      This argument is required.
      Description
      text
      Description
      Fix for version
      text
      FixFor
      Default value is "$ReleaseNumber".
      Set issue ID to a variable
      text
      JiraIssueId
      The JIRA issue ID can be output into a runtime variable. e.g. $JiraIssueId".
      From project
      text
      From
      Project name
      text
      Project
      Not specifying will "Use project specified in connection".
      Server
      text
      Server
      Not specifying will "Use server URL from resource".
      UserName
      text
      UserName
      Not specifying will "Use user name from resource's credentials".
      API Token
      text
      ApiToken
      Not specifying will "Use API Token from resource's credentials".

      Example:

      # create issue for the HDARS project notifying QA that testing is required
      Create-Issue(
          From: Jira7Local,
          Title: QA Testing Required for $ApplicationName,
          Description: This issue was created by BuildMaster on $Date,
          Type: ReadyForQA,
          JiraIssueId => $JiraIssueId
      );
      
      Log-Information "Issue '$JiraIssueId' was created in JIRA.";
      
    • Create-Issue - Creates a new issue in YouTrack.

      Create-Issue

      Creates a new issue in YouTrack.

      Script usage:

      YouTrack::Create-Issue(
      	[Project: <text>],
      	Summary: <text>,
      	[Description: <text>],
      	[IssueId: <text>],
      	[From: <text>],
      	[Server: <text>],
      	[PermanentToken: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project
      text
      Project
      Not specifying will "Use project specified in connection".
      Summary
      text
      Summary
      This argument is required.
      Description
      text
      Description
      Issue ID
      text
      IssueId
      Value note: "ex: $issueId".
      From project
      text
      From
      YouTrack server URL
      text
      Server
      Not specifying will "Use server URL from resource".
      Permanent token
      text
      PermanentToken
      Not specifying will "Use permanent token from credential".

      Example:

      # Creates an example issue in the $ApplicationName YouTrack project and stores its issue ID in the $issueId variable.
      YouTrack::Create-Issue
      (
          Project: $ApplicationName,
          Summary: Example issue,
          Description: >>This issue was created by BuildMaster.
      It is just an example.>>,
          IssueId => $issueId
      );
      
      # Write the issue ID to the execution log.
      Log-Information Created issue $issueId in YouTrack.;
    • Create-IssueComment - Adds a comment to an issue on GitHub.

      Create-IssueComment

      Adds a comment to an issue on GitHub.

      Script usage:

      GitHub::Create-IssueComment(
      	Number: <integer>,
      	Body: <text>,
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Organization: <text>],
      	[Repository: <text>],
      	[ApiUrl: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Issue number
      integer
      Number
      This argument is required.
      Body
      text
      Body
      This argument is required.
      From GitHub resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitHub resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitHub resource's credentials".
      Organization name
      text
      Organization
      Not specifying will "Use organization from Github resource".
      Repository name
      text
      Repository
      Not specifying will "Use repository from Github resource".
      API URL
      text
      ApiUrl
      Use URL from Github resource. Value note: "https://api.github.com".
    • Create-IssueNote - Adds a note to an issue on GitLab.

      Create-IssueNote

      Adds a note to an issue on GitLab.

      Script usage:

      GitLab::Create-IssueNote(
      	IssueId: <integer>,
      	Body: <text>,
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Namespace: <text>],
      	[Project: <text>],
      	[ApiUrl: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Issue ID
      integer
      IssueId
      This argument is required.
      Body
      text
      Body
      This argument is required.
      From GitLab resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitLab resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitLab resource's credentials".
      Namespace
      text
      Namespace
      Not specifying will "Use namespace from GitLab resource".
      Project name
      text
      Project
      Not specifying will "Use project from GitLab resource".
      API URL
      text
      ApiUrl
      Not specifying will "Use URL from GitLab resource".
    • Create-Package - Creates a universal package from the specified directory and publishes to a feed.

      Create-Package

      Creates a universal package from the specified directory and publishes to a feed.

      Script usage:

      ProGet::Create-Package(
      	Name: <text>,
      	Version: <text>,
      	[From: <text>],
      	[PushTo: <text>],
      	[To: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[Metadata: <%(key1: value1, ...)>],
      	[Overwrite: <true/false>],
      	[Feed: <text>],
      	[EndpointUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[ApiKey: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Package name
      text
      Name
      This argument is required.
      Package version
      text
      Version
      This argument is required.
      Source directory
      text
      From
      Value note: "$WorkingDirectory".
      To package source
      text
      PushTo
      Package file name
      text
      To
      This may either be a file name or a directory. If the value ends with .upack, then this is treated as a file name. Otherwise, it is treated as an output directory into which the package file will be written. Value note: "<Name>-<Version>.upack".
      Include files
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Value note: "** (all items in directory)".
      Exclude files
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax. Value note: "include all files".
      Additional metadata
      %(key1: value1, ...)
      Metadata
      Additional properties may be specified using map syntax. For example: %(description: my package description).
      Overwrite existing package
      true/false
      Overwrite
      Feed name
      text
      Feed
      Not specifying will "Use Feed from package source".
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from package source".
      ProGet user name
      text
      UserName
      The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
      ProGet password
      text
      Password
      The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
      ProGet API Key
      text
      ApiKey
      An API Key that can access this feed. Not specifying will "Use API Key from package source".

      Example:

      ProGet::Create-Package
      (
          Name: MyAppPackage,
          Version: 3.4.2,
      
          From: $WorkingDirectory,
          PushTo: MyPackageSource
      );
      
    • Create-WorkItem - Creates a work item in Azure DevOps.

      Create-WorkItem

      Creates a work item in Azure DevOps.

      Script usage:

      AzureDevOps::Create-WorkItem(
      	Type: <text>,
      	Title: <text>,
      	[Description: <text>],
      	[IterationPath: <text>],
      	[WorkItemId: <text>],
      	From: <text>,
      	[Project: <text>],
      	[Repository: <text>],
      	[Url: <text>],
      	[UserName: <text>],
      	[Token: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Work item type
      text
      Type
      This argument is required.
      Title
      text
      Title
      This argument is required.
      Description
      text
      Description
      Iteration path
      text
      IterationPath
      Set work item ID to variable
      text
      WorkItemId
      The Azure DevOps work item ID can be output into a runtime variable. e.g. $WorkItemId".
      From AzureDevOps resource
      text
      From
      This argument is required.
      Project name
      text
      Project
      Not specifying will "Use team project from AzureDevOps resource".
      Repository name
      text
      Repository
      Not specifying will "Use the project name".
      Project collection URL
      text
      Url
      Not specifying will "Use team project from AzureDevOps resource".
      User name
      text
      UserName
      Not specifying will "Use user name from AzureDevOps resource's credentials".
      Personal access token
      text
      Token
      Not specifying will "Use team project from AzureDevOps resource's credential".

      Example:

      # create issue for the HDARS project
      Create-WorkItem
      (
          Credentials: KarlAzure,
          Project: HDARS,
          Type: Task,
          Title: QA Testing Required for $ApplicationName,
          Description: This issue was created by BuildMaster on $Date
      );
      
    • Create-ZipFile - Creates a zip file on a server.

      Create-ZipFile

      Creates a zip file on a server.

      Script usage:

      Create-ZipFile(
      	Name: <text>,
      	Directory: <text>,
      	[Overwrite: <true/false>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Zip file name
      text
      Name
      This argument is required.
      Source directory
      text
      Directory
      This argument is required.
      Overwrite
      true/false
      Overwrite

      Example:

      # zip all log files and place them in the backup directory
      Create-ZipFile(
          Name: E:\backup\logs.$Date("yyyyMMdd-hhmmss").zip,
          Directory: E:\site\logs
      );
      
    • Delete-Files - Deletes files on a server.

      Delete-Files

      Deletes files on a server.

      Script usage:

      Delete-Files(
      	Include: <@(text)>,
      	[Exclude: <@(text)>],
      	[Directory: <text>],
      	[Verbose: <true/false>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Include (default)
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)". This argument is required.
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Directory
      text
      Directory
      Verbose
      true/false
      Verbose

      Note: This operation will delete files one-by-one. To clear large directories, a PowerShell script may be more performant.

      Example:

      # delete all .config files in the working directory except web.config
      Delete-Files(
          Include: *.config,
          Exlude: web.config
      );
      
    • Docker-Exec - Attaches and runs a command in an already running container

      Docker-Exec

      Attaches and runs a command in an already running container

      Script usage:

      Docker::Docker-Exec(
      	[ContainerName: <text>],
      	Command: <text>,
      	[WorkDir: <text>],
      	[Interactive: <true/false>],
      	[RunInBackground: <true/false>],
      	[AdditionalArguments: <text>],
      	[DockerExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Container name
      text
      ContainerName
      Default value is "default (based on $DockerRepository)".
      Command
      text
      Command
      Value note: "eg. sh -c "echo a && echo b"". This argument is required.
      Working directory in container
      text
      WorkDir
      Log output (interactive)
      true/false
      Interactive
      Keep STDIN open even if not attached. Default value is "True".
      Run in background (detach)
      true/false
      RunInBackground
      Detached mode: run command in the background. Default value is "False".
      Addtional arguments
      text
      AdditionalArguments
      Additional arguments for the docker CLI exec command, such as --env key=value.
      Docker client path
      text
      DockerExePath
      Default value is "$DockerExePath".
    • Download-Artifact - Downloads a build artifact from Azure DevOps.

      Download-Artifact

      Downloads a build artifact from Azure DevOps.

      Script usage:

      AzureDevOps::Download-Artifact(
      	BuildDefinition: <text>,
      	[BuildNumber: <text>],
      	ArtifactName: <text>,
      	[AzureDevOpsBuildNumber: <text>],
      	[TargetDirectory: <text>],
      	[ExtractFiles: <true/false>],
      	[Project: <text>],
      	[Repository: <text>],
      	[Url: <text>],
      	[UserName: <text>],
      	[Token: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Build definition
      text
      BuildDefinition
      This argument is required.
      Build number
      text
      BuildNumber
      Value note: "latest".
      Artifact name
      text
      ArtifactName
      This argument is required.
      Set build number to variable
      text
      AzureDevOpsBuildNumber
      The Azure DevOps build number can be output into a runtime variable. e.g. $AzureDevOpsBuildNumber".
      Target directory
      text
      TargetDirectory
      Value note: "$WorkingDirectory".
      Extract files
      true/false
      ExtractFiles
      Default value is "True".
      Project name
      text
      Project
      Not specifying will "Use team project from AzureDevOps resource".
      Repository name
      text
      Repository
      Not specifying will "Use the project name".
      Project collection URL
      text
      Url
      Not specifying will "Use team project from AzureDevOps resource".
      User name
      text
      UserName
      Not specifying will "Use user name from AzureDevOps resource's credentials".
      Personal access token
      text
      Token
      Not specifying will "Use team project from AzureDevOps resource's credential".
    • Download-Artifacts - Downloads artifact files from a Jenkins build to the specified directory. Note this will not save them in BuildMaster's artifacts.

      Download-Artifacts

      Downloads artifact files from a Jenkins build to the specified directory. Note this will not save them in BuildMaster's artifacts.

      Script usage:

      Jenkins::Download-Artifacts(
      	[From: <text>],
      	[Project: <text>],
      	[Branch: <text>],
      	[BuildNumber: <text>],
      	[To: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[JenkinsBuildNumber: <text>],
      	[Credentials: <text>],
      	[Server: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[CsrfProtectionEnabled: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Jenkins resource
      text
      From
      Default value is "$CIProject".
      Project name
      text
      Project
      Default value is "$JenkinsProjectName($CIProject)".
      Branch name
      text
      Branch
      The branch name is required for a Jenkins multi-branch project, otherwise should be left empty. Default value is "$JenkinsBranchName($CIBuild)".
      Build number
      text
      BuildNumber
      The build number may be a specific build number, or a special value such as "lastSuccessfulBuild", "lastStableBuild", "lastBuild", or "lastCompletedBuild". Default value is "$JenkinsBuildNumber($CIBuild)".
      Target directory
      text
      To
      Default value is "$WorkingDirectory".
      Include files
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Default value is "**".
      Exclude files
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Actual build number (output)
      text
      JenkinsBuildNumber
      When you specify a Build Number like "lastBuild", this will output the real Jenkins BuildNumber into a runtime variable. e.g. $ActualBuildNumber".
      Jenkins service name
      text
      Credentials
      Not specifying will "Use name from Jenkins resource".
      Server URL
      text
      Server
      Not specifying will "Use service's server URL".
      User name
      text
      UserName
      Not specifying will "Use credential's Username".
      API token or password
      text
      Password
      Not specifying will "Use credential's token/password".
      Use CSRF token
      true/false
      CsrfProtectionEnabled
      Default value is "True".
    • Download-Asset - Downloads a file from a ProGet Asset Directory.

      Download-Asset

      Downloads a file from a ProGet Asset Directory.

      Script usage:

      ProGet::Download-Asset(
      	From: <text>,
      	[To: <text>],
      	[ProxyData: <true/false>],
      	[Source: <text>],
      	[Resource: <text>],
      	[EndpointUrl: <text>],
      	[ApiKey: <text>],
      	[UserName: <text>],
      	[Password: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      From (default)
      text
      From
      This argument is required.
      To
      text
      To
      Proxy data through BuildMaster/Otter
      true/false
      ProxyData
      When true, requests will be made from the BuildMaster/Otter server instead of directly from the server in context.
      Source
      text
      Source
      Secure resource (legacy)
      text
      Resource
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from secure resource".
      API key
      text
      ApiKey
      Not specifying will "Use token from secure credentials".
      User name
      text
      UserName
      Not specifying will "Use user name from secure credentials".
      Password
      text
      Password
      Not specifying will "Use password from secure credentials".

      Example:

      # download dir/info.txt to the current working directory from the MyAssetDirResource asset directory
      ProGet::Download-Asset
      (
          From: dir/info.txt,
          To: $WorkingDirectory,
          Resource: MyAssetDirResource
      );
      
    • Download-Http - Downloads a file from a specified URL using an HTTP GET.

      Download-Http

      Downloads a file from a specified URL using an HTTP GET.

      Script usage:

      Download-Http(
      	FileName: <text>,
      	Url: <text>,
      	[LogResponseBody: <true/false>],
      	[ErrorStatusCodes: <text>],
      	[ResponseBody: <text>],
      	[RequestHeaders: <%(key1: value1, ...)>],
      	[MaxResponseLength: <integer>],
      	[ProxyRequest: <true/false>],
      	[Credentials: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[IgnoreSslErrors: <true/false>]
      );
      
      

      This operation may be prefixed with HTTP::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      File name
      text
      FileName
      The destination path for the downloaded file. This argument is required.
      URL (default)
      text
      Url
      This argument is required.
      Log response body
      true/false
      LogResponseBody
      Error status codes
      text
      ErrorStatusCodes
      Comma-separated status codes (or ranges in the form of start:end) that should indicate this action has failed. For example, a value of "401,500:599" will fail on all server errors and also when "HTTP Unauthorized" is returned. The default is 400:599. Value note: "400:599".
      Store response as
      text
      ResponseBody
      Value note: "Do not store response body as variable".
      Request headers
      %(key1: value1, ...)
      RequestHeaders
      Max response length
      integer
      MaxResponseLength
      Default value is "1000".
      Use server in context
      true/false
      ProxyRequest
      When selected, this will proxy the HTTP calls through the server is in context instead of using the server Otter or BuildMaster is installed on. Default value is "True".
      Credentials
      text
      Credentials
      User name
      text
      UserName
      Not specifying will "Use user name from credential".
      Password
      text
      Password
      Not specifying will "Use password from credential".
      Ignore SSL Errors
      true/false
      IgnoreSslErrors
      Default value is "False".

      Example:

      # downloads a file from example.org service endpoint
      Download-Http http://example.org/upload-service/v3/hdars (
          To: ReleaseNotes.xml
      );
      
    • Ensure-Directory - Ensures the existence of a directory on a server.

      Ensure-Directory

      Ensures the existence of a directory on a server.

      Script usage:

      Ensure-Directory(
      	Name: <text>,
      	[Exists: <true/false>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name
      text
      Name
      This argument is required.
      Exists
      true/false
      Exists
      Default value is "True".

      Example:

      # ensures the Logs directory for the website exists and that it's writable
      Ensure-Directory(
          Name: E:\Website\Logs,
          ReadOnly: false
      );
      
    • Ensure-File - Ensures the existence of a file on a server.

      Ensure-File

      Ensures the existence of a file on a server.

      Script usage:

      Ensure-File(
      	[Text: <text>],
      	[ReadOnly: <true/false>],
      	Name: <text>,
      	[Attributes: <integer>],
      	[Exists: <true/false>],
      	[Modified: <DateTime>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Text contents
      text
      Text
      The contents of the file. A missing or empty value indicates the file should be a 0-byte file.
      Read Only
      true/false
      ReadOnly
      Indicates that the file should be marked with the read-only attribute. Note that when this value is set, it is applied after the FileAttributes value, which will override the readonly flag specified in that property.
      Name
      text
      Name
      The name or path of the file or directory. This argument is required.
      Attributes
      integer
      Attributes
      The attributes for the file or directory. These may be entered as an integer flag or by name. Common values are ReadOnly=1, Hidden=2, System=4, Archive=32, and Normal=128. Integral values may be ORed together to specify any combination of attributes, except for "Normal (128)", which may only be used alone.
      Exists
      true/false
      Exists
      Default value is "True".
      Last write time
      DateTime
      Modified
      The last write time (UTC) of the file or directory.

      Example:

      # ensures the otter.txt file exists on the server and is marked readonly
      Ensure-File(
          Name: E:\Docs\otter.txt,
          Text: >>
      Otter is a common name for a carnivorous mammal in the subfamily Lutrinae. 
      Help, I'm trapped in an Otter documentation factory! The 13 extant otter species are all semiaquatic, 
      aquatic or marine, with diets based on fish and invertebrates.
      >>,
          ReadOnly: true
      );
      
    • Ensure-HostsEntry - Ensures an entry in the hosts file on a server.

      Ensure-HostsEntry

      Ensures an entry in the hosts file on a server.

      Script usage:

      Ensure-HostsEntry(
      	Host: <text>,
      	IP: <text>,
      	[Exists: <true/false>]
      );
      
      

      This operation may be prefixed with Network::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Host name
      text
      Host
      This argument is required.
      IP address
      text
      IP
      This argument is required.
      Exists
      true/false
      Exists
      Default value is "True".

      Example:

      # bind otter.localhost to local ip
      Ensure-HostsEntry otter.localhost (IP: 127.0.0.1);
      
      # override hdars.com to a local address
      Ensure-HostsEntry (
        Host: hdars.com
        IP: 192.168.10.0);
      
    • Ensure-Metadata - Ensures that metadata exists on an Asset Directory item.

      Ensure-Metadata

      Ensures that metadata exists on an Asset Directory item.

      Script usage:

      ProGet::Ensure-Metadata(
      	Path: <text>,
      	[Metadata: <%(key1: value1, ...)>],
      	[Source: <text>],
      	[Resource: <text>],
      	[EndpointUrl: <text>],
      	[ApiKey: <text>],
      	[UserName: <text>],
      	[Password: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Path
      text
      Path
      This argument is required.
      Metadata
      %(key1: value1, ...)
      Metadata
      Source
      text
      Source
      Secure resource (legacy)
      text
      Resource
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from secure resource".
      API key
      text
      ApiKey
      Not specifying will "Use token from secure credentials".
      User name
      text
      UserName
      Not specifying will "Use user name from secure credentials".
      Password
      text
      Password
      Not specifying will "Use password from secure credentials".

      Example:

      # ensures that the my/folder/path directory exists in the ProGet Asset Directory specified by the MyAssetDirResource secure resource
      ProGet::Ensure-Metadata
      (
          Path: assetitem.html,
          Metadata: %(CreatedFor: $ApplicationName, Release: $ReleaseNumber),
          Resource: MyAssetDirResource
      );
      
    • Ensure-Milestone - Ensures a GitHub milestone exists with the specified properties.

      Ensure-Milestone

      Ensures a GitHub milestone exists with the specified properties.

      Script usage:

      GitHub::Ensure-Milestone(
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Organization: <text>],
      	[Repository: <text>],
      	[ApiUrl: <text>],
      	Title: <text>,
      	[DueDate: <text>],
      	[Description: <text>],
      	[State: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      From GitHub resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitHub resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitHub resource's credentials".
      Organization name
      text
      Organization
      Not specifying will "Use organization from Github resource".
      Repository name
      text
      Repository
      Not specifying will "Use repository from Github resource".
      API URL
      text
      ApiUrl
      Not specifying will "Use URL from Github resource.".
      Title
      text
      Title
      This argument is required.
      Due date
      text
      DueDate
      Description
      text
      Description
      State
      text
      State
    • Ensure-Milestone - Ensures a GitLab milestone exists with the specified properties.

      Ensure-Milestone

      Ensures a GitLab milestone exists with the specified properties.

      Script usage:

      GitLab::Ensure-Milestone(
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Namespace: <text>],
      	[Project: <text>],
      	[ApiUrl: <text>],
      	Title: <text>,
      	[StartDate: <text>],
      	[DueDate: <text>],
      	[Description: <text>],
      	[State: <integer>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      From GitLab resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitLab resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitLab resource's credentials".
      Namespace
      text
      Namespace
      Not specifying will "Use namespace from GitLab resource".
      Project name
      text
      Project
      Not specifying will "Use project from GitLab resource".
      API URL
      text
      ApiUrl
      Not specifying will "Use URL from GitLab resource".
      Title
      text
      Title
      This argument is required.
      Start date
      text
      StartDate
      Due date
      text
      DueDate
      Description
      text
      Description
      State
      integer
      State
    • Ensure-Package - Ensures that the specified universal package is installed in the specified directory.

      Ensure-Package

      Ensures that the specified universal package is installed in the specified directory.

      Script usage:

      ProGet::Ensure-Package(
      	[PackageSource: <text>],
      	Name: <text>,
      	[Version: <text>],
      	[To: <text>],
      	[Exists: <true/false>],
      	[LocalRegistry: <integer>],
      	[LocalCache: <true/false>],
      	[FileCompare: <integer>],
      	[Ignore: <@(text)>],
      	[DirectDownload: <true/false>],
      	[Feed: <text>],
      	[EndpointUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[ApiKey: <text>],
      	[FeedUrl: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Package source
      text
      PackageSource
      Package name
      text
      Name
      This argument is required.
      Package version
      text
      Version
      Default value is "latest".
      Target directory
      text
      To
      The directory path on disk of the package contents. Default value is "$WorkingDirectory".
      Exists
      true/false
      Exists
      Default value is "True".
      Use Local Registry
      integer
      LocalRegistry
      Default value is "Machine".
      LocalCache
      true/false
      LocalCache
      Cache Package. Default value is "False".
      Compare files
      integer
      FileCompare
      Default value is "FileSize".
      Ignore
      @(text)
      Ignore
      See KB#1119 to learn more about masking syntax. Value note: "compare all files".
      Direct download
      true/false
      DirectDownload
      Set this to value to false if your remote server doesn't have direct access to the ProGet feed. Default value is "True".
      Feed name
      text
      Feed
      Not specifying will "Use Feed from package source".
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from package source".
      ProGet user name
      text
      UserName
      The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
      ProGet password
      text
      Password
      The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
      ProGet API Key
      text
      ApiKey
      An API Key that can access this feed. Not specifying will "Use API Key from package source".
      FeedUrl
      text
      FeedUrl

      Note: To determine if a package is installed, the local package registry and package files are both checked. You can control these with LocalRegistry and FileCompare options.

      Example:

      #Ensure that FooBarApp is Installed
      ProGet::Ensure-Package
      (
          From: MyPackageSource,
          Name: FooBarApp,
          Version: $FooBarVersion,
          To: D:\WebApps\FooBar.App,
          Ignore: web.config
      );
    • Ensure-Release - Creates or updates a tagged release in a GitHub repository.

      Ensure-Release

      Creates or updates a tagged release in a GitHub repository.

      Script usage:

      GitHub::Ensure-Release(
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Organization: <text>],
      	[Repository: <text>],
      	[ApiUrl: <text>],
      	Tag: <text>,
      	[Target: <text>],
      	[Title: <text>],
      	[Description: <text>],
      	[Draft: <true/false>],
      	[Prerelease: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      From GitHub resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitHub resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitHub resource's credentials".
      Organization name
      text
      Organization
      Not specifying will "Use organization from Github resource".
      Repository name
      text
      Repository
      Not specifying will "Use repository from Github resource".
      API URL
      text
      ApiUrl
      Not specifying will "Use URL from Github resource.".
      Tag name
      text
      Tag
      This argument is required.
      Target commit
      text
      Target
      May be specified as a branch name, a commit hash, or left blank for the latest commit on the default branch (usually master).
      Title
      text
      Title
      If left blank, the tag name will be used for new releases and existing releases will keep their original title. Value note: "(keep existing)".
      Description
      text
      Description
      Release notes, formatted as Markdown. Leave blank to keep the existing release notes. Value note: "(keep existing)".
      Is draft
      true/false
      Draft
      Value note: "(keep existing)".
      Is prerelease
      true/false
      Prerelease
      Value note: "(keep existing)".
    • Ensure-Tag - Creates and pushes a tag to a git repository.

      Ensure-Tag

      Creates and pushes a tag to a git repository.

      Script usage:

      Git::Ensure-Tag(
      	Tag: <text>,
      	[Commit: <text>],
      	[Force: <true/false>],
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[RepositoryUrl: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Tag (default)
      text
      Tag
      This argument is required.
      Commit
      text
      Commit
      Default value is "$Commit".
      Force (overwrite)
      true/false
      Force
      Repository connection
      text
      From
      Default value is "$Repository".
      User name
      text
      UserName
      Value note: "Username from repository connection".
      Password
      text
      Password
      Value note: "Password from repository connection".
      Repository URL
      text
      RepositoryUrl
      Value note: "Repository URL from repository connection".
    • Ensure-TagReleaseNotes - Sets the release notes for a tag in a GitLab repository.

      Ensure-TagReleaseNotes

      Sets the release notes for a tag in a GitLab repository.

      Script usage:

      GitLab::Ensure-TagReleaseNotes(
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Namespace: <text>],
      	[Project: <text>],
      	[ApiUrl: <text>],
      	Tag: <text>,
      	[Description: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      From GitLab resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitLab resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitLab resource's credentials".
      Namespace
      text
      Namespace
      Not specifying will "Use namespace from GitLab resource".
      Project name
      text
      Project
      Not specifying will "Use project from GitLab resource".
      API URL
      text
      ApiUrl
      Not specifying will "Use URL from GitLab resource".
      Tag name
      text
      Tag
      The tag must already exist. This argument is required.
      Description
      text
      Description
      Release notes, formatted using Markdown.
    • Ensure-Version - Ensures that a version exists for a YouTrack project and optionally updates its released and archived states.

      Ensure-Version

      Ensures that a version exists for a YouTrack project and optionally updates its released and archived states.

      Script usage:

      YouTrack::Ensure-Version(
      	Project: <text>,
      	Version: <text>,
      	[Released: <true/false>],
      	[Archived: <true/false>],
      	[VersionFieldName: <text>],
      	[From: <text>],
      	[Server: <text>],
      	[PermanentToken: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project
      text
      Project
      Default value is "$ApplicationName". This argument is required.
      Version (default)
      text
      Version
      Default value is "$ReleaseNumber". This argument is required.
      Released
      true/false
      Released
      Value note: "no change".
      Archived
      true/false
      Archived
      Value note: "no change".
      Version custom field
      text
      VersionFieldName
      Default value is "$YouTrackVersionFieldName".
      From project
      text
      From
      YouTrack server URL
      text
      Server
      Not specifying will "Use server URL from resource".
      Permanent token
      text
      PermanentToken
      Not specifying will "Use permanent token from credential".

      Example:

      # Ensure that a version exists in YouTrack for the current release of the current application.
      YouTrack::Ensure-Version
      (
          Project: $ApplicationName,
          Version: $ReleaseNumber
      );
    • Exec - Executes a process, logs its output, and waits until it exits.

      Exec

      Executes a process, logs its output, and waits until it exits.

      Script usage:

      InedoCore::Exec(
      	[FileName: <text>],
      	[Arguments: <text>],
      	[WorkingDirectory: <text>],
      	[OutputLogLevel: <integer>],
      	[ErrorOutputLogLevel: <integer>],
      	[SuccessExitCode: <text>],
      	[ImportVariables: <true/false>],
      	[WarnRegex: <text>],
      	[DebugRegex: <text>],
      	[LogArguments: <true/false>],
      	[ReportProgressRegex: <text>],
      	[OutputFilterRegex: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      File name
      text
      FileName
      Arguments
      text
      Arguments
      Working directory
      text
      WorkingDirectory
      Output log level
      integer
      OutputLogLevel
      Error log level
      integer
      ErrorOutputLogLevel
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. The default is 0. This can also be an integer prefixed with an inequality operator. Default value is "== 0".
      Import variables
      true/false
      ImportVariables
      When set to true, all scalar execution variables currently accessible will be exported as environment variables to the process.
      Warning regex
      text
      WarnRegex
      When set to a valid regular expression string, output messages which are matched will be logged as warnings. To log only part of the message, use a group with name "m".
      Debug regex
      text
      DebugRegex
      When set to a valid regular expression string, output messages which are matched will be logged as debug. To log only part of the message, use a group with name "m".
      Log arguments
      true/false
      LogArguments
      Default value is "True".
      Report progress regex
      text
      ReportProgressRegex
      When set to a valid regular expression string, attempts to parse every output message for real-time progress updates. To capature a status message, use a group with name "m". To capture a percent complete as a number from 0 to 100, use a group with name "p".
      Output filter regex
      text
      OutputFilterRegex
      When set to a valid regular expression string, only output messages which match this expression will be logged.

      Example:

      # execute 7zip and only succeed if the executable returns a non-negative exit code
      Exec c:\tools\7za.exe (
          Arguments: i *.*,
          SuccessExitCode: >= 0
      );
    • Execute Python Script - Executes a specified Python script.

      Execute Python Script

      Executes a specified Python script.

      Script usage:

      PYExec(
      	Script: <text>,
      	[Verbose: <true/false>],
      	[SuccessExitCode: <text>],
      	[Variables: <%(key1: value1, ...)>],
      	[OutVariables: <@(text)>],
      	[Arguments: <text>],
      	[EnvironmentVariables: <%(key1: value1, ...)>],
      	[PythonPath: <text>],
      	[CaptureDebug: <true/false>]
      );
      
      

      This operation may be prefixed with Python::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Script (default)
      text
      Script
      This argument is required.
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      Variables
      %(key1: value1, ...)
      Variables
      OutVariables
      @(text)
      OutVariables
      Command line arguments
      text
      Arguments
      Environment variables
      %(key1: value1, ...)
      EnvironmentVariables
      Python path
      text
      PythonPath
      Full path to python/python.exe on the target server. Default value is "$PythonPath".
      Capture debug messages
      true/false
      CaptureDebug
    • Execute VSTest Tests - Runs VSTest unit tests on a specified test project, recommended for tests in VS 2012 and later.

      Execute VSTest Tests

      Runs VSTest unit tests on a specified test project, recommended for tests in VS 2012 and later.

      Script usage:

      WindowsSDK::Execute-VSTest(
      	TestContainer: <text>,
      	[Group: <text>],
      	[Arguments: <text>],
      	[ClearExistingTestResults: <true/false>],
      	[VsTestPath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Test container
      text
      TestContainer
      This argument is required.
      Test group
      text
      Group
      Value note: "Unit Tests".
      Additional arguments
      text
      Arguments
      Clear existing results
      true/false
      ClearExistingTestResults
      When true, the test results directory will be cleared before the tests are run.
      VSTest Path
      text
      VsTestPath
      The path to vstest.console.exe, typically:

      %VSINSTALLDIR%\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

      Leave this value blank to auto-detect the latest vstest.console.exe using vswhere.exe.
      Default value is "$VSTestExePath".
    • Execute-Command - Logs into a Docker registry and runs a Docker CLI command on a container host server.

      Execute-Command

      Logs into a Docker registry and runs a Docker CLI command on a container host server.

      Script usage:

      Docker::Execute-Command(
      	Command: <text>,
      	[Repository: <text>],
      	[Arguments: <text>],
      	[RepositoryName: <text>],
      	[DockerExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Command
      text
      Command
      Command for the Docker CLI command. This argument is required.
      Repository
      text
      Repository
      This is only used for logging into a Docker registry. Leave blank to not login to a Docker registry. Default value is "$DockerRepository".
      Arguments
      text
      Arguments
      Arguments for the Docker CLI command, such as --env key=value.
      Override repository name
      text
      RepositoryName
      Value note: "Do not override repository".
      Docker client path
      text
      DockerExePath
      Default value is "$DockerExePath".
    • Find-WorkItems - Finds Work Items in Azure DevOps.

      Find-WorkItems

      Finds Work Items in Azure DevOps.

      Script usage:

      AzureDevOps::Find-WorkItems(
      	[IterationPath: <text>],
      	[Filter: <text>],
      	[CustomWiql: <text>],
      	[Output: <RuntimeValue>],
      	From: <text>,
      	[Project: <text>],
      	[Repository: <text>],
      	[Url: <text>],
      	[UserName: <text>],
      	[Token: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Iteration path
      text
      IterationPath
      Value note: "Unchanged".
      Filter
      text
      Filter
      Filter WIQL that will be appended to the WIQL where clause.See the Azure DevOps Query Language documentation for more information.
      Custom WIQL
      text
      CustomWiql
      Custom WIQL will ignore the project name and iteration path if supplied. See the Azure DevOps Query Language documentation for more information. Not specifying will "Use above fields".
      Output variable
      RuntimeValue
      Output
      The output variable should be a list variable where each item is a map variable. This will include all columns from your WIQL SELECT and "Id", "URL", and "IsClosed". For example: @AzureDevOpsIssueIDs.
      From AzureDevOps resource
      text
      From
      This argument is required.
      Project name
      text
      Project
      Not specifying will "Use team project from AzureDevOps resource".
      Repository name
      text
      Repository
      Not specifying will "Use the project name".
      Project collection URL
      text
      Url
      Not specifying will "Use team project from AzureDevOps resource".
      User name
      text
      UserName
      Not specifying will "Use user name from AzureDevOps resource's credentials".
      Personal access token
      text
      Token
      Not specifying will "Use team project from AzureDevOps resource's credential".
    • Get-Http - Executes an HTTP GET, DELETE, or HEAD request against a URL, typically used for RESTful operations.

      Get-Http

      Executes an HTTP GET, DELETE, or HEAD request against a URL, typically used for RESTful operations.

      Script usage:

      Get-Http(
      	[Method: <integer>],
      	Url: <text>,
      	[LogResponseBody: <true/false>],
      	[ErrorStatusCodes: <text>],
      	[ResponseBody: <text>],
      	[RequestHeaders: <%(key1: value1, ...)>],
      	[MaxResponseLength: <integer>],
      	[ProxyRequest: <true/false>],
      	[Credentials: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[IgnoreSslErrors: <true/false>]
      );
      
      

      This operation may be prefixed with HTTP::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Method
      integer
      Method
      Default value is "GET".
      URL (default)
      text
      Url
      This argument is required.
      Log response body
      true/false
      LogResponseBody
      Error status codes
      text
      ErrorStatusCodes
      Comma-separated status codes (or ranges in the form of start:end) that should indicate this action has failed. For example, a value of "401,500:599" will fail on all server errors and also when "HTTP Unauthorized" is returned. The default is 400:599. Value note: "400:599".
      Store response as
      text
      ResponseBody
      Value note: "Do not store response body as variable".
      Request headers
      %(key1: value1, ...)
      RequestHeaders
      Max response length
      integer
      MaxResponseLength
      Default value is "1000".
      Use server in context
      true/false
      ProxyRequest
      When selected, this will proxy the HTTP calls through the server is in context instead of using the server Otter or BuildMaster is installed on. Default value is "True".
      Credentials
      text
      Credentials
      User name
      text
      UserName
      Not specifying will "Use user name from credential".
      Password
      text
      Password
      Not specifying will "Use password from credential".
      Ignore SSL Errors
      true/false
      IgnoreSslErrors
      Default value is "False".

      Example:

      # downloads the http://httpbin.org/get page and stores its contents in the 
      # $ResponseBody variable, failing only on 500 errors
      Get-Http http://httpbin.org/get
      (
          ErrorStatusCodes: 500:599,
          ResponseBody => $ResponseBody
      );
      
    • Import-Artifact - Downloads an artifact from Azure DevOps and attaches to the BuildMaster build as an artifact.

      Import-Artifact

      Downloads an artifact from Azure DevOps and attaches to the BuildMaster build as an artifact.

      Script usage:

      AzureDevOps::Import-Artifact(
      	BuildDefinition: <text>,
      	[BuildNumber: <text>],
      	ArtifactName: <text>,
      	[AzureDevOpsBuildNumber: <text>],
      	From: <text>,
      	[Project: <text>],
      	[Repository: <text>],
      	[Url: <text>],
      	[UserName: <text>],
      	[Token: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Build definition
      text
      BuildDefinition
      This argument is required.
      Build number
      text
      BuildNumber
      Value note: "latest".
      Artifact name
      text
      ArtifactName
      This argument is required.
      Set build number to variable
      text
      AzureDevOpsBuildNumber
      The Azure DevOps build number can be output into a runtime variable. e.g. $AzureDevOpsBuildNumber".
      From AzureDevOps resource
      text
      From
      This argument is required.
      Project name
      text
      Project
      Not specifying will "Use team project from AzureDevOps resource".
      Repository name
      text
      Repository
      Not specifying will "Use the project name".
      Project collection URL
      text
      Url
      Not specifying will "Use team project from AzureDevOps resource".
      User name
      text
      UserName
      Not specifying will "Use user name from AzureDevOps resource's credentials".
      Personal access token
      text
      Token
      Not specifying will "Use team project from AzureDevOps resource's credential".
    • Import-Artifact - Downloads an artifact from the specified TeamCity server and saves it to the artifact library.

      Import-Artifact

      Downloads an artifact from the specified TeamCity server and saves it to the artifact library.

      Script usage:

      TeamCity::Import-Artifact(
      	[From: <text>],
      	[Project: <text>],
      	[BuildConfiguration: <text>],
      	[BuildNumber: <text>],
      	[Artifact: <text>],
      	[Overwrite: <true/false>],
      	[IgnoreEmptyArtifact: <true/false>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[Branch: <text>],
      	[TeamCityBuildNumber: <text>],
      	[BuildConfigurationId: <text>],
      	[CredentialName: <text>],
      	[Server: <text>],
      	[Token: <text>],
      	[UserName: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      TeamCity resource
      text
      From
      Default value is "$CIProject".
      Project name
      text
      Project
      Default value is "$CIProject".
      Build configuration
      text
      BuildConfiguration
      Default value is "$CIProjectScope".
      Build number
      text
      BuildNumber
      The build number may be a specific build number, or a special value such as "lastSuccessful", "lastFinished", or "lastPinned". To specify a build ID instead, append ':id' as a suffix, e.g. 1234:id. Default value is "$CIBuildNumber".
      BuildMaster artifact name
      text
      Artifact
      The name of the artifact in BuildMaster to create after artifacts are downloaded from TeamCity. Default value is "Default".
      Overwrite
      true/false
      Overwrite
      Value note: "false".
      Ignore empty artifact warning
      true/false
      IgnoreEmptyArtifact
      A warning will be logged if no files are captured unless this option is set.
      Include files
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Default value is "**".
      Exclude files
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Branch filter
      text
      Branch
      When the build number is a special value such as "lastSuccesful", this will be used to find that build.
      Actual build number (output)
      text
      TeamCityBuildNumber
      When you specify a Build Number like "lastSuccessful", this will output the real TeamCity BuildNumber into a runtime variable. e.g. $ActualBuildNumber".
      Build configuration ID
      text
      BuildConfigurationId
      TeamCity identifier that targets a single build configuration. May be specified instead of the Project name and Build configuration name.
      Credentials
      text
      CredentialName
      Not specifying will "Use credential from resource".
      TeamCity server URL
      text
      Server
      Not specifying will "Use server URL from credential".
      Token
      text
      Token
      Not specifying will "Use token from credential".
      UserName
      text
      UserName
    • Import-Artifacts - Downloads an artifact from the specified Jenkins server and saves it to the artifact library.

      Import-Artifacts

      Downloads an artifact from the specified Jenkins server and saves it to the artifact library.

      Script usage:

      Jenkins::Import-Artifacts(
      	[From: <text>],
      	[Project: <text>],
      	[Branch: <text>],
      	[BuildNumber: <text>],
      	[Artifact: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[JenkinsBuildNumber: <text>],
      	[Credentials: <text>],
      	[Server: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[CsrfProtectionEnabled: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Jenkins resource
      text
      From
      Default value is "$CIProject".
      Project name
      text
      Project
      Default value is "$JenkinsProjectName($CIProject)".
      Branch name
      text
      Branch
      The branch name is required for a Jenkins multi-branch project, otherwise should be left empty. Default value is "$JenkinsBranchName($CIBuild)".
      Build number
      text
      BuildNumber
      The build number may be a specific build number, or a special value such as "lastSuccessfulBuild", "lastStableBuild", "lastBuild", or "lastCompletedBuild". Default value is "$JenkinsBuildNumber($CIBuild)".
      BuildMaster artifact name
      text
      Artifact
      The name of the artifact in BuildMaster to create after artifacts are downloaded from Jenkins. Default value is "Default".
      Include files
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Default value is "**".
      Exclude files
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Actual build number (output)
      text
      JenkinsBuildNumber
      When you specify a Build Number like "lastBuild", this will output the real Jenkins BuildNumber into a runtime variable. e.g. $ActualBuildNumber".
      Jenkins service name
      text
      Credentials
      Not specifying will "Use name from Jenkins resource".
      Server URL
      text
      Server
      Not specifying will "Use service's server URL".
      User name
      text
      UserName
      Not specifying will "Use credential's Username".
      API token or password
      text
      Password
      Not specifying will "Use credential's token/password".
      Use CSRF token
      true/false
      CsrfProtectionEnabled
      Default value is "True".
    • Install-Package - Installs a universal package to the specified location using a Package Source.

      Install-Package

      Installs a universal package to the specified location using a Package Source.

      Script usage:

      ProGet::Install-Package(
      	[PackageSource: <text>],
      	Name: <text>,
      	[Version: <text>],
      	[To: <text>],
      	[LocalRegistry: <integer>],
      	[LocalCache: <true/false>],
      	[DirectDownload: <true/false>],
      	[Feed: <text>],
      	[EndpointUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[ApiKey: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Package source
      text
      PackageSource
      Value note: "Infer from package name".
      Package name
      text
      Name
      This argument is required.
      Package version
      text
      Version
      Default value is "latest".
      Target directory
      text
      To
      Value note: "$WorkingDirectory".
      Use Local Registry
      integer
      LocalRegistry
      Default value is "Machine".
      LocalCache
      true/false
      LocalCache
      Cache Package. Default value is "False".
      Direct download
      true/false
      DirectDownload
      Set this to value to false if your remote server doesn't have direct access to the ProGet feed. Default value is "True".
      Feed name
      text
      Feed
      Not specifying will "Use Feed from package source".
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from package source".
      ProGet user name
      text
      UserName
      The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
      ProGet password
      text
      Password
      The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
      ProGet API Key
      text
      ApiKey
      An API Key that can access this feed. Not specifying will "Use API Key from package source".

      Example:

      ProGet::Install-Package
      (
          From: MyPackageSource,
          Name: MyAppPackage,
          Version: 3.4.2,
          To: C:\MyApps\MyApp
      );
      
    • Maven - Runs the Maven executable.

      Maven

      Runs the Maven executable.

      Script usage:

      Java::Maven(
      	[GoalsAndPhases: <text>],
      	[In: <text>],
      	[Arguments: <text>],
      	[MavenPath: <text>],
      	[DependenciesFeed: <text>],
      	[PluginsFeed: <text>],
      	[SettingsXml: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Goals/phases
      text
      GoalsAndPhases
      Space-separated list of Maven goals and/or phases.
      Source directory
      text
      In
      The working directory in which Maven will be executed.
      Additional arguments
      text
      Arguments
      Raw command line arguments to pass to Maven.
      Maven path
      text
      MavenPath
      Full path to mvn on the server. Default value is "$MavenPath".
      Dependencies Feed
      text
      DependenciesFeed
      If specified, this Maven repository will be used to install dependencies from. Not specifying will "Use Maven Central".
      Plugins Feed
      text
      PluginsFeed
      If specified, this Maven repository will be used to install plugins from. Not specifying will "Use Maven Central".
      Settings XML
      text
      SettingsXml
      This cannot be used when using the Plugins Feed or Dependencies Feed parameter.
    • npm Build - Runs the `npm run build` command.

      npm Build

      Runs the `npm run build` command.

      Script usage:

      npm::Build(
      	[AdditionalArguments: <text>],
      	[SourceDirectory: <text>],
      	[PackageSource: <text>],
      	[Scopes: <@(text)>],
      	[Verbose: <true/false>],
      	[SuccessExitCode: <text>],
      	[NpmPath: <text>],
      	[NpmrcPath: <text>],
      	[AllowSelfSignedCertificate: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Additional Command line arguments
      text
      AdditionalArguments
      Source directory
      text
      SourceDirectory
      Value note: "$WorkingDirectory".
      Package source
      text
      PackageSource
      If specified, this npm package source will be used to restore packages when building. This will generate a local .npmrc file with a connection to this feed.
      Scopes
      @(text)
      Scopes
      All scopes you would like to wire to your ProGet npm feed. One scope per line.
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      npm path
      text
      NpmPath
      Full path to npm/npm.cmd on the target server. Default value is "$NpmPath".
      .npmrc path
      text
      NpmrcPath
      Override the path to your .npmrc file. This will be ignored when using a ProGet feed. Value note: "default".
      Allow Self-Signed Certificate
      true/false
      AllowSelfSignedCertificate
      Self-signed certificates and internal Certificate Authority (CA) generated certificates are considered invalid by default in npm's certificate validation process. Enabling this option will by-pass certificate validation in npm.
    • npm Execute Command - Runs the specified npm command (ex: `npm rebuild`).

      npm Execute Command

      Runs the specified npm command (ex: `npm rebuild`).

      Script usage:

      npm::Execute-Command(
      	Command: <text>,
      	[Arguments: <text>],
      	[SourceDirectory: <text>],
      	[PackageSource: <text>],
      	[Scopes: <@(text)>],
      	[Verbose: <true/false>],
      	[SuccessExitCode: <text>],
      	[NpmPath: <text>],
      	[NpmrcPath: <text>],
      	[AllowSelfSignedCertificate: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Command
      text
      Command
      The npm command to execute. This argument is required.
      Command line arguments
      text
      Arguments
      Source directory
      text
      SourceDirectory
      Value note: "$WorkingDirectory".
      Package source
      text
      PackageSource
      If specified, this npm package source will be used to restore packages when building. This will generate a local .npmrc file with a connection to this feed.
      Scopes
      @(text)
      Scopes
      All scopes you would like to wire to your ProGet npm feed. One scope per line.
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      npm path
      text
      NpmPath
      Full path to npm/npm.cmd on the target server. Default value is "$NpmPath".
      .npmrc path
      text
      NpmrcPath
      Override the path to your .npmrc file. This will be ignored when using a ProGet feed. Value note: "default".
      Allow Self-Signed Certificate
      true/false
      AllowSelfSignedCertificate
      Self-signed certificates and internal Certificate Authority (CA) generated certificates are considered invalid by default in npm's certificate validation process. Enabling this option will by-pass certificate validation in npm.

      Example:

      # Run the `npm audit fix` command
      npm::Execute-Command audit
      (
          Arguments: fix
      );
    • npm Install - Runs the npm install command.

      npm Install

      Runs the npm install command.

      Script usage:

      npm::Install(
      	[AdditionalArguments: <text>],
      	[SourceDirectory: <text>],
      	[PackageSource: <text>],
      	[Scopes: <@(text)>],
      	[Verbose: <true/false>],
      	[SuccessExitCode: <text>],
      	[NpmPath: <text>],
      	[NpmrcPath: <text>],
      	[AllowSelfSignedCertificate: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Additional Command line arguments
      text
      AdditionalArguments
      Source directory
      text
      SourceDirectory
      Value note: "$WorkingDirectory".
      Package source
      text
      PackageSource
      If specified, this npm package source will be used to restore packages when building. This will generate a local .npmrc file with a connection to this feed.
      Scopes
      @(text)
      Scopes
      All scopes you would like to wire to your ProGet npm feed. One scope per line.
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      npm path
      text
      NpmPath
      Full path to npm/npm.cmd on the target server. Default value is "$NpmPath".
      .npmrc path
      text
      NpmrcPath
      Override the path to your .npmrc file. This will be ignored when using a ProGet feed. Value note: "default".
      Allow Self-Signed Certificate
      true/false
      AllowSelfSignedCertificate
      Self-signed certificates and internal Certificate Authority (CA) generated certificates are considered invalid by default in npm's certificate validation process. Enabling this option will by-pass certificate validation in npm.
    • npm Publish - Runs the npm publish command.

      npm Publish

      Runs the npm publish command.

      Script usage:

      npm::Publish(
      	[AdditionalArguments: <text>],
      	[SourceDirectory: <text>],
      	[PackageSource: <text>],
      	[Scopes: <@(text)>],
      	[Verbose: <true/false>],
      	[SuccessExitCode: <text>],
      	[NpmPath: <text>],
      	[NpmrcPath: <text>],
      	[AllowSelfSignedCertificate: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Additional Command line arguments
      text
      AdditionalArguments
      Source directory
      text
      SourceDirectory
      Value note: "$WorkingDirectory".
      Package source
      text
      PackageSource
      If specified, this npm package source will be used to restore packages when building. This will generate a local .npmrc file with a connection to this feed.
      Scopes
      @(text)
      Scopes
      All scopes you would like to wire to your ProGet npm feed. One scope per line.
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      npm path
      text
      NpmPath
      Full path to npm/npm.cmd on the target server. Default value is "$NpmPath".
      .npmrc path
      text
      NpmrcPath
      Override the path to your .npmrc file. This will be ignored when using a ProGet feed. Value note: "default".
      Allow Self-Signed Certificate
      true/false
      AllowSelfSignedCertificate
      Self-signed certificates and internal Certificate Authority (CA) generated certificates are considered invalid by default in npm's certificate validation process. Enabling this option will by-pass certificate validation in npm.
    • npm Run - Runs the specified npm run command (ex: `npm run lessc`).

      npm Run

      Runs the specified npm run command (ex: `npm run lessc`).

      Script usage:

      npm::Run(
      	Command: <text>,
      	[AdditionalArguments: <text>],
      	[SourceDirectory: <text>],
      	[PackageSource: <text>],
      	[Scopes: <@(text)>],
      	[Verbose: <true/false>],
      	[SuccessExitCode: <text>],
      	[NpmPath: <text>],
      	[NpmrcPath: <text>],
      	[AllowSelfSignedCertificate: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Command (default)
      text
      Command
      The command to execute using npm run. This argument is required.
      Additional Command line arguments
      text
      AdditionalArguments
      Source directory
      text
      SourceDirectory
      Value note: "$WorkingDirectory".
      Package source
      text
      PackageSource
      If specified, this npm package source will be used to restore packages when building. This will generate a local .npmrc file with a connection to this feed.
      Scopes
      @(text)
      Scopes
      All scopes you would like to wire to your ProGet npm feed. One scope per line.
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      npm path
      text
      NpmPath
      Full path to npm/npm.cmd on the target server. Default value is "$NpmPath".
      .npmrc path
      text
      NpmrcPath
      Override the path to your .npmrc file. This will be ignored when using a ProGet feed. Value note: "default".
      Allow Self-Signed Certificate
      true/false
      AllowSelfSignedCertificate
      Self-signed certificates and internal Certificate Authority (CA) generated certificates are considered invalid by default in npm's certificate validation process. Enabling this option will by-pass certificate validation in npm.

      Example:

      # Run the lessc command from npm
      npm::Run lessc
      (
          SourceDirectory: ~\styles
      );
    • npm Set Project Version - Sets the version in an npm package.json.

      npm Set Project Version

      Sets the version in an npm package.json.

      Script usage:

      npm::Set-ProjectVersion(
      	[Version: <text>],
      	[SourceDirectory: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Version
      text
      Version
      Default value is "$ReleaseNumber".
      Source directory
      text
      SourceDirectory
      Value note: "$WorkingDirectory".
    • OSCall - Executes an OtterScript Script stored in a raft.

      OSCall

      Executes an OtterScript Script stored in a raft.

      Script usage:

      OSCall(
      	Name: <text>,
      	[Parameters: <%(key1: value1, ...)>],
      	[Variables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name (default)
      text
      Name
      The name of the script asset. This argument is required.
      Parameters
      %(key1: value1, ...)
      Parameters
      Variables
      %(key1: value1, ...)
      Variables
      Specify parameters to pass in to the script using a map. For example: %(param1: $SomeVariable, param2: @(list,of,items)).
      Output variables
      @(text)
      OutputVariables
      Specify variables to capture and set in the calling scope using a list. For example: @(filePath,errorMessage).

      Note: Runtime variables you've defined before executing an Invoke operation will not be visible to the invoked script, and variables that you set within the invoked script will not be available.

    • OSExec - Executes an OtterScript string.

      OSExec

      Executes an OtterScript string.

      Script usage:

      OSExec(
      	ScriptText: <text>,
      	[Variables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Script text (default)
      text
      ScriptText
      This argument is required.
      Variables
      %(key1: value1, ...)
      Variables
      Specify parameters to pass in to the script using a map. For example: %(param1: $SomeVariable, param2: @(list,of,items)).
      Output variables
      @(text)
      OutputVariables
      Specify variables to capture and set in the calling scope using a list. For example: @(filePath,errorMessage).

      Note: Runtime variables you've defined before executing an Invoke operation will not be visible to the invoked script, and variables that you set within the invoked script will not be available.

    • Post-Http - Executes an HTTP POST/PUT/PATCH request to a URL, typically used for RESTful operations.

      Post-Http

      Executes an HTTP POST/PUT/PATCH request to a URL, typically used for RESTful operations.

      Script usage:

      Post-Http(
      	[Method: <integer>],
      	[ContentType: <text>],
      	[TextData: <text>],
      	[FormData: <%(key1: value1, ...)>],
      	[LogRequestData: <true/false>],
      	Url: <text>,
      	[LogResponseBody: <true/false>],
      	[ErrorStatusCodes: <text>],
      	[ResponseBody: <text>],
      	[RequestHeaders: <%(key1: value1, ...)>],
      	[MaxResponseLength: <integer>],
      	[ProxyRequest: <true/false>],
      	[Credentials: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[IgnoreSslErrors: <true/false>]
      );
      
      

      This operation may be prefixed with HTTP::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Method
      integer
      Method
      Default value is "POST".
      Content type
      text
      ContentType
      Default value is "application/x-www-form-urlencoded".
      Request text content
      text
      TextData
      Direct text input that will be written to the request content body. This will override any form data if both are supplied.
      Form data
      %(key1: value1, ...)
      FormData
      A map of form data key/value pairs to send. If TextData is supplied, this value is ignored.
      Log request data
      true/false
      LogRequestData
      URL (default)
      text
      Url
      This argument is required.
      Log response body
      true/false
      LogResponseBody
      Error status codes
      text
      ErrorStatusCodes
      Comma-separated status codes (or ranges in the form of start:end) that should indicate this action has failed. For example, a value of "401,500:599" will fail on all server errors and also when "HTTP Unauthorized" is returned. The default is 400:599. Value note: "400:599".
      Store response as
      text
      ResponseBody
      Value note: "Do not store response body as variable".
      Request headers
      %(key1: value1, ...)
      RequestHeaders
      Max response length
      integer
      MaxResponseLength
      Default value is "1000".
      Use server in context
      true/false
      ProxyRequest
      When selected, this will proxy the HTTP calls through the server is in context instead of using the server Otter or BuildMaster is installed on. Default value is "True".
      Credentials
      text
      Credentials
      User name
      text
      UserName
      Not specifying will "Use user name from credential".
      Password
      text
      Password
      Not specifying will "Use password from credential".
      Ignore SSL Errors
      true/false
      IgnoreSslErrors
      Default value is "False".

      Example:

      # posts some key-value pairs to a test service and writes the response body to the BuildMaster execution log
      Post-Http http://httpbin.org/post
      (
          FormData: %(
              Var1: "value1",
              Var2: "value2"
          ),
          LogResponseBody: true
      );
      
    • Push-PackageFile - Uploads a universal package file to a package source.

      Push-PackageFile

      Uploads a universal package file to a package source.

      Script usage:

      ProGet::Push-PackageFile(
      	FilePath: <text>,
      	[To: <text>],
      	[Feed: <text>],
      	[EndpointUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[ApiKey: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Package file path (default)
      text
      FilePath
      This argument is required.
      Package source
      text
      To
      Feed name
      text
      Feed
      Not specifying will "Use Feed from package source".
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from package source".
      ProGet user name
      text
      UserName
      The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
      ProGet password
      text
      Password
      The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
      ProGet API Key
      text
      ApiKey
      An API Key that can access this feed. Not specifying will "Use API Key from package source".

      Example:

      # Uploads the MyPackage.1.0.0.upack file to the InternalFeed package source
      ProGet::Push-PackageFile MyPackage.1.0.0.upack
      (
          PackageSource: InternalFeed
      );
    • PYCall - Calls a Python script that is stored as an asset.

      PYCall

      Calls a Python script that is stored as an asset.

      Script usage:

      PYCall(
      	Name: <text>,
      	[Parameters: <%(key1: value1, ...)>],
      	[Verbose: <true/false>],
      	[SuccessExitCode: <text>],
      	[InputVariables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>],
      	[PythonPath: <text>],
      	[CaptureDebug: <true/false>],
      	[Arguments: <text>],
      	[EnvironmentVariables: <%(key1: value1, ...)>]
      );
      
      

      This operation may be prefixed with python::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name (default)
      text
      Name
      The name of the script asset. This argument is required.
      Parameters
      %(key1: value1, ...)
      Parameters
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      InputVariables
      %(key1: value1, ...)
      InputVariables
      OutputVariables
      @(text)
      OutputVariables
      Python path
      text
      PythonPath
      Full path to python/python.exe on the target server. Default value is "$PythonPath".
      Capture debug messages
      true/false
      CaptureDebug
      Command line arguments
      text
      Arguments
      Environment variables
      %(key1: value1, ...)
      EnvironmentVariables
    • PYEnsure - Uses a Python script asset to Collect, and then Ensure a configuration about a server.

      PYEnsure

      Uses a Python script asset to Collect, and then Ensure a configuration about a server.

      Script usage:

      PYEnsure(
      	Name: <text>,
      	[Parameters: <%(key1: value1, ...)>],
      	[Verbose: <true/false>],
      	[SuccessExitCode: <text>],
      	[PythonPath: <text>],
      	[CaptureDebug: <true/false>],
      	[InputVariables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>],
      	[Arguments: <text>],
      	[EnvironmentVariables: <%(key1: value1, ...)>]
      );
      
      

      This operation may be prefixed with Python::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name (default)
      text
      Name
      The name of the script asset. This argument is required.
      Parameters
      %(key1: value1, ...)
      Parameters
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      Python path
      text
      PythonPath
      Full path to python/python.exe on the target server. Default value is "$PythonPath".
      Capture debug messages
      true/false
      CaptureDebug
      InputVariables
      %(key1: value1, ...)
      InputVariables
      OutputVariables
      @(text)
      OutputVariables
      Command line arguments
      text
      Arguments
      Environment variables
      %(key1: value1, ...)
      EnvironmentVariables
    • Query-Issues - Queries YouTrack for issues and stores information about them in an OtterScript variable.

      Query-Issues

      Queries YouTrack for issues and stores information about them in an OtterScript variable.

      Script usage:

      YouTrack::Query-Issues(
      	[Project: <text>],
      	[Query: <text>],
      	[Output: <RuntimeValue>],
      	[IncludeDetails: <true/false>],
      	[IssueStatusFieldName: <text>],
      	[IssueTypeFieldName: <text>],
      	[From: <text>],
      	[Server: <text>],
      	[PermanentToken: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project
      text
      Project
      Query
      text
      Query
      The YouTrack issue query. For example, to get open issues for the release currently in context:

      Project: {$ApplicationName} Fix version: $ReleaseNumber State: -Completed

      For more information on filters, see: https://www.jetbrains.com/help/youtrack/standalone/Search-and-Command-Attributes.html.
      Output variable
      RuntimeValue
      Output
      The output variable should be a list variable. For example: @YouTrackIssueIDs.
      Include details in output
      true/false
      IncludeDetails
      When true, the output variable is a list of maps with id, title, and description properties. When false, the output variable is a list of id strings.
      Issue status custom field
      text
      IssueStatusFieldName
      Default value is "$YouTrackStatusFieldName".
      Issue type custom field
      text
      IssueTypeFieldName
      Default value is "$YouTrackTypeFieldName".
      From project
      text
      From
      YouTrack server URL
      text
      Server
      Not specifying will "Use server URL from resource".
      Permanent token
      text
      PermanentToken
      Not specifying will "Use permanent token from credential".

      Example:

      # Queries YouTrack for open issues with 'Fix version' = $ReleaseNumber for the $ApplicationName project and stores the issue IDs in the @issueIds variable.
      YouTrack::Query-Issues
      (
          Query: Project: {$ApplicationName} Fix version: $ReleaseNumber State: Open,
          Output => @issueIds
      );
    • Query-Package - Tests whether a universal package exists and optionally extracts its metadata.

      Query-Package

      Tests whether a universal package exists and optionally extracts its metadata.

      Script usage:

      UPack::Query-Package(
      	[From: <text>],
      	Name: <text>,
      	Version: <text>,
      	NewVersion: <text>,
      	[Reason: <text>],
      	[PackageFile: <text>],
      	[Feed: <text>],
      	[EndpointUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[ApiKey: <text>],
      	[Exists: <true/false>],
      	[Metadata: <%(key1: value1, ...)>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Package source
      text
      From
      Package name
      text
      Name
      This argument is required.
      Package version
      text
      Version
      Default value is "latest". This argument is required.
      New version
      text
      NewVersion
      This argument is required.
      Reason
      text
      Reason
      Value note: "Unspecified".
      Package file
      text
      PackageFile
      When specified, FeedUrl, UserName, Password, PackageName, and PackageVersion are ignored.
      Feed name
      text
      Feed
      Not specifying will "Use Feed from package source".
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from package source".
      ProGet user name
      text
      UserName
      The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
      ProGet password
      text
      Password
      The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
      ProGet API Key
      text
      ApiKey
      An API Key that can access this feed. Not specifying will "Use API Key from package source".
      Package exists
      true/false
      Exists
      When specified, this string variable will be set to "true" if the package exists or "false" if it does not. e.g. $PackageExists".
      Package metadata
      %(key1: value1, ...)
      Metadata
      When specified, this map variable will be assigned containing all of the package's metadata. If the package does not exist this value is not defined.

      Example:

      # test whether a package exists in a feed and capture its metadata
      Query-Package
      (
          Credentials: MyExternalFeed,
          PackageName: Group/Package,
          Exists => $exists,
          Metadata => %packageData
      );
      
      if $exists
      {
          Log-Debug 'Package $(%packageData.name) exists. Latest version is $(%packageData.version).';
      }
      
    • Queue-Build - Queues a build in Azure DevOps, optionally waiting for its completion.

      Queue-Build

      Queues a build in Azure DevOps, optionally waiting for its completion.

      Script usage:

      AzureDevOps::Queue-Build(
      	BuildDefinition: <text>,
      	[WaitForCompletion: <true/false>],
      	[Validate: <true/false>],
      	[AzureDevOpsBuildNumber: <text>],
      	From: <text>,
      	[Project: <text>],
      	[Repository: <text>],
      	[Url: <text>],
      	[UserName: <text>],
      	[Token: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Build definition
      text
      BuildDefinition
      This argument is required.
      Wait for completion
      true/false
      WaitForCompletion
      Default value is "True".
      Validate success
      true/false
      Validate
      Default value is "True".
      Set build number to variable
      text
      AzureDevOpsBuildNumber
      The Azure DevOps build number can be output into a runtime variable. e.g. $AzureDevOpsBuildNumber".
      From AzureDevOps resource
      text
      From
      This argument is required.
      Project name
      text
      Project
      Not specifying will "Use team project from AzureDevOps resource".
      Repository name
      text
      Repository
      Not specifying will "Use the project name".
      Project collection URL
      text
      Url
      Not specifying will "Use team project from AzureDevOps resource".
      User name
      text
      UserName
      Not specifying will "Use user name from AzureDevOps resource's credentials".
      Personal access token
      text
      Token
      Not specifying will "Use team project from AzureDevOps resource's credential".
    • Queue-Build - Queues a build in Jenkins, optionally waiting for its completion.

      Queue-Build

      Queues a build in Jenkins, optionally waiting for its completion.

      Script usage:

      Jenkins::Queue-Build(
      	[From: <text>],
      	[Project: <text>],
      	[Branch: <text>],
      	[BuildNumber: <text>],
      	[Parameters: <%(key1: value1, ...)>],
      	[WaitForStart: <true/false>],
      	[WaitForCompletion: <true/false>],
      	[JenkinsBuildNumber: <text>],
      	[Credentials: <text>],
      	[Server: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[CsrfProtectionEnabled: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Jenkins resource
      text
      From
      Default value is "$CIProject".
      Project name
      text
      Project
      Default value is "$JenkinsProjectName($CIProject)".
      Branch name
      text
      Branch
      The branch name is required for a Jenkins multi-branch project, otherwise should be left empty. Default value is "$JenkinsBranchName($CIBuild)".
      Build number
      text
      BuildNumber
      The build number may be a specific build number, or a special value such as "lastSuccessfulBuild", "lastStableBuild", "lastBuild", or "lastCompletedBuild". Default value is "$JenkinsBuildNumber($CIBuild)".
      Jenkins build parameters
      %(key1: value1, ...)
      Parameters
      e.g. %(MyVar:MyValue, MyVar2:MyValue2)".
      Wait for start
      true/false
      WaitForStart
      Ignored if wait for completion is true. Default value is "True".
      Wait for completion
      true/false
      WaitForCompletion
      Default value is "True".
      Actual build number (output)
      text
      JenkinsBuildNumber
      When you specify a Build Number like "lastBuild", this will output the real Jenkins BuildNumber into a runtime variable. e.g. $ActualBuildNumber".
      Jenkins service name
      text
      Credentials
      Not specifying will "Use name from Jenkins resource".
      Server URL
      text
      Server
      Not specifying will "Use service's server URL".
      User name
      text
      UserName
      Not specifying will "Use credential's Username".
      API token or password
      text
      Password
      Not specifying will "Use credential's token/password".
      Use CSRF token
      true/false
      CsrfProtectionEnabled
      Default value is "True".
    • Queue-Build - Queues a build in TeamCity, optionally waiting for its completion.

      Queue-Build

      Queues a build in TeamCity, optionally waiting for its completion.

      Script usage:

      TeamCity::Queue-Build(
      	[From: <text>],
      	[Project: <text>],
      	[BuildConfiguration: <text>],
      	[Artifact: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[Branch: <text>],
      	[TeamCityBuildNumber: <text>],
      	[AdditionalParameters: <text>],
      	[WaitForCompletion: <true/false>],
      	[BuildConfigurationId: <text>],
      	[CredentialName: <text>],
      	[Server: <text>],
      	[Token: <text>],
      	[UserName: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      TeamCity resource
      text
      From
      Default value is "$CIProject".
      Project name
      text
      Project
      Build configuration
      text
      BuildConfiguration
      BuildMaster artifact name
      text
      Artifact
      The name of the artifact in BuildMaster to create after artifacts are downloaded from TeamCity. Default value is "Default".
      Include files
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Default value is "**".
      Exclude files
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Branch
      text
      Branch
      Use the specified branch when creating the build.
      Actual build number (output)
      text
      TeamCityBuildNumber
      When you specify a Build Number like "lastSuccessful", this will output the real TeamCity BuildNumber into a runtime variable. e.g. $ActualBuildNumber".
      Additional parameters
      text
      AdditionalParameters
      Optionally enter any additional parameters accepted by the TeamCity API in query string format, for example:
      &name=agent&value=<agentnamevalue>&name=system.name&value=<systemnamevalue>..
      Wait for completion
      true/false
      WaitForCompletion
      Default value is "True".
      Build configuration ID
      text
      BuildConfigurationId
      TeamCity identifier that targets a single build configuration. May be specified instead of the Project name and Build configuration name.
      Credentials
      text
      CredentialName
      Not specifying will "Use credential from resource".
      TeamCity server URL
      text
      Server
      Not specifying will "Use server URL from credential".
      Token
      text
      Token
      Not specifying will "Use token from credential".
      UserName
      text
      UserName
    • Remediate-Drift - Checks configuration status and if drifted, triggers a remediation job in Otter.

      Remediate-Drift

      Checks configuration status and if drifted, triggers a remediation job in Otter.

      Script usage:

      Otter::Remediate-Drift(
      	[Credentials: <text>],
      	[Server: <text>],
      	[Role: <text>],
      	[WaitForCompletion: <true/false>],
      	[Host: <text>],
      	[ApiKey: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Credentials
      text
      Credentials
      Server name
      text
      Server
      Role name
      text
      Role
      Wait until remediated
      true/false
      WaitForCompletion
      Default value is "True".
      Otter server URL
      text
      Host
      Not specifying will "Use URL from credentials".
      API key
      text
      ApiKey
      Not specifying will "Use API key from credentials".

      Note: Either a server name or role name is required, but not both. If both values are entered, role name will be ignored.

      Example:

      # triggers Otter to remediate drift for hdars web server roles
      Otter::Remediate-Drift
      (
          Credentials: ProductionOtter,
          Role: hdars-web-1k
      );
    • Rename-File - Renames a file on a server.

      Rename-File

      Renames a file on a server.

      Script usage:

      Rename-File(
      	From: <text>,
      	To: <text>,
      	[Overwrite: <true/false>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Source file
      text
      From
      This argument is required.
      Target file
      text
      To
      This argument is required.
      Overwrite
      true/false
      Overwrite

      Note: To rename multiple files at once, running a PowerShell script is recommended.

      Example:

      # renames logs.txt to include the environment name in context
      Rename-File (
          From: logs.txt,
          To: logs.$EnvironmentName.txt,
          Overwrite: true
      );
      
    • Repackage - Connects to ProGet to repackage an unstable (pre-release) package into a new package with the same contents.

      Repackage

      Connects to ProGet to repackage an unstable (pre-release) package into a new package with the same contents.

      Script usage:

      ProGet::Repackage(
      	[PackageSource: <text>],
      	Name: <text>,
      	[Version: <text>],
      	NewVersion: <text>,
      	[Reason: <text>],
      	[ToFeed: <text>],
      	[Feed: <text>],
      	[EndpointUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[ApiKey: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Package source
      text
      PackageSource
      Package name
      text
      Name
      This argument is required.
      Package version
      text
      Version
      Value note: ""attached" (BuildMaster only; otherwise required)".
      New version
      text
      NewVersion
      This argument is required.
      Reason
      text
      Reason
      Value note: "Unspecified".
      To feed
      text
      ToFeed
      Value note: "keep in same feed".
      Feed name
      text
      Feed
      Not specifying will "Use Feed from package source".
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from package source".
      ProGet user name
      text
      UserName
      The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
      ProGet password
      text
      Password
      The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
      ProGet API Key
      text
      ApiKey
      An API Key that can access this feed. Not specifying will "Use API Key from package source".
    • Replace-Text - Searches a text file for a specified string and replaces it.

      Replace-Text

      Searches a text file for a specified string and replaces it.

      Script usage:

      Replace-Text(
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[Directory: <text>],
      	SearchText: <text>,
      	[ReplaceWith: <text>],
      	[Regex: <true/false>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Include
      @(text)
      Include
      See KB#1119 to learn more about masking syntax.
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Directory
      text
      Directory
      Search text
      text
      SearchText
      This argument is required.
      Replace with
      text
      ReplaceWith
      The text that replaces all occurrences of the search string found in matching files. If the Regex property is true, this property can replace matched group numbers as well, e.g.
      Example line: Version: 0.0.0-b05f2ad
      SearchText: Version: (\d+\.\d+\.\d+)(?<commitId>-\w+)?
      ReplaceWith: Version: $ReleaseNumber`${commitId} (was `$1)
      Example result: Version: 1.2.3-b05f2ad (was 0.0.0)

      Note the backtick characters (`) used to escape the $ in the replacement text, which otherwise would be interpreted as OtterScript variables..
      Use regex
      true/false
      Regex
      Determines whether the search text should be interpreted as .NET Regular Expression syntax.

      Example:

      # Replaces the product version in an example vdproj file with the BuildMaster release number
      Create-File example.vdproj
      (
      	Text: >>"Product"
      		{
      			"ProductVersion" = "8:1.0.0"
      		}>>
      );
      
      Replace-Text
      (
      	Include: **.vdproj,
      	SearchText: '"ProductVersion" = "(?<1>[0-9]+)\:[0-9]+\.[0-9]+\.[0-9]+"',
      	ReplaceWith: '"ProductVersion" = "`$1:$ReleaseNumber"',
      	Regex: true
      );
      
      Log-Information `$FileContents = $FileContents(example.vdproj);  # "ProductVersion" = "8:1.2.3"
      
    • Run-Command - Runs a YouTrack command against one or more issues.

      Run-Command

      Runs a YouTrack command against one or more issues.

      Script usage:

      YouTrack::Run-Command(
      	[Query: <text>],
      	[Issues: <@(text)>],
      	Command: <text>,
      	[Comment: <text>],
      	[From: <text>],
      	[Server: <text>],
      	[PermanentToken: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Query
      text
      Query
      The YouTrack issue query. For example, to get open issues for the release currently in context:

      Project: {$ApplicationName} Fix version: $ReleaseNumber State: -Completed

      For more information on filters, see: https://www.jetbrains.com/help/youtrack/standalone/Search-and-Command-Attributes.html.
      Issue IDs
      @(text)
      Issues
      Apply to the issue IDs directly. When this value is specified, "Query" is ignored.
      Command
      text
      Command
      This argument is required.
      Comment
      text
      Comment
      Value note: "none".
      From project
      text
      From
      YouTrack server URL
      text
      Server
      Not specifying will "Use server URL from resource".
      Permanent token
      text
      PermanentToken
      Not specifying will "Use permanent token from credential".

      Example:

      # Applies the 'my-tag' tag to issues matching the specified query.
      YouTrack::Run-Command
      (
          Query: Project: {$ApplicationName} Fix version: $ReleaseNumber,
          Command: tag my-tag
      );
    • Run-Container - Runs a Docker container on a container host server using a container configuration file.

      Run-Container

      Runs a Docker container on a container host server using a container configuration file.

      Script usage:

      Docker::Run-Container(
      	[Repository: <text>],
      	[Tag: <text>],
      	[DockerRunConfig: <text>],
      	[DockerRunConfigInstance: <text>],
      	[RepositoryName: <text>],
      	[RepositoryUrl: <text>],
      	[Restart: <text>],
      	[ContainerName: <text>],
      	[RunInBackground: <true/false>],
      	[RemoveOnExit: <true/false>],
      	[AdditionalArguments: <text>],
      	[DockerExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Repository
      text
      Repository
      Default value is "$DockerRepository".
      Tag
      text
      Tag
      Default value is "$DockerTag".
      Docker Run Config
      text
      DockerRunConfig
      Default value is "DockerRun".
      Docker Run Config instance
      text
      DockerRunConfigInstance
      Default value is "$PipelineStageName".
      Override repository name
      text
      RepositoryName
      Value note: "Do not override repository".
      Repository URL
      text
      RepositoryUrl
      Repository URL is a public Docker Repository to pull an image without the need to login. This overrides the Repository parameter. ex: mcr.microsoft.com/mssql/server. Value note: "ex: mcr.microsoft.com/mssql/server".
      Restart policy
      text
      Restart
      Default value is "unless-stopped".
      Container name
      text
      ContainerName
      Not specifying will "use repository name".
      Run in background
      true/false
      RunInBackground
      Default value is "True".
      Remove the container on exit
      true/false
      RemoveOnExit
      Addtional arguments
      text
      AdditionalArguments
      Additional arguments for the docker CLI exec command, such as --env key=value.
      Docker client path
      text
      DockerExePath
      Default value is "$DockerExePath".
    • Send-Email - Sends an email message.

      Send-Email

      Sends an email message.

      Script usage:

      InedoCore::Send-Email(
      	To: <@(text)>,
      	[Subject: <text>],
      	[Text: <text>],
      	[Html: <text>],
      	[Attachments: <@(text)>],
      	[AttachmentDirectory: <text>],
      	[CC: <@(text)>],
      	[Bcc: <@(text)>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      To address(es)
      @(text)
      To
      A single email address may be used, or a list variable containing multiple email addresses. This argument is required.
      Subject
      text
      Subject
      Plain-text body
      text
      Text
      HTML body
      text
      Html
      Attachments
      @(text)
      Attachments
      From directory
      text
      AttachmentDirectory
      Value note: "$WorkingDirectory".
      CC address(es)
      @(text)
      CC
      A single email address may be used, or a list variable containing multiple email addresses.
      BCC address(es)
      @(text)
      Bcc
      A single email address may be used, or a list variable containing multiple email addresses.

      Note: If the Html property is specified, then the Text property will be ignored.

      Example:

      Send-Email (
          To: @(someone@example.org, someone-else@example.org),
          Subject: Howdy!,
          Text: >>Hello there!
      
      This email was sent from BuildMaster on $Date.>>
      );
      
    • Set-FileAttributes - Sets or clears attributes on matching files.

      Set-FileAttributes

      Sets or clears attributes on matching files.

      Script usage:

      Set-FileAttributes(
      	[Directory: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[ReadOnly: <true/false>],
      	[Hidden: <true/false>],
      	[System: <true/false>],
      	[Verbose: <true/false>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Directory
      text
      Directory
      Include
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)".
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Read only
      true/false
      ReadOnly
      Hidden
      true/false
      Hidden
      System
      true/false
      System
      Verbose
      true/false
      Verbose
    • Set-Variable - Creates or assigns a configuration variable in Otter.

      Set-Variable

      Creates or assigns a configuration variable in Otter.

      Script usage:

      Otter::Set-Variable(
      	[Credentials: <text>],
      	Name: <text>,
      	Value: <text>,
      	[Server: <text>],
      	[Role: <text>],
      	[Environment: <text>],
      	[Sensitive: <true/false>],
      	[Host: <text>],
      	[ApiKey: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Credentials
      text
      Credentials
      Variable name
      text
      Name
      This argument is required.
      Value
      text
      Value
      This argument is required.
      Server name
      text
      Server
      Role name
      text
      Role
      Environment name
      text
      Environment
      Sensitive
      true/false
      Sensitive
      Otter server URL
      text
      Host
      Not specifying will "Use URL from credentials".
      API key
      text
      ApiKey
      Not specifying will "Use API key from credentials".

      Note: If multiple entity scopes are provided, the variable will be multi-scoped. If no entity scope is provided, a global variable will be set.

      Example:

      # sets the variable for the hdars-web-1k-tokyo server to the name of the current application
      Otter::Set-Variable
      (
          Credentials: ProductionOtter,
          Server: hdars-web-1k-tokyo,
          Name: LatestDeployedApplication,
          Value: $ApplicationName,
          Sensitive: false
      );
    • SHEnsure - Uses two shell scripts to Collect, and then Ensure a configuration about a server.

      SHEnsure

      Uses two shell scripts to Collect, and then Ensure a configuration about a server.

      Script usage:

      SHEnsure(
      	Key: <text>,
      	Value: <text>,
      	[Collect: <text>],
      	[Configure: <text>],
      	[CollectScript: <text>],
      	[ConfigureScript: <text>],
      	[UseExitCode: <true/false>],
      	[Verbose: <true/false>],
      	[CollectScriptArgs: <text>],
      	[ConfigureScriptArgs: <text>]
      );
      
      

      This operation may be prefixed with Linux::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Configuration key
      text
      Key
      This argument is required.
      Expected value
      text
      Value
      This argument is required.
      Collection script
      text
      Collect
      The output of this shell script will be used to collect the current configuration of the server.
      Configure script
      text
      Configure
      This shell script is executed if the configuration gathered using the collection script does not match the stored configuration.
      Collection script asset
      text
      CollectScript
      The name of a shell script asset to use for collection. The output of this script will be used to collect the current configuration of the server.
      Configuration script asset
      text
      ConfigureScript
      The name of a shell script asset to use for configuration. This script is executed if the configuration gathered using the collection script does not match the stored configuration.
      Use exit code
      true/false
      UseExitCode
      When set, the exit/return code of the script will be used instead of the output stream for collection.
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Collection script arguments
      text
      CollectScriptArgs
      Arguments to pass to the collect script.
      Configure script arguments
      text
      ConfigureScriptArgs
      Arguments to pass to the configure script.

      Note: The Key is a unique string per server, and having multiple operations attempt to use the same key will yield in unpredictable behavior.

    • Sleep - Halts the execution of operations for the specified number of seconds.

      Sleep

      Halts the execution of operations for the specified number of seconds.

      Script usage:

      InedoCore::Sleep <integer>;
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Seconds (default)
      integer
      Seconds
      This argument is required.
    • Stop-Container - Stops a running Docker Container on a container host server.

      Stop-Container

      Stops a running Docker Container on a container host server.

      Script usage:

      Docker::Stop-Container(
      	[ContainerName: <text>],
      	[Remove: <true/false>],
      	[FailIfContainerDoesNotExist: <true/false>],
      	[DockerExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Container name
      text
      ContainerName
      Default value is "$DockerRepository".
      Remove after stop
      true/false
      Remove
      Default value is "True".
      Fail if container does not exist
      true/false
      FailIfContainerDoesNotExist
      Default value is "False".
      Docker client path
      text
      DockerExePath
      Default value is "$DockerExePath".
    • Tag - Applies a new tag to a Docker image in the specified container source.

      Tag

      Applies a new tag to a Docker image in the specified container source.

      Script usage:

      Docker::Tag(
      	[Repository: <text>],
      	[OriginalTag: <text>],
      	[NewRepository: <text>],
      	NewTag: <text>,
      	[RepositoryName: <text>],
      	[NewRepositoryName: <text>],
      	[AttachToBuild: <true/false>],
      	[DeactivateOriginalTag: <true/false>],
      	[DockerExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Repository
      text
      Repository
      Default value is "$DockerRepository".
      Original tag
      text
      OriginalTag
      Default value is "$DockerTag".
      New Repository
      text
      NewRepository
      Value note: "(same as original container source)".
      New tag
      text
      NewTag
      This argument is required.
      Override repository name
      text
      RepositoryName
      Value note: "Do not override repository".
      Override new repository name
      text
      NewRepositoryName
      Value note: "(same as original repository name)".
      Attach to build
      true/false
      AttachToBuild
      Default value is "True".
      Remove from build
      true/false
      DeactivateOriginalTag
      Default value is "True".
      Docker client path
      text
      DockerExePath
      Default value is "$DockerExePath".
    • Transfer-Files - Copies files from a directory on a source server to a directory on a target server.

      Transfer-Files

      Copies files from a directory on a source server to a directory on a target server.

      Script usage:

      Transfer-Files(
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[FromDirectory: <text>],
      	[FromServer: <text>],
      	ToDirectory: <text>,
      	[ToServer: <text>],
      	[DeleteTarget: <true/false>],
      	[SetLastModifiedDate: <true/false>],
      	[BatchSize: <integer>],
      	[Verbose: <true/false>]
      );
      
      

      This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Include
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)".
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Source directory
      text
      FromDirectory
      Value note: "$WorkingDirectory".
      Source server
      text
      FromServer
      Value note: "$ServerName".
      Target directory
      text
      ToDirectory
      This argument is required.
      Target server
      text
      ToServer
      Value note: "Same as source server".
      Delete target
      true/false
      DeleteTarget
      When set to true, files in the target directory will be deleted if they are not present in the source directory. If false, files present in the target directory that are not present in the source directory are unmodified.
      Set last modified
      true/false
      SetLastModifiedDate
      When true, the modified date on any transferred files will be set to match their source files. Default value is "True".
      Batch size
      integer
      BatchSize
      The number of files to transfer in each batch. Default value is "1".
      Verbose
      true/false
      Verbose
    • Transition-Issues - Transitions issues in JIRA.

      Transition-Issues

      Transitions issues in JIRA.

      Script usage:

      Jira::Transition-Issues(
      	[From: <text>],
      	To: <text>,
      	[FixFor: <text>],
      	[Id: <text>],
      	[Comment: <text>],
      	[From: <text>],
      	[Project: <text>],
      	[Server: <text>],
      	[UserName: <text>],
      	[ApiToken: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      From
      text
      From
      Value note: "Any status".
      To
      text
      To
      This argument is required.
      With fix for version
      text
      FixFor
      Value note: "$ReleaseNumber".
      Specific issue ID
      text
      Id
      If an issue ID is supplied, other filters will be ignored. Value note: "Any".
      Comment
      text
      Comment
      From project
      text
      From
      Project name
      text
      Project
      Not specifying will "Use project specified in connection".
      Server
      text
      Server
      Not specifying will "Use server URL from resource".
      UserName
      text
      UserName
      Not specifying will "Use user name from resource's credentials".
      API Token
      text
      ApiToken
      Not specifying will "Use API Token from resource's credentials".

      Example:

      # closes issues for the HDARS project for the current release
      Transition-Issues(
          From: Jira7Local,
          Project: HDARS,
          From: QA-InProgress,
          To: Closed
      );
      
    • Update-WorkItem - Updates an existing work item in Azure DevOps.

      Update-WorkItem

      Updates an existing work item in Azure DevOps.

      Script usage:

      AzureDevOps::Update-WorkItem(
      	Id: <text>,
      	[Title: <text>],
      	[Description: <text>],
      	[IterationPath: <text>],
      	[State: <text>],
      	[OtherFields: <%(key1: value1, ...)>],
      	From: <text>,
      	[Project: <text>],
      	[Repository: <text>],
      	[Url: <text>],
      	[UserName: <text>],
      	[Token: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Id
      text
      Id
      The ID for issues may be stored as output variables of the Create-WorkItem operation. This argument is required.
      Title
      text
      Title
      Value note: "Unchanged".
      Description
      text
      Description
      Value note: "Unchanged".
      Iteration path
      text
      IterationPath
      Value note: "Unchanged".
      State
      text
      State
      Value note: "Unchanged".
      OtherFields
      %(key1: value1, ...)
      OtherFields
      A map variable containing other fields and values to update.
      From AzureDevOps resource
      text
      From
      This argument is required.
      Project name
      text
      Project
      Not specifying will "Use team project from AzureDevOps resource".
      Repository name
      text
      Repository
      Not specifying will "Use the project name".
      Project collection URL
      text
      Url
      Not specifying will "Use team project from AzureDevOps resource".
      User name
      text
      UserName
      Not specifying will "Use user name from AzureDevOps resource's credentials".
      Personal access token
      text
      Token
      Not specifying will "Use team project from AzureDevOps resource's credential".

      Example:

      # Update issue stored in package variable to 'In Progress'
      Update-WorkItem
      (
          Credentials: KarlAzure,
          Project: HDARS,
          Id: $WorkItemId,
          State: In Progress
      );
      
    • Upload-Assets - Uploads files to a ProGet Asset Directory.

      Upload-Assets

      Uploads files to a ProGet Asset Directory.

      Script usage:

      ProGet::Upload-Assets(
      	[To: <text>],
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[From: <text>],
      	[ProxyData: <true/false>],
      	[Source: <text>],
      	[Resource: <text>],
      	[EndpointUrl: <text>],
      	[ApiKey: <text>],
      	[UserName: <text>],
      	[Password: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      To
      text
      To
      Include
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)".
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Source directory
      text
      From
      Value note: "$WorkingDirectory".
      Proxy data through BuildMaster/Otter
      true/false
      ProxyData
      When true, requests will be made from the BuildMaster/Otter server instead of directly from the server in context.
      Source
      text
      Source
      Secure resource (legacy)
      text
      Resource
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from secure resource".
      API key
      text
      ApiKey
      Not specifying will "Use token from secure credentials".
      User name
      text
      UserName
      Not specifying will "Use user name from secure credentials".
      Password
      text
      Password
      Not specifying will "Use password from secure credentials".

      Example:

      # upload all .zip files from the working directory to the remotedir/subdir directory on the MyAssetDirResource asset directory
      ProGet::Upload-Assets
      (
          From: $WorkingDirectory,
          To: remotedir/subdir,
          Include: *.zip,
          Resource: MyAssetDirResource
      );
      
    • Upload-Http - Uploads a file to a specified URL using an HTTP POST or PUT.

      Upload-Http

      Uploads a file to a specified URL using an HTTP POST or PUT.

      Script usage:

      Upload-Http(
      	[Method: <integer>],
      	FileName: <text>,
      	Url: <text>,
      	[LogResponseBody: <true/false>],
      	[ErrorStatusCodes: <text>],
      	[ResponseBody: <text>],
      	[RequestHeaders: <%(key1: value1, ...)>],
      	[MaxResponseLength: <integer>],
      	[ProxyRequest: <true/false>],
      	[Credentials: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[IgnoreSslErrors: <true/false>]
      );
      
      

      This operation may be prefixed with HTTP::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Method
      integer
      Method
      Default value is "POST".
      File name (default)
      text
      FileName
      The path of the file to upload. This argument is required.
      URL
      text
      Url
      This argument is required.
      Log response body
      true/false
      LogResponseBody
      Error status codes
      text
      ErrorStatusCodes
      Comma-separated status codes (or ranges in the form of start:end) that should indicate this action has failed. For example, a value of "401,500:599" will fail on all server errors and also when "HTTP Unauthorized" is returned. The default is 400:599. Value note: "400:599".
      Store response as
      text
      ResponseBody
      Value note: "Do not store response body as variable".
      Request headers
      %(key1: value1, ...)
      RequestHeaders
      Max response length
      integer
      MaxResponseLength
      Default value is "1000".
      Use server in context
      true/false
      ProxyRequest
      When selected, this will proxy the HTTP calls through the server is in context instead of using the server Otter or BuildMaster is installed on. Default value is "True".
      Credentials
      text
      Credentials
      User name
      text
      UserName
      Not specifying will "Use user name from credential".
      Password
      text
      Password
      Not specifying will "Use password from credential".
      Ignore SSL Errors
      true/false
      IgnoreSslErrors
      Default value is "False".

      Example:

      # uploads a file to example.org service endpoint
      Upload-Http ReleaseNotes.xml (
          To: http://example.org/upload-service/v3/hdars
      );
      
    • Upload-ReleaseAssets - Uploads files as attachments to a GitHub release.

      Upload-ReleaseAssets

      Uploads files as attachments to a GitHub release.

      Script usage:

      GitHub::Upload-ReleaseAssets(
      	Tag: <text>,
      	[Include: <@(text)>],
      	[Exclude: <@(text)>],
      	[Directory: <text>],
      	[ContentType: <text>],
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Organization: <text>],
      	[Repository: <text>],
      	[ApiUrl: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Tag
      text
      Tag
      The tag associated with the release. The release must already exist. This argument is required.
      Include files
      @(text)
      Include
      See KB#1119 to learn more about masking syntax.
      Exclude files
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      From directory
      text
      Directory
      Value note: "$WorkingDirectory".
      Content type
      text
      ContentType
      Value note: "detect from file extension".
      From GitHub resource
      text
      From
      User name
      text
      UserName
      Not specifying will "Use user name from GitHub resource's credentials".
      Password
      text
      Password
      Not specifying will "Use password from GitHub resource's credentials".
      Organization name
      text
      Organization
      Not specifying will "Use organization from Github resource".
      Repository name
      text
      Repository
      Not specifying will "Use repository from Github resource".
      API URL
      text
      ApiUrl
      Use URL from Github resource. Value note: "https://api.github.com".

    Git

    • Create Pull Request - Creates a pull/merge request in a git repository.

      Create Pull Request

      Creates a pull/merge request in a git repository.

      Script usage:

      Git::Create-PullRequest(
      	Title: <text>,
      	[Source: <text>],
      	Target: <text>,
      	[Description: <text>],
      	[Id: <text>],
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Namespace: <text>],
      	[Repository: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Title
      text
      Title
      This argument is required.
      Source branch
      text
      Source
      Default value is "$Branch".
      Target branch
      text
      Target
      This argument is required.
      Description
      text
      Description
      Value note: "optional".
      Request Id
      text
      Id
      The id of the created pull request will be stored in this runtime variable.
      Repository connection
      text
      From
      Default value is "$Repository".
      User name
      text
      UserName
      Not specifying will "Use Username from repository connection".
      Password
      text
      Password
      Not specifying will "Use Password from repository connection".
      Namespace name
      text
      Namespace
      Not specifying will "Use namespace from repository connection".
      Repository name
      text
      Repository
      Not specifying will "Use repository from repository connection".
    • Merge Git Pull Request - Merges a pull/merge request in a git repository.

      Merge Git Pull Request

      Merges a pull/merge request in a git repository.

      Script usage:

      Git::Merge-PullRequest(
      	[Id: <text>],
      	[Method: <text>],
      	[Message: <text>],
      	[Head: <text>],
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Namespace: <text>],
      	[Repository: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Request Id
      text
      Id
      Default value is "$PullRequestId".
      Merge method
      text
      Method
      Default value is "merge".
      Commit message
      text
      Message
      Not specifying will use value: "Auto generated".
      Head commit
      text
      Head
      Pull request must match to allow merge. Default value is "$Commit".
      Repository connection
      text
      From
      Default value is "$Repository".
      User name
      text
      UserName
      Not specifying will "Use Username from repository connection".
      Password
      text
      Password
      Not specifying will "Use Password from repository connection".
      Namespace name
      text
      Namespace
      Not specifying will "Use namespace from repository connection".
      Repository name
      text
      Repository
      Not specifying will "Use repository from repository connection".
    • Set Git Commit Status - Sets a status message on Git server for a commit.

      Set Git Commit Status

      Sets a status message on Git server for a commit.

      Script usage:

      Git::Set-CommitStatus(
      	[Commit: <text>],
      	[Status: <text>],
      	[AdditionalContext: <text>],
      	[Description: <text>],
      	[NormalDescription: <text>],
      	[WarningDescription: <text>],
      	[ErrorDescription: <text>],
      	[From: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Namespace: <text>],
      	[Repository: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Commit
      text
      Commit
      Default value is "$Commit".
      Status (default)
      text
      Status
      Not specifying will use value: "Automatically determine status".
      Additional context
      text
      AdditionalContext
      Appears in the commit status dialog on GitHub after "ci/buildmaster". Used to differentiate between multiple BuildMaster statuses on the same commit. In most cases, it is safe to leave this blank.
      Description
      text
      Description
      Used for all statuses except 'auto'. Default value is "#$ExecutionId in progress...".
      Complete (success)
      text
      NormalDescription
      Default value is "#$ExecutionId completed.".
      Complete (warning)
      text
      WarningDescription
      Default value is "#$ExecutionId completed with warnings.".
      Complete (error)
      text
      ErrorDescription
      Default value is "#$ExecutionId failed!".
      Repository connection
      text
      From
      Default value is "$Repository".
      User name
      text
      UserName
      Not specifying will "Use Username from repository connection".
      Password
      text
      Password
      Not specifying will "Use Password from repository connection".
      Namespace name
      text
      Namespace
      Not specifying will "Use namespace from repository connection".
      Repository name
      text
      Repository
      Not specifying will "Use repository from repository connection".

    IIS

    • Ensure App Pool - Ensures the existence of an application pool on a server.

      Ensure App Pool

      Ensures the existence of an application pool on a server.

      Script usage:

      IIS::Ensure-AppPool(
      	Name: <text>,
      	[Runtime: <text>],
      	[Enable32BitAppOnWin64: <true/false>],
      	[Pipeline: <integer>],
      	[AutoStart: <true/false>],
      	[StartMode: <integer>],
      	[QueueLength: <Int64>],
      	[State: <integer>],
      	[IdentityType: <integer>],
      	[Credentials: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[CpuLimit: <Int64>],
      	[CpuAction: <integer>],
      	[CpuResetInterval: <TimeSpan>],
      	[CpuSmpAffinitized: <true/false>],
      	[CpuSmpProcessorAffinityMask: <Int64>],
      	[CpuSmpProcessorAffinityMask2: <Int64>],
      	[IdleTimeout: <TimeSpan>],
      	[LoadUserProfile: <true/false>],
      	[MaxProcesses: <Int64>],
      	[PingingEnabled: <true/false>],
      	[PingResponseTime: <TimeSpan>],
      	[PingInterval: <TimeSpan>],
      	[ShutdownTimeLimit: <TimeSpan>],
      	[StartupTimeLimit: <TimeSpan>],
      	[OrphanWorkerProcess: <true/false>],
      	[OrphanActionExe: <text>],
      	[OrphanActionParams: <text>],
      	[LoadBalancerCapabilities: <integer>],
      	[RapidFailProtection: <true/false>],
      	[RapidFailProtectionInterval: <TimeSpan>],
      	[RapidFailProtectionMaxCrashes: <Int64>],
      	[AutoShutdownExe: <text>],
      	[AutoShutdownParams: <text>],
      	[DisallowOverlappingRotation: <true/false>],
      	[DisallowRotationOnConfigChange: <true/false>],
      	[PeriodicRestartPrivateMemory: <Int64>],
      	[PeriodicRestartTime: <TimeSpan>],
      	[PeriodicRestartRequests: <Int64>],
      	[PeriodicRestartSchedule: <@(text)>],
      	[PeriodicRestartMemory: <Int64>],
      	[Exists: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Name
      text
      Name
      The unique name of the IIS site or application pool. This argument is required.
      .NET CLR version
      text
      Runtime
      The .NET runtime version used by this application pool. Current valid values are v4.0, v2.0, v1.1, or none.
      Enable 32-bit applications
      true/false
      Enable32BitAppOnWin64
      If set to True for an application pool on a 64-bit operating system, the worker process(es) serving the application pool run in WOW64 (Windows on Windows64) mode. In WOW64 mode, 32-bit processes load only 32-bit applications.
      Managed pipeline mode
      integer
      Pipeline
      Configures ASP.NET to run in classic mode as an ISAPI extension or in integrated mode where managed code is integrated into the request-processing pipeline.
      Start automatically
      true/false
      AutoStart
      If True, the application pool starts on creation or when IIS starts. Starting an application pool sets this property to True. Stopping an application sets this property to False.
      Start mode
      integer
      StartMode
      Configures application pool to run in On Demand Mode or Always Running Mode.
      Queue length
      Int64
      QueueLength
      Maximum number of requests that Http.sys queues for the application pool. When the queue is full, new requests receive a 503 "Service Unavailable" response.
      State
      integer
      State
      Sets the running state for the application pool.
      Identity type
      integer
      IdentityType
      Configures the application pool to run as a built-in account, such as Network Service (recommended), Local Service, or as a specific user identity.
      Credentials
      text
      Credentials
      The credential name to use for the application pool's identity. If a credential name is specified, the username and password fields will be ignored.
      User name
      text
      UserName
      Configures the application pool to run as a built-in account, such as Network Service (recommended), Local Service, or as a specific user identity.
      Password
      text
      Password
      Limit (percent)
      Int64
      CpuLimit
      Configures the maximum percentage of CPU time (in 1/1000ths of a percent) that the worker processes in an application pool are allowed to consume over a period of time as indicated by the Limit Interval setting (resetInterval property). If the limit set by Limit (limit property) is exceeded, the event is written to the event log and an optional set of events can be triggered or determined by the Limit Action setting (action property). Setting the value of Limit to 0 disables limiting the worker processes to a percentage of CPU time.
      Limit action
      integer
      CpuAction
      If set to NoAction, an event log entry is generated. If set to KillW3WP, the application pool is shut down for the duration of the reset interval and an event log entry is generated.
      Limit interval (minutes)
      TimeSpan
      CpuResetInterval
      Specifies the reset period (in minutes) for CPU monitoring and throttling limits on the application pool. When the number of minutes elapsed since the last process accounting reset equals the number specified by this property, IIS resets the CPU timers for both the logging and limit intervals. Setting the value of Limit Interval to 0 disables CPU monitoring.
      Processor affinity enabled
      true/false
      CpuSmpAffinitized
      If True, Processor Affinity Enabled forces the worker process(es) serving this application pool to run on specific CPUs. This enables sufficient use of CPU caches on multiprocessor servers.
      Processor affinity mask
      Int64
      CpuSmpProcessorAffinityMask
      Hexadecimal mask that forces the worker process(es) for this application pool to run on a specific CPU. If processor affinity is enabled, a value of 0 causes an error condition.
      Processor affinity (64-bit)
      Int64
      CpuSmpProcessorAffinityMask2
      Hexadecimal mask that forces the worker process(es) for this application pool to run on a specific CPU. If processor affinity is enabled, a value of 0 causes an error condition.
      Idle time-out (minutes)
      TimeSpan
      IdleTimeout
      Amount of time (in minutes) a worker process remains idle before it shuts down. A worker process is idle if it is not processing requests and no new requests are received.
      Load user profile
      true/false
      LoadUserProfile
      Specifies whether IIS loads the user profile for an application pool identity. When set to True, IIS loads the user profile for the application pool identity. Set to False when you require IIS 6.0 behavior.
      Max worker processes
      Int64
      MaxProcesses
      Maximum number of worker processes permitted to service requests for the application pool. If this number is greater than 1, the application pool is called a Web garden.
      Ping enabled
      true/false
      PingingEnabled
      If True, the worker process(es) serving this application pool are pinged periodically to ensure that they are still responsive. This process is called health monitoring.
      Ping max response time (seconds)
      TimeSpan
      PingResponseTime
      Maximum time (in seconds) that a worker process is given to respond to a health monitoring ping. If the worker process does not respond, it is terminated.
      Ping period (seconds)
      TimeSpan
      PingInterval
      Period of time (in seconds) between health monitoring pings sent to the worker process(es) serving this application pool.
      Shutdown time limit (seconds)
      TimeSpan
      ShutdownTimeLimit
      Period of time (in seconds) a worker process is given to finish processing requests and shut down. If the worker process exceeds the shutdown time limit, it is terminated.
      Startup time limit (seconds)
      TimeSpan
      StartupTimeLimit
      Period of time (in seconds) a worker process is given to start up and initialize. If the worker process initialization exceeds the startup time limit, it is terminated.
      Process orphaning enabled
      true/false
      OrphanWorkerProcess
      If True, an unresponsive worker process is abandoned (orphaned) instead of terminated. This feature can be used to debug a worker process failure.
      Process orphaning executable
      text
      OrphanActionExe
      Executable to run when a worker process is abandoned (orphaned). For example, C:\dbgtools tsd.exe would invoke NTSD to debug a worker process failure.
      Executable parameters
      text
      OrphanActionParams
      Parameters for the executable that is run when a worker process is abandoned (orphaned). For example, -g –p %1% is appropriate if the NTSD is the executable invoked for debugging worker process failures.
      Service unavailable response type
      integer
      LoadBalancerCapabilities
      If set to HttpLevel and the application pool is stopped, Http.sys returns an HTTP 503 error. If set to TcpLevel, Http.sys resets the connection. This is useful if the load balancer recognizes one of the response types and subsequently redirects it.
      Rapid fail protection enabled
      true/false
      RapidFailProtection
      If True, the application pool is shut down if there are a specified number of worker process failures (Maximum Failures) within a specified period (Failure Interval). By default, an application pool is shut down if there are five failures in a five minute period.
      Failure interval (minutes)
      TimeSpan
      RapidFailProtectionInterval
      The time interval (in minutes) during which the specified number of worker process failures (Maximum Failures) must occur before the application pool is shut down by Rapid Fail Protection.
      Maximum failures
      Int64
      RapidFailProtectionMaxCrashes
      Maximum number of worker process failures permitted before the application pool is shut down by Rapid Fail Protection.
      Shutdown executable
      text
      AutoShutdownExe
      Executable to run when an application pool is shut down by Rapid Fail Protection.This can be used to configure a load balancer to redirect traffic for this application to another server.
      Shutdown executable parameters
      text
      AutoShutdownParams
      Parameters for the executable to run when an application pool is shut down by Rapid Fail Protection.
      Disable overlapped recycle
      true/false
      DisallowOverlappingRotation
      If True, when the application pool recycles, the existing worker process exits before another worker process is created. Set to True if the worker process loads an application that does not support multiple instances.
      Disable for config changes
      true/false
      DisallowRotationOnConfigChange
      If True, the application pool does not recycle when its configuration is changed.
      Private memory limit (KB)
      Int64
      PeriodicRestartPrivateMemory
      Maximum amount of private memory (in KB) a worker process can consume before causing the application pool to recycle. A value of 0 means there is no limit.
      Regular time interval (minutes)
      TimeSpan
      PeriodicRestartTime
      Period of time (in minutes) after which an application pool recycles. A value of 0 means the application pool does not recycle at a regular interval.
      Request Limit
      Int64
      PeriodicRestartRequests
      Maximum number of requests an application pool can process before it is recycled. A value of 0 means the application pool can process an unlimited number of requests.
      Schedule
      @(text)
      PeriodicRestartSchedule
      Specific times of day to recycle the application pool. For example, @(3:30:00, 10:00:00, 23:59:59).
      Virtual memory limit (KB)
      Int64
      PeriodicRestartMemory
      Maximum amount of virtual memory (in KB) a worker process can consume before causing the application pool to recycle. A value of 0 means there is no limit.
      Exists
      true/false
      Exists
      Default value is "True".

      See also:

      Example:

      # ensures that the Otter application pool is present on the web server
      IIS::Ensure-AppPool(
          Name: OtterAppPool,
          Pipeline: 1, # classic mode
          Runtime: v4.0
      );
      
      # ensures that the DefaultAppPool is removed from the web server
      IIS::Ensure-AppPool(
          Name: DefaultAppPool,
          Exists: false
      );
      
    • Ensure Application - Ensures the existence of an application within an IIS site.

      Ensure Application

      Ensures the existence of an application within an IIS site.

      Script usage:

      IIS::Ensure-Application(
      	Site: <text>,
      	Path: <text>,
      	[AppPool: <text>],
      	[PhysicalPath: <text>],
      	[LogonMethod: <integer>],
      	[Credentials: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Exists: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Site name
      text
      Site
      The name of this site where the application would exist. This argument is required.
      Application path
      text
      Path
      The relative URL of the path, such as /hdars. This argument is required.
      Application pool
      text
      AppPool
      The name of the application pool assigned to the application.
      Physical path
      text
      PhysicalPath
      Physical path to the content for the application, such as c:\hdars.
      Logon method
      integer
      LogonMethod
      Specifies the type of the logon operation to perform when calling LogonUser to acquire the user token impersonated to access the physical path for the application.
      Credentials
      text
      Credentials
      The credential name to be impersonated when accessing the physical path for the application. If a credential name is specified, the username and password fields will be ignored.
      User name
      text
      UserName
      Password
      text
      Password
      Exists
      true/false
      Exists
      Default value is "True".

      Example:

      # ensures that the hdars application is present on the web server
      IIS::Ensure-Application(
          Site: Hdars,
          Path: /hdars,
          PhysicalPath: C:\hdars
      );
      
    • Ensure Site - Ensures the existence of a site on a server.

      Ensure Site

      Ensures the existence of a site on a server.

      Script usage:

      IIS::Ensure-Site(
      	Name: <text>,
      	[AppPool: <text>],
      	[Path: <text>],
      	[BindingProtocol: <text>],
      	[BindingAddress: <text>],
      	[BindingHostName: <text>],
      	[BindingPort: <integer>],
      	[BindingCertficiate: <text>],
      	[BindingCertificateStoreLocation: <integer>],
      	[BindingCertificateHash: <text>],
      	[BindingRequireSNI: <true/false>],
      	[BindingCertificateStore: <text>],
      	[Bindings: <@(%(key1: value1, ...))>],
      	[Exists: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Name
      text
      Name
      The unique name of the IIS site or application pool. This argument is required.
      Application pool
      text
      AppPool
      The name of the application pool assigned to the site.
      Virtual directory physical path
      text
      Path
      The path to the web site files on disk.
      BindingProtocol
      text
      BindingProtocol
      IP address
      text
      BindingAddress
      Default value is "*".
      Host name
      text
      BindingHostName
      BindingPort
      integer
      BindingPort
      Default value is "80".
      SSL certificate
      text
      BindingCertficiate
      Value note: "friendly name, if not using "CertificateHash"".
      Certificate store location
      integer
      BindingCertificateStoreLocation
      SSL certificate hash
      text
      BindingCertificateHash
      When specified, this value will be used to identify the SSL certificate by its thumbprint, and the "Certificate" and "CertificateStoreLocation" values will be ignored.
      Require SNI
      true/false
      BindingRequireSNI
      SSL certificate store
      text
      BindingCertificateStore
      Default value is "My".
      Multiple bindings (Legacy)
      @(%(key1: value1, ...))
      Bindings
      This setting is no longer recommended; instead, use a separate operation to set multiple bindings. To enter multiple bindings, use a list of maps, e.g.:
      @(%(IPAddress: 192.0.2.100, Port: 80, HostName: example.com, Protocol: http), %(IPAddress: 192.0.2.101, Port: 443, HostName: secure.example.com, Protocol: https, CertificateStoreName: WebHosting, CertificateHash: 51599BF2909EA984793481F0DF946C57E4FD5DEA, ServerNameIndication: true, UseCentralizedStore: false))
      .
      Exists
      true/false
      Exists
      Default value is "True".

      Note: When creating a site, you must specify binding information.

      Example:

      # ensures that the FooBar web site is present on the web server, and binds the site to the single IP address 192.0.2.100  and hostname "foorbar.corp"
      IIS::Ensure-Site(
          Name: FooBar,
          AppPool: FooBarAppPool,
          Path: E:\Websites\FooBar,
          BindingProtocol: http,
          BindingAddress: 192.0.2.100,
          BindingHostName: foobar.corp
      );
      
      # ensures that the Default Web Site is removed from the web server
      IIS::Ensure-Site(
          Name: Default Web Site,
          Exists: false
      );
      
    • Ensure Site Binding - Ensures the existence of a binding on a site.

      Ensure Site Binding

      Ensures the existence of a binding on a site.

      Script usage:

      IIS::Ensure-SiteBinding(
      	Site: <text>,
      	[Protocol: <text>],
      	[Address: <text>],
      	[HostName: <text>],
      	[Port: <integer>],
      	[Certficiate: <text>],
      	[CertificateStoreLocation: <integer>],
      	[CertificateHash: <text>],
      	[RequireSNI: <true/false>],
      	[CertificateStore: <text>],
      	[Exists: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      IIS site
      text
      Site
      This argument is required.
      Protocol
      text
      Protocol
      Default value is "http".
      IP address
      text
      Address
      Default value is "*".
      Host name
      text
      HostName
      Port
      integer
      Port
      Default value is "80".
      SSL certificate
      text
      Certficiate
      Value note: "friendly name, if not using "CertificateHash"".
      Certificate store location
      integer
      CertificateStoreLocation
      SSL certificate hash
      text
      CertificateHash
      When specified, this value will be used to identify the SSL certificate by its thumbprint, and the "Certificate" and "CertificateStoreLocation" values will be ignored.
      Require SNI
      true/false
      RequireSNI
      SSL certificate store
      text
      CertificateStore
      Default value is "My".
      Exists
      true/false
      Exists
      Default value is "True".

      See also:

      Example:

      # ensures that the Otter web site is present on the web server, and binds the site to the single IP address 192.0.2.100 on port 80 and hostname "example.com"
      IIS::Ensure-Site(
          Name: Otter,
          AppPool: OtterAppPool,
          Path: E:\Websites\Otter
      );
      
      IIS::Ensure-SiteBinding(
          Site: Otter,
          Protocol: http,
          Address: 192.0.2.100,
          Port: 80,
          HostName: example.com
      );
      
    • Ensure Virtual Directory - Ensures the existence of a virtual directory within an IIS site.

      Ensure Virtual Directory

      Ensures the existence of a virtual directory within an IIS site.

      Script usage:

      IIS::Ensure-VirtualDirectory(
      	Site: <text>,
      	[ApplicationPath: <text>],
      	Path: <text>,
      	[PhysicalPath: <text>],
      	[LogonMethod: <integer>],
      	[Credentials: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[Exists: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Site name
      text
      Site
      The name of this site where the virtual directory would exist. This argument is required.
      Application path
      text
      ApplicationPath
      The relative URL of the application containing the virtual directory, such as /. Default value is "/".
      Virtual path
      text
      Path
      The relative URL of the path, such as /hdars. This argument is required.
      Physical path
      text
      PhysicalPath
      Physical path to the content for the virtual directory, such as c:\hdars.
      Logon method
      integer
      LogonMethod
      Specifies the type of the logon operation to perform when calling LogonUser to acquire the user token impersonated to access the physical path for the virtual directory.
      Otter credentials
      text
      Credentials
      The Otter credential name to be impersonated when accessing the physical path for the virtual directory. If a credential name is specified, the username and password fields will be ignored.
      User name
      text
      UserName
      Password
      text
      Password
      Exists
      true/false
      Exists
      Default value is "True".

      Example:

      # ensures that the hdars virtual directory pool is present on the web server
      IIS::Ensure-VirtualDirectory(
          Site: Hdars,
          Path: /hdars,
          PhysicalPath: C:\hdars
      );
      
    • Recycle App Pool - Recycles an application pool.

      Recycle App Pool

      Recycles an application pool.

      Script usage:

      IIS::Recycle-AppPool(
      	[WaitForStartedStatus: <true/false>],
      	Name: <text>
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Wait for started status
      true/false
      WaitForStartedStatus
      Default value is "True".
      App pool (default)
      text
      Name
      The name of the application pool to operate on. This argument is required.

      Example:

      # stops the BuildMaster application pool 
      IIS::Stop-AppPool BuildMasterAppPool;
      
      # starts the BuildMaster application pool 
      IIS::Start-AppPool BuildMasterAppPool;
      
      # recycles the BuildMaster application pool 
      IIS::Recycle-AppPool BuildMasterAppPool;
      
    • Start App Pool - Starts an IIS app pool.

      Start App Pool

      Starts an IIS app pool.

      Script usage:

      IIS::Start-AppPool(
      	[WaitForStartedStatus: <true/false>],
      	Name: <text>
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Wait for started status
      true/false
      WaitForStartedStatus
      Default value is "True".
      App pool (default)
      text
      Name
      The name of the application pool to operate on. This argument is required.

      See also:

      Example:

      # stops the BuildMaster application pool 
      IIS::Stop-AppPool BuildMasterAppPool;
      
      # starts the BuildMaster application pool 
      IIS::Start-AppPool BuildMasterAppPool;
      
      # recycles the BuildMaster application pool 
      IIS::Recycle-AppPool BuildMasterAppPool;
      
    • Start Site - Starts an IIS Site.

      Start Site

      Starts an IIS Site.

      Script usage:

      IIS::Start-Site(
      	[WaitForStartedStatus: <true/false>],
      	Name: <text>
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Wait for started status
      true/false
      WaitForStartedStatus
      Default value is "True".
      Site (default)
      text
      Name
      The name of the IIS site to operate on. This argument is required.

      Example:

      # stops the BuildMaster web site 
      IIS::Stop-Site BuildMaster;
      
      # starts the BuildMaster web site
      IIS::Start-Site BuildMaster;
      
    • Stop App Pool - Stops an IIS app pool.

      Stop App Pool

      Stops an IIS app pool.

      Script usage:

      IIS::Stop-AppPool(
      	[WaitForStoppedStatus: <true/false>],
      	Name: <text>
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Wait for stopped status
      true/false
      WaitForStoppedStatus
      Default value is "True".
      App pool (default)
      text
      Name
      The name of the application pool to operate on. This argument is required.

      Example:

      # stops the BuildMaster application pool 
      IIS::Stop-AppPool BuildMasterAppPool;
      
      # starts the BuildMaster application pool 
      IIS::Start-AppPool BuildMasterAppPool;
      
      # recycles the BuildMaster application pool 
      IIS::Recycle-AppPool BuildMasterAppPool;
      
    • Stop Site - Stops an IIS Site.

      Stop Site

      Stops an IIS Site.

      Script usage:

      IIS::Stop-Site(
      	[WaitForStoppedStatus: <true/false>],
      	Name: <text>
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Wait for stopped status
      true/false
      WaitForStoppedStatus
      Default value is "True".
      Site (default)
      text
      Name
      The name of the IIS site to operate on. This argument is required.

      Example:

      # stops the BuildMaster web site 
      IIS::Stop-Site BuildMaster;
      
      # starts the BuildMaster web site
      IIS::Start-Site BuildMaster;
      

    Java

    • Build Ant Project - Builds an Ant project using a build file.

      Build Ant Project

      Builds an Ant project using a build file.

      Script usage:

      Build-AntProject(
      	BuildPath: <text>,
      	BuildTarget: <text>,
      	[Properties: <@(text)>],
      	[AntPath: <text>]
      );
      
      

      This operation may be prefixed with Java::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Build path
      text
      BuildPath
      The project path for the build script. Default value is "build.xml". This argument is required.
      Build target
      text
      BuildTarget
      The project target for the build script. This argument is required.
      Properties
      @(text)
      Properties
      The project properties for the build script, in the format PROPERTY=VALUE.
      ant path
      text
      AntPath
      Full path to ant on the server. Default value is "$AntPath".
    • Execute jUnit Tests - Executes jUnit 4.x and later tests.

      Execute jUnit Tests

      Executes jUnit 4.x and later tests.

      Script usage:

      Execute-JUnit(
      	Include: <@(text)>,
      	[Exclude: <@(text)>],
      	[From: <text>],
      	[ExtensionDirectories: <@(text)>],
      	[JavaPath: <text>]
      );
      
      

      This operation may be prefixed with Java::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Include
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. Default value is "**Test.class". This argument is required.
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      Source directory
      text
      From
      Extension directories
      @(text)
      ExtensionDirectories
      Cross-compile against the specified extension directories. Each JAR archive in the specified directories is searched for class files.
      Java path
      text
      JavaPath
      Full path to java (java.exe on Windows) on the target server. Default value is "$JavaPath".

    Nuget

    • Create NuGet Package - Creates a NuGet package from a project or .nuspec file (requires Windows).

      Create NuGet Package

      Creates a NuGet package from a project or .nuspec file (requires Windows).

      Script usage:

      NuGet::Create-Package(
      	SourceFile: <text>,
      	[Verbose: <true/false>],
      	[Version: <text>],
      	[Symbols: <true/false>],
      	[Build: <true/false>],
      	[Properties: <@(text)>],
      	[IncludeReferencedProjects: <true/false>],
      	[OutputDirectory: <text>],
      	[SourceDirectory: <text>],
      	[NuGetExePath: <text>],
      	[Arguments: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Source file (default)
      text
      SourceFile
      The .nuspec or MSBuild project that will be passed to NuGet.exe. This argument is required.
      Verbose logging
      true/false
      Verbose
      Version
      text
      Version
      The package version that will be passed to NuGet.exe.
      Symbols
      true/false
      Symbols
      When true, the -Symbols argument will be passed to NuGet.exe.
      Build
      true/false
      Build
      When true, the -Build argument will be passed to NuGet.exe.
      Properties
      @(text)
      Properties
      When Build is true, these values will be passed to NuGet.exe as MSBuild properties in the format PROP=VALUE.
      Include ref. projects
      true/false
      IncludeReferencedProjects
      When true, the -IncludeReferencedProjects argument will be passed to NuGet.exe.
      Output directory
      text
      OutputDirectory
      The output directory that will be passed to NuGet.exe.
      Source directory
      text
      SourceDirectory
      The working directory to use when executing NuGet. Default value is "$WorkingDirectory".
      NuGet.exe path
      text
      NuGetExePath
      Full path to NuGet.exe on the target server. When not set, the included nuget.exe will be used. This will only be used if dotnet is not available on a Windows server or PreferNuGetExe is set to true. Default value is "$NuGetExePath".
      Additional arguments
      text
      Arguments
      When specified, these arguments will be passed to NuGet.exe verbatim.

      See also:

    • dotnet pack - Creates a NuGet package from a .net project using the dotnet pack command.

      dotnet pack

      Creates a NuGet package from a .net project using the dotnet pack command.

      Script usage:

      DotNet::Pack(
      	[Project: <text>],
      	[Configuration: <text>],
      	[PackageSource: <text>],
      	[Output: <text>],
      	[PackageID: <text>],
      	[PackageVersion: <text>],
      	[VersionSuffix: <text>],
      	[IncludeSymbols: <true/false>],
      	[IncludeSource: <true/false>],
      	[Verbosity: <integer>],
      	[AdditionalArguments: <text>],
      	[EnsureDotNetInstalled: <text>],
      	[DotNetPath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project path
      text
      Project
      This must be the path to either a project file, solution file, or a directory containing a project or solution file.
      Configuration
      text
      Configuration
      Package source
      text
      PackageSource
      If specified, this NuGet package source will be used to restore packages when building.
      Output directory
      text
      Output
      The output directory to place built packages in.
      Package ID
      text
      PackageID
      Value note: "not set".
      Package Version
      text
      PackageVersion
      Value note: "not set".
      Version suffix
      text
      VersionSuffix
      Value note: "not set (ignored if Package Version is set)".
      Include symbols
      true/false
      IncludeSymbols
      Include source
      true/false
      IncludeSource
      Verbosity
      integer
      Verbosity
      Default value is "Minimal".
      Additional arguments
      text
      AdditionalArguments
      Ensure dotnet installed
      text
      EnsureDotNetInstalled
      This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
      dotnet path
      text
      DotNetPath
      Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".

      Note: This operation works on Windows and Linux as long as dotnet is installed.

    • Push NuGet Package - Publishes a NuGet package file to a NuGet package source.

      Push NuGet Package

      Publishes a NuGet package file to a NuGet package source.

      Script usage:

      NuGet::Push-Package(
      	FilePath: <text>,
      	[To: <text>],
      	[FeedUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[ApiKey: <text>],
      	[NuGetExePath: <text>],
      	[PreferNuGetExe: <true/false>],
      	[AdditionalArguments: <text>],
      	[EnsureDotNetInstalled: <text>],
      	[DotNetPath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Package file name (default)
      text
      FilePath
      Value note: "example: myPackage-1.0.0.nupkg". This argument is required.
      Package source
      text
      To
      NuGet server URL
      text
      FeedUrl
      Not specifying will "Use server URL from package source".
      User name
      text
      UserName
      Not specifying will "Use user name from package source".
      Password
      text
      Password
      Not specifying will "Use password from package source".
      NuGet API Key
      text
      ApiKey
      Not specifying will "Use API Key from package source".
      NuGet.exe path
      text
      NuGetExePath
      Full path to NuGet.exe on the target server. When not set, the included nuget.exe will be used. This will only be used if dotnet is not available on a Windows server or PreferNuGetExe is set to true. Default value is "$NuGetExePath".
      Prefer NuGet.exe
      true/false
      PreferNuGetExe
      When true, NuGet.exe will be used when run on Windows if it is available, even if dotnet is also available.
      Additional arguments
      text
      AdditionalArguments
      Ensure dotnet installed
      text
      EnsureDotNetInstalled
      This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
      dotnet path
      text
      DotNetPath
      Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".
    • Restore NuGet Packages - Restores all packages in a specified solution, project, or packages.config file.

      Restore NuGet Packages

      Restores all packages in a specified solution, project, or packages.config file.

      Script usage:

      NuGet::Restore-Packages(
      	[Target: <text>],
      	[PackagesDirectory: <text>],
      	[Source: <text>],
      	[NuGetExePath: <text>],
      	[PreferNuGetExe: <true/false>],
      	[AdditionalArguments: <text>],
      	[EnsureDotNetInstalled: <text>],
      	[DotNetPath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Target
      text
      Target
      The target solution, project, or packages.config file used to restore packages, or directory containing a solution. Value note: "$WorkingDirectory".
      Packages directory
      text
      PackagesDirectory
      Value note: "default".
      Package source
      text
      Source
      If specified, this NuGet package source will be used to restore packages.
      NuGet.exe path
      text
      NuGetExePath
      Full path to NuGet.exe on the target server. When not set, the included nuget.exe will be used. This will only be used if dotnet is not available on a Windows server or PreferNuGetExe is set to true. Default value is "$NuGetExePath".
      Prefer NuGet.exe
      true/false
      PreferNuGetExe
      When true, NuGet.exe will be used when run on Windows if it is available, even if dotnet is also available.
      Additional arguments
      text
      AdditionalArguments
      Ensure dotnet installed
      text
      EnsureDotNetInstalled
      This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
      dotnet path
      text
      DotNetPath
      Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".

    PowerShell

    • Ensure DSC Resource - Ensures the configuration of a specified PowerShell DSC Resource.

      Ensure DSC Resource

      Ensures the configuration of a specified PowerShell DSC Resource.

      Script usage:

      Ensure-DscResource(
      	[ConfigurationKey: <text>],
      	Name: <text>,
      	[Module: <text>],
      	[Properties: <%(key1: value1, ...)>],
      	[PreferWindowsPowerShell: <text>]
      );
      
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Otter configuration key
      text
      ConfigurationKey
      The name of the DSC property which will be used as the Otter configuration key for the server. If this is not specified, the "Name" property is used. Default value is "Name".
      Resource
      text
      Name
      Value note: "ex: File". This argument is required.
      Module
      text
      Module
      Default value is "PSDesiredStateConfiguration".
      Properties
      %(key1: value1, ...)
      Properties
      DSC property hashtable as an OtterScript map. Example: %(DestinationPath: C:\hdars\1000.txt, Contents: test file ensured). Value note: "%(...)".
      Prefer Windows PowerShell
      text
      PreferWindowsPowerShell
      When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "$PreferWindowsPowerShell".

      Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

      See also:

      Example:

      # ensures the existence of a file on the server
      Ensure-DscResource(
        Name: File,
        ConfigurationKey: DestinationPath,
        Properties: %(
          DestinationPath: C:\hdars\1000.txt,
          Contents: test file ensured)
      );
      
      # runs a custom resource
      Ensure-DscResource(
        Name: cHdars,
        Module: cHdarsResource,
        ConfigurationKey: LocalServer,
        Properties: %(
          MaximumSessionLength: 1000,
          PortsToListen: @(3322,4431,1123),
          Enabled: true)
      );
    • Ensure PowerShell Module - Ensures that the specified PowerShell module is installed.

      Ensure PowerShell Module

      Ensures that the specified PowerShell module is installed.

      Script usage:

      Ensure-PsModule(
      	Module: <text>,
      	[Version: <text>],
      	[MinimumVersion: <text>],
      	[Force: <true/false>],
      	[Repository: <text>],
      	[Scope: <text>],
      	[Exists: <true/false>],
      	[AllowClobber: <true/false>],
      	[AllowPrerelease: <true/false>],
      	[AcceptLicense: <true/false>],
      	[AllVersions: <true/false>],
      	[Parameters: <%(key1: value1, ...)>],
      	[Verbose: <true/false>],
      	[DebugLogging: <true/false>],
      	[PreferWindowsPowerShell: <text>]
      );
      
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Module
      text
      Module
      This argument is required.
      Version
      text
      Version
      Minimum Version
      text
      MinimumVersion
      Force
      true/false
      Force
      Use this to force installation to bypass the Untrusted Repository error or to force this version to install side-by-side with other versions that already exist. Default value is "False".
      Repository Name
      text
      Repository
      Scope
      text
      Scope
      Typically "Local" or "Global".
      Exists
      true/false
      Exists
      Default value is "True".
      Allow Clobber
      true/false
      AllowClobber
      Default value is "False".
      Allow Prerelease
      true/false
      AllowPrerelease
      Default value is "False".
      Accept License
      true/false
      AcceptLicense
      For PowerShell Core only!. Default value is "False".
      All Versions
      true/false
      AllVersions
      Default value is "False".
      Parameters
      %(key1: value1, ...)
      Parameters
      Additional parameters to pass to Install-Module. Example: %(DestinationPath: C:\hdars\1000.txt, Contents: test file ensured). Value note: "%(...)".
      Verbose
      true/false
      Verbose
      Default value is "False".
      Debug Logging
      true/false
      DebugLogging
      Default value is "False".
      Prefer Windows PowerShell
      text
      PreferWindowsPowerShell
      When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "$PreferWindowsPowerShell".

      Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

      Example:

      # ensures the existence of a module on the server
      Ensure-PsModule
      (
          Module: PackageManagement,
          MinimumVersion: 1.4.6,
          Repository: internal-powershell,
          Exists: true
      );
      
      # ensures the existence of a specific version of a module on the server
      Ensure-PsModule
      (
          Module: PackageManagement,
          Version: 1.4.6,
          Repository: internal-powershell,
          Force: true,
          Exists: true
      );
      
    • Ensure PowerShell Repository - Ensures that the specified PowerShell Repository is registered.

      Ensure PowerShell Repository

      Ensures that the specified PowerShell Repository is registered.

      Script usage:

      Ensure-PsRepository(
      	Name: <text>,
      	SourceLocation: <text>,
      	[InstallationPolicy: <text>],
      	[Exists: <true/false>],
      	[PackageManagementProvider: <text>],
      	[Parameters: <%(key1: value1, ...)>],
      	[Verbose: <true/false>],
      	[DebugLogging: <true/false>],
      	[PreferWindowsPowerShell: <text>]
      );
      
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name
      text
      Name
      This argument is required.
      Source Location
      text
      SourceLocation
      This argument is required.
      Installation Policy
      text
      InstallationPolicy
      Use "Trusted" or "Untrusted".
      Exists
      true/false
      Exists
      Default value is "True".
      Package Management Provider
      text
      PackageManagementProvider
      Parameters
      %(key1: value1, ...)
      Parameters
      Additional parameters to pass to Install-Module. Example: %(DestinationPath: C:\hdars\1000.txt, Contents: test file ensured). Value note: "%(...)".
      Verbose
      true/false
      Verbose
      Default value is "False".
      Debug Logging
      true/false
      DebugLogging
      Default value is "False".
      Prefer Windows PowerShell
      text
      PreferWindowsPowerShell
      When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "$PreferWindowsPowerShell".

      Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

      Example:

      # ensures the existence of a repository on the server
      Ensure-PsRepository(
        Name: internal-powershell,
        SourceLocation: https://proget/nuget/internal-powershell/,
        InstallationPolicy: Trusted
        Exists: true)
    • PSCall - Calls a PowerShell Script that is stored as an asset.

      PSCall

      Calls a PowerShell Script that is stored as an asset.

      Script usage:

      PSCall1 [DefaultArgument] (
      	[Arg1: Arg1Value],
      	[Arg2: Arg2Value],
      	[OutputArgument => $CustomVariable]
      );
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

      Example:

      # execute the hdars.ps1 script, passing Argument1 and Aaaaaarg2 as variables, and capturing the value of the PowerShell variable MyVariableSetInPowerShell to the OtterScript variable $MyVariable
      pscall hdars (
        Argument1: hello,
        Aaaaaarg2: World,
        MyVariableSetInPowerShell => $MyVariable
      );
      
    • PSCall2 - Calls a PowerShell Script that is stored as an asset.

      PSCall2

      Calls a PowerShell Script that is stored as an asset.

      Script usage:

      PSCall(
      	Name: <text>,
      	[Parameters: <%(key1: value1, ...)>],
      	[InputVariables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>],
      	[PreferWindowsPowerShell: <text>]
      );
      
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name (default)
      text
      Name
      The name of the script asset. This argument is required.
      Parameters
      %(key1: value1, ...)
      Parameters
      InputVariables
      %(key1: value1, ...)
      InputVariables
      OutputVariables
      @(text)
      OutputVariables
      Prefer Windows PowerShell
      text
      PreferWindowsPowerShell
      When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "$PreferWindowsPowerShell".

      Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

      Example:

      # execute the hdars.ps1 script, passing Argument1 and Aaaaaarg2 as input variables, and capturing the value of OutputArg as $OutputArg 
      PSCall2 hdars.ps1 (
        InputVariables: %(Argument1: hello, Aaaaaarg2: World),
        OutputVariables: @(MyOutputArg)
      );
      
    • PSDsc - Ensures the configuration of a specified PowerShell DSC Resource.

      PSDsc

      Ensures the configuration of a specified PowerShell DSC Resource.

      Script usage:

      PSDsc(
      	[ConfigurationKey: <text>],
      	Name: <text>,
      	[Module: <text>],
      	[Properties: <%(key1: value1, ...)>],
      	[PreferWindowsPowerShell: <text>]
      );
      
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Otter configuration key
      text
      ConfigurationKey
      The name of the DSC property which will be used as the Otter configuration key for the server. If this is not specified, the "Name" property is used. Default value is "Name".
      Resource
      text
      Name
      Value note: "ex: File". This argument is required.
      Module
      text
      Module
      Default value is "PSDesiredStateConfiguration".
      Properties
      %(key1: value1, ...)
      Properties
      DSC property hashtable as an OtterScript map. Example: %(DestinationPath: C:\hdars\1000.txt, Contents: test file ensured). Value note: "%(...)".
      Prefer Windows PowerShell
      text
      PreferWindowsPowerShell
      When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "$PreferWindowsPowerShell".

      Note: This is a shorthand version of the Ensure-DscResource operation.

      Default Argument: ResourceName: The default argument for this operation is the DSC Resource Name and should follow the format: "ModuleName::ResourceName". If "ModuleName::" is omitted, the PSDesiredStateConfiguration module will be used.

      Configuration Key: Otter Specific: By default, Otter will use the Name property of the DSC Resource as the configuration key. If there is no Name property or you would like to override the default configuration key name, specify a property named "Otter_ConfigurationKey" with the value containing a string (or list of strings) indicating the name of the property (or properties) to be used as the unique configuration key.

      Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

      Example:

      # ensures the existence of a file on the server
      PSDsc File (
        Otter_ConfigurationKey: DestinationPath,
        DestinationPath: C:\hdars\1000.txt,
        Contents: test file ensured
      );
      
      # runs a custom resource
      PSDsc cHdarsResource::cHdars (
        Otter_ConfigurationKey: LocalServer,
        MaximumSessionLength: 1000,
        PortsToListen: @(3322,4431,1123),
        Enabled: true
      );
    • PSEnsure - Calls a PowerShell Ensure Script that is stored as an asset.

      PSEnsure

      Calls a PowerShell Ensure Script that is stored as an asset.

      Script usage:

      PSEnsure1 [DefaultArgument] (
      	[Arg1: Arg1Value],
      	[Arg2: Arg2Value],
      	[OutputArgument => $CustomVariable]
      );
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Example:

      # execute the hdars.ps1 ensure script, passing Argument1 and Aaaaaarg2 as variables, and capturing the value of OutputArg as $MyVariable
      PSEnsure hdars (
        Argument1: hello,
        Aaaaaarg2: World,
        OutputArg => $MyVariable
      );
      
    • PSEnsure using Scripts - Uses two PowerShell scripts to Collect, and then Ensure a configuration about a server.

      PSEnsure using Scripts

      Uses two PowerShell scripts to Collect, and then Ensure a configuration about a server.

      Script usage:

      PSEnsureScripts(
      	Key: <text>,
      	Value: <text>,
      	[Collect: <text>],
      	[Configure: <text>],
      	[CollectScript: <text>],
      	[ConfigureScript: <text>],
      	[UseExitCode: <true/false>],
      	[Debug: <true/false>],
      	[Verbose: <true/false>],
      	[CollectScriptParams: <%(key1: value1, ...)>],
      	[ConfigureScriptParams: <%(key1: value1, ...)>]
      );
      
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Configuration key
      text
      Key
      This argument is required.
      Expected value
      text
      Value
      This argument is required.
      Collection script
      text
      Collect
      The output of this PowerShell script will be used to collect the current configuration of the server. Variables are not expanded within the contents of this property.
      Configure script
      text
      Configure
      This PowerShell script is executed if the configuration gathered using the collection script does not match the stored configuration. Variables are not expanded within the contents of this property.
      Collection script asset
      text
      CollectScript
      The name of a PowerShell script asset to use for collection. The output of this PowerShell script will be used to collect the current configuration of the server.
      Configuration script asset
      text
      ConfigureScript
      The name of a PowerShell script asset to use for configuration. This script is executed if the configuration gathered using the collection script does not match the stored configuration.
      Use exit code
      true/false
      UseExitCode
      When set, the exit/return code of the script will be used instead of the output stream for collection.
      Debug
      true/false
      Debug
      Captures the PowerShell Write-Debug stream into Otter's execution debug log.
      Verbose
      true/false
      Verbose
      Captures the PowerShell Write-Verbose stream into Otter's execution debug log.
      Collection script parameters
      %(key1: value1, ...)
      CollectScriptParams
      Map containing named arguments to pass to the PowerShell collect script.
      Configure script parameters
      %(key1: value1, ...)
      ConfigureScriptParams
      Map containing named arguments to pass to the PowerShell configure script.

      Note: The Key is a unique string per server, and having multiple operations attempt to use the same key will yield in unpredictable behavior.

      Example:

      # ensures the BuildMaster Agent service exists on the remote server
      PSEnsure(
          Key: BuildMasterAgentInstalled,
          # returns the count of INEDOBMAGT services installed
          Collect: @(Get-Service | Where-Object {$_.Name -eq "INEDOBMAGT"}).Count,
          # expected value is 1
          Value: 1,
          # if the returned value is 0 instead of 1, the installer will run
          Configure: & '\\filesrv1000\$e\Resources\BuildMasterAgentSetup.exe' /S /AgentType=TCP /Port=8080,
          Debug: true,
          Verbose: true
      );
      
      # ensures the BuildMaster Agent service exists on the remote server, using a
      # PowerShell script asset to perform the configuration
      PSEnsure(
          Key: BuildMasterAgentInstalled,
          # returns the count of INEDOBMAGT services installed
          Collect: @(Get-Service | Where-Object {$_.Name -eq "INEDOBMAGT"}).Count,
          # expected value is 1
          Value: 1,
          # use script stored in InstallBmAgent asset
          ConfigureScript: InstallBmAgent,
          ConfigureScriptParams: %(
              AgentType: TCP,
              Port: 1000),
          Debug: true,
          Verbose: true
      );
      
    • PSEnsure2 - Calls a PowerShell Ensure Script that is stored as an asset.

      PSEnsure2

      Calls a PowerShell Ensure Script that is stored as an asset.

      Script usage:

      PSEnsure(
      	Name: <text>,
      	[Parameters: <%(key1: value1, ...)>],
      	[InputVariables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>],
      	[PreferWindowsPowerShell: <text>]
      );
      
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name (default)
      text
      Name
      The name of the script asset. This argument is required.
      Parameters
      %(key1: value1, ...)
      Parameters
      InputVariables
      %(key1: value1, ...)
      InputVariables
      OutputVariables
      @(text)
      OutputVariables
      Prefer Windows PowerShell
      text
      PreferWindowsPowerShell
      When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "$PreferWindowsPowerShell".

      Example:

      # execute the EnsureLocalAdmin.ps1 ensure script
      PSEnsure EnsureLocalAdmin.ps1
      (
        Parameters: %(User: $PSCredential(defaultAdminAccount), Enabled: false)
      );
      
    • PSExec - Executes a specified PowerShell script.

      PSExec

      Executes a specified PowerShell script.

      Script usage:

      Execute-PowerShell(
      	Text: <text>,
      	[Debug: <true/false>],
      	[Verbose: <true/false>],
      	[RunOnSimulation: <true/false>],
      	[Isolated: <true/false>],
      	[SuccessExitCode: <text>],
      	[PreferWindowsPowerShell: <text>]
      );
      
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Script contents (default)
      text
      Text
      The PowerShell script text. Variables are not expanded within the contents of this property. This argument is required.
      Capture debug
      true/false
      Debug
      Captures the PowerShell Write-Debug stream into the Otter debug log. The default is false.
      Capture verbose
      true/false
      Verbose
      Captures the PowerShell Write-Verbose stream into the Otter debug log. The default is false.
      Run on simulation
      true/false
      RunOnSimulation
      Indicates whether the script will execute in simulation mode. The default is false.
      Isolated
      true/false
      Isolated
      When true, the script is run in a temporary AppDomain that is unloaded when the script completes. This is an experimental feature and may decrease performance, but may be useful if a script loads assemblies or other resources that would otherwise be leaked.
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. The default is empty, treating all exit codes as success. This can also be an integer prefixed with an inequality operator.
      Prefer Windows PowerShell
      text
      PreferWindowsPowerShell
      When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "$PreferWindowsPowerShell".

      Note: This operation will inject PowerShell variables from the execution engine runtime that match PowerShell variable expressions. This means you won't get an error if you use an undeclared variable in your script, but some expressions that PowerShell interoplates at runtime (such as a variable inside of a string), cannot be replaced by the operation.

      Note: If you are attempting to write the results of a Format-* call to the log, you may see messages similar to "Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData". To convert this to text, use the Out-String commandlet at the end of your command chain.

      Note: This script will execute in simulation mode; you set the RunOnSimulation parameter to false to prevent this behavior, or you can use the $IsSimulation variable function within the script.

      Example:

      # writes the list of services running on the computer to the Otter log
      psexec >>
          Get-Service | Where-Object {$_.Status -eq "Running"} | Format-Table Name, DisplayName | Out-String
      >>;
      
      # delete all but the latest 3 logs in the log directory, and log any debug/verbose messages to the Otter log
      psexec >>
          Get-ChildItem "E:\Site\Logs" | Sort-Object $.CreatedDate -descending | Select-Object -skip 3 | Remove-Item
      >> (Verbose: true, Debug: true, RunOnSimulation: false);
      
    • PSVerify - Uses a PowerShell script to collect configuration about a server.

      PSVerify

      Uses a PowerShell script to collect configuration about a server.

      Script usage:

      PSVerify1 [DefaultArgument] (
      	[Arg1: Arg1Value],
      	[Arg2: Arg2Value],
      	[OutputArgument => $CustomVariable]
      );
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    • PSVerify2 - Uses a PowerShell script to collect configuration about a server.

      PSVerify2

      Uses a PowerShell script to collect configuration about a server.

      Script usage:

      PSVerify(
      	Name: <text>,
      	[Parameters: <%(key1: value1, ...)>],
      	[InputVariables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>],
      	[PreferWindowsPowerShell: <text>]
      );
      
      

      This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name (default)
      text
      Name
      The name of the script asset. This argument is required.
      Parameters
      %(key1: value1, ...)
      Parameters
      InputVariables
      %(key1: value1, ...)
      InputVariables
      OutputVariables
      @(text)
      OutputVariables
      Prefer Windows PowerShell
      text
      PreferWindowsPowerShell
      When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "$PreferWindowsPowerShell".

    ProGet

    • Archive ProGet Project Release - Archives a project release in ProGet, so that it doesn't show up as an active release.

      Archive ProGet Project Release

      Archives a project release in ProGet, so that it doesn't show up as an active release.

      Script usage:

      ProGet::Archive-ProjectRelease(
      	[ProjectName: <text>],
      	[Release: <text>],
      	[To: <text>],
      	[ProGetUrl: <text>],
      	[ApiKey: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project name
      text
      ProjectName
      Default value is "$ApplicationName".
      Release number
      text
      Release
      Value note: "default ($ReleaseNumber.$BuildNumber or $BuildNumber)".
      ProGet connection
      text
      To
      Value note: "default".
      ProGet base URL
      text
      ProGetUrl
      Not specifying will "Use URL from ProGet connection".
      API key
      text
      ApiKey
      Not specifying will "Use token from ProGet connection".
    • Delete ProGet Project Release - Deletes a project release in ProGet

      Delete ProGet Project Release

      Deletes a project release in ProGet

      Script usage:

      ProGet::Delete-ProjectRelease(
      	[ProjectName: <text>],
      	[Release: <text>],
      	[To: <text>],
      	[ProGetUrl: <text>],
      	[ApiKey: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project name
      text
      ProjectName
      Default value is "$ApplicationName".
      Release number
      text
      Release
      Value note: "default ($ReleaseNumber.$BuildNumber or $BuildNumber)".
      ProGet connection
      text
      To
      Value note: "default".
      ProGet base URL
      text
      ProGetUrl
      Not specifying will "Use URL from ProGet connection".
      API key
      text
      ApiKey
      Not specifying will "Use token from ProGet connection".
    • Promote Package - Promotes a package from one feed to another in a ProGet instance.

      Promote Package

      Promotes a package from one feed to another in a ProGet instance.

      Script usage:

      ProGet::Promote(
      	[PackageSource: <text>],
      	Name: <text>,
      	Version: <text>,
      	[ToFeed: <text>],
      	[Reason: <text>],
      	[To: <text>],
      	[Feed: <text>],
      	[EndpointUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[ApiKey: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Package source
      text
      PackageSource
      Package name
      text
      Name
      This argument is required.
      Package version
      text
      Version
      Default value is "latest". This argument is required.
      Promote to Feed
      text
      ToFeed
      Value note: "required if not set in Connection/Identity".
      Reason
      text
      Reason
      Value note: "Unspecified".
      To source
      text
      To
      Value note: "Same as From package source".
      Feed name
      text
      Feed
      Not specifying will "Use Feed from package source".
      API endpoint URL
      text
      EndpointUrl
      Not specifying will "Use URL from package source".
      ProGet user name
      text
      UserName
      The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
      ProGet password
      text
      Password
      The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
      ProGet API Key
      text
      ApiKey
      An API Key that can access this feed. Not specifying will "Use API Key from package source".
    • Publish Project Dependencies - Scans for NuGet, npm, or PyPI package dependencies of a project and sends information about them to a ProGet instance.

      Publish Project Dependencies

      Scans for NuGet, npm, or PyPI package dependencies of a project and sends information about them to a ProGet instance.

      Script usage:

      ProGet::Scan(
      	Project: <text>,
      	[To: <text>],
      	[ProGetUrl: <text>],
      	[ApiKey: <text>],
      	[ProjectName: <text>],
      	[Release: <text>],
      	[ProjectType: <text>],
      	[ScanType: <integer>],
      	[DoNotScanNodeModules: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Project path
      text
      Project
      e.g. src/MyProject.csproj". This argument is required.
      ProGet connection
      text
      To
      Value note: "default".
      ProGet base URL
      text
      ProGetUrl
      Not specifying will "Use URL from ProGet connection".
      API key
      text
      ApiKey
      Not specifying will "Use token from ProGet connection".
      Project name
      text
      ProjectName
      Value note: "$ApplicationName".
      Release number
      text
      Release
      Value note: "default ($ReleaseNumber.$BuildNumber or $BuildNumber)".
      Project type
      text
      ProjectType
      Value note: "application".
      Scan type
      integer
      ScanType
      Default value is "Auto".
      Do Not Scan node_modules (npm only)
      true/false
      DoNotScanNodeModules

      Example:

      # Publish NuGet dependencies for MyProject.csproj in the Libraries feed of the LocalProGet instance
      ProGet::Scan
      (
          Project: src/MyProject.csproj
      );

    Python

    • Install Pip Packages - Installs packages using pip.

      Install Pip Packages

      Installs packages using pip.

      Script usage:

      Pip::Install-Packages(
      	[InstallFromRequirements: <true/false>],
      	[Source: <text>],
      	[AdditionalArguments: <text>],
      	[PythonPath: <text>],
      	[VirtualEnv: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Install from requirements.txt
      true/false
      InstallFromRequirements
      Install a list of requirements specified in the default requirements file (requirements.txt) by passing the "-r requirements.txt" argument to the commandline. Default value is "True".
      Package source
      text
      Source
      If specified, this PyPI package index will be used to install packages from.
      Additional arguments
      text
      AdditionalArguments
      Python path
      text
      PythonPath
      Full path to python/python.exe on the target server. Default value is "$PythonPath".
      VirtualEnv
      text
      VirtualEnv
      Default value is "$PythonVirtualEnv".
    • PYVerify - Uses a Python script to collect configuration about a server.

      PYVerify

      Uses a Python script to collect configuration about a server.

      Script usage:

      PYVerify(
      	Name: <text>,
      	[Parameters: <%(key1: value1, ...)>],
      	[Verbose: <true/false>],
      	[SuccessExitCode: <text>],
      	[PythonPath: <text>],
      	[CaptureDebug: <true/false>],
      	[InputVariables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>],
      	[Arguments: <text>],
      	[EnvironmentVariables: <%(key1: value1, ...)>]
      );
      
      

      This operation may be prefixed with Python::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name (default)
      text
      Name
      The name of the script asset. This argument is required.
      Parameters
      %(key1: value1, ...)
      Parameters
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      Python path
      text
      PythonPath
      Full path to python/python.exe on the target server. Default value is "$PythonPath".
      Capture debug messages
      true/false
      CaptureDebug
      InputVariables
      %(key1: value1, ...)
      InputVariables
      OutputVariables
      @(text)
      OutputVariables
      Command line arguments
      text
      Arguments
      Environment variables
      %(key1: value1, ...)
      EnvironmentVariables

    Registry

    • Ensure Registry Key - Ensures that a registry key exists or does not exist.

      Ensure Registry Key

      Ensures that a registry key exists or does not exist.

      Script usage:

      Windows::Ensure-RegistryKey(
      	[Exists: <true/false>],
      	[DefaultValue: <text>],
      	Hive: <integer>,
      	Key: <text>
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Exists
      true/false
      Exists
      Default value is "True".
      Default value
      text
      DefaultValue
      A key's default value is the legacy unnamed value that every registry key may have. This is rarely used.
      Hive
      integer
      Hive
      This argument is required.
      Key
      text
      Key
      This argument is required.

      Example:

      Windows::Ensure-RegistryKey
      (
          Hive: LocalMachine,
          Key: SOFTWARE\Inedo\BuildMaster
      );
    • Ensure Registry Value - Ensures that a registry value exists or does not exist on a specified key.

      Ensure Registry Value

      Ensures that a registry value exists or does not exist on a specified key.

      Script usage:

      Windows::Ensure-RegistryValue(
      	Name: <text>,
      	[Value: <@(text)>],
      	[Kind: <integer>],
      	[Exists: <true/false>],
      	Hive: <integer>,
      	Key: <text>
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Value name
      text
      Name
      This argument is required.
      Value
      @(text)
      Value
      Value kind
      integer
      Kind
      Default value is "String".
      Exists
      true/false
      Exists
      Default value is "True".
      Hive
      integer
      Hive
      This argument is required.
      Key
      text
      Key
      This argument is required.

      Example:

      Windows::Ensure-RegistryValue
      (
          Name: ServicePath,
          Value: C:\BuildMaster\Service,
          Hive: LocalMachine,
          Key: SOFTWARE\Inedo\BuildMaster
      );
    • Get Registry Value - Reads a value from the Windows registry and stores it in a variable.

      Get Registry Value

      Reads a value from the Windows registry and stores it in a variable.

      Script usage:

      Windows::Get-RegistryValue(
      	Hive: <integer>,
      	Key: <text>,
      	Name: <text>,
      	[Value: <RuntimeValue>],
      	[FailIfNotFound: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Hive
      integer
      Hive
      This argument is required.
      Key
      text
      Key
      This argument is required.
      Value name
      text
      Name
      This argument is required.
      Store to variable
      RuntimeValue
      Value
      Fail if value not found
      true/false
      FailIfNotFound

      Example:

      Windows::Get-RegistryValue
      (
          Hive: LocalMachine,
          Key: SOFTWARE\7-Zip,
          Name: Path,
          Value => $PathTo7Zip
      );

    Servers

    • Acquire Server - Acquires a server from a resource pool defined by a server role. This operation is affected by execution priority.

      Acquire Server

      Acquires a server from a resource pool defined by a server role. This operation is affected by execution priority.

      Script usage:

      Acquire-Server(
      	[Role: <text>],
      	[ServerName: <text>],
      	[Verbose: <true/false>],
      	[DoNotShare: <true/false>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Server role
      text
      Role
      A server role that defines the list of servers to be used as the source of the pool.
      Server name output
      text
      ServerName
      Default value is "$AcquiredServerName".
      Log verbose
      true/false
      Verbose
      Do not share
      true/false
      DoNotShare
      Do not share this server between multiple AcquireServerOperation uses in this execution. This means that you must call Release Server in order to acquire the same server before the execution finishes.

      Example:

      # acquires a server associated with the build-servers role
      Acquire-Server( 
         Role: build-servers,
         ServerName => $AcquiredServerName
      );
      
      for server $AcquiredServerName
      {
          Log-Information Acquired server: $ServerName;
      }
      
    • Release Server - Releases a server from a resource pool if acquired previously in the execution.

      Release Server

      Releases a server from a resource pool if acquired previously in the execution.

      Script usage:

      Release-Server(
      	Server: <text>,
      	[Role: <text>],
      	[Verbose: <true/false>]
      );
      
      

      This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Server name (default)
      text
      Server
      This argument is required.
      Server role
      text
      Role
      Value note: "global".
      Log verbose
      true/false
      Verbose

      Example:

      # releases a server acquired earlier
      Acquire-Server( 
         Role: build-servers,
         ServerName => $AcquiredServerName
      );
      
      # ...
      
      Release-Server( 
         Role: build-servers,
         Server: $AcquiredServerName
      );
      
    • Restart Server - Restarts a server and waits for it to become available again.

      Restart Server

      Restarts a server and waits for it to become available again.

      Script usage:

      Restart-Server(
      	[After: <integer>],
      	[MinimumDelay: <integer>]
      );
      
      

      This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Restart after
      integer
      After
      Value note: "default (immediately)".
      Minimum reconnect wait
      integer
      MinimumDelay
      Value note: "default (15 seconds)".

      Note: The After and MinimumDelay properties are advanced options, and determine how many seconds to wait before the operating system shutdown is initiated (default and minimum value is 5), and how many seconds to wait until attempting to reconnect to the agent (default and minimum value is 15). These generally should be kept at defaults, unless the server takes an extraordinary time to shutdown.

      Note: If the server is used by another operation before this operation completes, then the results are undefined.

      Example:

          # restart the current server after 10 seconds
          Restart-Server(
              After: 10
          );

    Services

    • Ensure Service - Ensures the configuration of a Windows service on a server.

      Ensure Service

      Ensures the configuration of a Windows service on a server.

      Script usage:

      Ensure-Service(
      	Name: <text>,
      	[DisplayName: <text>],
      	[Description: <text>],
      	[Status: <integer>],
      	[Exists: <true/false>],
      	Path: <text>,
      	[Startup: <integer>],
      	[DelayedStart: <true/false>],
      	[Credentials: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[FirstFailure: <integer>],
      	[SecondFailure: <integer>],
      	[SubsequentFailures: <integer>],
      	[RestartDelay: <integer>],
      	[OnFailureProgramPath: <text>],
      	[RebootMessage: <text>],
      	[Dependencies: <@(text)>],
      	[StatusChangeTimeout: <TimeSpan>]
      );
      
      

      This operation may be prefixed with Windows::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name
      text
      Name
      This argument is required.
      Display name
      text
      DisplayName
      Description
      text
      Description
      Status
      integer
      Status
      Exists
      true/false
      Exists
      Default value is "True".
      Path w/ arguments
      text
      Path
      The executable path of the service. This field may include any arguments that will be supplied to the executable. Executable paths that include spaces should be wrapped with double-quotes, e.g.: "C:\Program Files\Hdars\Hdars.Service.exe" -arg1 -arg2. This argument is required.
      Startup
      integer
      Startup
      Startup type.
      DelayedStart
      true/false
      DelayedStart
      Delayed start.
      Credentials
      text
      Credentials
      The credential name to use as the service's Log On user. If a credential name is specified, the username and password fields will be ignored.
      User name
      text
      UserName
      The user account name to run the service as. If this value is not supplied, NT AUTHORITY\LocalSystem will be assumed.
      Password
      text
      Password
      The password for the account that runs the service. If NT AUTHORITY\LocalSystem is specified, this field must not have a value set.
      First failure
      integer
      FirstFailure
      Second failure
      integer
      SecondFailure
      Subsequent failures
      integer
      SubsequentFailures
      Restart delay
      integer
      RestartDelay
      Run program
      text
      OnFailureProgramPath
      Reboot message
      text
      RebootMessage
      Dependencies
      @(text)
      Dependencies
      Status change timeout
      TimeSpan
      StatusChangeTimeout
      The number of seconds to wait for a server to change between two statuses (e.g. stopped to starting) before raising an error. Default value is "30".

      Example:

      # ensures the HdarsSvc is present on the server using the HdarsSvc credentials in Otter
      Windows::Ensure-Service
      (
          Name: HdarsSvc,
          DisplayName: HDARS Console Log Service,
          Status: Running,
          Path: E:\Services\Hdars.Service.exe,
          Startup: Auto,
          Credentials: HdarsSvc,
          FirstFailure: Restart
      );
      
    • Start Windows Service - Starts an existing Windows service.

      Start Windows Service

      Starts an existing Windows service.

      Script usage:

      Windows::Start-Service(
      	Name: <text>,
      	[WaitForRunningStatus: <true/false>],
      	[FailIfServiceDoesNotExist: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Service name (default)
      text
      Name
      This argument is required.
      Wait for running status
      true/false
      WaitForRunningStatus
      Default value is "True".
      Fail if service does not exist
      true/false
      FailIfServiceDoesNotExist
      Default value is "False".

      Example:

      # starts the FOOBAR service on the remote server
      Start-Service FOOBAR;
    • Stop Windows Service - Stops an existing Windows service.

      Stop Windows Service

      Stops an existing Windows service.

      Script usage:

      Windows::Stop-Service(
      	Name: <text>,
      	[WaitForStoppedStatus: <true/false>],
      	[FailIfServiceDoesNotExist: <true/false>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Service name (default)
      text
      Name
      This argument is required.
      Wait for stopped status
      true/false
      WaitForStoppedStatus
      Default value is "True".
      Fail if service does not exist
      true/false
      FailIfServiceDoesNotExist
      Default value is "True".

      Example:

      # stops the HDARS service on the remote server
      Stop-Service HDARS;

    Shell

    • Execute Shell Script - Executes a specified shell script.

      Execute Shell Script

      Executes a specified shell script.

      Script usage:

      SHExec(
      	Text: <text>,
      	[Variables: <%(key1: value1, ...)>],
      	[OutVariables: <@(text)>],
      	[EnvironmentVariables: <%(key1: value1, ...)>],
      	[Arguments: <text>],
      	[Verbose: <true/false>],
      	[OutputLogLevel: <integer>],
      	[ErrorOutputLogLevel: <integer>],
      	[SuccessExitCode: <text>],
      	[CaptureDebug: <true/false>]
      );
      
      

      This operation may be prefixed with Linux::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Text (default)
      text
      Text
      The shell script text. This argument is required.
      Variables
      %(key1: value1, ...)
      Variables
      OutVariables
      @(text)
      OutVariables
      Environment variables
      %(key1: value1, ...)
      EnvironmentVariables
      Command line arguments
      text
      Arguments
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Output log level
      integer
      OutputLogLevel
      Error log level
      integer
      ErrorOutputLogLevel
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      Capture debug messages
      true/false
      CaptureDebug
    • SHCall - Calls a shell script that is stored as an asset.

      SHCall

      Calls a shell script that is stored as an asset.

      Script usage:

      SHCall(
      	Name: <text>,
      	[Arguments: <text>],
      	[Verbose: <true/false>],
      	[ExitCode: <integer>],
      	[SuccessExitCode: <text>],
      	[OutputLogLevel: <integer>],
      	[ErrorOutputLogLevel: <integer>],
      	[Parameters: <%(key1: value1, ...)>],
      	[InputVariables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>],
      	[EnvironmentVariables: <%(key1: value1, ...)>],
      	[CaptureDebug: <true/false>]
      );
      
      

      This operation may be prefixed with Linux::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name (default)
      text
      Name
      The name of the script asset. This argument is required.
      Arguments
      text
      Arguments
      Arguments to pass to the script.
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Exit code
      integer
      ExitCode
      Value note: "eg. $ScriptExitCode".
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      Output log level
      integer
      OutputLogLevel
      Error log level
      integer
      ErrorOutputLogLevel
      Parameters
      %(key1: value1, ...)
      Parameters
      InputVariables
      %(key1: value1, ...)
      InputVariables
      OutputVariables
      @(text)
      OutputVariables
      Environment variables
      %(key1: value1, ...)
      EnvironmentVariables
      Capture debug messages
      true/false
      CaptureDebug
    • SHEnsure2 - Uses a Shell script to collect, and then Ensure a configuration about a server.

      SHEnsure2

      Uses a Shell script to collect, and then Ensure a configuration about a server.

      Script usage:

      SHEnsure2(
      	Name: <text>,
      	[Parameters: <%(key1: value1, ...)>],
      	[Verbose: <true/false>],
      	[OutputLogLevel: <integer>],
      	[ErrorOutputLogLevel: <integer>],
      	[SuccessExitCode: <text>],
      	[CaptureDebug: <true/false>],
      	[InputVariables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>],
      	[Arguments: <text>],
      	[EnvironmentVariables: <%(key1: value1, ...)>]
      );
      
      

      This operation may be prefixed with Linux::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name (default)
      text
      Name
      The name of the script asset. This argument is required.
      Parameters
      %(key1: value1, ...)
      Parameters
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Output log level
      integer
      OutputLogLevel
      Error log level
      integer
      ErrorOutputLogLevel
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      Capture debug messages
      true/false
      CaptureDebug
      InputVariables
      %(key1: value1, ...)
      InputVariables
      OutputVariables
      @(text)
      OutputVariables
      Command line arguments
      text
      Arguments
      Environment variables
      %(key1: value1, ...)
      EnvironmentVariables
    • SHVerify2 - Uses a Shell script to collect configuration about a server.

      SHVerify2

      Uses a Shell script to collect configuration about a server.

      Script usage:

      SHVerify2(
      	Name: <text>,
      	[Parameters: <%(key1: value1, ...)>],
      	[Verbose: <true/false>],
      	[OutputLogLevel: <integer>],
      	[ErrorOutputLogLevel: <integer>],
      	[SuccessExitCode: <text>],
      	[CaptureDebug: <true/false>],
      	[InputVariables: <%(key1: value1, ...)>],
      	[OutputVariables: <@(text)>],
      	[EnvironmentVariables: <%(key1: value1, ...)>],
      	[Arguments: <text>]
      );
      
      

      This operation may be prefixed with Linux::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Name (default)
      text
      Name
      The name of the script asset. This argument is required.
      Parameters
      %(key1: value1, ...)
      Parameters
      Verbose
      true/false
      Verbose
      When true, additional information about staging the script is written to the debug log.
      Output log level
      integer
      OutputLogLevel
      Error log level
      integer
      ErrorOutputLogLevel
      Success exit code
      text
      SuccessExitCode
      Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
      Capture debug messages
      true/false
      CaptureDebug
      InputVariables
      %(key1: value1, ...)
      InputVariables
      OutputVariables
      @(text)
      OutputVariables
      Environment variables
      %(key1: value1, ...)
      EnvironmentVariables
      Command line arguments
      text
      Arguments

    Source Control

    • SVN Checkout - Checks out a working copy from a repository.

      SVN Checkout

      Checks out a working copy from a repository.

      Script usage:

      Subversion::Svn-Checkout(
      	[SourcePath: <text>],
      	[DiskPath: <text>],
      	[RevisionNumber: <text>],
      	[From: <text>],
      	[AdditionalArguments: <text>],
      	[RepositoryUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[SvnExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Source path
      text
      SourcePath
      Value note: "Repository root".
      Working copy directory
      text
      DiskPath
      Value note: "$WorkingDirectory".
      Revision number
      text
      RevisionNumber
      Value note: "eg. $RevisionNumber".
      From Svn resource
      text
      From
      Additional arguments
      text
      AdditionalArguments
      Repository URL
      text
      RepositoryUrl
      Not specifying will "Use repository URL from credentials".
      User name
      text
      UserName
      Not specifying will "Use user name from credentials".
      Password
      text
      Password
      Not specifying will "Use password from credentials".
      svn.exe path
      text
      SvnExePath
      Default value is "$SvnExePath".

      Example:

      # checkout a remote repository locally
      Svn-Checkout(
          Credentials: Hdars-Subversion,
          SourcePath: trunk,
          To: ~\Sources
      );
      
    • SVN Copy - Creates a copy of a source path to facilitate branching and tagging.

      SVN Copy

      Creates a copy of a source path to facilitate branching and tagging.

      Script usage:

      Subversion::Svn-Copy(
      	Source: <text>,
      	To: <text>,
      	Message: <text>,
      	[RevisionNumber: <text>],
      	[From: <text>],
      	[AdditionalArguments: <text>],
      	[RepositoryUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[SvnExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      From path
      text
      Source
      This is the path relative to the Repository URL. This argument is required.
      To path
      text
      To
      This is the path relative to the Repository URL. All parent folders listed in the path must exist except the final child folder. This argument is required.
      Log message
      text
      Message
      This argument is required.
      Revision number
      text
      RevisionNumber
      From Svn resource
      text
      From
      Additional arguments
      text
      AdditionalArguments
      Repository URL
      text
      RepositoryUrl
      Not specifying will "Use repository URL from credentials".
      User name
      text
      UserName
      Not specifying will "Use user name from credentials".
      Password
      text
      Password
      Not specifying will "Use password from credentials".
      svn.exe path
      text
      SvnExePath
      Default value is "$SvnExePath".

      Example:

      # branch trunk to a path using the current release name
      Svn-Copy(
          Credentials: Hdars-Subversion,
          From: trunk,
          To: branches/$ReleaseName
      );
      
      # create a tag of the current package number
      Svn-Copy(
          Credentials: Hdars-Subversion,
          From: trunk,
          To: tags/$ReleaseNumber.$PackageNumber
      );
      
    • SVN Delete - Deletes a file in a Subversion repository.

      SVN Delete

      Deletes a file in a Subversion repository.

      Script usage:

      Subversion::Svn-Delete(
      	Path: <text>,
      	Message: <text>,
      	[From: <text>],
      	[AdditionalArguments: <text>],
      	[RepositoryUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[SvnExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      File path
      text
      Path
      This argument is required.
      Log message
      text
      Message
      This argument is required.
      From Svn resource
      text
      From
      Additional arguments
      text
      AdditionalArguments
      Repository URL
      text
      RepositoryUrl
      Not specifying will "Use repository URL from credentials".
      User name
      text
      UserName
      Not specifying will "Use user name from credentials".
      Password
      text
      Password
      Not specifying will "Use password from credentials".
      svn.exe path
      text
      SvnExePath
      Default value is "$SvnExePath".
    • SVN Export - Gets the unversioned contents of a repository to a specified directory.

      SVN Export

      Gets the unversioned contents of a repository to a specified directory.

      Script usage:

      Subversion::Svn-Export(
      	SourcePath: <text>,
      	[DiskPath: <text>],
      	[RevisionNumber: <text>],
      	[From: <text>],
      	[AdditionalArguments: <text>],
      	[RepositoryUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[SvnExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Source path
      text
      SourcePath
      This argument is required.
      Export to directory
      text
      DiskPath
      Value note: "$WorkingDirectory".
      Revision number
      text
      RevisionNumber
      Value note: "eg. $RevisionNumber".
      From Svn resource
      text
      From
      Additional arguments
      text
      AdditionalArguments
      Repository URL
      text
      RepositoryUrl
      Not specifying will "Use repository URL from credentials".
      User name
      text
      UserName
      Not specifying will "Use user name from credentials".
      Password
      text
      Password
      Not specifying will "Use password from credentials".
      svn.exe path
      text
      SvnExePath
      Default value is "$SvnExePath".

      Example:

      # export the contents of a remote repository so .svn directories are not included
      Svn-Export(
          Credentials: Hdars-Subversion,
          SourcePath: trunk,
          To: ~\Sources
      );
      
    • SVN Update - Bring changes from a repository into the working copy.

      SVN Update

      Bring changes from a repository into the working copy.

      Script usage:

      Subversion::Svn-Update(
      	[DiskPath: <text>],
      	[From: <text>],
      	[AdditionalArguments: <text>],
      	[RepositoryUrl: <text>],
      	[UserName: <text>],
      	[Password: <text>],
      	[SvnExePath: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Working copy directory
      text
      DiskPath
      Value note: "$WorkingDirectory".
      From Svn resource
      text
      From
      Additional arguments
      text
      AdditionalArguments
      Repository URL
      text
      RepositoryUrl
      Not specifying will "Use repository URL from credentials".
      User name
      text
      UserName
      Not specifying will "Use user name from credentials".
      Password
      text
      Password
      Not specifying will "Use password from credentials".
      svn.exe path
      text
      SvnExePath
      Default value is "$SvnExePath".

      Example:

      # update a local disk path (specifed as an application variable) to match the contents of its remote repository
      Svn-Update(
          Credentials: Hdars-Subversion,
          DiskPath: E:\LocalSvnRepos\$ApplicationSvnRepo
      );
      

    Unit Tests

    • Execute Python Unit Tests - Executes Python unit tests.

      Execute Python Unit Tests

      Executes Python unit tests.

      Script usage:

      Python::Execute-PyUnit(
      	[Arguments: <text>],
      	[Verbose: <true/false>],
      	[FailFast: <true/false>],
      	[RecordOutput: <true/false>],
      	[PythonPath: <text>],
      	[VirtualEnv: <text>]
      );
      
      

      Arguments:

      NameFormatScript UsageUsage Notes
      Arguments
      text
      Arguments
      Default value is "discover".
      Verbose
      true/false
      Verbose
      Default value is "True".
      FailFast
      true/false
      FailFast
      Default value is "False".
      RecordOutput
      true/false
      RecordOutput
      Default value is "True".
      Python path
      text
      PythonPath
      Full path to python/python.exe on the target server. Default value is "$PythonPath".
      VirtualEnv
      text
      VirtualEnv
      Default value is "$PythonVirtualEnv".

    Windows

    • Sign Binary - Signs .exe or .dll files using an installed code signing certificate.

      Sign Binary

      Signs .exe or .dll files using an installed code signing certificate.

      Script usage:

      Sign-Exe(
      	SubjectName: <text>,
      	[TimestampServer: <text>],
      	[ContentDescription: <text>],
      	[ContentUrl: <text>],
      	Include: <@(text)>,
      	[Exclude: <@(text)>],
      	[SignToolPath: <text>],
      	[SourceDirectory: <text>]
      );
      
      

      This operation may be prefixed with Windows::, although this is a built-in namespace and isn't really necessary.

      Arguments:

      NameFormatScript UsageUsage Notes
      Subject
      text
      SubjectName
      The subject name of the certificate. This is used to identify the certificate. This argument is required.
      Timestamp server
      text
      TimestampServer
      This server will be used to add a timestamp to the signature. Default value is "http://timestamp.comodoca.com/".
      Description
      text
      ContentDescription
      The content description that will be included with the signature.
      URL
      text
      ContentUrl
      The content URL that will be included with the signature.
      Include (default)
      @(text)
      Include
      See KB#1119 to learn more about masking syntax. This argument is required.
      Exclude
      @(text)
      Exclude
      See KB#1119 to learn more about masking syntax.
      signtool.exe path
      text
      SignToolPath
      The full path of signtool.exe. Default value is "$SignToolPath".
      Directory
      text
      SourceDirectory