Skip to main content

Add-VSTeamVariableGroup

SYNOPSIS

Adds a variable group.

SYNTAX

ByHashtable

Add-VSTeamVariableGroup -Name <String> [-Description <String>] -Variables <Hashtable> [-ProjectName <String>]
[<CommonParameters>]

ByBody

Add-VSTeamVariableGroup -Body <String> [-ProjectName <String>] [<CommonParameters>]

DESCRIPTION

Adds a variable group.

EXAMPLES

Example 1

$methodParameters = @{
ProjectName = "some_project_name"
Name = "new_variable_group"
Description = "Describe the Variable Group"
Type = "Vsts"
Variables = @{
key1 = @{
value = "value1"
}
key2 = @{
value = "value2"
isSecret = $true
}
}
}

Add-VSTeamVariableGroup @methodParameters

Example 2

$methodParameters = @{
ProjectName = "some_project_name"
Name = "new_variable_group"
Description = "Describe the Variable Group"
Type = "AzureKeyVault"
Variables = @{
name_of_existing_secret = @{
enabled = $true
contentType = ""
value = ""
isSecret = $true
}
}
ProviderData = @{
serviceEndpointId = "AzureRMServiceEndpointGuid"
vault = "name_of_existing_key_vault"
}
}

Add-VSTeamVariableGroup @methodParameters

Example 3

# Copy variable group varGroupName from project sourceProjectName to project targetProjectName.  If varGroupName already exists, we'll update it; else, we'll add it.

$Name = "varGroupName"
$FromProject = "sourceProjectName"
$ToProject = "targetProjectName"

$FromVariableGroupObject = Get-VSTeamVariableGroup -Name $Name -ProjectName $FromProject
$body = ConvertTo-Json -InputObject $FromVariableGroupObject -Depth 100 -Compress
$toVariableGroupObject = Get-VSTeamVariableGroup -Name $Name -ProjectName $ToProject
if ($toVariableGroupObject) {
Update-VSTeamVariableGroup -Body $body -ProjectName $ToProject -Id $toVariableGroupObject.id
}
else {
Add-VSTeamVariableGroup -Body $body -ProjectName $ToProject
}

PARAMETERS

-Description

The variable group description

Type: String
Parameter Sets: ByHashtable
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Name

The variable group name

Type: String
Parameter Sets: ByHashtable
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Variables

The variable group variables.

Type: Hashtable
Parameter Sets: ByHashtable
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-Body

The json that represents the variable group as a string

Type: String
Parameter Sets: ByBody
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

-ProjectName

Specifies the team project for which this function operates.

You can tab complete from a list of available projects.

You can use Set-VSTeamDefaultProject to set a default project so you do not have to pass the ProjectName with each call.

Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: True (ByPropertyName)
Accept wildcard characters: False

CommonParameters

This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.

INPUTS

System.String

System.Collections.Hashtable

OUTPUTS

System.Object

NOTES

Prerequisites:

Set the account and version that all calls will use with Set-VSTeamAccount. Default version sets to API version 3.0 (TFS2017) if not manually set.

tips:

  • check called version of the API with Get-VSTeamAPIVersion or Get-VSTeamInfo
  • use Set-VSTeamDefaultProject to set default project for every call
  • use Set-VSTeamDefaultAPITimeout to change the default timeout of 60 seconds for all calls.
  • use Profiles to load an account and the correct version

Update-VSTeamVariableGroup

Get-VSTeamVariableGroup

Remove-VSTeamVariableGroup