diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index de92334ba3a7..fd2b23f33aa3 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -17,73 +17,75 @@ Tasks/AppCenterTestV1/ @imenkov @lucen-ms @DergachevE Tasks/ArchiveFilesV2/ @microsoft/akvelon-build-task-team -Tasks/AzureAppServiceManageV0/ @rvairavelu @microsoft/pipeline-environment-team +# DRI Rotation for @microsoft/release-management-task-team : DRI-ReleaseManagement -Tasks/AzureAppServiceSettingsV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureAppServiceManageV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureCLIV1/ @rvairavelu @manolerazvan +Tasks/AzureAppServiceSettingsV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureCLIV2/ @rvairavelu @manolerazvan +Tasks/AzureCLIV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureCloudPowerShellDeploymentV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureCLIV2/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureCloudPowerShellDeploymentV2/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureCloudPowerShellDeploymentV1/ @microsoft/release-management-task-team @manolerazvan + +Tasks/AzureCloudPowerShellDeploymentV2/ @microsoft/release-management-task-team @manolerazvan Tasks/AzureContainerAppsV0/ @cormacpayne @daniv-msft Tasks/AzureContainerAppsV1/ @cormacpayne @daniv-msft -Tasks/AzureFileCopyV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureFileCopyV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureFileCopyV2/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureFileCopyV2/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureFileCopyV3/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureFileCopyV3/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureFileCopyV4/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureFileCopyV4/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureFunctionAppV1/ @finvamp1 @patelchandni @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureFunctionAppV1/ @finvamp1 @patelchandni -Tasks/AzureFunctionAppV2/ @finvamp1 @patelchandni @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureFunctionAppV2/ @finvamp1 @patelchandni -Tasks/AzureFunctionAppContainerV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureFunctionAppContainerV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureFunctionOnKubernetesV0/ @rvairavelu @manolerazvan +Tasks/AzureFunctionOnKubernetesV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureFunctionOnKubernetesV1/ @rvairavelu @manolerazvan @vhavrysh +Tasks/AzureFunctionOnKubernetesV1/ @microsoft/release-management-task-team @manolerazvan @vhavrysh -Tasks/AzureFunctionV1/ @rvairavelu @manolerazvan +Tasks/AzureFunctionV1/ @microsoft/release-management-task-team @manolerazvan Tasks/AzureIoTEdgeV2/ @marianan @tameraw @pprovost -Tasks/AzureKeyVaultV1/ @rvairavelu @manolerazvan +Tasks/AzureKeyVaultV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureKeyVaultV2/ @rvairavelu @manolerazvan +Tasks/AzureKeyVaultV2/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureMonitorV0/ @rvairavelu @manolerazvan +Tasks/AzureMonitorV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureMonitorV1/ @rvairavelu @manolerazvan +Tasks/AzureMonitorV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureMysqlDeploymentV1/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureMysqlDeploymentV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureNLBManagementV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureNLBManagementV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzurePolicyV0/ @rvairavelu @manolerazvan +Tasks/AzurePolicyV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzurePowerShellV2/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzurePowerShellV2/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzurePowerShellV3/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzurePowerShellV3/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzurePowerShellV4/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzurePowerShellV4/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzurePowerShellV5/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzurePowerShellV5/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureResourceGroupDeploymentV2/ @rvairavelu @manolerazvan +Tasks/AzureResourceGroupDeploymentV2/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureResourceManagerTemplateDeploymentV3/ @rvairavelu @manolerazvan +Tasks/AzureResourceManagerTemplateDeploymentV3/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureRmWebAppDeploymentV3/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureRmWebAppDeploymentV3/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureRmWebAppDeploymentV4/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureRmWebAppDeploymentV4/ @microsoft/release-management-task-team @manolerazvan # DRI rotation: Azure Spring Apps/AzDMSS-Support Tasks/AzureSpringCloudV0 @microsoft/azure-spring-apps @ruoyuwang @menxiao @@ -92,9 +94,9 @@ Tasks/AzureStaticWebAppV0/ @microsoft/azure-static-web-apps @mkarmark @joslinmi Tasks/AzureTestPlanV0/ @rasunkar @microsoft\adoautotest -Tasks/AzureWebAppV1/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureWebAppV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/AzureWebAppContainerV1/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/AzureWebAppContainerV1/ @microsoft/release-management-task-team @manolerazvan Tasks/AzureVmssDeploymentV0/ @bishal-pdmsft @@ -110,9 +112,9 @@ Tasks/CacheBetaV1/ @johnterickson Tasks/CargoAuthenticateV0/ @microsoft/azure-artifacts-packages -Tasks/ChefV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/ChefV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/ChefKnifeV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/ChefKnifeV1/ @microsoft/release-management-task-team @manolerazvan Tasks/CMakeV1/ @microsoft/akvelon-build-task-team @@ -122,17 +124,17 @@ Tasks/CocoaPodsV0/ @microsoft/akvelon-build-task-team Tasks/Common/artifacts-common/ @microsoft/azure-artifacts-packages -Tasks/Common/AzureRmDeploy-common/ @vincentdass @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/Common/AzureRmDeploy-common/ @vincentdass @microsoft/release-management-task-team @manolerazvan -Tasks/Common/Deployment/ @bishal-pdMSFT @vsebesta @rvairavelu +Tasks/Common/Deployment/ @bishal-pdMSFT @microsoft/release-management-task-team @manolerazvan Tasks/Common/MSBuildHelpers/ @microsoft/akvelon-build-task-team -Tasks/Common/PowershellHelpers/ @rvairavelu @manolerazvan +Tasks/Common/PowershellHelpers/ @microsoft/release-management-task-team @manolerazvan Tasks/Common/RemoteDeployer/ @arjgupta -Tasks/Common/ServiceFabricHelpers/ @rvairavelu @manolerazvan +Tasks/Common/ServiceFabricHelpers/ @microsoft/release-management-task-team @manolerazvan Tasks/Common/TlsHelper_/ @rajatagrawal-dev @arjgupta @@ -140,9 +142,9 @@ Tasks/Common/VstsAzureHelpers_/ @rajatagrawal-dev @vincentdass Tasks/Common/VstsAzureRestHelpers_/ @Ajay-MS @rajatagrawal-dev -Tasks/Common/azure-arm-rest/ @rvairavelu @manolerazvan +Tasks/Common/azure-arm-rest/ @microsoft/release-management-task-team @manolerazvan -Tasks/Common/azure-arm-rest-v2/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/Common/azure-arm-rest-v2/ @microsoft/release-management-task-team @manolerazvan Tasks/Common/azure-blobstorage-artifactProvider/ @omeshp @hiyadav @bishal-pdmsft @@ -150,7 +152,7 @@ Tasks/Common/codeanalysis-common/ @microsoft/akvelon-build-task-team Tasks/Common/coveragepublisher/ @rasunkar @microsoft\adoautotest -Tasks/Common/docker-common/ @rvairavelu @manolerazvan +Tasks/Common/docker-common/ @microsoft/release-management-task-team @manolerazvan Tasks/Common/ios-signing-common/ @microsoft/akvelon-build-task-team @hashtagchris @@ -164,7 +166,7 @@ Tasks/Common/securefiles-common/ @microsoft/akvelon-build-task-team @hashtag Tasks/Common/utility-common/ @nishubansal @ds-ms -Tasks/Common/webdeployment-common/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/Common/webdeployment-common/ @microsoft/release-management-task-team @manolerazvan Tasks/CondaAuthenticateV0/ @microsoft/azure-artifacts-packages @@ -172,7 +174,7 @@ Tasks/CondaEnvironmentV0/ @microsoft/akvelon-build-task-team Tasks/CondaEnvironmentV1/ @microsoft/akvelon-build-task-team -Tasks/ContainerBuildV0/ @rvairavelu @manolerazvan +Tasks/ContainerBuildV0/ @microsoft/release-management-task-team @manolerazvan Tasks/CopyFilesV2/ @microsoft/akvelon-build-task-team @@ -182,37 +184,37 @@ Tasks/CUrlUploaderV2/ @microsoft/akvelon-build-task-team Tasks/DecryptFileV1/ @microsoft/akvelon-build-task-team -Tasks/DelayV1/ @rvairavelu @manolerazvan +Tasks/DelayV1/ @microsoft/release-management-task-team @manolerazvan Tasks/DeleteFilesV1/ @microsoft/akvelon-build-task-team Tasks/DeployVisualStudioTestAgentV2/ @rasunkar @microsoft\adoautotest -Tasks/DockerV0/ @rvairavelu @manolerazvan +Tasks/DockerV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/DockerV1/ @rvairavelu @manolerazvan +Tasks/DockerV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/DockerV2/ @rvairavelu @manolerazvan +Tasks/DockerV2/ @microsoft/release-management-task-team @manolerazvan -Tasks/DockerComposeV0/ @rvairavelu @manolerazvan +Tasks/DockerComposeV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/DockerInstallerV0/ @rvairavelu @manolerazvan +Tasks/DockerInstallerV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/DotNetCoreCLIV2/ @rvairavelu @manolerazvan +Tasks/DotNetCoreCLIV2/ @microsoft/release-management-task-team @manolerazvan -Tasks/DotNetCoreInstallerV0/ @rvairavelu @manolerazvan +Tasks/DotNetCoreInstallerV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/DotNetCoreInstallerV1/ @rvairavelu @manolerazvan +Tasks/DotNetCoreInstallerV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/DownloadBuildArtifactsV0/ @manolerazvan @rvairavelu +Tasks/DownloadBuildArtifactsV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/DownloadFileshareArtifactsV1/ @manolerazvan @rvairavelu +Tasks/DownloadFileshareArtifactsV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/DownloadGitHubNpmPackageV1/ @manolerazvan @rvairavelu +Tasks/DownloadGitHubNpmPackageV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/DownloadGitHubNugetPackageV1/ @manolerazvan @rvairavelu +Tasks/DownloadGitHubNugetPackageV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/DownloadGitHubReleaseV0/ @manolerazvan @rvairavelu +Tasks/DownloadGitHubReleaseV0/ @microsoft/release-management-task-team @manolerazvan Tasks/DownloadPackageV0/ @microsoft/azure-artifacts-packages @@ -226,29 +228,29 @@ Tasks/DownloadPipelineArtifactV2/ @carl-tanner @fadnavistanmay @b-barthel @ Tasks/DownloadSecureFileV1/ @microsoft/akvelon-build-task-team -Tasks/DuffleInstallerV0/ @rvairavelu @manolerazvan +Tasks/DuffleInstallerV0/ @microsoft/release-management-task-team @manolerazvan Tasks/ExtractFilesV1/ @microsoft/akvelon-build-task-team -Tasks/FileTransformV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/FileTransformV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/FileTransformV2/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/FileTransformV2/ @microsoft/release-management-task-team @manolerazvan Tasks/FtpUploadV1/ @microsoft/akvelon-build-task-team Tasks/FtpUploadV2/ @microsoft/akvelon-build-task-team -Tasks/FuncToolsInstallerV0/ @rvairavelu @manolerazvan +Tasks/FuncToolsInstallerV0/ @microsoft/release-management-task-team @manolerazvan Tasks/GitHubCommentV0/ @ds-ms -Tasks/GitHubReleaseV0/ @rvairavelu @manolerazvan +Tasks/GitHubReleaseV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/GitHubReleaseV1/ @rvairavelu @manolerazvan +Tasks/GitHubReleaseV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/GoV0/ @rvairavelu @manolerazvan +Tasks/GoV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/GoToolV0/ @rvairavelu @manolerazvan +Tasks/GoToolV0/ @microsoft/release-management-task-team @manolerazvan Tasks/GradleV2/ @microsoft/akvelon-build-task-team @@ -258,17 +260,17 @@ Tasks/GulpV0/ @microsoft/akvelon-build-task-team Tasks/GulpV1/ @microsoft/akvelon-build-task-team -Tasks/HelmDeployV0/ @rvairavelu @manolerazvan +Tasks/HelmDeployV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/HelmInstallerV0/ @rvairavelu @manolerazvan +Tasks/HelmInstallerV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/HelmInstallerV1/ @rvairavelu @manolerazvan +Tasks/HelmInstallerV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/IISWebAppDeployment/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/IISWebAppDeployment/ @microsoft/release-management-task-team @manolerazvan -Tasks/IISWebAppDeploymentOnMachineGroupV0/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/IISWebAppDeploymentOnMachineGroupV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/IISWebAppManagementOnMachineGroupV0/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/IISWebAppManagementOnMachineGroupV0/ @microsoft/release-management-task-team @manolerazvan Tasks/InstallAppleCertificateV2/ @microsoft/akvelon-build-task-team @@ -276,29 +278,29 @@ Tasks/InstallAppleProvisioningProfileV1/ @microsoft/akvelon-build-task-team Tasks/InstallSSHKeyV0/ @microsoft/akvelon-build-task-team -Tasks/InvokeRestApiV1/ @rvairavelu @manolerazvan +Tasks/InvokeRestApiV1/ @microsoft/release-management-task-team @manolerazvan Tasks/JavaToolInstallerV0/ @microsoft/akvelon-build-task-team -Tasks/JenkinsDownloadArtifactsV1/ @manolerazvan @rvairavelu +Tasks/JenkinsDownloadArtifactsV1/ @microsoft/release-management-task-team @manolerazvan Tasks/JenkinsQueueJobV2/ @microsoft/akvelon-build-task-team -Tasks/KubectlInstallerV0/ @rvairavelu @manolerazvan +Tasks/KubectlInstallerV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/KubeloginInstallerV0/ @YevheniiKholodkov @manolerazvan +Tasks/KubeloginInstallerV0/ @YevheniiKholodkov @microsoft/release-management-task-team @manolerazvan -Tasks/KubernetesV0/ @rvairavelu @manolerazvan +Tasks/KubernetesV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/KubernetesV1/ @rvairavelu @manolerazvan +Tasks/KubernetesV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/KubernetesManifestV0/ @rvairavelu @manolerazvan +Tasks/KubernetesManifestV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/KubernetesManifestV1/ @rvairavelu @manolerazvan +Tasks/KubernetesManifestV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/ManualInterventionV8/ @rvairavelu @manolerazvan +Tasks/ManualInterventionV8/ @microsoft/release-management-task-team @manolerazvan -Tasks/ManualValidationV0/ @rvairavelu @manolerazvan +Tasks/ManualValidationV0/ @microsoft/release-management-task-team @manolerazvan Tasks/MavenAuthenticateV0/ @microsoft/azure-artifacts-packages @@ -310,7 +312,7 @@ Tasks/MavenV4/ @microsoft/akvelon-build-task-team Tasks/MSBuildV1/ @microsoft/akvelon-build-task-team -Tasks/MysqlDeploymentOnMachineGroupV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/MysqlDeploymentOnMachineGroupV1/ @microsoft/release-management-task-team @manolerazvan Tasks/NodeTaskRunnerInstallerV0/ @microsoft/akvelon-build-task-team @@ -355,11 +357,11 @@ Tasks/PipAuthenticateV1/ @microsoft/azure-artifacts-packages Tasks/PowerShellV2/ @microsoft/akvelon-build-task-team -Tasks/PowerShellOnTargetMachinesV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/PowerShellOnTargetMachinesV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/PowerShellOnTargetMachinesV2/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/PowerShellOnTargetMachinesV2/ @microsoft/release-management-task-team @manolerazvan -Tasks/PowerShellOnTargetMachinesV3/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/PowerShellOnTargetMachinesV3/ @microsoft/release-management-task-team @manolerazvan Tasks/PublishBuildArtifactsV1/ @microsoft/akvelon-build-task-team @@ -371,7 +373,7 @@ Tasks/PublishPipelineArtifactV0/ @carl-tanner @fadnavistanmay @b-barthel @ Tasks/PublishPipelineArtifactV1/ @carl-tanner @fadnavistanmay @b-barthel @kutsen99 @kunalkaroth -Tasks/PublishPipelineMetadataV0/ @rvairavelu @manolerazvan +Tasks/PublishPipelineMetadataV0/ @microsoft/release-management-task-team @manolerazvan Tasks/PublishSymbolsV2/ @carl-tanner @fadnavistanmay @b-barthel @kutsen99 @kunalkaroth @@ -381,13 +383,13 @@ Tasks/PublishTestResultsV2/ @shailesh-sk Tasks/ContainerStructureTestV0/ @rasunkar -Tasks/PublishToAzureServiceBusV1/ @rvairavelu @manolerazvan +Tasks/PublishToAzureServiceBusV1/ @microsoft/release-management-task-team @manolerazvan Tasks/PyPIPublisherV0/ @microsoft/akvelon-build-task-team Tasks/PythonScriptV0/ @microsoft/akvelon-build-task-team -Tasks/QueryWorkItemsV0/ @rvairavelu @manolerazvan +Tasks/QueryWorkItemsV0/ @microsoft/release-management-task-team @manolerazvan Tasks/QuickPerfTestV1/ @rasunkar @microsoft\adoautotest @@ -399,21 +401,21 @@ Tasks/RunJMeterLoadTestV1/ @rasunkar @microsoft\adoautotest Tasks/RunLoadTestV1/ @rasunkar @microsoft\adoautotest -Tasks/ServiceFabricComposeDeployV0/ @rvairavelu @manolerazvan +Tasks/ServiceFabricComposeDeployV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/ServiceFabricDeployV1/ @rvairavelu @manolerazvan +Tasks/ServiceFabricDeployV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/ServiceFabricPowerShellV1/ @rvairavelu @manolerazvan +Tasks/ServiceFabricPowerShellV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/ServiceFabricUpdateManifestsV2/ @rvairavelu @manolerazvan +Tasks/ServiceFabricUpdateManifestsV2/ @microsoft/release-management-task-team @manolerazvan Tasks/ShellScriptV2/ @microsoft/akvelon-build-task-team -Tasks/SqlAzureDacpacDeploymentV1/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/SqlAzureDacpacDeploymentV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/SqlDacpacDeploymentOnMachineGroupV0/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/SqlDacpacDeploymentOnMachineGroupV0/ @microsoft/release-management-task-team @manolerazvan -Tasks/SqlServerDacpacDeployment/ @vsebesta @rvairavelu @microsoft/pipeline-environment-team +Tasks/SqlServerDacpacDeployment/ @microsoft/release-management-task-team @manolerazvan Tasks/SshV0/ @microsoft/akvelon-build-task-team @@ -423,7 +425,7 @@ Tasks/TwineAuthenticateV1/ @microsoft/azure-artifacts-packages Tasks/UniversalPackagesV0/ @microsoft/azure-artifacts-packages -Tasks/UseDotNetV2/ @rvairavelu @manolerazvan +Tasks/UseDotNetV2/ @microsoft/release-management-task-team @manolerazvan Tasks/UseNodeV1/ @microsoft/akvelon-build-task-team @@ -441,9 +443,9 @@ Tasks/VsTestV3/ @rasunkar @microsoft\adoautotest Tasks/VsTestPlatformToolInstallerV1/ @rasunkar @microsoft\adoautotest -Tasks/WindowsMachineFileCopyV1/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/WindowsMachineFileCopyV1/ @microsoft/release-management-task-team @manolerazvan -Tasks/WindowsMachineFileCopyV2/ @rvairavelu @microsoft/pipeline-environment-team +Tasks/WindowsMachineFileCopyV2/ @microsoft/release-management-task-team @manolerazvan Tasks/XamarinAndroidV1/ @microsoft/akvelon-build-task-team diff --git a/Tasks/AppCenterDistributeV1/Strings/resources.resjson/en-US/resources.resjson b/Tasks/AppCenterDistributeV1/Strings/resources.resjson/en-US/resources.resjson index c946550ca471..bfa660e1f93a 100644 --- a/Tasks/AppCenterDistributeV1/Strings/resources.resjson/en-US/resources.resjson +++ b/Tasks/AppCenterDistributeV1/Strings/resources.resjson/en-US/resources.resjson @@ -39,5 +39,5 @@ "loc.messages.FoundMultipleFiles": "Found multiple files matching %s.", "loc.messages.FailedToCreateFile": "Failed to create %s with error: %s.", "loc.messages.FailedToFindFile": "Failed to find %s at %s.", - "loc.messages.DeprecatedTask": "The AppCenterDistribute@1 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "loc.messages.DeprecatedTask": "The AppCenterDistribute@1 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/Tasks/AppCenterDistributeV1/task.json b/Tasks/AppCenterDistributeV1/task.json index 79f0701d7155..201480de2177 100644 --- a/Tasks/AppCenterDistributeV1/task.json +++ b/Tasks/AppCenterDistributeV1/task.json @@ -17,7 +17,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "minimumAgentVersion": "2.144.0", "releaseNotes": "Fix bug where feature branches were being truncated.", @@ -202,6 +202,6 @@ "FoundMultipleFiles": "Found multiple files matching %s.", "FailedToCreateFile": "Failed to create %s with error: %s.", "FailedToFindFile": "Failed to find %s at %s.", - "DeprecatedTask": "The AppCenterDistribute@1 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "DeprecatedTask": "The AppCenterDistribute@1 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } } \ No newline at end of file diff --git a/Tasks/AppCenterDistributeV1/task.loc.json b/Tasks/AppCenterDistributeV1/task.loc.json index 3ad7a018bd43..21b6f4e265c7 100644 --- a/Tasks/AppCenterDistributeV1/task.loc.json +++ b/Tasks/AppCenterDistributeV1/task.loc.json @@ -17,7 +17,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "minimumAgentVersion": "2.144.0", "releaseNotes": "ms-resource:loc.releaseNotes", diff --git a/Tasks/AppCenterDistributeV2/Strings/resources.resjson/en-US/resources.resjson b/Tasks/AppCenterDistributeV2/Strings/resources.resjson/en-US/resources.resjson index 0d154f652428..027cee3bdc01 100644 --- a/Tasks/AppCenterDistributeV2/Strings/resources.resjson/en-US/resources.resjson +++ b/Tasks/AppCenterDistributeV2/Strings/resources.resjson/en-US/resources.resjson @@ -40,5 +40,5 @@ "loc.messages.FoundMultipleFiles": "Found multiple files matching %s.", "loc.messages.FailedToCreateFile": "Failed to create %s with error: %s.", "loc.messages.FailedToFindFile": "Failed to find %s at %s.", - "loc.messages.DeprecatedTask": "The AppCenterDistribute@2 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "loc.messages.DeprecatedTask": "The AppCenterDistribute@2 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/Tasks/AppCenterDistributeV2/task.json b/Tasks/AppCenterDistributeV2/task.json index 96d662b08ddb..126efab09520 100644 --- a/Tasks/AppCenterDistributeV2/task.json +++ b/Tasks/AppCenterDistributeV2/task.json @@ -17,7 +17,7 @@ "version": { "Major": 2, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "minimumAgentVersion": "2.144.0", "releaseNotes": "Added support for multiple destinations.", @@ -204,6 +204,6 @@ "FoundMultipleFiles": "Found multiple files matching %s.", "FailedToCreateFile": "Failed to create %s with error: %s.", "FailedToFindFile": "Failed to find %s at %s.", - "DeprecatedTask": "The AppCenterDistribute@2 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "DeprecatedTask": "The AppCenterDistribute@2 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } } diff --git a/Tasks/AppCenterDistributeV2/task.loc.json b/Tasks/AppCenterDistributeV2/task.loc.json index acf7b5407c68..f6763ecf1c87 100644 --- a/Tasks/AppCenterDistributeV2/task.loc.json +++ b/Tasks/AppCenterDistributeV2/task.loc.json @@ -17,7 +17,7 @@ "version": { "Major": 2, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "minimumAgentVersion": "2.144.0", "releaseNotes": "ms-resource:loc.releaseNotes", diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/en-US/resources.resjson b/Tasks/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/en-US/resources.resjson index 29eda715e723..1f180d7426ca 100644 --- a/Tasks/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/en-US/resources.resjson +++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/en-US/resources.resjson @@ -3,7 +3,7 @@ "loc.helpMarkDown": "[Learn more about this task](https://aka.ms/armtaskreadme)", "loc.description": "Deploy an Azure Resource Manager (ARM) template to all the deployment scopes", "loc.instanceNameFormat": "ARM Template deployment: $(deploymentScope) scope", - "loc.releaseNotes": "- Added support for deployment at all the deployment scopes.\n- Removed all the VM related actions.", + "loc.releaseNotes": "- Added support for bicepparam.", "loc.group.displayName.AzureDetails": "Azure Details", "loc.group.displayName.Template": "Template", "loc.group.displayName.Advanced": "Advanced", @@ -27,7 +27,7 @@ "loc.input.label.csmFile": "Template", "loc.input.help.csmFile": "Specify the path or a pattern pointing to the Azure Resource Manager template. For more information about the templates see https://aka.ms/azuretemplates. To get started immediately use template https://aka.ms/sampletemplate. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0", "loc.input.label.csmParametersFile": "Template parameters", - "loc.input.help.csmParametersFile": "Specify the path or a pattern pointing for the parameters file for the Azure Resource Manager template. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0", + "loc.input.help.csmParametersFile": "Specify the path or a pattern pointing for the parameters file for the Azure Resource Manager template. 'Linked artifact' also has support for Bicep Param files when the Azure CLI version > 2.47.0", "loc.input.label.overrideParameters": "Override template parameters", "loc.input.help.overrideParameters": "To view the template parameters in a grid, click on “…” next to Override Parameters textbox. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS. Or type the template parameters to override in the textbox. Example,
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).
If the parameter value you're using has multiple words, enclose them in quotes, even if you're passing them using variables. For example, -name \"parameter value\" -name2 \"$(var)\"
To override object type parameters use stringified JSON objects. For example, -options [\"option1\"] -map {\"key1\": \"value1\" }. ", "loc.input.label.deploymentMode": "Deployment mode", @@ -99,5 +99,7 @@ "loc.messages.LoginFailed": "Azure login failed: %s", "loc.messages.MSILoginFailed": "Azure login failed using Managed Service Identity: %s", "loc.messages.AuthSchemeNotSupported": "Auth Scheme %s is not supported", - "loc.messages.ErrorInSettingUpSubscription": "Error in setting up subscription: %s" + "loc.messages.ErrorInSettingUpSubscription": "Error in setting up subscription: %s", + "loc.messages.BicepParamBuildFailed": "\"az bicep build-param\" failed. Error: %s", + "loc.messages.IncompatibleAzureCLIVersionBicepParam": "Azure CLI version should be >= 2.47.0 to use .bicepparam file" } \ No newline at end of file diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicep b/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicep index ad2523a9f7b9..69219e35cb2b 100644 --- a/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicep +++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicep @@ -1,10 +1,10 @@ param location string = 'eastasia' -var storageAccountName_var = 'deepak2121' +var storageAccountName = 'deepak2121' var storageAccountType = 'Premium_LRS' resource storageAccount 'Microsoft.Storage/storageAccounts@2021-01-01' = { - name: toLower(take(storageAccountName_var, 24)) + name: toLower(take(storageAccountName, 24)) location: location sku: { name: storageAccountType @@ -15,4 +15,4 @@ resource storageAccount 'Microsoft.Storage/storageAccounts@2021-01-01' = { output storageAccount_Name string = storageAccount.name output storageAccount_Location string = storageAccount.location output storageAccount_SKUName string = storageAccount.sku.name -output storageAccount_Kind string = storageAccount.kind \ No newline at end of file +output storageAccount_Kind string = storageAccount.kind diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicepparam b/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicepparam new file mode 100644 index 000000000000..358b83b8dc21 --- /dev/null +++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicepparam @@ -0,0 +1,3 @@ +using 'CSMwithBicep.bicep' + +param location = 'eastasia' diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/L0.ts b/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/L0.ts index bde033774ab4..f8fb2d0a8e24 100644 --- a/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/L0.ts +++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/L0.ts @@ -226,6 +226,26 @@ describe('Azure Resource Manager Template Deployment', function () { } }); + it('Successfully triggered createOrUpdate deployment using bicep file with bicepparam file', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSMwithBicep.bicep"; + process.env["csmParametersFile"] = "CSMwithBicep.bicepparam"; + process.env["deploymentOutputs"] = "someVar"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(tr.succeeded, "Should have succeeded"); + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") > 0, "deployments.createOrUpdate function should have been called from azure-sdk"); + assert(tr.stdout.indexOf("##vso[task.setvariable variable=someVar;]") >= 0, "deploymentsOutput should have been updated"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + // it('createOrUpdate deployment should fail when bicep file contains error', (done) => { // let tp = path.join(__dirname, 'createOrUpdate.js'); // process.env["csmFile"] = "CSMwithBicepWithError.bicep"; diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/createOrUpdate.ts b/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/createOrUpdate.ts index 7ebbe798b903..c4c7d9ebc73c 100644 --- a/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/createOrUpdate.ts +++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/Tests/createOrUpdate.ts @@ -33,12 +33,14 @@ process.env["ENDPOINT_AUTH_PARAMETER_AzureRM_AUTHENTICATIONTYPE"] = "key"; var CSMJson = path.join(__dirname, "CSM.json"); var CSMBicep = path.join(__dirname, "CSMwithBicep.bicep"); +var CSMBicepParam = path.join(__dirname, "CSMwithBicep.bicepparam"); var CSMBicepWithWarning = path.join(__dirname, "CSMwithBicepWithWarning.bicep"); var CSMBicepWithError = path.join(__dirname, "CSMwithBicepWithError.bicep"); var CSMwithComments = path.join(__dirname, "CSMwithComments.json"); var defaults = path.join(__dirname, "defaults.json"); var faultyCSM = path.join(__dirname, "faultyCSM.json"); var bicepbuildCmd = `az bicep build --file ${path.join(__dirname, "CSMwithBicep.bicep")}`; +var bicepparambuildCmd = `az bicep build-params --file ${path.join(__dirname, "CSMwithBicep.bicepparam")} --outfile ${path.join(__dirname, "CSMwithBicep.parameters.json")}`; var bicepbuildwithWarning = `az bicep build --file ${path.join(__dirname, "CSMwithBicepWithWarning.bicep")}`; var azloginCommand = `az login --service-principal -u "id" --password="key" --tenant "tenant" --allow-no-subscriptions`; var azaccountSet = `az account set --subscription "sId"`; @@ -50,6 +52,7 @@ const successExec = { "stdout": "Executed Successfully" } exec[bicepbuildCmd] = successExec; +exec[bicepparambuildCmd] = successExec; exec[bicepbuildwithWarning] = successExec; exec[azloginCommand] = successExec; exec[azaccountSet] = successExec; @@ -66,6 +69,7 @@ let a: ma.TaskLibAnswers = { "findMatch": { "CSM.json": [CSMJson], "CSMwithBicep.bicep": [CSMBicep], + "CSMwithBicep.bicepparam": [CSMBicepParam], "CSMwithBicepWithWarning.bicep": [CSMBicepWithWarning], "CSMwithBicepWithError.bicep": [CSMBicepWithError], "CSMwithComments.json": [CSMwithComments], @@ -85,10 +89,14 @@ tr.registerMock('azure-pipelines-tasks-azure-arm-rest/azure-arm-resource', requi const fsClone = Object.assign({}, fs); fsClone.readFileSync = function(fileName: string): Buffer { - if (fileName.indexOf("CSMwithBicep") >= 0) { + if (fileName.indexOf("CSMwithBicep.json") >= 0 || fileName.indexOf("CSMwithBicepWithWarning.json") >= 0) { const filePath = fileName.replace('.json', '.bicep'); cpExec(`az bicep build --file ${filePath}`); } + else if (fileName.indexOf("CSMwithBicep.parameters.json") >= 0) { + const filePath = fileName.replace('.parameters.json', '.bicepparam'); + cpExec(`az bicep build-params --file ${filePath} --outfile ${fileName}`); + } var buffer = fs.readFileSync(fileName); return buffer; } diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/operations/Utils.ts b/Tasks/AzureResourceManagerTemplateDeploymentV3/operations/Utils.ts index 53638b62bae2..88fd16cdcf26 100644 --- a/Tasks/AzureResourceManagerTemplateDeploymentV3/operations/Utils.ts +++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/operations/Utils.ts @@ -427,23 +427,34 @@ class Utils { private static async getFilePathForLinkedArtifact(filePath: string, taskParameters: armDeployTaskParameters.TaskParameters): Promise { var filePathExtension: string = filePath.split('.').pop(); - if(filePathExtension === 'bicep'){ + if(filePathExtension.startsWith('bicep')){ let azcliversion = await this.getAzureCliVersion() if(parseFloat(azcliversion)){ - if(this.isBicepAvailable(azcliversion)){ + if(this.isBicepAvailable(azcliversion, filePathExtension)){ setAzureCloudBasedOnServiceEndpoint(taskParameters.connectedService); await loginAzureRM(taskParameters.connectedService); await this.execBicepBuild(filePath) - filePath = filePath.replace('.bicep', '.json') - this.cleanupFileList.push(filePath) + if(filePathExtension === 'bicep'){ + filePath = filePath.replace('.bicep', '.json') + } + else{ + filePath = filePath.replace('.bicepparam', '.parameters.json') + } await this.logoutAzure(); }else{ - throw new Error(tl.loc("IncompatibleAzureCLIVersion")); + //Maintain backwards compatibility for runs that are not using bicep param and do not require higher version + if(filePathExtension === 'bicep'){ + throw new Error(tl.loc("IncompatibleAzureCLIVersion")); + } + else{ + throw new Error(tl.loc("IncompatibleAzureCLIVersionBicepParam")); + } } }else{ throw new Error(tl.loc("AzureCLINotFound")); } } + return filePath } @@ -463,10 +474,28 @@ class Utils { } private static async execBicepBuild(filePath): Promise { - const result: IExecSyncResult = tl.execSync("az", `bicep build --file ${filePath}`); - if(result && result.code !== 0){ - throw new Error(tl.loc("BicepBuildFailed", result.stderr)); + var filePathExtension: string = filePath.split('.').pop(); + var finalPathExtension: string = ".json" + + if(filePathExtension === 'bicep'){ + const result: IExecSyncResult = tl.execSync("az", `bicep build --file ${filePath}`); + if(result && result.code !== 0){ + throw new Error(tl.loc("BicepBuildFailed", result.stderr)); + } + } + else{ + var fileName: string = filePath.split(path.sep).pop().split('.')[0]; + var fileDir: string = filePath.replace(path.sep + fileName +'.bicepparam', '') + finalPathExtension = ".parameters.json" + + //Using --outfile to avoid overwriting primary bicep file in the case bicep and param file have the the same file name. + const result: IExecSyncResult = tl.execSync("az", `bicep build-params --file ${filePath} --outfile ${path.join(fileDir, fileName + finalPathExtension)}`); + if(result && result.code !== 0){ + throw new Error(tl.loc("BicepParamBuildFailed", result.stderr)); + } } + + this.cleanupFileList.push(filePath.replace('.' + filePathExtension, finalPathExtension)) } private static async logoutAzure() { @@ -476,11 +505,15 @@ class Utils { } } - private static isBicepAvailable(azcliversion): Boolean{ + private static isBicepAvailable(azcliversion,extension): Boolean{ let majorVersion = azcliversion.split('.')[0] let minorVersion = azcliversion.split('.')[1] - // Support Bicep was introduced in az-cli 2.20.0 - if((majorVersion == 2 && minorVersion >= 20) || majorVersion > 2){ + // Support for Bicep format was introduced in az-cli 2.20.0 + if(((majorVersion == 2 && minorVersion >= 20) && extension === 'bicep') || majorVersion > 2){ + return true + } + // Support for Bicep Param format was introduced in az-cli 2.47.0 + else if(((majorVersion == 2 && minorVersion >= 47) && extension === 'bicepparam') || majorVersion > 2){ return true } return false diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/task.json b/Tasks/AzureResourceManagerTemplateDeploymentV3/task.json index d2ccb27c769b..0fd4930321e8 100644 --- a/Tasks/AzureResourceManagerTemplateDeploymentV3/task.json +++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/task.json @@ -6,7 +6,7 @@ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment", "helpMarkDown": "[Learn more about this task](https://aka.ms/armtaskreadme)", "category": "Deploy", - "releaseNotes": "- Added support for deployment at all the deployment scopes.\n- Removed all the VM related actions.", + "releaseNotes": "- Added support for bicepparam.", "visibility": [ "Build", "Release" @@ -14,7 +14,7 @@ "author": "Microsoft Corporation", "version": { "Major": 3, - "Minor": 231, + "Minor": 235, "Patch": 0 }, "demands": [], @@ -331,6 +331,8 @@ "LoginFailed": "Azure login failed: %s", "MSILoginFailed": "Azure login failed using Managed Service Identity: %s", "AuthSchemeNotSupported": "Auth Scheme %s is not supported", - "ErrorInSettingUpSubscription": "Error in setting up subscription: %s" + "ErrorInSettingUpSubscription": "Error in setting up subscription: %s", + "BicepParamBuildFailed": "\"az bicep build-param\" failed. Error: %s", + "IncompatibleAzureCLIVersionBicepParam": "Azure CLI version should be >= 2.47.0 to use .bicepparam file" } } \ No newline at end of file diff --git a/Tasks/AzureResourceManagerTemplateDeploymentV3/task.loc.json b/Tasks/AzureResourceManagerTemplateDeploymentV3/task.loc.json index fab5d191db78..e1c3d173bb3e 100644 --- a/Tasks/AzureResourceManagerTemplateDeploymentV3/task.loc.json +++ b/Tasks/AzureResourceManagerTemplateDeploymentV3/task.loc.json @@ -14,7 +14,7 @@ "author": "Microsoft Corporation", "version": { "Major": 3, - "Minor": 231, + "Minor": 235, "Patch": 0 }, "demands": [], @@ -331,6 +331,8 @@ "LoginFailed": "ms-resource:loc.messages.LoginFailed", "MSILoginFailed": "ms-resource:loc.messages.MSILoginFailed", "AuthSchemeNotSupported": "ms-resource:loc.messages.AuthSchemeNotSupported", - "ErrorInSettingUpSubscription": "ms-resource:loc.messages.ErrorInSettingUpSubscription" + "ErrorInSettingUpSubscription": "ms-resource:loc.messages.ErrorInSettingUpSubscription", + "BicepParamBuildFailed": "ms-resource:loc.messages.BicepParamBuildFailed", + "IncompatibleAzureCLIVersionBicepParam": "ms-resource:loc.messages.IncompatibleAzureCLIVersionBicepParam" } } \ No newline at end of file diff --git a/Tasks/ChefKnifeV1/ChefKnife.ps1 b/Tasks/ChefKnifeV1/ChefKnife.ps1 index 4ef50eff0033..62ad99118ee9 100644 --- a/Tasks/ChefKnifeV1/ChefKnife.ps1 +++ b/Tasks/ChefKnifeV1/ChefKnife.ps1 @@ -36,7 +36,7 @@ try } if ($featureFlags.failDeprecatedBuildTask) { - throw "The ChefKnife@1 (Run scripts with Knife commands on your Chef workstation) task has been deprecated since March 5, 2018 and will soon be retired. To continue to use Chef Knife, use the Knife client directly from a bash/pwsh/script task. See https://docs.chef.io/workstation/knife_client/." + throw "The ChefKnife@1 (Run scripts with Knife commands on your Chef workstation) task has been deprecated since March 5, 2018 and will soon be retired. To continue to use Chef Knife, use the Knife client directly from a bash/pwsh/script task. See https://docs.chef.io/workstation/knife_client/. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } } finally diff --git a/Tasks/ChefKnifeV1/task.json b/Tasks/ChefKnifeV1/task.json index 31b79240b2db..c307498559a3 100644 --- a/Tasks/ChefKnifeV1/task.json +++ b/Tasks/ChefKnifeV1/task.json @@ -17,7 +17,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/ChefKnifeV1/task.loc.json b/Tasks/ChefKnifeV1/task.loc.json index 1c79b96b5dc1..b31e6a149b42 100644 --- a/Tasks/ChefKnifeV1/task.loc.json +++ b/Tasks/ChefKnifeV1/task.loc.json @@ -17,7 +17,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/ChefV1/Chef.ps1 b/Tasks/ChefV1/Chef.ps1 index 9286f242e733..1536b15cb49c 100644 --- a/Tasks/ChefV1/Chef.ps1 +++ b/Tasks/ChefV1/Chef.ps1 @@ -192,7 +192,7 @@ try } if ($featureFlags.failDeprecatedBuildTask) { - throw "The Chef@1 (Deploy to Chef environments by editing environment attributes) task has been deprecated since March 5, 2018 and will soon be retired. To continue to use Chef, use the Chef CLI directly from a bash/pwsh/script task. See https://github.com/chef/chef-cli." + throw "The Chef@1 (Deploy to Chef environments by editing environment attributes) task has been deprecated since March 5, 2018 and will soon be retired. To continue to use Chef, use the Chef CLI directly from a bash/pwsh/script task. See https://github.com/chef/chef-cli. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } } finally diff --git a/Tasks/ChefV1/task.json b/Tasks/ChefV1/task.json index dafc21544d95..53ea8904961f 100644 --- a/Tasks/ChefV1/task.json +++ b/Tasks/ChefV1/task.json @@ -18,7 +18,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/ChefV1/task.loc.json b/Tasks/ChefV1/task.loc.json index 827412781d3b..0b1c7d4ab52f 100644 --- a/Tasks/ChefV1/task.loc.json +++ b/Tasks/ChefV1/task.loc.json @@ -18,7 +18,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/Common/coveragepublisher/make.json b/Tasks/Common/coveragepublisher/make.json index 54f66a326486..1cb1303e2944 100644 --- a/Tasks/Common/coveragepublisher/make.json +++ b/Tasks/Common/coveragepublisher/make.json @@ -2,7 +2,7 @@ "externals": { "archivePackages": [ { - "url": "https://coveragepublishers.blob.core.windows.net/coveragepublisher/25303541/CoveragePublisher.zip", + "url": "https://coveragepublishers.blob.core.windows.net/coveragepublisher/25539620/CoveragePublisher.zip", "dest": "./" } ] diff --git a/Tasks/CondaEnvironmentV1/Strings/resources.resjson/en-US/resources.resjson b/Tasks/CondaEnvironmentV1/Strings/resources.resjson/en-US/resources.resjson index 74ac7b229902..8ca3241634b0 100644 --- a/Tasks/CondaEnvironmentV1/Strings/resources.resjson/en-US/resources.resjson +++ b/Tasks/CondaEnvironmentV1/Strings/resources.resjson/en-US/resources.resjson @@ -25,5 +25,5 @@ "loc.messages.ParameterRequired": "The `%s` parameter is required", "loc.messages.PlatformNotRecognized": "Platform not recognized", "loc.messages.PrependPath": "Prepending PATH environment variable with directory: %s", - "loc.messages.DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task." + "loc.messages.DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/Tasks/CondaEnvironmentV1/task.json b/Tasks/CondaEnvironmentV1/task.json index 256fb105599c..e7da1ba5920f 100644 --- a/Tasks/CondaEnvironmentV1/task.json +++ b/Tasks/CondaEnvironmentV1/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "deprecated": true, "removalDate": "2024-01-31", @@ -102,6 +102,6 @@ "ParameterRequired": "The `%s` parameter is required", "PlatformNotRecognized": "Platform not recognized", "PrependPath": "Prepending PATH environment variable with directory: %s", - "DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task." + "DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } } \ No newline at end of file diff --git a/Tasks/CondaEnvironmentV1/task.loc.json b/Tasks/CondaEnvironmentV1/task.loc.json index dde84a5aa260..fb733844a5de 100644 --- a/Tasks/CondaEnvironmentV1/task.loc.json +++ b/Tasks/CondaEnvironmentV1/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/DotNetCoreCLIV2/README.md b/Tasks/DotNetCoreCLIV2/README.md index 9cbf9bd3a928..4dfc338c6a42 100644 --- a/Tasks/DotNetCoreCLIV2/README.md +++ b/Tasks/DotNetCoreCLIV2/README.md @@ -16,7 +16,7 @@ The only prerequisite for the task is that .NET Core must be installed on Azure * **Command\*:** The task can be use to run any [dotnet core command](https://docs.microsoft.com/en-us/dotnet/core/tools/?tabs=netcore2x). -* **Projects\*:** Depending on the version of .NET Core, the task can work with either project.json or a csproj file. You can pass a relative path of the .csproj file(s) from repo root. Wildcards can be used too. For example, **/*.csproj for all .csproj files in all the sub folders. +* **Projects\*:** Depending on the version of .NET Core, the task can work with either project.json or a csproj and sln file. You can pass a relative path of the .csproj file(s) from repo root. Wildcards can be used too. For example, **/*.csproj for all .csproj files in all the sub folders. * **Arguments\:** Pass arguments to the selected dotnet core command. For example, build configuration, output folder, runtime. The arguments depend on the command selected. diff --git a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/en-US/resources.resjson b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/en-US/resources.resjson index 7f2f8a911ae5..a10bb776bffb 100644 --- a/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/en-US/resources.resjson +++ b/Tasks/DotNetCoreCLIV2/Strings/resources.resjson/en-US/resources.resjson @@ -14,8 +14,8 @@ "loc.input.help.command": "The dotnet command to run. Select 'Custom' to add arguments or use a command not listed here.", "loc.input.label.publishWebProjects": "Publish web projects", "loc.input.help.publishWebProjects": "If true, the task will try to find the web projects in the repository and run the publish command on them. Web projects are identified by presence of either a web.config file or wwwroot folder in the directory.", - "loc.input.label.projects": "Path to project(s)", - "loc.input.help.projects": "The path to the csproj file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**", + "loc.input.label.projects": "Path to project(s) or solution(s)", + "loc.input.help.projects": "The path to the csproj or sln file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**", "loc.input.label.custom": "Custom command", "loc.input.help.custom": "The command to pass to dotnet.exe for execution.", "loc.input.label.arguments": "Arguments", diff --git a/Tasks/DotNetCoreCLIV2/_buildConfigs/Node20/package-lock.json b/Tasks/DotNetCoreCLIV2/_buildConfigs/Node20/package-lock.json index 7f5b1fdd29fd..6dcbd86ef664 100644 --- a/Tasks/DotNetCoreCLIV2/_buildConfigs/Node20/package-lock.json +++ b/Tasks/DotNetCoreCLIV2/_buildConfigs/Node20/package-lock.json @@ -44,9 +44,9 @@ "integrity": "sha512-SwFMxO68Z6ERGFpPYBdmgfS5LloELzY16h/PMAhnxMog91JcHI5AJjW0HN56cGUPhV0nDb8xNWsJkhuDzr4lAQ==" }, "@types/node": { - "version": "20.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.1.tgz", - "integrity": "sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==", + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", "requires": { "undici-types": "~5.26.4" } @@ -202,9 +202,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.66.tgz", - "integrity": "sha512-sePmD/imfKvC4re/Wwos1NEcXYm6O96CAG5gQVY53nmDb8ePQ4qPku6uruN7n6TJ0t5FhcoUc2+yvE2/UZVDZw==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "azure-devops-node-api": { "version": "10.2.2", @@ -230,9 +230,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.66.tgz", - "integrity": "sha512-sePmD/imfKvC4re/Wwos1NEcXYm6O96CAG5gQVY53nmDb8ePQ4qPku6uruN7n6TJ0t5FhcoUc2+yvE2/UZVDZw==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "adm-zip": { "version": "0.5.10", @@ -481,9 +481,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -838,9 +838,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/Tasks/DotNetCoreCLIV2/package-lock.json b/Tasks/DotNetCoreCLIV2/package-lock.json index 887af235969d..322487cfaeac 100644 --- a/Tasks/DotNetCoreCLIV2/package-lock.json +++ b/Tasks/DotNetCoreCLIV2/package-lock.json @@ -468,9 +468,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -825,9 +825,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/Tasks/DotNetCoreCLIV2/task.json b/Tasks/DotNetCoreCLIV2/task.json index 280b43edb463..75d721bcde4d 100644 --- a/Tasks/DotNetCoreCLIV2/task.json +++ b/Tasks/DotNetCoreCLIV2/task.json @@ -17,7 +17,7 @@ "demands": [], "version": { "Major": 2, - "Minor": 232, + "Minor": 235, "Patch": 0 }, "minimumAgentVersion": "2.144.0", @@ -100,11 +100,11 @@ { "name": "projects", "type": "multiLine", - "label": "Path to project(s)", + "label": "Path to project(s) or solution(s)", "defaultValue": "", "visibleRule": "command = build || command = restore || command = run || command = test || command = custom || publishWebProjects = false", "required": false, - "helpMarkDown": "The path to the csproj file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**" + "helpMarkDown": "The path to the csproj or sln file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**" }, { "name": "custom", diff --git a/Tasks/DotNetCoreCLIV2/task.loc.json b/Tasks/DotNetCoreCLIV2/task.loc.json index cbdd16894fb8..459f1571ac7b 100644 --- a/Tasks/DotNetCoreCLIV2/task.loc.json +++ b/Tasks/DotNetCoreCLIV2/task.loc.json @@ -17,7 +17,7 @@ "demands": [], "version": { "Major": 2, - "Minor": 232, + "Minor": 235, "Patch": 0 }, "minimumAgentVersion": "2.144.0", diff --git a/Tasks/DotNetCoreInstallerV1/Strings/resources.resjson/en-US/resources.resjson b/Tasks/DotNetCoreInstallerV1/Strings/resources.resjson/en-US/resources.resjson index 25a049565f25..1d4969656532 100644 --- a/Tasks/DotNetCoreInstallerV1/Strings/resources.resjson/en-US/resources.resjson +++ b/Tasks/DotNetCoreInstallerV1/Strings/resources.resjson/en-US/resources.resjson @@ -79,5 +79,5 @@ "loc.messages.VersionFilesDataIncorrect": "Version's files data is missing or has missing required fields.", "loc.messages.VersionInformationNotComplete": "Version: %s required information is not complete in releases.json file. Error: %s", "loc.messages.FailedWhileExtractingPacakge": "Failed while extracting downloaded package with error: %s", - "loc.messages.DeprecatedTask": "The DotNetCoreInstaller@1 (.NET Core SDK/runtime installer) task has been deprecated since August 22, 2019 and will soon be retired. Use the UseDotNet@2 task instead." + "loc.messages.DeprecatedTask": "The DotNetCoreInstaller@1 (.NET Core SDK/runtime installer) task has been deprecated since August 22, 2019 and will soon be retired. Use the UseDotNet@2 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/Tasks/DotNetCoreInstallerV1/task.json b/Tasks/DotNetCoreInstallerV1/task.json index 4d8f543063a3..bb1193770cdb 100644 --- a/Tasks/DotNetCoreInstallerV1/task.json +++ b/Tasks/DotNetCoreInstallerV1/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "deprecated": true, "removalDate": "2024-01-31", @@ -154,6 +154,6 @@ "VersionFilesDataIncorrect": "Version's files data is missing or has missing required fields.", "VersionInformationNotComplete": "Version: %s required information is not complete in releases.json file. Error: %s", "FailedWhileExtractingPacakge": "Failed while extracting downloaded package with error: %s", - "DeprecatedTask": "The DotNetCoreInstaller@1 (.NET Core SDK/runtime installer) task has been deprecated since August 22, 2019 and will soon be retired. Use the UseDotNet@2 task instead." + "DeprecatedTask": "The DotNetCoreInstaller@1 (.NET Core SDK/runtime installer) task has been deprecated since August 22, 2019 and will soon be retired. Use the UseDotNet@2 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } } \ No newline at end of file diff --git a/Tasks/DotNetCoreInstallerV1/task.loc.json b/Tasks/DotNetCoreInstallerV1/task.loc.json index 14e7a158132b..1a7d2d4a8b05 100644 --- a/Tasks/DotNetCoreInstallerV1/task.loc.json +++ b/Tasks/DotNetCoreInstallerV1/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/IISWebAppDeployment/DeployIISWebApp.ps1 b/Tasks/IISWebAppDeployment/DeployIISWebApp.ps1 index 65308a35e479..e873592d0ee2 100644 --- a/Tasks/IISWebAppDeployment/DeployIISWebApp.ps1 +++ b/Tasks/IISWebAppDeployment/DeployIISWebApp.ps1 @@ -159,7 +159,7 @@ $featureFlags = @{ } if ($featureFlags.failDeprecatedBuildTask) { - throw "The IISWebAppDeployment@1 (IIS Web App deployment) task has been deprecated since October 5, 2018 and will soon be retired. Use the 'IIS Web App Deployment Using WinRM' extension instead: https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.iiswebapp." + throw "The IISWebAppDeployment@1 (IIS Web App deployment) task has been deprecated since October 5, 2018 and will soon be retired. Use the 'IIS Web App Deployment Using WinRM' extension instead: https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.iiswebapp. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } Write-Output ( Get-LocalizedString -Key "Successfully deployed IIS Web Deploy Package : {0}" -ArgumentList $webDeployPackage) \ No newline at end of file diff --git a/Tasks/IISWebAppDeployment/task.json b/Tasks/IISWebAppDeployment/task.json index d9a154906021..987b5d51b5a1 100644 --- a/Tasks/IISWebAppDeployment/task.json +++ b/Tasks/IISWebAppDeployment/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "demands": [], "minimumAgentVersion": "1.91.0", diff --git a/Tasks/IISWebAppDeployment/task.loc.json b/Tasks/IISWebAppDeployment/task.loc.json index a425c699e336..0dd4e6eb665b 100644 --- a/Tasks/IISWebAppDeployment/task.loc.json +++ b/Tasks/IISWebAppDeployment/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "demands": [], "minimumAgentVersion": "1.91.0", diff --git a/Tasks/NodeToolV0/_buildConfigs/Node20/package-lock.json b/Tasks/NodeToolV0/_buildConfigs/Node20/package-lock.json index 33200c61b550..fc3052e849bf 100644 --- a/Tasks/NodeToolV0/_buildConfigs/Node20/package-lock.json +++ b/Tasks/NodeToolV0/_buildConfigs/Node20/package-lock.json @@ -26,19 +26,22 @@ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" }, "@types/node": { - "version": "20.5.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz", - "integrity": "sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==" + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", + "requires": { + "undici-types": "~5.26.4" + } }, "@types/q": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.6.tgz", - "integrity": "sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ==" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" }, "@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==" + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, "@types/semver": { "version": "5.5.0", @@ -107,9 +110,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.59.tgz", - "integrity": "sha512-PJ1w2cNeKUEdey4LiPra0ZuxZFOGvetswE8qHRriV/sUkL5Al4tTmPV9D2+Y/TPIxTHHgxTfRjZVKWhPw/ORhQ==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "azure-pipelines-task-lib": { "version": "4.6.1", @@ -274,9 +277,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -299,13 +302,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-proto": "^1.0.1", "has-symbols": "^1.0.3" } }, @@ -345,11 +347,6 @@ "function-bind": "^1.1.1" } }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" - }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -410,9 +407,9 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "requires": { "has": "^1.0.3" } @@ -479,9 +476,9 @@ } }, "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" }, "once": { "version": "1.4.0", @@ -512,9 +509,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz", + "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", "requires": { "asap": "~2.0.6" } @@ -525,17 +522,17 @@ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" }, "qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "requires": { "side-channel": "^1.0.4" } }, "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -555,11 +552,11 @@ } }, "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -707,6 +704,11 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", diff --git a/Tasks/NodeToolV0/package-lock.json b/Tasks/NodeToolV0/package-lock.json index 9e9acfdeb117..0412215572f9 100644 --- a/Tasks/NodeToolV0/package-lock.json +++ b/Tasks/NodeToolV0/package-lock.json @@ -269,9 +269,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -567,9 +567,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/Tasks/NodeToolV0/task.json b/Tasks/NodeToolV0/task.json index ad4f9922e255..588b5a45a76b 100644 --- a/Tasks/NodeToolV0/task.json +++ b/Tasks/NodeToolV0/task.json @@ -1,132 +1,132 @@ { - "id": "31C75BBB-BCDF-4706-8D7C-4DA6A1959BC2", - "name": "NodeTool", - "friendlyName": "Node.js tool installer", - "description": "Finds or downloads and caches the specified version spec of Node.js and adds it to the PATH", - "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/tool/node-js", - "helpMarkDown": "[Learn more about this task](https://docs.microsoft.com/azure/devops/pipelines/tasks/tool/node-js) or [see the Node documentation](https://nodejs.org/docs/latest/api/documentation.html)", - "category": "Tool", - "runsOn": [ - "Agent", - "DeploymentGroup" - ], - "author": "Microsoft Corporation", - "version": { - "Major": 0, - "Minor": 233, - "Patch": 0 + "id": "31C75BBB-BCDF-4706-8D7C-4DA6A1959BC2", + "name": "NodeTool", + "friendlyName": "Node.js tool installer", + "description": "Finds or downloads and caches the specified version spec of Node.js and adds it to the PATH", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/tool/node-js", + "helpMarkDown": "[Learn more about this task](https://docs.microsoft.com/azure/devops/pipelines/tasks/tool/node-js) or [see the Node documentation](https://nodejs.org/docs/latest/api/documentation.html)", + "category": "Tool", + "runsOn": [ + "Agent", + "DeploymentGroup" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 0, + "Minor": 235, + "Patch": 0 + }, + "satisfies": [ + "Node", + "npm", + "node.js" + ], + "demands": [], + "minimumAgentVersion": "2.182.1", + "instanceNameFormat": "Use Node $(versionSpec)", + "groups": [ + { + "name": "advanced", + "displayName": "Advanced", + "isExpanded": false + } + ], + "inputs": [ + { + "name": "versionSource", + "type": "radio", + "label": "Source of version", + "required": true, + "defaultValue": "spec", + "options": { + "spec": "Specify Node version", + "fromFile": "Get version from file" + } + }, + { + "name": "versionSpec", + "type": "string", + "label": "Version Spec", + "defaultValue": "6.x", + "helpMarkDown": "Version Spec of version to get. Examples: 6.x, 4.x, 6.10.0, >=6.10.0", + "visibleRule": "versionSource = spec" + }, + { + "name": "versionFilePath", + "type": "string", + "label": "Path to the .nvmrc file", + "helpMarkDown": "File path to get version. Example: src/.nvmrc", + "visibleRule": "versionSource = fromFile" + }, + { + "name": "checkLatest", + "type": "boolean", + "label": "Check for Latest Version", + "defaultValue": "false", + "required": false, + "helpMarkDown": "Always checks online for the latest available version that satisfies the version spec. This is typically false unless you have a specific scenario to always get latest. This will cause it to incur download costs when potentially not necessary, especially with the hosted build pool." + }, + { + "name": "force32bit", + "type": "boolean", + "label": "Use 32 bit version on x64 agents", + "defaultValue": "false", + "required": false, + "helpMarkDown": "Installs the x86 version of Node regardless of the CPU architecture of the agent." }, - "satisfies": [ - "Node", - "npm", - "node.js" - ], - "demands": [], - "minimumAgentVersion": "2.182.1", - "instanceNameFormat": "Use Node $(versionSpec)", - "groups": [ - { - "name": "advanced", - "displayName": "Advanced", - "isExpanded": false - } - ], - "inputs": [ - { - "name": "versionSource", - "type": "radio", - "label": "Source of version", - "required": true, - "defaultValue": "spec", - "options": { - "spec": "Specify Node version", - "fromFile": "Get version from file" - } - }, - { - "name": "versionSpec", - "type": "string", - "label": "Version Spec", - "defaultValue": "6.x", - "helpMarkDown": "Version Spec of version to get. Examples: 6.x, 4.x, 6.10.0, >=6.10.0", - "visibleRule": "versionSource = spec" - }, - { - "name": "versionFilePath", - "type": "string", - "label": "Path to the .nvmrc file", - "helpMarkDown": "File path to get version. Example: src/.nvmrc", - "visibleRule": "versionSource = fromFile" - }, - { - "name": "checkLatest", - "type": "boolean", - "label": "Check for Latest Version", - "defaultValue": "false", - "required": false, - "helpMarkDown": "Always checks online for the latest available version that satisfies the version spec. This is typically false unless you have a specific scenario to always get latest. This will cause it to incur download costs when potentially not necessary, especially with the hosted build pool." - }, - { - "name": "force32bit", - "type": "boolean", - "label": "Use 32 bit version on x64 agents", - "defaultValue": "false", - "required": false, - "helpMarkDown": "Installs the x86 version of Node regardless of the CPU architecture of the agent." - }, - { - "name": "nodejsMirror", - "type": "string", - "label": "Set source for Node.js binaries", - "defaultValue": "https://nodejs.org/dist", - "required": false, - "groupName": "advanced", - "helpMarkDown": "Use an alternative installation mirror when sourcing the Node.js binaries." - }, - { - "name": "retryCountOnDownloadFails", - "type": "string", - "label": "Set retry count when nodes downloads failed", - "defaultValue": "5", - "required": false, - "groupName": "advanced", - "helpMarkDown": "Use this option when the task failed to download node binaries from the mirror. The task will retry to download the binaries for the specified times." - }, - { - "name": "delayBetweenRetries", - "type": "string", - "label": "Set delay between retries", - "defaultValue": "1000", - "required": false, - "groupName": "advanced", - "helpMarkDown": "Use this option to set the delay between retries in milliseconds. The default value is 1000 milliseconds." - } - ], - "execution": { - "Node10": { - "target": "nodetool.js", - "argumentFormat": "" - }, - "Node16": { - "target": "nodetool.js", - "argumentFormat": "" - } + { + "name": "nodejsMirror", + "type": "string", + "label": "Set source for Node.js binaries", + "defaultValue": "https://nodejs.org/dist", + "required": false, + "groupName": "advanced", + "helpMarkDown": "Use an alternative installation mirror when sourcing the Node.js binaries." }, - "restrictions": { - "commands": { - "mode": "restricted" - }, - "settableVariables": { - "allowed": [ - "PATH" - ] - } + { + "name": "retryCountOnDownloadFails", + "type": "string", + "label": "Set retry count when nodes downloads failed", + "defaultValue": "5", + "required": false, + "groupName": "advanced", + "helpMarkDown": "Use this option when the task failed to download node binaries from the mirror. The task will retry to download the binaries for the specified times." + }, + { + "name": "delayBetweenRetries", + "type": "string", + "label": "Set delay between retries", + "defaultValue": "1000", + "required": false, + "groupName": "advanced", + "helpMarkDown": "Use this option to set the delay between retries in milliseconds. The default value is 1000 milliseconds." + } + ], + "execution": { + "Node10": { + "target": "nodetool.js", + "argumentFormat": "" + }, + "Node16": { + "target": "nodetool.js", + "argumentFormat": "" + } + }, + "restrictions": { + "commands": { + "mode": "restricted" }, - "messages": { - "ToolFailed": "Tool install failed: %s", - "TryRosetta": "Unable to find Node for platform %s and architecture %s. Trying to install with Rosetta2", - "NodeVersionNotFound": "Unable to find Node version %s for platform %s and architecture %s.", - "UnexpectedOS": "Unexpected OS %s", - "AgentTempDirNotSet": "Expected Agent.TempDirectory to be set." + "settableVariables": { + "allowed": [ + "PATH" + ] } + }, + "messages": { + "ToolFailed": "Tool install failed: %s", + "TryRosetta": "Unable to find Node for platform %s and architecture %s. Trying to install with Rosetta2", + "NodeVersionNotFound": "Unable to find Node version %s for platform %s and architecture %s.", + "UnexpectedOS": "Unexpected OS %s", + "AgentTempDirNotSet": "Expected Agent.TempDirectory to be set." + } } \ No newline at end of file diff --git a/Tasks/NodeToolV0/task.loc.json b/Tasks/NodeToolV0/task.loc.json index c68c42d66b02..68080570d02e 100644 --- a/Tasks/NodeToolV0/task.loc.json +++ b/Tasks/NodeToolV0/task.loc.json @@ -13,7 +13,7 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 233, + "Minor": 235, "Patch": 0 }, "satisfies": [ diff --git a/Tasks/NotationV0/README.md b/Tasks/NotationV0/README.md index 6da57e5e067f..22bff99c5c75 100644 --- a/Tasks/NotationV0/README.md +++ b/Tasks/NotationV0/README.md @@ -18,42 +18,6 @@ It transfers the trust store and trust policy from the user's code repository to - public network access for downloading Notation CLI and Notation Azure Key Vault plugin from Github releases. - Supported OS: Linux x64/ARM64, Windows x64, macOS x64/ARM64 -# User Documents -- [Notation sign on ADO pipeline](./docs/sign-images-pipeline.md) - -## Inputs -`command` - Command -`string`. Required. Allowed values: `install`, `sign` and `verify`. - -`artifactRefs` - Artifact References -`string`. The container artifact reference with digest. If multiple references are used, please use comma to separate them. If it was not specified, the task will automatically detect it from previous Docker task. - -`plugin` - Plugin -`string`. Required for sign command. Allowed values: `azureKeyVault`. - -`akvPluginVersion` - Azure Key Vault Plugin Version -`string`. Required for `azureKeyVault` plugin. The version for Azure Key Vault plugin. Please visit the [release page](https://github.com/Azure/notation-azure-kv/releases) to choose a released version. - -`azurekvServiceConnection` - Azure Key Vault Service Connection -`string`. Required for `azure-kv` plugin. Select the The Azure Resource Manager service connection for the key vault if prefer to use service connection for authentication. - -`keyid` - Key ID -`string`. Required for `azure-kv` plugin. The key identifier of an Azure Key Vault certificate. - -`selfSigned` - Self signed -`boolean`. Whether the certficate is self-signed certificate. - -`caCertBundle` - Certificate Bundle File Path -`string`. The certificate bundle file containing intermidiate certificates and root certificate. - -`trustPolicy` - Trust Policy File Path -`string`. Required for `verify` command. The trust policy file path. - -`trustStore` - Trust Store Folder Path -`string`. Requried for `verify` command. The trust store folder path. - -`signatureFormat` - Signature Format -`string`. Signature envelope format. Allowed values: `jws`, `cose`. - -`allowReferrersAPI` - [Experimental] Allow Referrers API -`boolean`. Use the Referrers API to sign signatures, if not supported (returns 404), fallback to the Referrers tag schema. +## Bump up notation version +1. Run ./scripts/generate_checksum.py to update the ./data/notation_versions.json file. +2. Update the task.json and task.loc.json default version to be the latest version. diff --git a/Tasks/NotationV0/data/notation_versions.json b/Tasks/NotationV0/data/notation_versions.json index c10e69f58e08..7b112587cf38 100644 --- a/Tasks/NotationV0/data/notation_versions.json +++ b/Tasks/NotationV0/data/notation_versions.json @@ -1,4 +1,33 @@ [ + { + "darwin": { + "amd64": { + "checksum": "a190962ca09a24d814916e26c8f98d01c1891fd0bae6192355675b8b16e38726", + "url": "https://github.com/notaryproject/notation/releases/download/v1.1.0/notation_1.1.0_darwin_amd64.tar.gz" + }, + "arm64": { + "checksum": "295df24d247f4b276bd1ee04ae5f639b8feadebd68c01be1821c0b94cbd5cf75", + "url": "https://github.com/notaryproject/notation/releases/download/v1.1.0/notation_1.1.0_darwin_arm64.tar.gz" + } + }, + "linux": { + "amd64": { + "checksum": "0e31e156edff6cc324405cda391d7144b0b99c265a7bdfa6644f457e530fe6d4", + "url": "https://github.com/notaryproject/notation/releases/download/v1.1.0/notation_1.1.0_linux_amd64.tar.gz" + }, + "arm64": { + "checksum": "8c01a8f52356b15ce2c69be4cea193c56d092f913482d2e4a4d90ad6ec81fe64", + "url": "https://github.com/notaryproject/notation/releases/download/v1.1.0/notation_1.1.0_linux_arm64.tar.gz" + } + }, + "version": "1.1.0", + "windows": { + "amd64": { + "checksum": "397b5ccc27d8f890f955f1e91f8fb21e4c23995ec8f5a42257e72a14728bd4d5", + "url": "https://github.com/notaryproject/notation/releases/download/v1.1.0/notation_1.1.0_windows_amd64.zip" + } + } + }, { "darwin": { "amd64": { diff --git a/Tasks/NotationV0/package-lock.json b/Tasks/NotationV0/package-lock.json index 5385b8c1c7c6..8675ba90dd9e 100644 --- a/Tasks/NotationV0/package-lock.json +++ b/Tasks/NotationV0/package-lock.json @@ -1,6 +1,6 @@ { "name": "notation", - "version": "0.232.0", + "version": "0.235.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/Tasks/NotationV0/package.json b/Tasks/NotationV0/package.json index 3b85dc59d8cc..23d14f25eb6f 100644 --- a/Tasks/NotationV0/package.json +++ b/Tasks/NotationV0/package.json @@ -1,6 +1,6 @@ { "name": "notation", - "version": "0.232.0", + "version": "0.235.0", "description": "Azure Pipepine Task for setting up Notation CLI, sign and verify with Notation", "main": "src/index.js", "scripts": { diff --git a/Tasks/NotationV0/scripts/generate_checksum.py b/Tasks/NotationV0/scripts/generate_checksum.py new file mode 100644 index 000000000000..6b75073b4f3d --- /dev/null +++ b/Tasks/NotationV0/scripts/generate_checksum.py @@ -0,0 +1,81 @@ +# This script reads a checksums.txt file and generates a JSON file containing +# the checksums and URLs for each file. The generated JSON file is then merged +# with an existing JSON file containing previous checksums. If the version +# already exists in the existing JSON file, an exception is raised. +# +# Usage: python generate_checksum.py +# +# checksums.txt format: +# 2ef0560c3c88908a22d1f302e5b0119160e72380e25fb58c2d7b153e9397a04c notation_1.0.0-rc.1_linux_arm64.tar.gz +# 3b5239d68810fec349807aa9eb90fcb9cd972cdb540ecfd4fcf3631d7ad4be06 notation_1.0.0-rc.1_darwin_amd64.tar.gz +# 7607c8de3b6c1435b2dc4c012e9c0486849ce7b4b5e0fbbee2dd9ed7aab084a7 notation_1.0.0-rc.1_linux_amd64.tar.gz +# 7d091cbd62886d1b47b60519a5b56314e794caf18751b1cccab2f54387a0d5c4 notation_1.0.0-rc.1_windows_amd64.zip +# eaa7b0c7c8d18e504766ce8d3ac5e46da2e97f4fdcead8be997e0ae74b146b00 notation_1.0.0-rc.1_darwin_arm64.tar.gz +# +# Note: This script may be integrated to pipeline in the future. +# +import os +import sys +import json + +def build_url(name, version, filename): + return { + "notation": lambda : f'https://github.com/notaryproject/notation/releases/download/v{version}/{filename}', + "notation-azure-kv": lambda :f'https://github.com/Azure/notation-azure-kv/releases/download/v{version}/{filename}' + }[name]() + +def process_checksum(filepath): + verionInfo = {} + with open(filepath, 'r') as f: + for line in f.readlines(): + line = line.rstrip('\n') + parts = line.split(' ') + checksum = parts[0] + filename = parts[2] + name_parts = filename.split('_') + name = name_parts[0] + version = name_parts[1] + osName = name_parts[2] + arch = name_parts[3].split('.')[0] + + # generate checksum + verionInfo.setdefault('version', version) + verionInfo.setdefault(osName, {}) + verionInfo[osName].setdefault(arch, {}) + verionInfo[osName][arch] = { + "url": build_url(name, version, filename), + "checksum": checksum + } + + return verionInfo + +def update_checksums(filepath, checksums): + # read old checksums + versionList = [] + if os.path.exists(filepath): + f = open(filepath, 'r') + versionList = json.load(f) + f.close() + + # check if version exists + for versionInfo in versionList: + if versionInfo['version'] == checksums['version']: + raise Exception(f'Version {checksums["version"]} already exists in {filepath}') + + # update checksums + with open(filepath, 'w') as f: + json.dump([checksums] + versionList, f, indent=4, sort_keys=True) + +def main(): + if len(sys.argv) < 3: + print('Usage: python generate_checksum.py ') + sys.exit(1) + + filepath = sys.argv[1] + old_checksums = sys.argv[2] + + checksums = process_checksum(filepath) + update_checksums(old_checksums, checksums) + +if __name__ == '__main__': + main() diff --git a/Tasks/NotationV0/task.json b/Tasks/NotationV0/task.json index 2c29f0988c50..a3fe34bf027e 100644 --- a/Tasks/NotationV0/task.json +++ b/Tasks/NotationV0/task.json @@ -10,7 +10,7 @@ "minimumAgentVersion": "2.144.0", "version": { "Major": 0, - "Minor": 232, + "Minor": 235, "Patch": 0 }, "groups": [ @@ -61,7 +61,7 @@ "name": "version", "type": "string", "label": "Version", - "defaultValue": "1.0.1", + "defaultValue": "1.1.0", "required": true, "helpMarkDown": "The version of Notation to install. Example: 1.0.0, 1, 1.0, 1.0.0", "visibleRule": "command = install && isCustomVersion = false", diff --git a/Tasks/NotationV0/task.loc.json b/Tasks/NotationV0/task.loc.json index 1e92c1120a23..db33f64bb7de 100644 --- a/Tasks/NotationV0/task.loc.json +++ b/Tasks/NotationV0/task.loc.json @@ -10,7 +10,7 @@ "minimumAgentVersion": "2.144.0", "version": { "Major": 0, - "Minor": 232, + "Minor": 235, "Patch": 0 }, "groups": [ @@ -61,7 +61,7 @@ "name": "version", "type": "string", "label": "ms-resource:loc.input.label.version", - "defaultValue": "1.0.1", + "defaultValue": "1.1.0", "required": true, "helpMarkDown": "ms-resource:loc.input.help.version", "visibleRule": "command = install && isCustomVersion = false", diff --git a/Tasks/PublishCodeCoverageResultsV2/_buildConfigs/Node20/package-lock.json b/Tasks/PublishCodeCoverageResultsV2/_buildConfigs/Node20/package-lock.json index 34d0fa8ffc1d..16a0593fa73c 100644 --- a/Tasks/PublishCodeCoverageResultsV2/_buildConfigs/Node20/package-lock.json +++ b/Tasks/PublishCodeCoverageResultsV2/_buildConfigs/Node20/package-lock.json @@ -47,6 +47,14 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -65,18 +73,42 @@ "version": "file:../../_build/Tasks/Common/coveragepublisher-1.1.0.tgz", "requires": { "@types/node": "^16.11.39", - "azure-pipelines-task-lib": "^5.0.1-preview.0", + "azure-pipelines-task-lib": "^4.1.0", "os": "^0.1.1", "uuid": "^3.3.2" }, "dependencies": { "@types/node": { - "version": "16.18.70", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.70.tgz", - "integrity": "sha512-8eIk20G5VVVQNZNouHjLA2b8utE2NvGybLjMaF4lyhA9uhGwnmXF8o+icdXKGSQSNANJewXva/sFUoZLwAaYAg==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" + }, + "azure-pipelines-task-lib": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.8.2.tgz", + "integrity": "sha512-hTupUi+c6kT6Mna1PHQzuBjWcoULphnNfYaXcUW5EyH02V8D9C7eNhArMW1uFVE0J3Vi23rdkEDYm+0oo17alw==", + "requires": { + "adm-zip": "^0.5.10", + "deasync": "^0.1.28", + "minimatch": "3.0.5", + "nodejs-file-downloader": "^4.11.1", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "uuid": "^3.0.1" + } } } }, + "deasync": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.29.tgz", + "integrity": "sha512-EBtfUhVX23CE9GR6m+F8WPeImEE4hR/FW9RkK0PMl9V1t283s0elqsTD8EZjaKX28SY1BW2rYfCgNsAYdpamUw==", + "requires": { + "bindings": "^1.5.0", + "node-addon-api": "^1.7.1" + } + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -85,6 +117,11 @@ "ms": "2.1.2" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "follow-redirects": { "version": "1.15.4", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", @@ -193,6 +230,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" + }, "nodejs-file-downloader": { "version": "4.12.1", "resolved": "https://registry.npmjs.org/nodejs-file-downloader/-/nodejs-file-downloader-4.12.1.tgz", diff --git a/Tasks/PublishCodeCoverageResultsV2/package-lock.json b/Tasks/PublishCodeCoverageResultsV2/package-lock.json index e0b2498a87e1..ee494d458d63 100644 --- a/Tasks/PublishCodeCoverageResultsV2/package-lock.json +++ b/Tasks/PublishCodeCoverageResultsV2/package-lock.json @@ -44,6 +44,14 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -62,9 +70,35 @@ "version": "file:../../_build/Tasks/Common/coveragepublisher-1.1.0.tgz", "requires": { "@types/node": "^16.11.39", - "azure-pipelines-task-lib": "^5.0.1-preview.0", + "azure-pipelines-task-lib": "^4.1.0", "os": "^0.1.1", "uuid": "^3.3.2" + }, + "dependencies": { + "azure-pipelines-task-lib": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.8.2.tgz", + "integrity": "sha512-hTupUi+c6kT6Mna1PHQzuBjWcoULphnNfYaXcUW5EyH02V8D9C7eNhArMW1uFVE0J3Vi23rdkEDYm+0oo17alw==", + "requires": { + "adm-zip": "^0.5.10", + "deasync": "^0.1.28", + "minimatch": "3.0.5", + "nodejs-file-downloader": "^4.11.1", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "uuid": "^3.0.1" + } + } + } + }, + "deasync": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.29.tgz", + "integrity": "sha512-EBtfUhVX23CE9GR6m+F8WPeImEE4hR/FW9RkK0PMl9V1t283s0elqsTD8EZjaKX28SY1BW2rYfCgNsAYdpamUw==", + "requires": { + "bindings": "^1.5.0", + "node-addon-api": "^1.7.1" } }, "debug": { @@ -75,6 +109,11 @@ "ms": "2.1.2" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "follow-redirects": { "version": "1.15.4", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", @@ -183,6 +222,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" + }, "nodejs-file-downloader": { "version": "4.12.1", "resolved": "https://registry.npmjs.org/nodejs-file-downloader/-/nodejs-file-downloader-4.12.1.tgz", diff --git a/Tasks/PublishCodeCoverageResultsV2/task.json b/Tasks/PublishCodeCoverageResultsV2/task.json index 8253a439c218..3154effad738 100644 --- a/Tasks/PublishCodeCoverageResultsV2/task.json +++ b/Tasks/PublishCodeCoverageResultsV2/task.json @@ -15,7 +15,7 @@ "author": "Microsoft Corporation", "version": { "Major": 2, - "Minor": 234, + "Minor": 235, "Patch": 0 }, "demands": [], diff --git a/Tasks/PublishCodeCoverageResultsV2/task.loc.json b/Tasks/PublishCodeCoverageResultsV2/task.loc.json index a04a4a080c64..09dae777c352 100644 --- a/Tasks/PublishCodeCoverageResultsV2/task.loc.json +++ b/Tasks/PublishCodeCoverageResultsV2/task.loc.json @@ -15,7 +15,7 @@ "author": "Microsoft Corporation", "version": { "Major": 2, - "Minor": 234, + "Minor": 235, "Patch": 0 }, "demands": [], diff --git a/Tasks/QuickPerfTestV1/Invoke-QuickPerfTest.ps1 b/Tasks/QuickPerfTestV1/Invoke-QuickPerfTest.ps1 index d34fcdcc30cf..b3a3f8373d42 100644 --- a/Tasks/QuickPerfTestV1/Invoke-QuickPerfTest.ps1 +++ b/Tasks/QuickPerfTestV1/Invoke-QuickPerfTest.ps1 @@ -192,7 +192,7 @@ $featureFlags = @{ } if ($featureFlags.failDeprecatedBuildTask) { - throw "The QuickPerfTest@1 (Cloud-based web performance test) task has been deprecated since June 4, 2019 and will soon be retired. Use the AzureLoadTest@1 task instead." + throw "The QuickPerfTest@1 (Cloud-based web performance test) task has been deprecated since June 4, 2019 and will soon be retired. Use the AzureLoadTest@1 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } Write-Output "Quick Perf Test Script execution completed" diff --git a/Tasks/QuickPerfTestV1/task.json b/Tasks/QuickPerfTestV1/task.json index f47eeaa8aa78..c855e1fc1d21 100644 --- a/Tasks/QuickPerfTestV1/task.json +++ b/Tasks/QuickPerfTestV1/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/QuickPerfTestV1/task.loc.json b/Tasks/QuickPerfTestV1/task.loc.json index 30b46298fe64..5c1297969f60 100644 --- a/Tasks/QuickPerfTestV1/task.loc.json +++ b/Tasks/QuickPerfTestV1/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/RunJMeterLoadTestV1/Start-ApacheJMeterTest.ps1 b/Tasks/RunJMeterLoadTestV1/Start-ApacheJMeterTest.ps1 index 3a7c05111cf9..09aa3486e5a8 100644 --- a/Tasks/RunJMeterLoadTestV1/Start-ApacheJMeterTest.ps1 +++ b/Tasks/RunJMeterLoadTestV1/Start-ApacheJMeterTest.ps1 @@ -189,7 +189,7 @@ $featureFlags = @{ } if ($featureFlags.failDeprecatedBuildTask) { - throw "The ApacheJMeterLoadTest@1 (Cloud-based Apache JMeter load test) task haas been deprecated since June 4, 2019 and will soon be retired. For cloud-based load testing, use the AzureLoadTest@1 task." + throw "The ApacheJMeterLoadTest@1 (Cloud-based Apache JMeter load test) task haas been deprecated since June 4, 2019 and will soon be retired. For cloud-based load testing, use the AzureLoadTest@1 task. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } WriteTaskMessages "JMeter Test Script execution completed" diff --git a/Tasks/RunJMeterLoadTestV1/task.json b/Tasks/RunJMeterLoadTestV1/task.json index d0b7231c17c5..605042243c5e 100644 --- a/Tasks/RunJMeterLoadTestV1/task.json +++ b/Tasks/RunJMeterLoadTestV1/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/RunJMeterLoadTestV1/task.loc.json b/Tasks/RunJMeterLoadTestV1/task.loc.json index e124a0259b03..d99938ea58ed 100644 --- a/Tasks/RunJMeterLoadTestV1/task.loc.json +++ b/Tasks/RunJMeterLoadTestV1/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/RunLoadTestV1/Start-CloudLoadTest.ps1 b/Tasks/RunLoadTestV1/Start-CloudLoadTest.ps1 index 2f22ff319746..b2c2231c6a9b 100644 --- a/Tasks/RunLoadTestV1/Start-CloudLoadTest.ps1 +++ b/Tasks/RunLoadTestV1/Start-CloudLoadTest.ps1 @@ -238,7 +238,7 @@ $featureFlags = @{ } if ($featureFlags.failDeprecatedBuildTask) { - throw "The CloudLoadTest@1 (Cloud-based load test) has been deprecated since June 4, 2019 and will soon be retired. Use the AzureLoadTest@1 task instead." + throw "The CloudLoadTest@1 (Cloud-based load test) has been deprecated since June 4, 2019 and will soon be retired. Use the AzureLoadTest@1 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } WriteTaskMessages "Load Test Script execution completed" diff --git a/Tasks/RunLoadTestV1/task.json b/Tasks/RunLoadTestV1/task.json index b3ba80661b51..6f383992f9af 100644 --- a/Tasks/RunLoadTestV1/task.json +++ b/Tasks/RunLoadTestV1/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/RunLoadTestV1/task.loc.json b/Tasks/RunLoadTestV1/task.loc.json index 3008abe45d56..f4736e2d9e32 100644 --- a/Tasks/RunLoadTestV1/task.loc.json +++ b/Tasks/RunLoadTestV1/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "deprecated": true, "removalDate": "2024-01-31", diff --git a/Tasks/SqlServerDacpacDeployment/DeployToSqlServer.ps1 b/Tasks/SqlServerDacpacDeployment/DeployToSqlServer.ps1 index eadb79dea226..4a089e0abd65 100644 --- a/Tasks/SqlServerDacpacDeployment/DeployToSqlServer.ps1 +++ b/Tasks/SqlServerDacpacDeployment/DeployToSqlServer.ps1 @@ -86,7 +86,7 @@ $featureFlags = @{ } if ($featureFlags.failDeprecatedBuildTask) { - throw "The SqlServerDacpacDeployment@1 (SQL Server database deploy) task has been deprecated since October 5, 2018 and will soon be retired. Use the 'IIS Web App Deployment Using WinRM' extension instead: https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.iiswebapp. For Azure SQL Database use the SqlAzureDacpacDeployment@1 task." + throw "The SqlServerDacpacDeployment@1 (SQL Server database deploy) task has been deprecated since October 5, 2018 and will soon be retired. Use the 'IIS Web App Deployment Using WinRM' extension instead: https://marketplace.visualstudio.com/items?itemName=ms-vscs-rm.iiswebapp. For Azure SQL Database use the SqlAzureDacpacDeployment@1 task. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } Write-Output ( Get-LocalizedString -Key "Successfully deployed Sql Dacpac File : {0}" -ArgumentList $dacpacFile) \ No newline at end of file diff --git a/Tasks/SqlServerDacpacDeployment/task.json b/Tasks/SqlServerDacpacDeployment/task.json index cc1e81a4c374..59c4b275ab6e 100644 --- a/Tasks/SqlServerDacpacDeployment/task.json +++ b/Tasks/SqlServerDacpacDeployment/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "demands": [], "minimumAgentVersion": "1.96.2", diff --git a/Tasks/SqlServerDacpacDeployment/task.loc.json b/Tasks/SqlServerDacpacDeployment/task.loc.json index 55c090fc3e35..f03810e1cbf0 100644 --- a/Tasks/SqlServerDacpacDeployment/task.loc.json +++ b/Tasks/SqlServerDacpacDeployment/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 1 }, "demands": [], "minimumAgentVersion": "1.96.2", diff --git a/Tasks/UseNodeV1/_buildConfigs/Node20/package-lock.json b/Tasks/UseNodeV1/_buildConfigs/Node20/package-lock.json index 67f4acf57a47..9316fb8c8e1e 100644 --- a/Tasks/UseNodeV1/_buildConfigs/Node20/package-lock.json +++ b/Tasks/UseNodeV1/_buildConfigs/Node20/package-lock.json @@ -26,19 +26,22 @@ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" }, "@types/node": { - "version": "20.5.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.8.tgz", - "integrity": "sha512-eajsR9aeljqNhK028VG0Wuw+OaY5LLxYmxeoXynIoE6jannr9/Ucd1LL0hSSoafk5LTYG+FfqsyGt81Q6Zkybw==" + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", + "requires": { + "undici-types": "~5.26.4" + } }, "@types/q": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.6.tgz", - "integrity": "sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ==" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" }, "@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==" + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, "@types/semver": { "version": "5.5.0", @@ -107,9 +110,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.59.tgz", - "integrity": "sha512-PJ1w2cNeKUEdey4LiPra0ZuxZFOGvetswE8qHRriV/sUkL5Al4tTmPV9D2+Y/TPIxTHHgxTfRjZVKWhPw/ORhQ==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "azure-pipelines-task-lib": { "version": "4.6.1", @@ -264,9 +267,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -289,13 +292,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-proto": "^1.0.1", "has-symbols": "^1.0.3" } }, @@ -335,11 +337,6 @@ "function-bind": "^1.1.1" } }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" - }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -400,9 +397,9 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "requires": { "has": "^1.0.3" } @@ -469,9 +466,9 @@ } }, "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" }, "once": { "version": "1.4.0", @@ -502,9 +499,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz", + "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", "requires": { "asap": "~2.0.6" } @@ -515,17 +512,17 @@ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" }, "qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "requires": { "side-channel": "^1.0.4" } }, "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -545,11 +542,11 @@ } }, "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -672,9 +669,9 @@ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" }, "typed-rest-client": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", - "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", "requires": { "qs": "^6.9.1", "tunnel": "0.0.6", @@ -697,6 +694,11 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", diff --git a/Tasks/UseNodeV1/package-lock.json b/Tasks/UseNodeV1/package-lock.json index 971c9275a7ee..d95832d9fa74 100644 --- a/Tasks/UseNodeV1/package-lock.json +++ b/Tasks/UseNodeV1/package-lock.json @@ -259,9 +259,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -557,9 +557,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/Tasks/UseNodeV1/task.json b/Tasks/UseNodeV1/task.json index 1d2eaa53919a..a1af76603b6f 100644 --- a/Tasks/UseNodeV1/task.json +++ b/Tasks/UseNodeV1/task.json @@ -1,90 +1,90 @@ { - "id": "31C75BBB-BCDF-4706-8D7C-4DA6A1959BC2", - "name": "UseNode", - "friendlyName": "Use Node.js ecosystem", - "description": "Set up a Node.js environment and add it to the PATH, additionally providing proxy support", - "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks", - "helpMarkDown": "", - "category": "Tool", - "preview": true, - "ecosystem": "node", - "minimumAgentVersion": "2.144.0", - "runsOn": [ - "Agent", - "DeploymentGroup" - ], - "author": "Microsoft Corporation", - "version": { - "Major": 1, - "Minor": 231, - "Patch": 6 + "id": "31C75BBB-BCDF-4706-8D7C-4DA6A1959BC2", + "name": "UseNode", + "friendlyName": "Use Node.js ecosystem", + "description": "Set up a Node.js environment and add it to the PATH, additionally providing proxy support", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks", + "helpMarkDown": "", + "category": "Tool", + "preview": true, + "ecosystem": "node", + "minimumAgentVersion": "2.144.0", + "runsOn": [ + "Agent", + "DeploymentGroup" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 1, + "Minor": 235, + "Patch": 0 + }, + "satisfies": [ + "Node", + "npm", + "node.js" + ], + "demands": [], + "instanceNameFormat": "Use Node $(versionSpec)", + "inputs": [ + { + "name": "version", + "type": "string", + "label": "Version", + "defaultValue": "10.x", + "required": false, + "helpMarkDown": "Version Spec of the version to use. Examples: 10.x, 10.15.1, >=10.15.0" }, - "satisfies": [ - "Node", - "npm", - "node.js" - ], - "demands": [], - "instanceNameFormat": "Use Node $(versionSpec)", - "inputs": [ - { - "name": "version", - "type": "string", - "label": "Version", - "defaultValue": "10.x", - "required": false, - "helpMarkDown": "Version Spec of the version to use. Examples: 10.x, 10.15.1, >=10.15.0" - }, - { - "name": "checkLatest", - "type": "boolean", - "label": "Check for Latest Version", - "defaultValue": "false", - "required": false, - "helpMarkDown": "Always checks online for the latest available version that satisfies the version spec. This is typically false unless you have a specific scenario to always get latest. This will cause it to incur download costs when potentially not necessary, especially with the hosted build pool." - }, - { - "name": "force32bit", - "type": "boolean", - "label": "Use 32 bit version on x64 agents", - "defaultValue": "false", - "required": false, - "helpMarkDown": "Installs the x86 version of Node regardless of the CPU architecture of the agent." - }, - { - "name": "retryCountOnDownloadFails", - "type": "string", - "label": "Set retry count when nodes downloads failed", - "defaultValue": "5", - "required": false, - "groupName": "advanced", - "helpMarkDown": "Use this option when the task failed to download node binaries from the mirror. The task will retry to download the binaries for the specified times." - }, - { - "name": "delayBetweenRetries", - "type": "string", - "label": "Set delay between retries", - "defaultValue": "1000", - "required": false, - "groupName": "advanced", - "helpMarkDown": "Use this option to set the delay between retries in milliseconds. The default value is 1000 milliseconds." - } - ], - "execution": { - "Node10": { - "target": "usenode.js", - "argumentFormat": "" - }, - "Node16": { - "target": "usenode.js", - "argumentFormat": "" - } + { + "name": "checkLatest", + "type": "boolean", + "label": "Check for Latest Version", + "defaultValue": "false", + "required": false, + "helpMarkDown": "Always checks online for the latest available version that satisfies the version spec. This is typically false unless you have a specific scenario to always get latest. This will cause it to incur download costs when potentially not necessary, especially with the hosted build pool." }, - "messages": { - "ToolFailed": "Node install failed: %s", - "TryRosetta": "Unable to find Node for platform %s and architecture %s. Trying to install with Rosetta2", - "NodeVersionNotFound": "Unable to find Node version %s for platform %s and architecture %s.", - "UnexpectedOS": "Unexpected OS %s", - "AgentTempDirNotSet": "Expected Agent.TempDirectory to be set." + { + "name": "force32bit", + "type": "boolean", + "label": "Use 32 bit version on x64 agents", + "defaultValue": "false", + "required": false, + "helpMarkDown": "Installs the x86 version of Node regardless of the CPU architecture of the agent." + }, + { + "name": "retryCountOnDownloadFails", + "type": "string", + "label": "Set retry count when nodes downloads failed", + "defaultValue": "5", + "required": false, + "groupName": "advanced", + "helpMarkDown": "Use this option when the task failed to download node binaries from the mirror. The task will retry to download the binaries for the specified times." + }, + { + "name": "delayBetweenRetries", + "type": "string", + "label": "Set delay between retries", + "defaultValue": "1000", + "required": false, + "groupName": "advanced", + "helpMarkDown": "Use this option to set the delay between retries in milliseconds. The default value is 1000 milliseconds." + } + ], + "execution": { + "Node10": { + "target": "usenode.js", + "argumentFormat": "" + }, + "Node16": { + "target": "usenode.js", + "argumentFormat": "" } + }, + "messages": { + "ToolFailed": "Node install failed: %s", + "TryRosetta": "Unable to find Node for platform %s and architecture %s. Trying to install with Rosetta2", + "NodeVersionNotFound": "Unable to find Node version %s for platform %s and architecture %s.", + "UnexpectedOS": "Unexpected OS %s", + "AgentTempDirNotSet": "Expected Agent.TempDirectory to be set." + } } \ No newline at end of file diff --git a/Tasks/UseNodeV1/task.loc.json b/Tasks/UseNodeV1/task.loc.json index 54f0b942b501..de86ae787fda 100644 --- a/Tasks/UseNodeV1/task.loc.json +++ b/Tasks/UseNodeV1/task.loc.json @@ -16,8 +16,8 @@ "author": "Microsoft Corporation", "version": { "Major": 1, - "Minor": 231, - "Patch": 6 + "Minor": 235, + "Patch": 0 }, "satisfies": [ "Node", diff --git a/Tasks/UsePythonVersionV0/_buildConfigs/Node20/package-lock.json b/Tasks/UsePythonVersionV0/_buildConfigs/Node20/package-lock.json index 4162de7ace16..c15915e9fd48 100644 --- a/Tasks/UsePythonVersionV0/_buildConfigs/Node20/package-lock.json +++ b/Tasks/UsePythonVersionV0/_buildConfigs/Node20/package-lock.json @@ -26,11 +26,11 @@ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" }, "@types/node": { - "version": "20.8.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", - "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", "requires": { - "undici-types": "~5.25.1" + "undici-types": "~5.26.4" } }, "@types/q": { @@ -117,9 +117,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.59.tgz", - "integrity": "sha512-PJ1w2cNeKUEdey4LiPra0ZuxZFOGvetswE8qHRriV/sUkL5Al4tTmPV9D2+Y/TPIxTHHgxTfRjZVKWhPw/ORhQ==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "azure-pipelines-task-lib": { "version": "4.6.1", @@ -284,9 +284,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -590,9 +590,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } @@ -723,9 +723,9 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, "undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "utf8-byte-length": { "version": "1.0.4", diff --git a/Tasks/UsePythonVersionV0/_buildConfigs/Node20/package.json b/Tasks/UsePythonVersionV0/_buildConfigs/Node20/package.json index 12895cf27e92..1f5b4e5dd2b7 100644 --- a/Tasks/UsePythonVersionV0/_buildConfigs/Node20/package.json +++ b/Tasks/UsePythonVersionV0/_buildConfigs/Node20/package.json @@ -23,14 +23,14 @@ }, "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", "dependencies": { + "@types/mocha": "^5.2.7", "@types/node": "^20.3.1", "@types/q": "^1.0.7", - "@types/mocha": "^5.2.7", "azure-pipelines-task-lib": "^5.0.0-preview.0", "azure-pipelines-tasks-utility-common": "^3.230.0", "azure-pipelines-tool-lib": "^2.0.7", - "typed-rest-client": "^1.8.6", - "semver": "^7.3.5" + "semver": "^7.5.4", + "typed-rest-client": "^1.8.6" }, "devDependencies": { "typescript": "5.1.6" diff --git a/Tasks/UsePythonVersionV0/package-lock.json b/Tasks/UsePythonVersionV0/package-lock.json index b747550f93f3..24cea7279638 100644 --- a/Tasks/UsePythonVersionV0/package-lock.json +++ b/Tasks/UsePythonVersionV0/package-lock.json @@ -276,9 +276,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -582,9 +582,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } diff --git a/Tasks/UsePythonVersionV0/package.json b/Tasks/UsePythonVersionV0/package.json index ad721d69caf8..fab588830240 100644 --- a/Tasks/UsePythonVersionV0/package.json +++ b/Tasks/UsePythonVersionV0/package.json @@ -23,14 +23,14 @@ }, "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", "dependencies": { + "@types/mocha": "^5.2.7", "@types/node": "^16.11.39", "@types/q": "^1.0.7", - "@types/mocha": "^5.2.7", "azure-pipelines-task-lib": "^5.0.0-preview.0", "azure-pipelines-tasks-utility-common": "^3.230.0", "azure-pipelines-tool-lib": "^2.0.7", - "typed-rest-client": "^1.8.6", - "semver": "^7.3.5" + "semver": "^7.5.4", + "typed-rest-client": "^1.8.6" }, "devDependencies": { "typescript": "4.0.2" diff --git a/Tasks/UsePythonVersionV0/task.json b/Tasks/UsePythonVersionV0/task.json index ad2339130309..3d53db8762b3 100644 --- a/Tasks/UsePythonVersionV0/task.json +++ b/Tasks/UsePythonVersionV0/task.json @@ -1,128 +1,128 @@ { - "id": "33C63B11-352B-45A2-BA1B-54CB568A29CA", - "name": "UsePythonVersion", - "friendlyName": "Use Python version", - "description": "Use the specified version of Python from the tool cache, optionally adding it to the PATH", - "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/tool/use-python-version", - "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=871498) or [see the Python documentation](https://www.python.org/doc/)", - "category": "Tool", - "runsOn": [ - "Agent", - "DeploymentGroup" - ], - "author": "Microsoft Corporation", - "minimumAgentVersion": "2.182.1", - "version": { - "Major": 0, - "Minor": 231, - "Patch": 2 + "id": "33C63B11-352B-45A2-BA1B-54CB568A29CA", + "name": "UsePythonVersion", + "friendlyName": "Use Python version", + "description": "Use the specified version of Python from the tool cache, optionally adding it to the PATH", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/tool/use-python-version", + "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=871498) or [see the Python documentation](https://www.python.org/doc/)", + "category": "Tool", + "runsOn": [ + "Agent", + "DeploymentGroup" + ], + "author": "Microsoft Corporation", + "minimumAgentVersion": "2.182.1", + "version": { + "Major": 0, + "Minor": 235, + "Patch": 0 + }, + "demands": [], + "instanceNameFormat": "Use Python $(versionSpec)", + "groups": [ + { + "name": "advanced", + "displayName": "Advanced", + "isExpanded": false + } + ], + "inputs": [ + { + "name": "versionSpec", + "type": "string", + "label": "Version spec", + "required": true, + "defaultValue": "3.x", + "helpMarkDown": "Version range or exact version of a Python version to use, using semver's version range syntax. [More information](https://go.microsoft.com/fwlink/?LinkID=2006180)" + }, + { + "name": "disableDownloadFromRegistry", + "type": "boolean", + "label": "Disable downloading releases from the GitHub registry", + "required": false, + "defaultValue": "false", + "helpMarkDown": "Whether to disable downloading missing python version from the [Github Actions registry](https://github.com/actions/python-versions). Check this if you only want to use local pre-installed python." + }, + { + "name": "allowUnstable", + "type": "boolean", + "label": "Allow downloading unstable releases", + "required": false, + "defaultValue": "false", + "helpMarkDown": "Allow downloading unstable python versions from [Github Actions python versions registry](https://github.com/actions/python-versions).", + "visibleRule": "disableDownloadFromRegistry = false" + }, + { + "name": "githubToken", + "type": "string", + "label": "GitHub token for GitHub Actions python registry", + "required": false, + "helpMarkDown": "GitHub token is needed to prevent anonymous requests limit to the [Github Actions python versions registry](https://github.com/actions/python-versions). Leaving this empty may cause download failures. Not needed if you only use locally installed python.", + "visibleRule": "disableDownloadFromRegistry = false" }, - "demands": [], - "instanceNameFormat": "Use Python $(versionSpec)", - "groups": [ - { - "name": "advanced", - "displayName": "Advanced", - "isExpanded": false - } - ], - "inputs": [ - { - "name": "versionSpec", - "type": "string", - "label": "Version spec", - "required": true, - "defaultValue": "3.x", - "helpMarkDown": "Version range or exact version of a Python version to use, using semver's version range syntax. [More information](https://go.microsoft.com/fwlink/?LinkID=2006180)" - }, - { - "name": "disableDownloadFromRegistry", - "type": "boolean", - "label": "Disable downloading releases from the GitHub registry", - "required": false, - "defaultValue": "false", - "helpMarkDown": "Whether to disable downloading missing python version from the [Github Actions registry](https://github.com/actions/python-versions). Check this if you only want to use local pre-installed python." - }, - { - "name": "allowUnstable", - "type": "boolean", - "label": "Allow downloading unstable releases", - "required": false, - "defaultValue": "false", - "helpMarkDown": "Allow downloading unstable python versions from [Github Actions python versions registry](https://github.com/actions/python-versions).", - "visibleRule": "disableDownloadFromRegistry = false" - }, - { - "name": "githubToken", - "type": "string", - "label": "GitHub token for GitHub Actions python registry", - "required": false, - "helpMarkDown": "GitHub token is needed to prevent anonymous requests limit to the [Github Actions python versions registry](https://github.com/actions/python-versions). Leaving this empty may cause download failures. Not needed if you only use locally installed python.", - "visibleRule": "disableDownloadFromRegistry = false" - }, - { - "name": "addToPath", - "type": "boolean", - "label": "Add to PATH", - "required": true, - "defaultValue": "true", - "helpMarkDown": "Whether to prepend the retrieved Python version to the PATH environment variable to make it available in subsequent tasks or scripts without using the output variable." - }, - { - "name": "architecture", - "type": "pickList", - "label": "Architecture", - "defaultValue": "x64", - "required": true, - "helpMarkDown": "The target architecture (x86, x64) of the Python interpreter.", - "groupName": "advanced", - "options": { - "x86": "x86", - "x64": "x64" - } - } - ], - "outputVariables": [ - { - "name": "pythonLocation", - "description": "The directory of the installed Python distribution. Use this in subsequent tasks to access this installation of Python." - } - ], - "execution": { - "Node10": { - "target": "main.js", - "argumentFormat": "" - }, - "Node16": { - "target": "main.js", - "argumentFormat": "" - } + { + "name": "addToPath", + "type": "boolean", + "label": "Add to PATH", + "required": true, + "defaultValue": "true", + "helpMarkDown": "Whether to prepend the retrieved Python version to the PATH environment variable to make it available in subsequent tasks or scripts without using the output variable." }, - "messages": { - "ListAvailableVersions": "Versions in %s:", - "PlatformNotRecognized": "Platform not recognized", - "PrependPath": "Prepending PATH environment variable with directory: %s", - "PyPyNotFound": "Could not find an installation of PyPy%d in Agent.ToolsDirectory.", - "ToolNotFoundMicrosoftHosted": "If this is a Microsoft-hosted agent, check that this image supports side-by-side versions of %s at %s.", - "ToolNotFoundSelfHosted": "If this is a self-hosted agent, see how to configure side-by-side %s versions at %s.", - "VersionNotFound": "Version spec %s for architecture %s did not match any version in Agent.ToolsDirectory.", - "ExactVersionNotRecommended": "Specifying an exact version is not recommended on Microsoft-Hosted agents. Patch versions of Python can be replaced by new ones on Hosted agents without notice, which will cause builds to fail unexpectedly. It is recommended to specify only major or major and minor version (Example: `3` or `3.9`)", - "ExactVersionPyPyNotRecommended": "Specifying an exact version is not recommended on Microsoft-Hosted agents. Patch versions of PyPy can be replaced by new ones on Hosted agents without notice, which will cause builds to fail unexpectedly. It is recommended to specify only major or major and minor version (Example: `3` or `3.9`)", - "PythonVersionRetirement": "Python 3.5 has reached its end of life and will be removed from the ms-hosted images on January, 24. Please update Python version if you use ms-hosted agents. For more information about this - https://github.com/actions/virtual-environments", - "MissingGithubToken": "You should provide GitHub token if you want to download a python release. Otherwise you may hit the GitHub anonymous download limit.", - "DownloadNotFound": "Could not find Python matching spec %s (%s) in the python-versions registry. Beware that only systems listed in the Github Actions python versions manifest (https://github.com/actions/python-versions/blob/main/versions-manifest.json) are fit for downloading python on-flight. Also, proxy is not supported.", - "ManifestDownloadFailed": "Failed to download Python versions manifest from the Github Actions python registry (https://github.com/actions/python-versions). Invalid GitHub token could cause this.", - "DownloadFailed": "Failed to download Python from the Github Actions python registry (https://github.com/actions/python-versions). Error: %s" + { + "name": "architecture", + "type": "pickList", + "label": "Architecture", + "defaultValue": "x64", + "required": true, + "helpMarkDown": "The target architecture (x86, x64) of the Python interpreter.", + "groupName": "advanced", + "options": { + "x86": "x86", + "x64": "x64" + } + } + ], + "outputVariables": [ + { + "name": "pythonLocation", + "description": "The directory of the installed Python distribution. Use this in subsequent tasks to access this installation of Python." + } + ], + "execution": { + "Node10": { + "target": "main.js", + "argumentFormat": "" + }, + "Node16": { + "target": "main.js", + "argumentFormat": "" + } + }, + "messages": { + "ListAvailableVersions": "Versions in %s:", + "PlatformNotRecognized": "Platform not recognized", + "PrependPath": "Prepending PATH environment variable with directory: %s", + "PyPyNotFound": "Could not find an installation of PyPy%d in Agent.ToolsDirectory.", + "ToolNotFoundMicrosoftHosted": "If this is a Microsoft-hosted agent, check that this image supports side-by-side versions of %s at %s.", + "ToolNotFoundSelfHosted": "If this is a self-hosted agent, see how to configure side-by-side %s versions at %s.", + "VersionNotFound": "Version spec %s for architecture %s did not match any version in Agent.ToolsDirectory.", + "ExactVersionNotRecommended": "Specifying an exact version is not recommended on Microsoft-Hosted agents. Patch versions of Python can be replaced by new ones on Hosted agents without notice, which will cause builds to fail unexpectedly. It is recommended to specify only major or major and minor version (Example: `3` or `3.9`)", + "ExactVersionPyPyNotRecommended": "Specifying an exact version is not recommended on Microsoft-Hosted agents. Patch versions of PyPy can be replaced by new ones on Hosted agents without notice, which will cause builds to fail unexpectedly. It is recommended to specify only major or major and minor version (Example: `3` or `3.9`)", + "PythonVersionRetirement": "Python 3.5 has reached its end of life and will be removed from the ms-hosted images on January, 24. Please update Python version if you use ms-hosted agents. For more information about this - https://github.com/actions/virtual-environments", + "MissingGithubToken": "You should provide GitHub token if you want to download a python release. Otherwise you may hit the GitHub anonymous download limit.", + "DownloadNotFound": "Could not find Python matching spec %s (%s) in the python-versions registry. Beware that only systems listed in the Github Actions python versions manifest (https://github.com/actions/python-versions/blob/main/versions-manifest.json) are fit for downloading python on-flight. Also, proxy is not supported.", + "ManifestDownloadFailed": "Failed to download Python versions manifest from the Github Actions python registry (https://github.com/actions/python-versions). Invalid GitHub token could cause this.", + "DownloadFailed": "Failed to download Python from the Github Actions python registry (https://github.com/actions/python-versions). Error: %s" + }, + "restrictions": { + "commands": { + "mode": "restricted" }, - "restrictions": { - "commands": { - "mode": "restricted" - }, - "settableVariables": { - "allowed": [ - "pythonLocation", - "PATH" - ] - } + "settableVariables": { + "allowed": [ + "pythonLocation", + "PATH" + ] } + } } \ No newline at end of file diff --git a/Tasks/UsePythonVersionV0/task.loc.json b/Tasks/UsePythonVersionV0/task.loc.json index 7eac388bcfb6..a9c6c64bdbc6 100644 --- a/Tasks/UsePythonVersionV0/task.loc.json +++ b/Tasks/UsePythonVersionV0/task.loc.json @@ -14,8 +14,8 @@ "minimumAgentVersion": "2.182.1", "version": { "Major": 0, - "Minor": 231, - "Patch": 2 + "Minor": 235, + "Patch": 0 }, "demands": [], "instanceNameFormat": "ms-resource:loc.instanceNameFormat", diff --git a/Tasks/UseRubyVersionV0/_buildConfigs/Node20/package-lock.json b/Tasks/UseRubyVersionV0/_buildConfigs/Node20/package-lock.json index 54a1249cd139..91b582f62f06 100644 --- a/Tasks/UseRubyVersionV0/_buildConfigs/Node20/package-lock.json +++ b/Tasks/UseRubyVersionV0/_buildConfigs/Node20/package-lock.json @@ -26,11 +26,11 @@ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" }, "@types/node": { - "version": "20.8.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", - "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", "requires": { - "undici-types": "~5.25.1" + "undici-types": "~5.26.4" } }, "@types/q": { @@ -110,9 +110,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.59.tgz", - "integrity": "sha512-PJ1w2cNeKUEdey4LiPra0ZuxZFOGvetswE8qHRriV/sUkL5Al4tTmPV9D2+Y/TPIxTHHgxTfRjZVKWhPw/ORhQ==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "azure-pipelines-task-lib": { "version": "4.6.1", @@ -267,9 +267,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -565,9 +565,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", @@ -695,9 +695,9 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, "undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "utf8-byte-length": { "version": "1.0.4", diff --git a/Tasks/UseRubyVersionV0/package-lock.json b/Tasks/UseRubyVersionV0/package-lock.json index 9f47211954cd..a67870a7d297 100644 --- a/Tasks/UseRubyVersionV0/package-lock.json +++ b/Tasks/UseRubyVersionV0/package-lock.json @@ -259,9 +259,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -557,9 +557,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/Tasks/UseRubyVersionV0/task.json b/Tasks/UseRubyVersionV0/task.json index d979e7e81899..4267b608a7e3 100644 --- a/Tasks/UseRubyVersionV0/task.json +++ b/Tasks/UseRubyVersionV0/task.json @@ -1,75 +1,75 @@ { - "id": "630C472C-CDE7-4CD8-BA13-E00CA5FF180B", - "name": "UseRubyVersion", - "friendlyName": "Use Ruby version", - "description": "Use the specified version of Ruby from the tool cache, optionally adding it to the PATH", - "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/tool/use-ruby-version", - "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=2005989) or [see the Ruby documentation](https://www.ruby-lang.org/)", - "category": "Tool", - "runsOn": [ - "Agent", - "DeploymentGroup" - ], - "author": "Microsoft Corporation", - "version": { - "Major": 0, - "Minor": 231, - "Patch": 2 + "id": "630C472C-CDE7-4CD8-BA13-E00CA5FF180B", + "name": "UseRubyVersion", + "friendlyName": "Use Ruby version", + "description": "Use the specified version of Ruby from the tool cache, optionally adding it to the PATH", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/tool/use-ruby-version", + "helpMarkDown": "[Learn more about this task](https://go.microsoft.com/fwlink/?linkid=2005989) or [see the Ruby documentation](https://www.ruby-lang.org/)", + "category": "Tool", + "runsOn": [ + "Agent", + "DeploymentGroup" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 0, + "Minor": 235, + "Patch": 0 + }, + "demands": [], + "minimumAgentVersion": "2.182.1", + "instanceNameFormat": "Use Ruby $(versionSpec)", + "inputs": [ + { + "name": "versionSpec", + "type": "string", + "label": "Version spec", + "required": true, + "defaultValue": ">= 2.4", + "helpMarkDown": "Version range or exact version of a Ruby version to use." }, - "demands": [], - "minimumAgentVersion": "2.182.1", - "instanceNameFormat": "Use Ruby $(versionSpec)", - "inputs": [ - { - "name": "versionSpec", - "type": "string", - "label": "Version spec", - "required": true, - "defaultValue": ">= 2.4", - "helpMarkDown": "Version range or exact version of a Ruby version to use." - }, - { - "name": "addToPath", - "type": "boolean", - "label": "Add to PATH", - "required": false, - "defaultValue": "true", - "helpMarkDown": "Prepend the retrieved Ruby version to the PATH environment variable to make it available in subsequent tasks or scripts without using the output variable." - } - ], - "outputVariables": [ - { - "name": "rubyLocation", - "description": "The resolved folder of the Ruby distribution." - } - ], - "execution": { - "Node10": { - "target": "main.js", - "argumentFormat": "" - }, - "Node16": { - "target": "main.js", - "argumentFormat": "" - } + { + "name": "addToPath", + "type": "boolean", + "label": "Add to PATH", + "required": false, + "defaultValue": "true", + "helpMarkDown": "Prepend the retrieved Ruby version to the PATH environment variable to make it available in subsequent tasks or scripts without using the output variable." + } + ], + "outputVariables": [ + { + "name": "rubyLocation", + "description": "The resolved folder of the Ruby distribution." + } + ], + "execution": { + "Node10": { + "target": "main.js", + "argumentFormat": "" }, - "messages": { - "ListAvailableVersions": "Available versions:", - "PlatformNotRecognized": "Platform not recognized", - "ToolNotFoundMicrosoftHosted": "If this is a Microsoft-hosted agent, check that this image supports side-by-side versions of %s at %s.", - "ToolNotFoundSelfHosted": "If this is a self-hosted agent, see how to configure side-by-side %s versions at %s.", - "VersionNotFound": "Version spec %s for architecture %s did not match any version in Agent.ToolsDirectory.", - "ExactVersionNotRecommended": "Specifying an exact version is not recommended on Microsoft-Hosted agents. Patch versions of Ruby can be replaced by new ones on Hosted agents without notice, which will cause builds to fail unexpectedly. It is recommended to specify only major or major and minor version (Example: `2` or `2.4`)" + "Node16": { + "target": "main.js", + "argumentFormat": "" + } + }, + "messages": { + "ListAvailableVersions": "Available versions:", + "PlatformNotRecognized": "Platform not recognized", + "ToolNotFoundMicrosoftHosted": "If this is a Microsoft-hosted agent, check that this image supports side-by-side versions of %s at %s.", + "ToolNotFoundSelfHosted": "If this is a self-hosted agent, see how to configure side-by-side %s versions at %s.", + "VersionNotFound": "Version spec %s for architecture %s did not match any version in Agent.ToolsDirectory.", + "ExactVersionNotRecommended": "Specifying an exact version is not recommended on Microsoft-Hosted agents. Patch versions of Ruby can be replaced by new ones on Hosted agents without notice, which will cause builds to fail unexpectedly. It is recommended to specify only major or major and minor version (Example: `2` or `2.4`)" + }, + "restrictions": { + "commands": { + "mode": "restricted" }, - "restrictions": { - "commands": { - "mode": "restricted" - }, - "settableVariables": { - "allowed": [ - "rubyLocation", - "PATH" - ] - } + "settableVariables": { + "allowed": [ + "rubyLocation", + "PATH" + ] } + } } \ No newline at end of file diff --git a/Tasks/UseRubyVersionV0/task.loc.json b/Tasks/UseRubyVersionV0/task.loc.json index 4875f44db262..d0b80fcf082f 100644 --- a/Tasks/UseRubyVersionV0/task.loc.json +++ b/Tasks/UseRubyVersionV0/task.loc.json @@ -13,8 +13,8 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 231, - "Patch": 2 + "Minor": 235, + "Patch": 0 }, "demands": [], "minimumAgentVersion": "2.182.1", diff --git a/Tasks/XamarinTestCloudV1/Strings/resources.resjson/en-US/resources.resjson b/Tasks/XamarinTestCloudV1/Strings/resources.resjson/en-US/resources.resjson index bae4406560f9..377b8fda33ef 100644 --- a/Tasks/XamarinTestCloudV1/Strings/resources.resjson/en-US/resources.resjson +++ b/Tasks/XamarinTestCloudV1/Strings/resources.resjson/en-US/resources.resjson @@ -29,5 +29,5 @@ "loc.input.help.optionalArgs": "Additional arguments passed to test-cloud.exe.", "loc.input.label.publishNUnitResults": "Publish results to Azure Pipelines", "loc.input.help.publishNUnitResults": "When selected, --nunit-xml option will be passed to test-cloud.exe. Results from the NUnit xml file will be published to Azure Pipelines.", - "loc.messages.DeprecatedTask": "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "loc.messages.DeprecatedTask": "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/Tasks/XamarinTestCloudV1/XamarinTestCloud.ps1 b/Tasks/XamarinTestCloudV1/XamarinTestCloud.ps1 index 80e6b6170378..db863759521d 100644 --- a/Tasks/XamarinTestCloudV1/XamarinTestCloud.ps1 +++ b/Tasks/XamarinTestCloudV1/XamarinTestCloud.ps1 @@ -198,6 +198,6 @@ $featureFlags = @{ } if ($featureFlags.failDeprecatedBuildTask) { - throw "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead." + throw "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } Write-Verbose "Leaving script XamarinTestCloud.ps1" \ No newline at end of file diff --git a/Tasks/XamarinTestCloudV1/task.json b/Tasks/XamarinTestCloudV1/task.json index 2d7f9ebbb51a..94ba1d921464 100644 --- a/Tasks/XamarinTestCloudV1/task.json +++ b/Tasks/XamarinTestCloudV1/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "demands": [], "minimumAgentVersion": "1.83.0", @@ -198,6 +198,6 @@ } }, "messages": { - "DeprecatedTask": "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "DeprecatedTask": "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } } \ No newline at end of file diff --git a/Tasks/XamarinTestCloudV1/task.loc.json b/Tasks/XamarinTestCloudV1/task.loc.json index 3d5c25ad59ae..44e908a2e504 100644 --- a/Tasks/XamarinTestCloudV1/task.loc.json +++ b/Tasks/XamarinTestCloudV1/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "demands": [], "minimumAgentVersion": "1.83.0", diff --git a/Tasks/XcodeV5/_buildConfigs/Node20/package-lock.json b/Tasks/XcodeV5/_buildConfigs/Node20/package-lock.json index 46df9e5b4583..1809f87ba573 100644 --- a/Tasks/XcodeV5/_buildConfigs/Node20/package-lock.json +++ b/Tasks/XcodeV5/_buildConfigs/Node20/package-lock.json @@ -26,9 +26,12 @@ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" }, "@types/node": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.2.tgz", - "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==" + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", + "requires": { + "undici-types": "~5.26.4" + } }, "@types/q": { "version": "1.5.4", @@ -310,9 +313,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -608,9 +611,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", @@ -737,6 +740,11 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", diff --git a/Tasks/XcodeV5/package-lock.json b/Tasks/XcodeV5/package-lock.json index f6b30d6cfc5d..d42052899472 100644 --- a/Tasks/XcodeV5/package-lock.json +++ b/Tasks/XcodeV5/package-lock.json @@ -305,9 +305,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -596,9 +596,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/Tasks/XcodeV5/task.json b/Tasks/XcodeV5/task.json index 26c89e684d19..88a3deaa2443 100644 --- a/Tasks/XcodeV5/task.json +++ b/Tasks/XcodeV5/task.json @@ -12,8 +12,8 @@ "author": "Microsoft Corporation", "version": { "Major": 5, - "Minor": 231, - "Patch": 4 + "Minor": 235, + "Patch": 0 }, "releaseNotes": "This version of the task is compatible with Xcode 8 - 13. Features that were solely to maintain compatibility with Xcode 7 have been removed. This task has better options for using Microsoft-hosted macOS agents.", "demands": [ diff --git a/Tasks/XcodeV5/task.loc.json b/Tasks/XcodeV5/task.loc.json index e1a070704c30..987716f17c9b 100644 --- a/Tasks/XcodeV5/task.loc.json +++ b/Tasks/XcodeV5/task.loc.json @@ -12,8 +12,8 @@ "author": "Microsoft Corporation", "version": { "Major": 5, - "Minor": 231, - "Patch": 4 + "Minor": 235, + "Patch": 0 }, "releaseNotes": "ms-resource:loc.releaseNotes", "demands": [ diff --git a/_generated/AppCenterDistributeV1.versionmap.txt b/_generated/AppCenterDistributeV1.versionmap.txt index bf340ca139ef..68659d064af1 100644 --- a/_generated/AppCenterDistributeV1.versionmap.txt +++ b/_generated/AppCenterDistributeV1.versionmap.txt @@ -1,2 +1,2 @@ -Default|1.235.0 -Node20_229_7|1.235.1 +Default|1.235.2 +Node20_229_7|1.235.3 diff --git a/_generated/AppCenterDistributeV1_Node20/Strings/resources.resjson/en-US/resources.resjson b/_generated/AppCenterDistributeV1_Node20/Strings/resources.resjson/en-US/resources.resjson index c946550ca471..bfa660e1f93a 100644 --- a/_generated/AppCenterDistributeV1_Node20/Strings/resources.resjson/en-US/resources.resjson +++ b/_generated/AppCenterDistributeV1_Node20/Strings/resources.resjson/en-US/resources.resjson @@ -39,5 +39,5 @@ "loc.messages.FoundMultipleFiles": "Found multiple files matching %s.", "loc.messages.FailedToCreateFile": "Failed to create %s with error: %s.", "loc.messages.FailedToFindFile": "Failed to find %s at %s.", - "loc.messages.DeprecatedTask": "The AppCenterDistribute@1 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "loc.messages.DeprecatedTask": "The AppCenterDistribute@1 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/_generated/AppCenterDistributeV1_Node20/task.json b/_generated/AppCenterDistributeV1_Node20/task.json index 228767bdfa8d..541712815dba 100644 --- a/_generated/AppCenterDistributeV1_Node20/task.json +++ b/_generated/AppCenterDistributeV1_Node20/task.json @@ -17,7 +17,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 1 + "Patch": 3 }, "minimumAgentVersion": "2.144.0", "releaseNotes": "Fix bug where feature branches were being truncated.", @@ -206,10 +206,10 @@ "FoundMultipleFiles": "Found multiple files matching %s.", "FailedToCreateFile": "Failed to create %s with error: %s.", "FailedToFindFile": "Failed to find %s at %s.", - "DeprecatedTask": "The AppCenterDistribute@1 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "DeprecatedTask": "The AppCenterDistribute@1 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." }, "_buildConfigMapping": { - "Default": "1.235.0", - "Node20_229_7": "1.235.1" + "Default": "1.235.2", + "Node20_229_7": "1.235.3" } } \ No newline at end of file diff --git a/_generated/AppCenterDistributeV1_Node20/task.loc.json b/_generated/AppCenterDistributeV1_Node20/task.loc.json index 4b88e72ba053..f6b2a3cabfa1 100644 --- a/_generated/AppCenterDistributeV1_Node20/task.loc.json +++ b/_generated/AppCenterDistributeV1_Node20/task.loc.json @@ -17,7 +17,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 1 + "Patch": 3 }, "minimumAgentVersion": "2.144.0", "releaseNotes": "ms-resource:loc.releaseNotes", @@ -209,7 +209,7 @@ "DeprecatedTask": "ms-resource:loc.messages.DeprecatedTask" }, "_buildConfigMapping": { - "Default": "1.235.0", - "Node20_229_7": "1.235.1" + "Default": "1.235.2", + "Node20_229_7": "1.235.3" } } \ No newline at end of file diff --git a/_generated/AppCenterDistributeV2.versionmap.txt b/_generated/AppCenterDistributeV2.versionmap.txt index 5bb6442d61ff..617d8c186052 100644 --- a/_generated/AppCenterDistributeV2.versionmap.txt +++ b/_generated/AppCenterDistributeV2.versionmap.txt @@ -1,2 +1,2 @@ -Default|2.235.0 -Node20_229_7|2.235.1 +Default|2.235.2 +Node20_229_7|2.235.3 diff --git a/_generated/AppCenterDistributeV2_Node20/Strings/resources.resjson/en-US/resources.resjson b/_generated/AppCenterDistributeV2_Node20/Strings/resources.resjson/en-US/resources.resjson index 0d154f652428..027cee3bdc01 100644 --- a/_generated/AppCenterDistributeV2_Node20/Strings/resources.resjson/en-US/resources.resjson +++ b/_generated/AppCenterDistributeV2_Node20/Strings/resources.resjson/en-US/resources.resjson @@ -40,5 +40,5 @@ "loc.messages.FoundMultipleFiles": "Found multiple files matching %s.", "loc.messages.FailedToCreateFile": "Failed to create %s with error: %s.", "loc.messages.FailedToFindFile": "Failed to find %s at %s.", - "loc.messages.DeprecatedTask": "The AppCenterDistribute@2 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "loc.messages.DeprecatedTask": "The AppCenterDistribute@2 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/_generated/AppCenterDistributeV2_Node20/task.json b/_generated/AppCenterDistributeV2_Node20/task.json index 3848df20dfe5..436df2e3500a 100644 --- a/_generated/AppCenterDistributeV2_Node20/task.json +++ b/_generated/AppCenterDistributeV2_Node20/task.json @@ -17,7 +17,7 @@ "version": { "Major": 2, "Minor": 235, - "Patch": 1 + "Patch": 3 }, "minimumAgentVersion": "2.144.0", "releaseNotes": "Added support for multiple destinations.", @@ -208,10 +208,10 @@ "FoundMultipleFiles": "Found multiple files matching %s.", "FailedToCreateFile": "Failed to create %s with error: %s.", "FailedToFindFile": "Failed to find %s at %s.", - "DeprecatedTask": "The AppCenterDistribute@2 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "DeprecatedTask": "The AppCenterDistribute@2 (App Center distribute) task has been deprecated since November 14, 2022 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." }, "_buildConfigMapping": { - "Default": "2.235.0", - "Node20_229_7": "2.235.1" + "Default": "2.235.2", + "Node20_229_7": "2.235.3" } } \ No newline at end of file diff --git a/_generated/AppCenterDistributeV2_Node20/task.loc.json b/_generated/AppCenterDistributeV2_Node20/task.loc.json index 72de3386fd19..3e4513f8ddfc 100644 --- a/_generated/AppCenterDistributeV2_Node20/task.loc.json +++ b/_generated/AppCenterDistributeV2_Node20/task.loc.json @@ -17,7 +17,7 @@ "version": { "Major": 2, "Minor": 235, - "Patch": 1 + "Patch": 3 }, "minimumAgentVersion": "2.144.0", "releaseNotes": "ms-resource:loc.releaseNotes", @@ -211,7 +211,7 @@ "DeprecatedTask": "ms-resource:loc.messages.DeprecatedTask" }, "_buildConfigMapping": { - "Default": "2.235.0", - "Node20_229_7": "2.235.1" + "Default": "2.235.2", + "Node20_229_7": "2.235.3" } } \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3.versionmap.txt b/_generated/AzureResourceManagerTemplateDeploymentV3.versionmap.txt index e84a261b0a2d..22faa5c05d85 100644 --- a/_generated/AzureResourceManagerTemplateDeploymentV3.versionmap.txt +++ b/_generated/AzureResourceManagerTemplateDeploymentV3.versionmap.txt @@ -1,2 +1,2 @@ -Default|3.231.0 -Node20_229_2|3.231.2 +Default|3.235.0 +Node20_229_2|3.235.1 diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/README.md b/_generated/AzureResourceManagerTemplateDeploymentV3/README.md new file mode 100644 index 000000000000..3afbdae34fc4 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/README.md @@ -0,0 +1,144 @@ +# Azure Resource Manager (ARM) Template Deployment Task + +### Overview + +This task is used to deploy [Azure Resource Manager templates](https://azure.microsoft.com/en-in/documentation/articles/resource-group-template-deploy/) at resource group deployment scope, subscription deployment scope and management group [deployment scopes](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope). The task is also used to create or update a resource group in Azure. + +### What's new in Version 3.0 + - Added support for Subscription and Management Group deployment scopes. + - Removed all the VM related actions. + + +### Contact Information +Please report a problem at [Developer Community Forum](https://developercommunity.visualstudio.com/spaces/21/index.html) if you are facing problems in making this task work. You can also share feedback about the task like, what more functionality should be added to the task, what other tasks you would like to have, at the same place. + + +### Prerequisite for the task + +#### Azure Subscription + +To deploy to Azure, an Azure subscription has to be linked to Team Foundation Server or to Azure Pipelines using the Services tab in the Account Administration section. Add the Azure subscription to use in the Build or Release Management definition by opening the Account Administration screen (gear icon on the top-right of the screen) and then click on the Services Tab. Create a service endpoint of 'Azure Resource Manager' type. For more troubleshooting guidance around endpoint creation, refer [this](https://www.visualstudio.com/en-us/docs/build/actions/azure-rm-endpoint). + +For Azure MSDN accounts, one can either use a [Service Principal](https://go.microsoft.com/fwlink/?LinkID=623000&clcid=0x409) or a work account. It's easy to create a work account as shown below: + +1. Create an user in the Azure Active Directory from the [portal](https://msdn.microsoft.com/en-us/library/azure/hh967632.aspx) (this is the old Azure portal). After adding the account, the following two things need to be done to use the organization in Azure Pipelines: + - Add the Active Directory account to the co-administrators in the subscription. Go to the Settings and then click on administrators and add the account as a co-admin like, [testuser@joehotmail.onmicrosoft.com](mailto:testuser@joehotmail.onmicrosoft.com) + - Login to the portal with this Active Directory account wiz. [testuser@joehotmail.onmicrosoft.com](mailto:testuser@joehotmail.onmicrosoft.com), and change the password. Initially a temporary password is created and that needs to be changed at the first login. +2. Add that user and password in the service connections in Azure Pipelines and deployments will work with that account. + +#### Azure PowerShell + +The task needs the Azure PowerShell version to be installed on the automation agent, and that can be done easily using the [Azure PowerShell Installer v1.0.2](https://github.com/Azure/azure-powershell/releases/tag/v1.0.2-December2015). Refer to "Supported Azure and AzureRM module versions" section below for recommended versions. + +### Parameters of the task: + +The parameters of the task are described in details, including examples, to show how to input the parameters. The parameters listed with a \* are required parameters for the task: + + * **Deployment Scope**\*: Select the scope of deployment from the options: Resource Group, Subscription and Mangement Group. For more info refer this [link](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope) + + * **Azure Resource Manager connection**\*: Select the ARM service connection with appropriate access i.e. the ARM service connection should have access to the resource group, subscription or the management group where the ARM template is targetted. To configure new service connection, select the Azure subscription from the list and click 'Authorize'. If your subscription is not listed or if you want to use an existing Service Principal, you can setup an Azure service connection using 'Manage' link. + + * **Subscription**\*: Select the subscripton to which the deployment is targetted. + + * **Action**\*: If the deployment scope is 'Resource Group', select the action to be performed on the resource group. Following actions are available: + - Create or Update Resource Group: creates a new resource group or to update an existing one (using [Azure Resource Manager templates](https://azure.microsoft.com/en-in/documentation/articles/resource-group-template-deploy/)). + - Delete Resource Group + - Select Resource Group( not supported here - use Version 2.0 for this action ): reads the Resource Group information from Azure and creates an Output Variable with the VMs in the Resource Group + - Start, Stop, Deallocate, Restart, Delete Virtual Machines( not supported here - use Version 2.0 for this action ) + + * **Resource Group**\*: Enter the name of the resource group. If this is an existing resource group, and the selected action is to create or update the resource group, then the task will update the resource group with the resources specified in the Azure template. If no Resource Group with the name exists in the subscription, then a new one will be created. + + * **Location**\*: + - For Resource Group deployment scope: Location for deploying the resource group. If the resource group already exists in the subscription, then this value will be ignored. + - For other deployment scopes: Location for storing the deployment metadata. + + * **Template location**: The location of the Template & the Parameters JSON files. Select "Linked Artifact" if the files are part of the linked code/build artifacts. For "Linked Artifacts", you can also specify the path to a Bicep file. Select "URL of the file" if the JSON files are located at any publicly accessible http/https URLs. To use a file stored in a private storage account, retrieve and include the shared access signature (SAS) token in the URL of the template. Example: /template.json?. To upload a parameters file to a storage account and generate a SAS token, you could use [Azure file copy task](https://aka.ms/azurefilecopyreadme) or follow the steps using [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) or [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911). + + * **Template and its Parameters**: The templates and the templates parameters file are the Azure templates available at [GitHub](https://github.com/Azure/azure-quickstart-templates) or in the [Azure gallery](https://azure.microsoft.com/en-in/documentation/articles/powershell-azure-resource-manager/). To get started immediately use [this](https://aka.ms/sampletemplate) template that is available on GitHub. + - These files can be either be located at any publicly accessible http/https URLs or be in a checked in the Version Control or they can be part of the build itself. If the files are part of the Build, use the pre-defined [system variables](https://msdn.microsoft.com/Library/vs/alm/Build/scripts/variables) provided by the Build to specify their location. The variables to use are $(Build.Repository.LocalPath), if the templates are checked-in but are not built, or $(Agent.BuildDirectory), if the templates are built as part of the solution. Be sure to specify the full path like $(Build.Repository.LocalPath)\Azure Templates\AzureRGDeploy.json. Wildcards like \*\*\\\*.json or \*\*\\*.param.json are also supported and there needs to be only one file that matches the search pattern at the location. If more than one file matches the search pattern, then the task will error out. + + **NOTE**: Follow the Azure Naming guidelines while specifying parameters, few important one mentioned in below table_ + +| Kind | Length | Casing | Valid Chars | Globally Unique | +|:--------------------:|--------|------------------|---------------------------------------------------------------------------------------|:---------------:| +| Storage Account | 3-24 | lowercase | alphanumeric | Yes | +| Azure Resource Group | 2-64 | case-insensitive | alphanumeric periods, underscores, hyphens and parenthesis and cannot end in a period | No | +| Azure KeyVault | 3-24 | case-insensitive | alphanumeric | Yes | +| Azure DNS Name | 3-63 | lowercase | alphanumeric and hyphens | Yes | + + * **Override Template Parameters**: The Override template parameters is used to override the parameters, like `-storageAcctName azurerg -Username $(vmusername) -azureKeyVaultName $(fabrikamFibre)`. To avoid storing "secureString" parameters in plain text, it is recommended that you use secret variables, for example `$(variableName)`. By clicking on “…” next to Override template parameters textbox, template parameters can be viewed/overridden in a grid. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS. + + * **Deployment Mode**: This specifies the [deployment mode](https://azure.microsoft.com/en-us/documentation/articles/resource-group-template-deploy) in which the Azure resources specified in the template have to be deployed. Incremental mode handles deployments as incremental updates to the resource group . It leaves unchanged resources that exist in the resource group but are not specified in the template. Complete mode deletes resources that are not in your template. [Validate mode](https://msdn.microsoft.com/en-us/library/azure/dn790547.aspx) enables you to find syntactical problems with the template before creating actual resources. By default, incremental mode is used. + + ### Deployment Outputs: + Outputs created by Azure Resource Manager template deployment. It can be used in the subsequent tasks (like Powershell and Azure CLI) for further processing. + + **How to use Deployment output** + The deployment output can be parsed to JSON object using "ConvertFrom-Json" Powershell cmdlet in Powershell/Azure Powershell task and then that object can be used in same task or subsequent tasks. + + Example: + ``` + $var=ConvertFrom-Json '$(storageAccountName)' + $value=$var.storageAccountName.value + Write-Host "##vso[task.setvariable variable=storageAccount;]$value" + ``` + + On linux agent, same technique can be used to create a JSON object. However, if you want to avoid Powershell task, you can use a script similar to below which converts the Outputs to valid JSON by adding double quotes. + + ``` + var=`echo "$(storageAccountName)" | \ + sed -e 's/ //g' | \ + sed -e 's/}/"\n}/g' | \ + sed -e 's/{/{\n"/g' | \ + sed -e 's/:/":"/g' | \ + sed -e 's/,/",\n"/g' | \ + sed -e 's/"}/}/g' | \ + sed -e 's/}"/}/g' | \ + sed -e 's/"{/{/g' | \ + sed -e 's/\[/\[\n"/g' | \ + sed -e 's/]/"\n]/g' | \ + sed -e 's/"\[/\[/g' | \ + sed -e 's/]"/]/g'` + sa_name=`echo $var | jq -r .storageAccountName.value` + echo $sa_name + ``` + + In case, you're accessing individual output values directly, values are being set after being converted via JSON.Stringify. To change this behavior, `Use individual output values without JSON.Stringify applied` checkbox can be used: + + Example: + Let's assume, we've `outputvalue` as output of the deployment. + + `Use individual output values without JSON.Stringify applied` set to `false (default)` + ``` + outputvalue => JSON.stringify(outputvalue) => "outputvalue": + + // setting variable as JSON.stringify's result + ##vso[task.setvariable variable=taskdeploymentoutputname.outputkey]"outputvalue" + + // variable will be read as JSON.stringify's result + $(outputvalue) => "outputvalue" + ``` + + `Use individual output values without JSON.Stringify applied` set to `true` + ``` + outputvalue => no operation: + + // setting variable as it is + ##vso[task.setvariable variable=taskdeploymentoutputname.outputkey]outputvalue + + // variable will be read as it is + $(outputvalue) => outputvalue + ``` + +### Supported Azure and AzureRM module versions: +| Azure Pipelines/TFS Release | Recommended Azure Version | Other Supported Versions | +|:------------------:|:---------------------------:|:-------------------------:| +| Azure Pipelines | [v1.3.2](https://github.com/Azure/azure-powershell/releases/tag/v1.3.2-April2016) | [v0.9.8](https://github.com/Azure/azure-powershell/releases/tag/v0.9.8-September2015) | +| TFS 2015 Update 3 | [v1.3.2](https://github.com/Azure/azure-powershell/releases/tag/v1.3.2-April2016) | [v0.9.8](https://github.com/Azure/azure-powershell/releases/tag/v0.9.8-September2015) | +| TFS 2015 Update 2 | [v1.0.2](https://github.com/Azure/azure-powershell/releases/tag/v1.0.2-December2015) | [v0.9.8](https://github.com/Azure/azure-powershell/releases/tag/v0.9.8-September2015) | +| TFS 2015 Update 1 | [v0.9.8](https://github.com/Azure/azure-powershell/releases/tag/v0.9.8-September2015) | | +| TFS 2015 RTM | [v0.9.8](https://github.com/Azure/azure-powershell/releases/tag/v0.9.8-September2015) | | + +### Limitations: + +- Does not support multiline strings in arm template/parameter json file. diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/de-DE/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/de-DE/resources.resjson new file mode 100644 index 000000000000..226ade8ca57e --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/de-DE/resources.resjson @@ -0,0 +1,97 @@ +{ + "loc.friendlyName": "ARM-Vorlagenbereitstellung", + "loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://aka.ms/armtaskreadme)", + "loc.description": "Azure Resource Manager-Vorlage (ARM) für alle Bereitstellungsbereiche bereitstellen", + "loc.instanceNameFormat": "ARM-Vorlagenbereitstellung: Bereich \"$(deploymentScope)\"", + "loc.releaseNotes": "– Unterstützung für die Bereitstellung in allen Bereitstellungsbereichen hinzugefügt.\n– Alle VM-bezogenen Aktionen wurden entfernt.", + "loc.group.displayName.AzureDetails": "Azure-Details", + "loc.group.displayName.Template": "Vorlage", + "loc.group.displayName.Advanced": "Erweitert", + "loc.input.label.deploymentScope": "Bereitstellungsbereich", + "loc.input.help.deploymentScope": "Der Bereitstellungsbereich der Bereitstellung. Weitere Informationen zu den Bereitstellungsbereichen finden Sie [hier](https://docs.microsoft.com/de-de/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope).", + "loc.input.label.ConnectedServiceName": "Azure Resource Manager-Verbindung", + "loc.input.help.ConnectedServiceName": "Wählen Sie die Azure Resource Manager-Dienstverbindung aus, die Zugriff auf den ausgewählten Bereitstellungsbereich besitzt.", + "loc.input.label.subscriptionName": "Abonnement", + "loc.input.help.subscriptionName": "Wählen Sie das Azure-Abonnement aus.", + "loc.input.label.action": "Aktion", + "loc.input.help.action": "Die für Azure-Ressourcen oder -Ressourcengruppen auszuführende Aktion.", + "loc.input.label.resourceGroupName": "Ressourcengruppe", + "loc.input.help.resourceGroupName": "Geben Sie den Namen einer Ressourcengruppen an.", + "loc.input.label.location": "Standort", + "loc.input.help.location": "Für den Bereitstellungsbereich der Ressourcengruppe: Standort für die Bereitstellung der Ressourcengruppe. Wenn die Ressourcengruppe bereits im Abonnement vorhanden ist, wird dieser Wert ignoriert.\n Für andere Bereitstellungsbereiche: Standort zum Speichern von Bereitstellungsmetadaten.", + "loc.input.label.templateLocation": "Speicherort der Vorlage", + "loc.input.label.csmFileLink": "Vorlagenlink", + "loc.input.help.csmFileLink": "Geben Sie die URL der Vorlagendatei an. Beispiel: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\nUm eine in einem privaten Speicherkonto gespeicherte Vorlage bereitzustellen, müssen Sie das Shared Access Signature (SAS)-Token abrufen und in die URL der Vorlage einbeziehen. Beispiel: \"/template.json?\" Um eine Vorlagendatei (oder eine verknüpfte Vorlage) in ein Speicherkonto hochzuladen und ein SAS-Token zu generieren, können Sie die Aufgabe [Azure-Dateikopiervorgang](https://aka.ms/azurefilecopyreadme) verwenden oder die Schritte mit [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) oder der [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911) ausführen.\n\nUm die Vorlagenparameter in einem Raster anzuzeigen, klicken Sie neben dem Textfeld zum Überschreiben der Vorlagenparameter auf \"…\". Für dieses Feature müssen Sie CORS-Regeln an der Quelle aktivieren. Wenn sich die Vorlagen im Azure Storage Blob befinden, finden Sie [hier](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) Informationen zum Aktivieren von CORS.", + "loc.input.label.csmParametersFileLink": "Vorlagenparameterlink", + "loc.input.help.csmParametersFileLink": "Geben Sie die URL der Parameterdatei an. Beispiel: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json) \n\nUm eine in einem privaten Speicherkonto gespeicherte Vorlage abzurufen, müssen Sie das Shared Access Signature (SAS)-Token abrufen und in die URL der Vorlage einbeziehen. Beispiel: \"/template.json?\" Um eine Parameterdatei in ein Speicherkonto hochzuladen und ein SAS-Token zu generieren, können Sie die Aufgabe [Azure-Dateikopiervorgang](https://aka.ms/azurefilecopyreadme) verwenden oder die Schritte mit [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) oder der [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911) ausführen. \n\nUm die Vorlagenparameter in einem Raster anzuzeigen, klicken Sie neben dem Textfeld zum Überschreiben der Vorlagenparameter auf \"…\". Für dieses Feature müssen Sie CORS-Regeln an der Quelle aktivieren. Wenn sich die Vorlagen im Azure Storage Blob befinden, finden Sie [hier](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) weitere Informationen zum Aktivieren von CORS.", + "loc.input.label.csmFile": "Vorlage", + "loc.input.help.csmFile": "Geben Sie den Pfad oder ein Muster an, das auf die Azure Resource Manager Vorlage zeigt. Weitere Informationen zu den Vorlagen finden Sie unter https://aka.ms/azuretemplates. Um sofort zu beginnen, verwenden Sie vorlagenbasierte https://aka.ms/sampletemplate. \"Verknüpftes Artefakt\" bietet auch Unterstützung für Bicep-Dateien, wenn die Azure CLI Version > 2.20.0", + "loc.input.label.csmParametersFile": "Vorlagenparameter", + "loc.input.help.csmParametersFile": "Geben Sie den Pfad oder ein Muster an, das für die Parameterdatei für die Azure Resource Manager Vorlage zeigt. \"Verknüpftes Artefakt\" bietet auch Unterstützung für Bicep-Dateien, wenn die Azure CLI Version > 2.20.0", + "loc.input.label.overrideParameters": "Vorlagenparameter überschreiben", + "loc.input.help.overrideParameters": "Wenn Sie die Vorlagenparameter in einem Raster anzeigen möchten, klicken Sie neben dem Textfeld \"Parameter außer Kraft setzen\" auf \"...\". Für dieses Feature müssen CORS-Regeln an der Quelle aktiviert sein. Wenn sich Vorlagen im Azure Storage Blob befinden, finden Sie [hier](https://docs.microsoft.com/de-de/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) Informationen zum Aktivieren von CORS. Sie können alternativ auch die zu überschreibenden Vorlagenparameter in das Textfeld eingeben. Beispiel:
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).
Wenn der verwendete Parameterwert mehrere Wörter umfasst, schließen Sie ihn in Anführungszeichen ein – selbst dann, wenn Sie der Wert mithilfe von Variablen übergeben wird. Beispiel: -name \"parameter value\" -name2 \"$(var)\"
Verwenden Sie zum Außerkraftsetzen von Objekttypparametern als Zeichenfolgen dargestellte JSON-Objekte. Beispiel: -options [\"option1\"] -map {\"key1\": \"value1\" }.", + "loc.input.label.deploymentMode": "Bereitstellungsmodus", + "loc.input.help.deploymentMode": "Weitere Informationen finden Sie [hier](https://docs.microsoft.com/de-de/azure/azure-resource-manager/deployment-modes). \n\nDer Modus \"Inkrementell\" verarbeitet Bereitstellungen als inkrementelle Updates für die Ressourcengruppe. Ressourcen, die in der Ressourcengruppe vorhanden, aber nicht in der Vorlage angegeben sind, bleiben unverändert. \n\n Im Modus \"Vollständig\" werden Ressourcen gelöscht, die nicht in Ihrer Vorlage enthalten sind. Der Modus \"Vollständig\" nimmt mehr Zeit in Anspruch als der inkrementelle Modus. Wenn es bei der Aufgabe zu einem Timeout kommt, erwägen Sie eine Änderung des Modus in \"Inkrementell\". \n **[Warnung] Durch den Modus \"Vollständig\" werden alle vorhandenen Ressourcen in der Ressourcengruppe gelöscht, die nicht in der Vorlage angegeben sind. Stellen Sie sicher, dass die Ressourcengruppe, in der die Bereitstellung erfolgt, keine notwendigen Ressourcen enthält, die nicht in der Vorlage angegeben sind.** \n\n Im Modus \"Überprüfen\" können Sie Probleme mit der Vorlage ermitteln, bevor tatsächliche Ressourcen erstellt werden. Beachten Sie, dass dieser Modus in jedem Fall eine Ressourcengruppe erstellt, auch wenn keine Ressource bereitgestellt wird.\n\n Standardmäßig wird der inkrementelle Modus verwendet.", + "loc.input.label.deploymentName": "Bereitstellungsname", + "loc.input.help.deploymentName": "Gibt den Namen der zu erstellenden Ressourcengruppenbereitstellung an.", + "loc.input.label.deploymentOutputs": "Bereitstellungsausgaben", + "loc.input.help.deploymentOutputs": "Geben Sie einen Namen für die Variable für die Ausgabevariable an, die den Ausgabenabschnitt des aktuellen Bereitstellungsobjekts im Zeichenfolgenformat enthält. Mit dem PowerShell-Cmdlet \"ConvertFrom-Json\" können Sie das JSON-Objekt analysieren und auf die einzelnen Ausgabewerte zugreifen. Weitere Informationen finden Sie [hier](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs).", + "loc.input.label.addSpnToEnvironment": "Auf Dienstprinzipaldetails in Außerkraftsetzungsparametern zugreifen", + "loc.input.help.addSpnToEnvironment": "Hiermit werden Dienstprinzipal-ID und -schlüssel des ausgewählten Azure-Endpunkts zur Ausführungsumgebung des Skripts hinzugefügt. Sie können die folgenden Variablen in Ihren Außerkraftsetzungsparametern wie \"-key $servicePrincipalKey\" verwenden: \"$servicePrincipalId\" und \"$servicePrincipalKey\".", + "loc.messages.CheckResourceGroupExistence": "Überprüfen, ob die folgende Ressourcengruppe vorhanden ist: %s.", + "loc.messages.ResourceGroupStatusFetchFailed": "Fehler beim Überprüfen des Ressourcengruppenstatus. Fehler: %s", + "loc.messages.ResourceGroupStatus": "Die Ressourcengruppe ist vorhanden: %s.", + "loc.messages.ResourceGroupCreationFailed": "Fehler beim Erstellen der Ressourcengruppe. Fehler: %s", + "loc.messages.CreatingNewRG": "Erstellen der Ressourcengruppe: %s", + "loc.messages.CreatedRG": "Ressourcengruppe erfolgreich erstellt.", + "loc.messages.CreatingTemplateDeployment": "Bereitstellungsparameter werden erstellt.", + "loc.messages.TemplateParsingFailed": "Die Vorlagendatei (\"%s\") muss gültig sein. Fehler bei der Aufgabe während des Analysierens: %s", + "loc.messages.FileFetchFailed": "Fehler beim Herunterladen der Datei. URL: \"%s\". Fehler: %s", + "loc.messages.ParametersFileParsingFailed": "Die Parameterdatei (\"%s\") muss gültig sein. Fehler bei der Aufgabe während des Analysierens: %s", + "loc.messages.StartingDeployment": "Die Bereitstellung wird gestartet.", + "loc.messages.CreateTemplateDeploymentSucceeded": "Vorlage erfolgreich bereitgestellt.", + "loc.messages.CreateTemplateDeploymentFailed": "Fehler bei der Aufgabe während des Erstellens oder Aktualisierens der Vorlagenbereitstellung.", + "loc.messages.ErrorsInYourDeployment": "In Ihrer Bereitstellung sind Fehler aufgetreten. Fehlercode: %s.", + "loc.messages.Details": "Details:", + "loc.messages.ErrorType": "Fehlertyp:", + "loc.messages.PolicyDefinitionName": "Name der Richtliniendefinition:", + "loc.messages.PolicyAssignmentName": "Name der Richtlinienzuweisung:", + "loc.messages.StartingValidation": "Überprüfung der Vorlage wird gestartet.", + "loc.messages.ValidDeployment": "Die Vorlagenbereitstellungsüberprüfung wurde erfolgreich abgeschlossen.", + "loc.messages.CreateTemplateDeploymentValidationFailed": "Fehler beim Validieren der Vorlage: %s.", + "loc.messages.DeletingResourceGroup": "Ressourcengruppe wird gelöscht: %s", + "loc.messages.CouldNotDeletedResourceGroup": "Die Ressourcengruppe konnte nicht gelöscht werden: \"%s\". Fehler beim Vorgang: %s", + "loc.messages.DeletedResourceGroup": "Ressourcengruppe gelöscht: %s", + "loc.messages.InvalidAction": "Diese Aktion ist nicht definiert. Wenden Sie sich an den Ersteller der Aufgabe.", + "loc.messages.ARGD_ConstructorFailed": "Fehler beim Initialisieren der Aufgabe. Fehler: %s", + "loc.messages.InvalidTemplateLocation": "Der angegebene Speicherort der Vorlage ist ungültig. Die Aufgabe unterstützt nur \"Verknüpftes Artefakt\" oder \"URL der Datei\".", + "loc.messages.EncodingNotSupported": "Die Codierung der Datei \"%s\" ist \"%s\". Dies wird nicht unterstützt. Unterstützte Dateicodierungen sind [\"utf-8\", \"tf-16le\"].", + "loc.messages.CouldNotDetectEncoding": "Codierung der Datei \"%s\" wurde nicht erkannt.", + "loc.messages.DetectedFileEncoding": "Die erkannte Codierung für die Datei \"%s\" ist \"%s\".", + "loc.messages.ErrorWhileParsingParameter": "Fehler beim Außerkraftsetzen von Parameter \"%s\" aufgrund von \"%s\". Stellen Sie sicher, dass das JSON-Format (JavaScript Object Notation) eingehalten wird.", + "loc.messages.TemplateFilePatternMatchingMoreThanOneFile": "Es wurden mehrere Dateien gefunden, die mit dem Vorlagendateimuster übereinstimmen: %s", + "loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile": "Es wurden mehrere Dateien gefunden, die mit dem Parameterdateimuster übereinstimmen: %s", + "loc.messages.TemplateFilePatternMatchingNoFile": "Es wurde keine Datei gefunden, die mit dem Vorlagendateimuster übereinstimmt.", + "loc.messages.TemplateParameterFilePatternMatchingNoFile": "Es wurde keine Datei gefunden, die mit dem Vorlagendateimuster übereinstimmt.", + "loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile": "Das Parameterdateimuster stimmt mit einem Verzeichnis und nicht mit einer Datei überein.", + "loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile": "Das Vorlagendateimuster stimmt mit einem Verzeichnis und nicht mit einer Datei überein: %s", + "loc.messages.AddedOutputVariable": "Die Ausgabevariable \"%s\" wurde aktualisiert, die den Ausgabeabschnitt des aktuellen Bereitstellungsobjekts im Zeichenfolgenformat enthält.", + "loc.messages.UnableToReadResponseBody": "Antworttext konnte nicht gelesen werden. Fehler: %s", + "loc.messages.MoreInformationOnAzurePortal": "Weitere Informationen zum Azure-Portal", + "loc.messages.LogDeploymentName": "Der Bereitstellungsname lautet \"%s\".", + "loc.messages.ResourceGroupNameNotProvided": "Der Ressourcengruppenname muss angegeben werden.", + "loc.messages.LocationNotProvided": "Für die Bereitstellung wird ein Standort benötigt.", + "loc.messages.ARMServiceConnectionScope": "Bereitstellungsbereich für ARM-Dienstverbindung – %s", + "loc.messages.ServicePrincipalRoleAssignmentDetails": "Stellen Sie sicher, dass dem Dienstprinzipal mit dem Namen \"/%\" die richtigen Rollen für die Entität \"%s\" zugewiesen sind. Klicken Sie auf den Link, um weitere Informationen zu erhalten: https://docs.microsoft.com/de-de/azure/role-based-access-control/role-assignments-portal", + "loc.messages.ServicePrincipalFetchFailed": "Fehler beim Abrufen der Dienstprinzipaldetails: %s", + "loc.messages.FindMoreDeploymentDetailsAzurePortal": "Mit der Aufgabe wurde erfolgreich eine Azure Resource Manager-Bereitstellung erstellt, aber die Bereitstellung war nicht erfolgreich. Ausführlichere Azure Resource Manager-Bereitstellungsprotokolle finden Sie hier: (Link kopieren und einfügen) %s", + "loc.messages.ManagedServiceIdentityDetails": "Stellen Sie sicher, dass der zur Bereitstellung verwendeten verwalteten Dienstidentität die richtigen Rollen für die Ressourcengruppe \"%s\" zugewiesen sind. Klicken Sie auf den Link, um weitere Informationen zu erhalten: https://docs.microsoft.com/de-de/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal", + "loc.messages.CompleteDeploymentModeNotSupported": "Der Bereitstellungsmodus \"Vollständig\" wird für die Bereitstellung im Bereich \"%s\" nicht unterstützt.", + "loc.messages.TemplateValidationFailure": "In der Azure Resource Manager-Vorlage wurden Überprüfungsfehler gefunden. Dies kann zu Fehlern bei der Vorlagenbereitstellung führen. %s. Folgen Sie den Anweisungen unter: https://docs.microsoft.com/de-de/azure/azure-resource-manager/templates/template-syntax", + "loc.messages.TroubleshootingGuide": "Überprüfen Sie anhand der Informationen im Leitfaden zur Problembehandlung, ob Ihr Issue behoben wurde: https://docs.microsoft.com/de-de/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting", + "loc.messages.IncompatibleAzureCLIVersion": "Azure CLI-Version muss >= 2.20.0 sein.", + "loc.messages.AzureCLINotFound": "Azure CLI auf dem Agent nicht gefunden.", + "loc.messages.FailedToFetchAzureCLIVersion": "Fehler beim Abrufen der AZ CLI-Version vom Agent. Fehler: %s", + "loc.messages.BicepBuildFailed": "Fehler bei \"az bicep build\". Fehler: %s", + "loc.messages.BicepFileCleanupFailed": "Fehler beim Löschen der Bicep-Datei. Fehler: %s" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/en-US/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/en-US/resources.resjson new file mode 100644 index 000000000000..1f180d7426ca --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/en-US/resources.resjson @@ -0,0 +1,105 @@ +{ + "loc.friendlyName": "ARM template deployment", + "loc.helpMarkDown": "[Learn more about this task](https://aka.ms/armtaskreadme)", + "loc.description": "Deploy an Azure Resource Manager (ARM) template to all the deployment scopes", + "loc.instanceNameFormat": "ARM Template deployment: $(deploymentScope) scope", + "loc.releaseNotes": "- Added support for bicepparam.", + "loc.group.displayName.AzureDetails": "Azure Details", + "loc.group.displayName.Template": "Template", + "loc.group.displayName.Advanced": "Advanced", + "loc.input.label.deploymentScope": "Deployment scope", + "loc.input.help.deploymentScope": "Deployment scope of the deployment. To know more abour deployment scopes, refer this [link](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)", + "loc.input.label.ConnectedServiceName": "Azure Resource Manager connection", + "loc.input.help.ConnectedServiceName": "Select the Azure Resource Manager service connection having access to the selected deployment scope.", + "loc.input.label.subscriptionName": "Subscription", + "loc.input.help.subscriptionName": "Select the Azure subscription", + "loc.input.label.action": "Action", + "loc.input.help.action": "Action to be performed on the Azure resources or resource group.", + "loc.input.label.resourceGroupName": "Resource group", + "loc.input.help.resourceGroupName": "Provide the name of a resource group.", + "loc.input.label.location": "Location", + "loc.input.help.location": "For Resource Group deployment scope: Location for deploying the resource group. If the resource group already exists in the subscription, then this value will be ignored.\n For other deployment scope: Location to store deployment metadata.", + "loc.input.label.templateLocation": "Template location", + "loc.input.label.csmFileLink": "Template link", + "loc.input.help.csmFileLink": "Specify the URL of the template file. Example: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\nTo deploy a template stored in a private storage account, retrieve and include the shared access signature (SAS) token in the URL of the template. Example: `/template.json?` To upload a template file (or a linked template) to a storage account and generate a SAS token, you could use [Azure file copy](https://aka.ms/azurefilecopyreadme) task or follow the steps using [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) or [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911).\n\nTo view the template parameters in a grid, click on “…” next to Override template parameters text box. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS.", + "loc.input.label.csmParametersFileLink": "Template parameters link", + "loc.input.help.csmParametersFileLink": "Specify the URL of the parameters file. Example: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json) \n\nTo use a file stored in a private storage account, retrieve and include the shared access signature (SAS) token in the URL of the template. Example: `/template.json?` To upload a parameters file to a storage account and generate a SAS token, you could use [Azure file copy](https://aka.ms/azurefilecopyreadme) task or follow the steps using [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) or [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911). \n\nTo view the template parameters in a grid, click on “…” next to Override template parameters text box. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS.", + "loc.input.label.csmFile": "Template", + "loc.input.help.csmFile": "Specify the path or a pattern pointing to the Azure Resource Manager template. For more information about the templates see https://aka.ms/azuretemplates. To get started immediately use template https://aka.ms/sampletemplate. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0", + "loc.input.label.csmParametersFile": "Template parameters", + "loc.input.help.csmParametersFile": "Specify the path or a pattern pointing for the parameters file for the Azure Resource Manager template. 'Linked artifact' also has support for Bicep Param files when the Azure CLI version > 2.47.0", + "loc.input.label.overrideParameters": "Override template parameters", + "loc.input.help.overrideParameters": "To view the template parameters in a grid, click on “…” next to Override Parameters textbox. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS. Or type the template parameters to override in the textbox. Example,
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).
If the parameter value you're using has multiple words, enclose them in quotes, even if you're passing them using variables. For example, -name \"parameter value\" -name2 \"$(var)\"
To override object type parameters use stringified JSON objects. For example, -options [\"option1\"] -map {\"key1\": \"value1\" }. ", + "loc.input.label.deploymentMode": "Deployment mode", + "loc.input.help.deploymentMode": "Refer to [this](https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-modes) for more details. \n\n Incremental mode handles deployments as incremental updates to the resource group. It leaves unchanged resources that exist in the resource group but are not specified in the template. \n\n Complete mode deletes resources that are not in your template. Complete mode takes relatively more time than incremental mode. If the task times out, consider increasing the timeout, or changing the mode to 'Incremental'. \n **[Warning] Complete mode will delete all the existing resources in the resource group that are not specified in the template. Do review if the resource group you're deploying to doesn't contain any necessary resources that are not specified in the template.** \n\n Validate mode enables you to find problems with the template before creating actual resources. Validate mode enables you to find problems with the template before creating actual resources. Please note that this mode will anyways create a resource group even if it does not deploy any resource.\n\n By default, Incremental mode is used.", + "loc.input.label.deploymentName": "Deployment name", + "loc.input.help.deploymentName": "Specifies the name of the resource group deployment to create.", + "loc.input.label.deploymentOutputs": "Deployment outputs", + "loc.input.help.deploymentOutputs": "Provide a name for the variable for the output variable which will contain the outputs section of the current deployment object in string format. You can use the “ConvertFrom-Json” PowerShell cmdlet to parse the JSON object and access the individual output values. For more details refer to [this](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)", + "loc.input.label.addSpnToEnvironment": "Access service principal details in override parameters", + "loc.input.help.addSpnToEnvironment": "Adds service principal id and key of the Azure endpoint you chose to the script's execution environment. You can use these variables: `$servicePrincipalId` and `$servicePrincipalKey` in your override parameters like `-key $servicePrincipalKey`", + "loc.input.label.useWithoutJSON": "Use individual output values without JSON.Stringify applied", + "loc.input.help.useWithoutJSON": "Individual output values are being converted via JSON.Stringify by default. If you want to use the output values as it is without converting them via JSON.Stringify, enable this option. For more details refer to [this](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)", + "loc.messages.CheckResourceGroupExistence": "Checking if the following resource group exists: %s.", + "loc.messages.ResourceGroupStatusFetchFailed": "Failed to check the resource group status. Error: %s.", + "loc.messages.ResourceGroupStatus": "Resource group exists: %s.", + "loc.messages.ResourceGroupCreationFailed": "Failed to create the resource group. Error: %s", + "loc.messages.CreatingNewRG": "Creating resource Group: %s", + "loc.messages.CreatedRG": "Resource Group created successfully.", + "loc.messages.CreatingTemplateDeployment": "Creating deployment parameters.", + "loc.messages.TemplateParsingFailed": "Ensure the Template file ( '%s' ) is valid. Task failed while parsing with following error: %s", + "loc.messages.FileFetchFailed": "Failed to download the file. URL: '%s'. Error: %s", + "loc.messages.ParametersFileParsingFailed": "Ensure the Parameters file ( '%s' ) is valid. Task failed while parsing with following error: %s", + "loc.messages.StartingDeployment": "Starting Deployment.", + "loc.messages.CreateTemplateDeploymentSucceeded": "Successfully deployed the template.", + "loc.messages.CreateTemplateDeploymentFailed": "Task failed while creating or updating the template deployment.", + "loc.messages.ErrorsInYourDeployment": "There were errors in your deployment. Error code: %s.", + "loc.messages.Details": "Details:", + "loc.messages.ErrorType": "Error Type:", + "loc.messages.PolicyDefinitionName": "Policy Definition Name :", + "loc.messages.PolicyAssignmentName": "Policy Assignment Name :", + "loc.messages.StartingValidation": "Starting template validation.", + "loc.messages.ValidDeployment": "Template deployment validation was completed successfully.", + "loc.messages.CreateTemplateDeploymentValidationFailed": "Template validation failed. Error: %s.", + "loc.messages.DeletingResourceGroup": "Deleting resource group: %s", + "loc.messages.CouldNotDeletedResourceGroup": "Could not delete resource group: '%s'. Operation failed with error: %s", + "loc.messages.DeletedResourceGroup": "Deleted resource group: %s", + "loc.messages.InvalidAction": "This action is not defined. Check with the task author.", + "loc.messages.ARGD_ConstructorFailed": "Task failed while initializing. Error: %s", + "loc.messages.InvalidTemplateLocation": "The template location supplied is invalid. Task only supports 'Linked artifact' or 'URL of the file'", + "loc.messages.EncodingNotSupported": "Encoding of the file '%s' is '%s' which is not supported. Supported file encodings are ['utf-8', 'utf-16le']", + "loc.messages.CouldNotDetectEncoding": "Could not detect encoding of file '%s'", + "loc.messages.DetectedFileEncoding": "The detected encoding for file '%s' is '%s'", + "loc.messages.ErrorWhileParsingParameter": "There was an error while overriding '%s' parameter because of '%s', make sure it follows JavaScript Object Notation (JSON)", + "loc.messages.TemplateFilePatternMatchingMoreThanOneFile": "Found multiple files matching template file pattern: %s", + "loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile": "Found multiple files matching template parameters file pattern: %s", + "loc.messages.TemplateFilePatternMatchingNoFile": "Could not find any file matching the template file pattern", + "loc.messages.TemplateParameterFilePatternMatchingNoFile": "Could not find any file matching the template file pattern", + "loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile": "Parameters file pattern matches a directory instead of a file.", + "loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile": "Template file pattern matches a directory instead of a file: %s", + "loc.messages.AddedOutputVariable": "Updated output variable '%s', which contains the outputs section of the current deployment object in string format.", + "loc.messages.UnableToReadResponseBody": "Unable to read response body. Error: %s", + "loc.messages.MoreInformationOnAzurePortal": "More information on Azure Portal", + "loc.messages.LogDeploymentName": "Deployment name is %s", + "loc.messages.ResourceGroupNameNotProvided": "Resource Group name should be provided", + "loc.messages.LocationNotProvided": "Location is required for deployment", + "loc.messages.ARMServiceConnectionScope": "ARM Service Connection deployment scope - %s", + "loc.messages.ServicePrincipalRoleAssignmentDetails": "Please make sure the Service Principal with name %s is assigned the right roles for the entity %s. Follow the link for more details: https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal", + "loc.messages.ServicePrincipalFetchFailed": "Error while fetching Service Principal details: %s", + "loc.messages.FindMoreDeploymentDetailsAzurePortal": "Task successfully created an Azure Resource Manager deployment, but the deployment failed. Please see more detailed Azure resource manager deployment logs at: (Please Copy-Paste the link) %s", + "loc.messages.ManagedServiceIdentityDetails": "Please make sure the Managed Service Identity used for deployment is assigned the right roles for the Resource Group %s. Follow the link for more details: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal", + "loc.messages.CompleteDeploymentModeNotSupported": "Deployment mode 'Complete' is not supported for deployment at '%s' scope", + "loc.messages.TemplateValidationFailure": "Validation errors were found in the Azure Resource Manager template. This can potentially cause template deployment to fail. %s. Please follow https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax", + "loc.messages.TroubleshootingGuide": "Check out the troubleshooting guide to see if your issue is addressed: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting", + "loc.messages.IncompatibleAzureCLIVersion": "Azure CLI version should be >= 2.20.0", + "loc.messages.AzureCLINotFound": "Azure CLI not found on the agent.", + "loc.messages.FailedToFetchAzureCLIVersion": "Failed to fetch az cli version from agent. Error: %s", + "loc.messages.BicepBuildFailed": "\"az bicep build\" failed. Error: %s", + "loc.messages.BicepFileCleanupFailed": "Failed to delete Bicep file. Error: %s", + "loc.messages.LoginFailed": "Azure login failed: %s", + "loc.messages.MSILoginFailed": "Azure login failed using Managed Service Identity: %s", + "loc.messages.AuthSchemeNotSupported": "Auth Scheme %s is not supported", + "loc.messages.ErrorInSettingUpSubscription": "Error in setting up subscription: %s", + "loc.messages.BicepParamBuildFailed": "\"az bicep build-param\" failed. Error: %s", + "loc.messages.IncompatibleAzureCLIVersionBicepParam": "Azure CLI version should be >= 2.47.0 to use .bicepparam file" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/es-ES/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/es-ES/resources.resjson new file mode 100644 index 000000000000..abfb66267ef0 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/es-ES/resources.resjson @@ -0,0 +1,97 @@ +{ + "loc.friendlyName": "Implementación de la plantilla de ARM", + "loc.helpMarkDown": "[Obtener más información acerca de esta tarea](https://aka.ms/armtaskreadme)", + "loc.description": "Implementa una plantilla de Azure Resource Manager (ARM) en todos los ámbitos de implementación.", + "loc.instanceNameFormat": "Implementación de la plantilla de ARM: ámbito $(deploymentScope)", + "loc.releaseNotes": "- Se ha agregado compatibilidad con la implementación en todos los ámbitos de implementación.\n- Se han eliminado todas las acciones relacionadas con VM.", + "loc.group.displayName.AzureDetails": "Detalles de Azure", + "loc.group.displayName.Template": "Plantilla", + "loc.group.displayName.Advanced": "Avanzado", + "loc.input.label.deploymentScope": "Ámbito de la implementación", + "loc.input.help.deploymentScope": "Ámbito de la implementación. Para obtener más información sobre los ámbitos de implementación, consulte este [vínculo](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope).", + "loc.input.label.ConnectedServiceName": "Conexión de Azure Resource Manager", + "loc.input.help.ConnectedServiceName": "Seleccione la conexión de servicio de Azure Resource Manager con acceso al ámbito de implementación seleccionado.", + "loc.input.label.subscriptionName": "Suscripción", + "loc.input.help.subscriptionName": "Seleccionar la suscripción de Azure", + "loc.input.label.action": "Acción", + "loc.input.help.action": "Acción que se va a ejecutar en los recursos o el grupo de recursos de Azure.", + "loc.input.label.resourceGroupName": "Grupo de recursos", + "loc.input.help.resourceGroupName": "Proporcione el nombre de un grupo de recursos.", + "loc.input.label.location": "Ubicación", + "loc.input.help.location": "Para el ámbito de implementación del grupo de recursos: ubicación para implementar el grupo de recursos. Si el grupo de recursos ya existe en la suscripción, este valor se ignorará.\n Para otro ámbito de implementación: ubicación para almacenar los metadatos de implementación.", + "loc.input.label.templateLocation": "Ubicación de la plantilla", + "loc.input.label.csmFileLink": "Vínculo de plantilla", + "loc.input.help.csmFileLink": "Especifique la dirección URL del archivo de plantilla. Ejemplo: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\nPara implementar una plantilla almacenada en una cuenta de almacenamiento privada, recupere e incluya el token SAS (firma de acceso compartido) en la dirección URL de la plantilla. Ejemplo: \"/template.json?\". Para cargar un archivo de plantilla (o una plantilla vinculada) a una cuenta de almacenamiento y generar un token SAS, puede usar la tarea [Copia de archivos de Azure](https://aka.ms/azurefilecopyreadme) o seguir los pasos usando [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) o [la CLI de Azure](https://go.microsoft.com/fwlink/?linkid=836911).\n\nPara ver los parámetros de plantilla en una cuadrícula, haga clic en “…” junto al cuadro de texto Reemplazar parámetros de plantilla. Esta característica requiere que estén habilitadas las reglas CORS en el origen. Si las plantillas están en Azure Storage Blob, consulte [este artículo](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) para habilitar CORS.", + "loc.input.label.csmParametersFileLink": "Vínculo de parámetros de la plantilla", + "loc.input.help.csmParametersFileLink": "Especifique la dirección URL del archivo de parámetros. Ejemplo: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json). \n\nPara usar un archivo almacenado en una cuenta de almacenamiento privada, recupere e incluya el token SAS (firma de acceso compartido) en la dirección URL de la plantilla. Ejemplo: \"/template.json?\". Para cargar un archivo de parámetros en una cuenta de almacenamiento y generar un token SAS, utilice la tarea [Copia de archivos de Azure](https://aka.ms/azurefilecopyreadme) o siga los pasos usando [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) o [la CLI de Azure](https://go.microsoft.com/fwlink/?linkid=836911). \n\nPara ver los parámetros de plantilla en una cuadrícula, haga clic en “…” junto al cuadro de texto Reemplazar parámetros de plantilla. Esta característica requiere que estén habilitadas las reglas CORS en el origen. Si las plantillas están en Azure Storage Blob, consulte [este artículo](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) para habilitar CORS.", + "loc.input.label.csmFile": "Plantilla", + "loc.input.help.csmFile": "Especifique la ruta de acceso o un patrón que apunten a la plantilla de Azure Resource Manager. Para obtener más información sobre las plantillas, consulte: https://aka.ms/azuretemplates. Para comenzar a usar una plantilla de inmediato, consulte https://aka.ms/sampletemplate. \"Artefacto vinculado\" también admite archivos Bicep en versiones de CLI de Azure > 2.20.0", + "loc.input.label.csmParametersFile": "Parámetros de la plantilla", + "loc.input.help.csmParametersFile": "Especifique la ruta de acceso o un patrón que apunte al archivo de parámetros de la plantilla de Azure Resource Manager. \"Artefacto vinculado\" también admite archivos Bícep en versiones de CLI de Azure > 2.20.0", + "loc.input.label.overrideParameters": "Reemplazar parámetros de plantilla", + "loc.input.help.overrideParameters": "Para ver los parámetros de plantilla en una cuadrícula, haga clic en “…” junto al cuadro de texto Parámetros de reemplazo. Esta característica requiere que estén habilitadas las reglas CORS en el origen. Si las plantillas están en Azure Blob Storage, consulte [este artículo](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) para habilitar CORS. También puede escribir los parámetros de plantilla para reemplazar en el cuadro de texto. Ejemplo,
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).
Si el valor de parámetro que usa tiene varias palabras, escríbalas entre comillas, aunque se estén pasando con variables. Por ejemplo, -name \"valor parámetro\" -name2 \"$(var)\"
Para reemplazar los parámetros de tipo de objeto, use objetos JSON con formato de cadena. Por ejemplo, -options [\"opción1\"] -map {\"clave1\": \"valor1\" }. ", + "loc.input.label.deploymentMode": "Modo de implementación", + "loc.input.help.deploymentMode": "Consulte [aquí](https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-modes) más detalles. \n\n El modo incremental trata las implementaciones como actualizaciones incrementales para el grupo de recursos. Deja como están los recursos que existen en el grupo de recursos, pero que no se especifican en la plantilla. \n\n El modo completo elimina los recursos que no están en la plantilla. Dicho modo tarda relativamente más que el modo incremental. Si se agota el tiempo de espera de la tarea, considere la posibilidad de incrementarlo o de cambiar al modo \"Incremental\". \n **[Advertencia] El modo completo eliminará todos los recursos existentes en el grupo de recursos que no se hayan especificado en la plantilla. Revise si el grupo de recursos en el que está implementando no contiene algún recurso necesario que no se especifique en la plantilla.** \n\n El modo de validación le permite encontrar problemas con la plantilla antes de crear los recursos en sí. El modo de validación le permite localizar problemas con la plantilla antes de crear los recursos en sí. Tenga en cuenta que este modo creará igualmente un grupo de recursos aunque no implemente ningún recurso.\n\n De forma predeterminada se usa el modo incremental.", + "loc.input.label.deploymentName": "Nombre de implementación", + "loc.input.help.deploymentName": "Especifica el nombre de la implementación del grupo de recursos que se va a crear.", + "loc.input.label.deploymentOutputs": "Salidas de implementación", + "loc.input.help.deploymentOutputs": "Proporcione un nombre para la variable de salida que contendrá la sección de salidas del objeto de implementación actual en formato de cadena. Puede usar el cmdlet de PowerShell \"ConvertFrom-Json\" para analizar el objeto JSON y acceder a los valores de salida individuales. Para obtener más detalles, consulte [este sitio](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)", + "loc.input.label.addSpnToEnvironment": "Acceder a los detalles de la entidad de servicio en los parámetros de invalidación", + "loc.input.help.addSpnToEnvironment": "Agregue el identificador de entidad de servicio y la clave del punto de conexión de Azure que ha seleccionado al entorno de ejecución del script. Puede usar las variables \"$servicePrincipalId\" y \"$servicePrincipalKey\" en los parámetros de reemplazo, como \"-key $servicePrincipalKey\".", + "loc.messages.CheckResourceGroupExistence": "Comprobando si existe el siguiente grupo de recursos: %s.", + "loc.messages.ResourceGroupStatusFetchFailed": "No se pudo comprobar el estado del grupo de recursos. Error: %s.", + "loc.messages.ResourceGroupStatus": "El grupo de recursos existe: %s.", + "loc.messages.ResourceGroupCreationFailed": "No se pudo crear el grupo de recursos. Error: %s", + "loc.messages.CreatingNewRG": "Creando el grupo de recursos: %s", + "loc.messages.CreatedRG": "El grupo de recursos se ha creado correctamente.", + "loc.messages.CreatingTemplateDeployment": "Creando los parámetros de implementación.", + "loc.messages.TemplateParsingFailed": "Asegúrese de que el archivo de plantilla \"%s\" es válido. No se pudo ejecutar la tarea durante el análisis debido al error: %s", + "loc.messages.FileFetchFailed": "No se pudo descargar el archivo. URL: \"%s\". Error: %s", + "loc.messages.ParametersFileParsingFailed": "Asegúrese de que el archivo de parámetros \"%s\" es válido. No se pudo ejecutar la tarea durante el análisis debido al error: %s", + "loc.messages.StartingDeployment": "Iniciando la implementación.", + "loc.messages.CreateTemplateDeploymentSucceeded": "La plantilla se implementó correctamente.", + "loc.messages.CreateTemplateDeploymentFailed": "No se pudo realizar la tarea mientras se creaba o actualizaba la implementación de plantilla.", + "loc.messages.ErrorsInYourDeployment": "Hubo errores en la implementación. Código de error: %s.", + "loc.messages.Details": "Detalles:", + "loc.messages.ErrorType": "Tipo de error:", + "loc.messages.PolicyDefinitionName": "Nombre de definición de directiva:", + "loc.messages.PolicyAssignmentName": "Nombre de asignación de directiva:", + "loc.messages.StartingValidation": "Iniciando la validación de la plantilla.", + "loc.messages.ValidDeployment": "La validación de la implementación de la plantilla finalizó correctamente.", + "loc.messages.CreateTemplateDeploymentValidationFailed": "No se pudo validar la plantilla. Error: %s.", + "loc.messages.DeletingResourceGroup": "Eliminando el grupo de recursos: %s", + "loc.messages.CouldNotDeletedResourceGroup": "No se pudo eliminar el grupo de recursos: \"%s\". Error: %s", + "loc.messages.DeletedResourceGroup": "Grupo de recursos eliminado: %s", + "loc.messages.InvalidAction": "Esta acción no está definida. Consulte al autor de la tarea.", + "loc.messages.ARGD_ConstructorFailed": "No se pudo inicializar la tarea. Error: %s", + "loc.messages.InvalidTemplateLocation": "La ubicación de plantilla proporcionada no es válida. La tarea solo admite \"Artefacto vinculado\" o \"Dirección URL del archivo\"", + "loc.messages.EncodingNotSupported": "La codificación del archivo \"%s\" es \"%s\", que no se admite. Las codificaciones de archivo admitidas son [\"utf-8\", \"utf-16le\"]", + "loc.messages.CouldNotDetectEncoding": "No se pudo detectar la codificación del archivo \"%s\"", + "loc.messages.DetectedFileEncoding": "La codificación detectada para el archivo \"%s\" es \"%s\"", + "loc.messages.ErrorWhileParsingParameter": "Error al reemplazar el parámetro \"%s\" debido a \"%s\". Asegúrese de que sigue la notación de objetos JavaScript (JSON)", + "loc.messages.TemplateFilePatternMatchingMoreThanOneFile": "Se han encontrado varios archivos que coinciden con el patrón del archivo de plantilla: %s", + "loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile": "Se han encontrado varios archivos que coinciden con el patrón del archivo de parámetros: %s", + "loc.messages.TemplateFilePatternMatchingNoFile": "No se encuentra ningún archivo que coincida con el patrón del archivo de plantilla", + "loc.messages.TemplateParameterFilePatternMatchingNoFile": "No se encuentra ningún archivo que coincida con el patrón del archivo de plantilla", + "loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile": "El patrón del archivo de parámetros coincide con un directorio en lugar de un archivo.", + "loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile": "El patrón del archivo de plantilla coincide con un directorio en lugar de un archivo: %s", + "loc.messages.AddedOutputVariable": "Se actualizó la variable de salida \"%s\", que contiene la sección de salidas del objeto de implementación actual con formato de cadena.", + "loc.messages.UnableToReadResponseBody": "No se puede leer el cuerpo de la respuesta. Error: %s", + "loc.messages.MoreInformationOnAzurePortal": "Más información sobre Azure Portal", + "loc.messages.LogDeploymentName": "El nombre de la implementación es %s", + "loc.messages.ResourceGroupNameNotProvided": "Debe proporcionarse el nombre del grupo de recursos.", + "loc.messages.LocationNotProvided": "La ubicación es necesaria para la implementación.", + "loc.messages.ARMServiceConnectionScope": "Ámbito de implementación de la conexión de servicio de ARM: %s", + "loc.messages.ServicePrincipalRoleAssignmentDetails": "Asegúrese de que la entidad de servicio con el nombre %s tiene asignados los roles correctos para la entidad %s. Siga el vínculo para obtener más detalles: https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal", + "loc.messages.ServicePrincipalFetchFailed": "Error al capturar los detalles de la entidad de servicio: %s", + "loc.messages.FindMoreDeploymentDetailsAzurePortal": "La tarea creó correctamente una implementación de Azure Resource Manager, pero hubo un error al implementar. Consulte registros de implementación de Azure Resource Manager más detallados en: (copiar y pegar el vínculo) %s", + "loc.messages.ManagedServiceIdentityDetails": "Asegúrese de que la instancia de Managed Service Identity que se usa para la implementación tiene asignados los roles adecuados para el grupo de recursos %s. Siga el vínculo para obtener más detalles: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal", + "loc.messages.CompleteDeploymentModeNotSupported": "No se admite el modo de implementación \"Completo\" para la implementación en el ámbito \"%s\".", + "loc.messages.TemplateValidationFailure": "Se encontraron errores de validación en la plantilla de Azure Resource Manager. Esto puede causar un error de implementación de la plantilla. %s. Visite https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax", + "loc.messages.TroubleshootingGuide": "Consulte la guía de solución de problemas para ver si se trata su problema: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting", + "loc.messages.IncompatibleAzureCLIVersion": "La versión CLI de Azure debe ser >= 2.20.0", + "loc.messages.AzureCLINotFound": "No se ha encontrado la versión CLI de Azure en el agente.", + "loc.messages.FailedToFetchAzureCLIVersion": "No se pudo capturar la versión CLI de la zona de disponibilidad del agente. Error: %s", + "loc.messages.BicepBuildFailed": "Error de \"compilación de al zona de disponibilidad del Bicep\". Error: %s", + "loc.messages.BicepFileCleanupFailed": "No se pudo eliminar el archivo Bicep. Error: %s" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/fr-FR/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/fr-FR/resources.resjson new file mode 100644 index 000000000000..c8c128cd201d --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/fr-FR/resources.resjson @@ -0,0 +1,97 @@ +{ + "loc.friendlyName": "Déploiement de modèle ARM", + "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://aka.ms/armtaskreadme)", + "loc.description": "Déployer un modèle ARM (Azure Resource Manager) sur toutes les étendues de déploiement", + "loc.instanceNameFormat": "Déploiement du modèle ARM : $(deploymentScope) scope", + "loc.releaseNotes": "- Ajout de la prise en charge du déploiement sur toutes les étendues de déploiement.\n- Suppression de toutes les actions liées aux machines virtuelles.", + "loc.group.displayName.AzureDetails": "Détails relatifs à Azure", + "loc.group.displayName.Template": "Modèle", + "loc.group.displayName.Advanced": "Avancé", + "loc.input.label.deploymentScope": "Étendue du déploiement", + "loc.input.help.deploymentScope": "Étendue de déploiement du déploiement. Pour en savoir plus sur les étendues de déploiement, consultez ce [lien](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)", + "loc.input.label.ConnectedServiceName": "Connexion Azure Resource Manager", + "loc.input.help.ConnectedServiceName": "Sélectionnez la connexion de service Azure Resource Manager ayant accès à l'étendue de déploiement sélectionnée.", + "loc.input.label.subscriptionName": "Abonnement", + "loc.input.help.subscriptionName": "Sélectionner l'abonnement Azure", + "loc.input.label.action": "Action", + "loc.input.help.action": "Action à exécuter sur les ressources ou le groupe de ressources Azure.", + "loc.input.label.resourceGroupName": "Groupe de ressources", + "loc.input.help.resourceGroupName": "Indiquez le nom d'un groupe de ressources.", + "loc.input.label.location": "Emplacement", + "loc.input.help.location": "Pour l'étendue de déploiement du groupe de ressources : emplacement de déploiement du groupe de ressources. Si le groupe de ressources existe déjà dans l'abonnement, cette valeur est ignorée.\n Pour une autre étendue de déploiement : emplacement de stockage des métadonnées de déploiement.", + "loc.input.label.templateLocation": "Emplacement du modèle", + "loc.input.label.csmFileLink": "Lien du modèle", + "loc.input.help.csmFileLink": "Spécifiez l'URL du fichier de modèle. Exemple : [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\nPour déployer un modèle stocké dans un compte de stockage privé, récupérez et incluez le jeton SAP (signature d'accès partagé) dans l'URL du modèle. Exemple : '/template.json?' Pour charger un fichier de modèle (ou un modèle lié) vers un compte de stockage et générer un jeton SAP, vous pouvez utiliser la tâche [Copie de fichiers Azure](https://aka.ms/azurefilecopyreadme) ou suivre les étapes liées à [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) ou [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911).\n\nPour afficher les paramètres du modèle dans une grille, cliquez sur \"…\" en regard de la zone de texte Remplacer les paramètres du modèle. Cette fonctionnalité nécessite l'activation des règles CORS à la source. Si les modèles se trouvent dans Azure Storage Blob, consultez [ceci](https://docs.microsoft.com/fr-fr/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) pour activer CORS.", + "loc.input.label.csmParametersFileLink": "Lien des paramètres de modèle", + "loc.input.help.csmParametersFileLink": "Spécifiez l'URL du fichier de paramètres. Exemple : [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json) \n\nPour utiliser un fichier stocké dans un compte de stockage privé, récupérez et incluez le jeton SAP (signature d'accès partagé) dans l'URL du modèle. Exemple : '/template.json?' Pour charger un fichier de paramètres vers un compte de stockage et générer un jeton SAP, vous pouvez utiliser la tâche [Copie de fichiers Azure](https://aka.ms/azurefilecopyreadme) ou suivre les étapes liées à [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) ou [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911). \n\nPour afficher les paramètres du modèle dans une grille, cliquez sur \"…\" en regard de la zone de texte Remplacer les paramètres du modèle. Cette fonctionnalité nécessite l'activation des règles CORS à la source. Si les modèles se trouvent dans Azure Storage Blob, consultez [ceci](https://docs.microsoft.com/fr-fr/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) pour activer CORS.", + "loc.input.label.csmFile": "Modèle", + "loc.input.help.csmFile": "Spécifiez le chemin d’accès ou un modèle pointant vers le modèle Azure Resource Manager. Pour plus d’informations sur les modèles, consultez https://aka.ms/azuretemplates. Pour commencer immédiatement, utilisez https://aka.ms/sampletemplate de modèle. « Artefact lié » prend également en charge les fichiers Bicep lorsque la version Azure CLI > 2.20.0", + "loc.input.label.csmParametersFile": "Paramètres du modèle", + "loc.input.help.csmParametersFile": "Spécifiez le chemin d’accès ou un modèle pointant vers le fichier de paramètres du modèle azure Resource Manager. « Artefact lié » prend également en charge les fichiers Bicep lorsque la version Azure CLI > 2.20.0", + "loc.input.label.overrideParameters": "Remplacer les paramètres du modèle", + "loc.input.help.overrideParameters": "Pour afficher les paramètres du modèle dans une grille, cliquez sur \"…\" en regard de la zone de texte Remplacer les paramètres. Cette fonctionnalité nécessite l'activation des règles CORS à la source. Si les modèles se trouvent dans Azure Storage Blob, consultez [ceci](https://docs.microsoft.com/fr-fr/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) pour activer CORS. Sinon, tapez les paramètres de modèle à remplacer dans la zone de texte. Exemple :
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).
Si la valeur de paramètre que vous utilisez contient plusieurs mots, placez-les entre des guillemets, même si vous les passez à l'aide de variables. Exemple : -name \"valeur de paramètre\" -name2 \"$(var)\"
Pour remplacer les paramètres de type d'objet, utilisez des objets JSON convertis en chaîne. Exemple : -options [\"option1\"] -map {\"clé1\": \"valeur1\" }. ", + "loc.input.label.deploymentMode": "Mode de déploiement", + "loc.input.help.deploymentMode": "Pour plus d’informations, consultez [this](https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-modes). \n\n mode incrémentiel gère les déploiements en tant que mises à jour incrémentielles du groupe de ressources. Il laisse les ressources inchangées qui existent dans le groupe de ressources, mais qui ne sont pas spécifiées dans le modèle. \n\n Le mode Complet supprime les ressources qui ne se trouvent pas dans votre modèle. Le mode complet prend relativement plus de temps que le mode incrémentiel. Si la tâche expire, envisagez d’augmenter le délai d’expiration ou de remplacer le mode par « Incrémentiel ». \n Le mode complet **[Avertissement] supprime toutes les ressources existantes du groupe de ressources qui ne sont pas spécifiées dans le modèle. Vérifiez si le groupe de ressources sur lequel vous effectuez le déploiement ne contient aucune ressource nécessaire qui n’est pas spécifiée dans le modèle.** \n\n Le mode Valider vous permet de trouver des problèmes avec le modèle avant de créer des ressources réelles. Le mode Validation vous permet de rechercher des problèmes avec le modèle avant de créer des ressources réelles. Notez que ce mode crée quand même un groupe de ressources même s’il ne déploie aucune ressource.\n\n Par défaut, le mode incrémentiel est utilisé.", + "loc.input.label.deploymentName": "Nom du déploiement", + "loc.input.help.deploymentName": "Spécifie le nom du déploiement de groupe de ressources à créer.", + "loc.input.label.deploymentOutputs": "Sorties de déploiement", + "loc.input.help.deploymentOutputs": "Donnez un nom à la variable de sortie qui contient la section outputs de l'objet de déploiement actuel au format chaîne. Vous pouvez utiliser l'applet de commande PowerShell \"ConvertFrom-Json\" pour analyser l'objet JSON et accéder aux valeurs de sortie individuelles. Pour plus d'informations, consultez [ceci](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)", + "loc.input.label.addSpnToEnvironment": "Accéder aux détails du principal de service dans les paramètres de substitution", + "loc.input.help.addSpnToEnvironment": "Ajoute l'ID et la clé de principal de service du point de terminaison Azure choisi à l'environnement d'exécution du script. Vous pouvez utiliser les variables '$servicePrincipalId' et '$servicePrincipalKey' dans vos paramètres de substitution, par exemple '-key $servicePrincipalKey'", + "loc.messages.CheckResourceGroupExistence": "Vérification de l'existence du groupe de ressources suivant : %s.", + "loc.messages.ResourceGroupStatusFetchFailed": "Échec de la vérification de l'état du groupe de ressources. Erreur : %s.", + "loc.messages.ResourceGroupStatus": "Le groupe de ressources existe : %s.", + "loc.messages.ResourceGroupCreationFailed": "Échec de la création du groupe de ressources. Erreur : %s", + "loc.messages.CreatingNewRG": "Création du groupe de ressources : %s", + "loc.messages.CreatedRG": "Création réussie du groupe de ressources.", + "loc.messages.CreatingTemplateDeployment": "Création des paramètres de déploiement.", + "loc.messages.TemplateParsingFailed": "Vérifiez que le fichier de modèle ( '%s' ) est valide. Échec de la tâche durant l'analyse avec l'erreur suivante : %s", + "loc.messages.FileFetchFailed": "Échec du téléchargement du fichier. URL : '%s'. Erreur : %s", + "loc.messages.ParametersFileParsingFailed": "Vérifiez que le fichier de paramètres ( '%s' ) est valide. Échec de la tâche durant l'analyse avec l'erreur suivante : %s", + "loc.messages.StartingDeployment": "Démarrage du déploiement.", + "loc.messages.CreateTemplateDeploymentSucceeded": "Déploiement réussi du modèle.", + "loc.messages.CreateTemplateDeploymentFailed": "Échec de la tâche durant la création ou la mise à jour du déploiement du modèle.", + "loc.messages.ErrorsInYourDeployment": "Des erreurs se sont produites durant le déploiement. Code d'erreur : %s.", + "loc.messages.Details": "Détails :", + "loc.messages.ErrorType": "Type d'erreur :", + "loc.messages.PolicyDefinitionName": "Nom de la définition de stratégie :", + "loc.messages.PolicyAssignmentName": "Nom de l'affectation de stratégie :", + "loc.messages.StartingValidation": "Démarrage de la validation du modèle.", + "loc.messages.ValidDeployment": "La validation du déploiement de modèle a réussi.", + "loc.messages.CreateTemplateDeploymentValidationFailed": "Échec de la validation du modèle. Erreur : %s.", + "loc.messages.DeletingResourceGroup": "Suppression du groupe de ressources : %s", + "loc.messages.CouldNotDeletedResourceGroup": "Impossible de supprimer le groupe de ressources : '%s'. Échec de l'opération. Erreur : %s", + "loc.messages.DeletedResourceGroup": "Groupe de ressources supprimé : %s", + "loc.messages.InvalidAction": "Cette action n'est pas définie. Vérifiez auprès de l'auteur de la tâche.", + "loc.messages.ARGD_ConstructorFailed": "Échec de la tâche durant l'initialisation. Erreur : %s", + "loc.messages.InvalidTemplateLocation": "L'emplacement du modèle fourni est non valide. La tâche prend uniquement en charge 'Artefact lié' ou 'URL du fichier'", + "loc.messages.EncodingNotSupported": "L'encodage du fichier '%s' est '%s', ce qui n'est pas pris en charge. Les encodages de fichiers pris en charge sont ['utf-8', 'utf-16le']", + "loc.messages.CouldNotDetectEncoding": "Impossible de détecter l'encodage du fichier '%s'", + "loc.messages.DetectedFileEncoding": "L'encodage détecté pour le fichier '%s' est '%s'", + "loc.messages.ErrorWhileParsingParameter": "Une erreur s'est produite durant le remplacement du paramètre '%s' en raison de '%s'. Vérifiez qu'il respecte le format JSON (JavaScript Object Notation)", + "loc.messages.TemplateFilePatternMatchingMoreThanOneFile": "Plusieurs fichiers correspondent au modèle du fichier de modèle : %s", + "loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile": "Plusieurs fichiers correspondent au modèle du fichier de paramètres de modèle : %s", + "loc.messages.TemplateFilePatternMatchingNoFile": "Le fichier correspondant au modèle du fichier de modèle est introuvable", + "loc.messages.TemplateParameterFilePatternMatchingNoFile": "Le fichier correspondant au modèle du fichier de modèle est introuvable", + "loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile": "Le modèle du fichier de paramètres correspond à un répertoire au lieu d'un fichier.", + "loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile": "Le modèle du fichier de modèle correspond à un répertoire au lieu d'un fichier : %s", + "loc.messages.AddedOutputVariable": "Mise à jour effectuée de la variable de sortie '%s', qui contient la section outputs de l'objet de déploiement actuel au format chaîne.", + "loc.messages.UnableToReadResponseBody": "Impossible de lire le corps de la réponse. Erreur : %s", + "loc.messages.MoreInformationOnAzurePortal": "Plus d'informations sur le Portail Azure", + "loc.messages.LogDeploymentName": "Le nom du déploiement est %s", + "loc.messages.ResourceGroupNameNotProvided": "Le nom du groupe de ressources doit être fourni", + "loc.messages.LocationNotProvided": "L'emplacement est obligatoire pour le déploiement", + "loc.messages.ARMServiceConnectionScope": "Étendue du déploiement de connexion de service ARM - %s", + "loc.messages.ServicePrincipalRoleAssignmentDetails": "Vérifiez que les rôles appropriés sont attribués au principal de service nommé %s pour l'entité %s. Pour plus d'informations, accédez au lien suivant : https://docs.microsoft.com/fr-fr/azure/role-based-access-control/role-assignments-portal", + "loc.messages.ServicePrincipalFetchFailed": "Erreur durant la récupération (fetch) des détails du principal de service : %s", + "loc.messages.FindMoreDeploymentDetailsAzurePortal": "La tâche a réussi à créer un déploiement Azure Resource Manager, mais le déploiement a été un échec. Pour plus d'informations, consultez les journaux de déploiement d'Azure Resource Manager à l'adresse suivante : (copiez-collez le lien) %s", + "loc.messages.ManagedServiceIdentityDetails": "Vérifiez que l'identité de service managé utilisée pour le déploiement est affectée aux rôles appropriés du groupe de ressources %s. Pour plus d'informations, accédez au lien suivant : https://docs.microsoft.com/fr-fr/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal", + "loc.messages.CompleteDeploymentModeNotSupported": "Le mode de déploiement 'Complet' n'est pas pris en charge pour le déploiement dans l'étendue '%s'", + "loc.messages.TemplateValidationFailure": "Des erreurs de validation ont été trouvées dans le modèle Azure Resource Manager. Cela peut entraîner l'échec du déploiement du modèle. %s. Accédez à https://docs.microsoft.com/fr-fr/azure/azure-resource-manager/templates/template-syntax", + "loc.messages.TroubleshootingGuide": "Consultez le guide de résolution des problèmes pour voir si votre problème y est traité : https://docs.microsoft.com/fr-fr/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting", + "loc.messages.IncompatibleAzureCLIVersion": "Azure CLI version doit être >= 2.20.0", + "loc.messages.AzureCLINotFound": "Azure CLI introuvable sur l’agent.", + "loc.messages.FailedToFetchAzureCLIVersion": "Échec de la récupération de la version cli az de l’agent. Erreur : %s", + "loc.messages.BicepBuildFailed": "Échec de la génération du biceps az. Erreur : %s", + "loc.messages.BicepFileCleanupFailed": "Échec de la suppression du fichier Bicep. Erreur : %s" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson new file mode 100644 index 000000000000..63f7903eb6e1 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/it-IT/resources.resjson @@ -0,0 +1,97 @@ +{ + "loc.friendlyName": "Distribuzione del modello di Azure Resource Manager", + "loc.helpMarkDown": "[Altre informazioni su questa attività](https://aka.ms/armtaskreadme)", + "loc.description": "Distribuisce un modello di Azure Resource Manager in tutti gli ambiti di distribuzione", + "loc.instanceNameFormat": "Distribuzione di modelli di Azure Resource Manager: ambito $(deploymentScope)", + "loc.releaseNotes": "- Aggiunta del supporto per la distribuzione in tutti gli ambiti di distribuzione.\n- Rimozione di tutte le azioni correlate alle macchine virtuali.", + "loc.group.displayName.AzureDetails": "Dettagli su Azure", + "loc.group.displayName.Template": "Modello", + "loc.group.displayName.Advanced": "Avanzate", + "loc.input.label.deploymentScope": "Ambito di distribuzione", + "loc.input.help.deploymentScope": "Ambito di distribuzione della distribuzione. Per altre informazioni sugli ambiti di distribuzione, vedere questo [collegamento] (https://docs.microsoft.com/it-it/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)", + "loc.input.label.ConnectedServiceName": "Connessione ad Azure Resource Manager", + "loc.input.help.ConnectedServiceName": "Selezionare la connessione al servizio Azure Resource Manager con accesso all'ambito di distribuzione selezionato.", + "loc.input.label.subscriptionName": "Sottoscrizione", + "loc.input.help.subscriptionName": "Selezionare la sottoscrizione di Azure", + "loc.input.label.action": "Azione", + "loc.input.help.action": "Azione da eseguire sulle risorse o sul gruppo di risorse di Azure.", + "loc.input.label.resourceGroupName": "Gruppo di risorse", + "loc.input.help.resourceGroupName": "Specificare il nome di un gruppo di risorse.", + "loc.input.label.location": "Località", + "loc.input.help.location": "Per l'ambito di distribuzione Gruppo di risorse: percorso per la distribuzione del gruppo di risorse. Se il gruppo di risorse esiste già nella sottoscrizione, questo valore verrà ignorato.\n Per altri ambiti di distribuzione: percorso in cui archiviare i metadati della distribuzione.", + "loc.input.label.templateLocation": "Posizione del modello", + "loc.input.label.csmFileLink": "Collegamento al modello", + "loc.input.help.csmFileLink": "Specificare l'URL del file di modello. Esempio: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\nPer distribuire un modello archiviato in un account di archiviazione privato, recuperare e includere il token di firma di accesso condiviso nell'URL del modello. Esempio: `/template.json?`. Per caricare un file di modello o un modello collegato in un account di archiviazione e generare un token di firma di accesso condiviso, è possibile usare l'attività [Copia dei file di Azure](https://aka.ms/azurefilecopyreadme) oppure eseguire la procedura con [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) o con l'[interfaccia della riga di comando di Azure](https://go.microsoft.com/fwlink/?linkid=836911).\n\nPer visualizzare i parametri del modello in una griglia, fare clic su \"…\" accanto alla casella di testo Esegui override dei parametri del modello. Questa funzionalità richiede che le regole di Condivisione risorse tra le origini (CORS) siano abilitate nell'origine. Se i modelli si trovano nel BLOB del servizio di archiviazione di Azure, vedere [qui](https://docs.microsoft.com/it-it/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) per abilitare CORS.", + "loc.input.label.csmParametersFileLink": "Collegamento ai parametri del modello", + "loc.input.help.csmParametersFileLink": "Specificare l'URL del file di parametri. Esempio: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json) \n\nPer usare un file archiviato in un account di archiviazione privato, recuperare e includere il token di firma di accesso condiviso nell'URL del modello. Esempio: `/template.json?`. Per caricare un file di parametri in un account di archiviazione e generare un token di firma di accesso condiviso, è possibile usare l'attività [Copia dei file di Azure](https://aka.ms/azurefilecopyreadme) oppure eseguire la procedura con [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) o con l'[interfaccia della riga di comando di Azure](https://go.microsoft.com/fwlink/?linkid=836911). \n\nPer visualizzare i parametri del modello in una griglia, fare clic su \"…\" accanto alla casella di testo Esegui override dei parametri del modello. Questa funzionalità richiede che le regole di Condivisione risorse tra le origini (CORS) siano abilitate nell'origine. Se i modelli si trovano nel BLOB del servizio di archiviazione di Azure, vedere [qui](https://docs.microsoft.com/it-it/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) per abilitare CORS.", + "loc.input.label.csmFile": "Modello", + "loc.input.help.csmFile": "Consente di specificare il percorso o un criterio che punta al modello di Azure Resource Manager. Per altre informazioni sui modelli, vedere https://aka.ms/azuretemplates. Per iniziare subito, usare il modello https://aka.ms/sampletemplate. 'Artefatto collegato' offre anche supporto per file Bicep quando la versione dell'interfaccia della riga di comando di Azure è > 2.20.0", + "loc.input.label.csmParametersFile": "Parametri del modello", + "loc.input.help.csmParametersFile": "Specificare il percorso o un criterio che punta al file di parametri del modello di Azure Resource Manager. 'Artefatto collegato' offre anche supporto per file Bicep quando la versione dell'interfaccia della riga di comando di Azure è > 2.20.0", + "loc.input.label.overrideParameters": "Esegui override dei parametri del modello", + "loc.input.help.overrideParameters": "Per visualizzare i parametri del modello in una griglia, fare clic su \"…\" accanto alla casella di testo Parametri di sostituzione. Con questa funzionalità è richiesta l'abilitazione delle regole CORS nell'origine. Se i modelli si trovano nel BLOB del servizio di archiviazione di Azure, vedere [qui](https://docs.microsoft.com/it-it/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) per abilitare CORS. In alternativa, digitare nella casella di testo i parametri del modello di cui eseguire l'override. Esempio:
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).
Se il valore del parametro usato include più parole, racchiuderle tra virgolette anche se verranno passate con le variabili. Ad esempio, -name \"valore parametro\" -name2 \"$(var)\"
Per eseguire l'override di parametri di tipo oggetto, usare oggetti JSON sotto forma di stringa. Ad esempio, -options [\"option1\"] -map {\"key1\": \"value1\" }. ", + "loc.input.label.deploymentMode": "Modalità di distribuzione", + "loc.input.help.deploymentMode": "Per altri dettagli, vedere [questo articolo](https://docs.microsoft.com/it-it/azure/azure-resource-manager/deployment-modes). \n\n La modalità Incrementale gestisce le distribuzioni come aggiornamenti incrementali del gruppo di risorse. Lascia invariate le risorse esistenti nel gruppo di risorse, ma non specificate nel modello. \n\n La modalità Completa elimina le risorse non presenti nel modello. Richiede un tempo relativamente maggiore rispetto alla modalità Incrementale. In caso di timeout dell'attività, provare ad aumentare il timeout o a passare alla modalità 'Incrementale'. \n **[Avviso] Con la modalità Completa verranno eliminate tutte le risorse esistenti nel gruppo di risorse non specificate nel modello. Eseguire una verifica se il gruppo di risorse di destinazione della distribuzione non contiene tutte le risorse necessarie non specificate nel modello.** \n\n La modalità di convalida consente di individuare eventuali problemi relativi al modello prima di creare le risorse effettive. Si noti che questa modalità creerà sempre un gruppo di risorse, anche se non distribuisce alcuna risorsa.\n\n Per impostazione predefinita, viene usata la modalità Incrementale.", + "loc.input.label.deploymentName": "Nome della distribuzione", + "loc.input.help.deploymentName": "Specifica il nome della distribuzione del gruppo di risorse da creare.", + "loc.input.label.deploymentOutputs": "Output di distribuzione", + "loc.input.help.deploymentOutputs": "Specificare un nome per la variabile di output che conterrà la sezione degli output dell'oggetto distribuzione corrente in formato stringa. È possibile usare il cmdlet \"ConvertFrom-Json\" di PowerShell per analizzare l'oggetto JSON e accedere ai singoli valori di output. Per maggiori dettagli, vedere [questo articolo](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)", + "loc.input.label.addSpnToEnvironment": "Accedi ai dettagli dell'entità servizio nei parametri di override", + "loc.input.help.addSpnToEnvironment": "Aggiunge l'ID entità servizio e la chiave dell'endpoint di Azure scelto all'ambiente di esecuzione dello script. Nei parametri di override è possibile usare le variabili `$servicePrincipalId` e `$servicePrincipalKey`, ad esempio `-key $servicePrincipalKey`", + "loc.messages.CheckResourceGroupExistence": "Verifica dell'esistenza del gruppo di risorse seguente: %s.", + "loc.messages.ResourceGroupStatusFetchFailed": "Non è stato possibile verificare lo stato del gruppo di risorse: Errore: %s.", + "loc.messages.ResourceGroupStatus": "Il gruppo di risorse %s esiste già.", + "loc.messages.ResourceGroupCreationFailed": "Non è stato possibile creare il gruppo di risorse. Errore: %s", + "loc.messages.CreatingNewRG": "Creazione del gruppo di risorse: %s", + "loc.messages.CreatedRG": "Il gruppo di risorse è stato creato.", + "loc.messages.CreatingTemplateDeployment": "Creazione dei parametri di distribuzione.", + "loc.messages.TemplateParsingFailed": "Assicurarsi che il file modello ('%s') sia valido. L'attività non è riuscita durante l'analisi. Errore: %s", + "loc.messages.FileFetchFailed": "Non è stato possibile scaricare il file. URL: '%s'. Errore: %s", + "loc.messages.ParametersFileParsingFailed": "Assicurarsi che il file di parametri ('%s') sia valido. L'attività non è riuscita durante l'analisi. Errore: %s", + "loc.messages.StartingDeployment": "Avvio della distribuzione.", + "loc.messages.CreateTemplateDeploymentSucceeded": "Il modello è stato distribuito.", + "loc.messages.CreateTemplateDeploymentFailed": "L'attività non è riuscita durante la creazione o l'aggiornamento della distribuzione del modello.", + "loc.messages.ErrorsInYourDeployment": "Si sono verificati errori nella distribuzione. Codice errore: %s.", + "loc.messages.Details": "Dettagli:", + "loc.messages.ErrorType": "Tipo di errore:", + "loc.messages.PolicyDefinitionName": "Nome della definizione dei criteri:", + "loc.messages.PolicyAssignmentName": "Nome dell'assegnazione dei criteri:", + "loc.messages.StartingValidation": "Avvio della convalida del modello.", + "loc.messages.ValidDeployment": "La convalida della distribuzione modello è stata completata.", + "loc.messages.CreateTemplateDeploymentValidationFailed": "La convalida del modello non è riuscita. Errore: %s.", + "loc.messages.DeletingResourceGroup": "Eliminazione del gruppo di risorse: %s", + "loc.messages.CouldNotDeletedResourceGroup": "Non è stato possibile eliminare il gruppo di risorse: '%s'. L'operazione non è riuscita. Errore: %s", + "loc.messages.DeletedResourceGroup": "Gruppo di risorse eliminato: %s", + "loc.messages.InvalidAction": "Questa azione non è definita. Verificarla con l'autore dell'attività.", + "loc.messages.ARGD_ConstructorFailed": "L'attività non è riuscita durante l'inizializzazione. Errore: %s", + "loc.messages.InvalidTemplateLocation": "La posizione del modello specificata non è valida. L'attività supporta solo 'Artefatto collegato' o 'URL del file'", + "loc.messages.EncodingNotSupported": "La codifica del file '%s' è '%s', ma non è supportata. Le codifiche dei file supportate sono ['utf-8', 'utf-16le']", + "loc.messages.CouldNotDetectEncoding": "Non è stato possibile rilevare la codifica del file '%s'", + "loc.messages.DetectedFileEncoding": "La codifica rilevata per il file '%s' è '%s'", + "loc.messages.ErrorWhileParsingParameter": "Si è verificato un errore durante l'override del parametro '%s' a causa di '%s'. Assicurarsi che sia conforme al formato JavaScript Object Notation (JSON)", + "loc.messages.TemplateFilePatternMatchingMoreThanOneFile": "Sono stati trovati più file che corrispondono al criterio dei file modello: %s", + "loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile": "Sono stati trovati più file che corrispondono al criterio dei file di parametri: %s", + "loc.messages.TemplateFilePatternMatchingNoFile": "Non è stato possibile trovare alcun file che corrisponde al criterio dei file modello", + "loc.messages.TemplateParameterFilePatternMatchingNoFile": "Non è stato possibile trovare alcun file che corrisponde al criterio dei file modello", + "loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile": "Il criterio dei file di parametri corrisponde a una directory anziché a un file.", + "loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile": "Il criterio dei file modello corrisponde a una directory anziché a un file: %s", + "loc.messages.AddedOutputVariable": "La variabile di output '%s', che contiene la sezione di output dell'oggetto distribuzione corrente in formato stringa, è stata aggiornata.", + "loc.messages.UnableToReadResponseBody": "Non è possibile leggere il corpo della risposta. Errore: %s", + "loc.messages.MoreInformationOnAzurePortal": "Altre informazioni sul portale di Azure", + "loc.messages.LogDeploymentName": "Il nome della distribuzione è %s", + "loc.messages.ResourceGroupNameNotProvided": "È necessario specificare il nome del gruppo di risorse", + "loc.messages.LocationNotProvided": "Il percorso è obbligatorio per la distribuzione", + "loc.messages.ARMServiceConnectionScope": "Ambito di distribuzione Connessione al servizio ARM - %s", + "loc.messages.ServicePrincipalRoleAssignmentDetails": "Assicurarsi che all'entità servizio denominata %s siano assegnati i ruoli corretti per l'entità %s. Per maggiori dettagli, vedere il collegamento: https://docs.microsoft.com/it-it/azure/role-based-access-control/role-assignments-portal", + "loc.messages.ServicePrincipalFetchFailed": "Si è verificato un errore durante il recupero dei dettagli dell'entità servizio: %s", + "loc.messages.FindMoreDeploymentDetailsAzurePortal": "L'attività ha creato una distribuzione Azure Resource Manager, ma la distribuzione non è riuscita. Per informazioni più dettagliate, vedere i log di distribuzione di Azure Resource Manager in: (copiare e incollare il collegamento) %s", + "loc.messages.ManagedServiceIdentityDetails": "Assicurarsi che all'identità del servizio gestita usata per la distribuzione siano assegnati i ruoli corretti per il gruppo di risorse %s. Per maggiori dettagli, vedere il collegamento: https://docs.microsoft.com/it-it/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal", + "loc.messages.CompleteDeploymentModeNotSupported": "La modalità di distribuzione 'Completa' non è supportata per la distribuzione nell'ambito '%s'", + "loc.messages.TemplateValidationFailure": "Sono stati trovati errori di convalida nel modello di Azure Resource Manager. L'errore potrebbe impedire la corretta distribuzione del modello. %s. Vedere https://docs.microsoft.com/it-it/azure/azure-resource-manager/templates/template-syntax", + "loc.messages.TroubleshootingGuide": "Vedere la guida alla risoluzione dei problemi per verificare se il problema è stato risolto: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting", + "loc.messages.IncompatibleAzureCLIVersion": "La versione dell'interfaccia della riga di comando di Azure deve essere >= 2.20.0", + "loc.messages.AzureCLINotFound": "L'interfaccia della riga di comando di Azure non è stata trovata nell'agente.", + "loc.messages.FailedToFetchAzureCLIVersion": "Non è stato possibile recuperare la versione dell'interfaccia della riga di comando di Azure dall'agente. Errore: %s", + "loc.messages.BicepBuildFailed": "\"az bicep build\" non riuscito. Errore: %s", + "loc.messages.BicepFileCleanupFailed": "Non è stato possibile eliminare il file Bicep. Errore: %s" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/ja-JP/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/ja-JP/resources.resjson new file mode 100644 index 000000000000..6b7e6bf19a4c --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/ja-JP/resources.resjson @@ -0,0 +1,97 @@ +{ + "loc.friendlyName": "ARM テンプレートのデプロイ", + "loc.helpMarkDown": "[このタスクの詳細を表示](https://aka.ms/armtaskreadme)", + "loc.description": "すべてのデプロイ スコープに Azure Resource Manager (ARM) テンプレートをデプロイします", + "loc.instanceNameFormat": "ARM テンプレートのデプロイ: $(deploymentScope) スコープ", + "loc.releaseNotes": "- すべてのデプロイ スコープでデプロイのサポートが追加されました。\n- すべての VM 関連アクションが削除されました。", + "loc.group.displayName.AzureDetails": "Azure の詳細", + "loc.group.displayName.Template": "テンプレート", + "loc.group.displayName.Advanced": "詳細設定", + "loc.input.label.deploymentScope": "デプロイ スコープ", + "loc.input.help.deploymentScope": "デプロイのデプロイ スコープ。デプロイ スコープの詳細については、この [リンク](https://docs.microsoft.com/ja-jp/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope) を参照してください", + "loc.input.label.ConnectedServiceName": "Azure Resource Manager 接続", + "loc.input.help.ConnectedServiceName": "選択したデプロイ スコープへのアクセス権を持つ Azure Resource Manager サービス接続を選択します。", + "loc.input.label.subscriptionName": "サブスクリプション", + "loc.input.help.subscriptionName": "Azure サブスクリプションを選択します", + "loc.input.label.action": "アクション", + "loc.input.help.action": "Azure リソースまたはリソース グループで実行されるアクション。", + "loc.input.label.resourceGroupName": "リソース グループ", + "loc.input.help.resourceGroupName": "リソース グループの名前を指定します。", + "loc.input.label.location": "場所", + "loc.input.help.location": "リソース グループのデプロイ スコープの場合: リソース グループをデプロイする場所。サブスクリプションにリソース グループが既に存在する場合、この値は無視されます。\n その他のデプロイ スコープの場合: デプロイ メタデータを保存する場所。", + "loc.input.label.templateLocation": "テンプレートの場所", + "loc.input.label.csmFileLink": "テンプレートのリンク", + "loc.input.help.csmFileLink": "テンプレート ファイルの URL を指定します。例: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\nプライベート ストレージ アカウントに保存されているテンプレートを配置するには、テンプレートの URL にある Shared Access Signature (SAS) トークンを取得し、それを含めます。例: `/template.json?`。テンプレート ファイル (またはリンクされたテンプレート) をストレージ アカウントにアップロードして SAS トークンを生成するには、[Azure ファイル コピー](https://aka.ms/azurefilecopyreadme) タスクを使用するか、[PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) または [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911) を使用した手順に従います。\n\nテンプレート パラメーターをグリッドで確認するには、[テンプレート パラメーターのオーバーライド] テキスト ボックスの隣の […] をクリックします。この機能を使用するには CORS ルールがソースで有効になっていなければなりません。テンプレートが Azure Storage BLOB にある場合には、[こちら](https://docs.microsoft.com/ja-jp/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests)を参照して CORS を有効にしてください。", + "loc.input.label.csmParametersFileLink": "テンプレート パラメーターのリンク", + "loc.input.help.csmParametersFileLink": "パラメーター ファイルの URL を指定します。例: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json) \n\nプライベート ストレージ アカウントに保存されているファイルを使用するには、テンプレートの URL にある Shared Access Signature (SAS) トークンを取得し、それを含めます。例: `/template.json?`。パラメーター ファイルをストレージ アカウントにアップロードして SAS トークンを生成するには、[Azure ファイル コピー](https://aka.ms/azurefilecopyreadme) タスクを使用するか、[PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) または [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911) を使用した手順に従います。\n\nテンプレート パラメーターをグリッドで確認するには、[テンプレート パラメーターのオーバーライド] テキスト ボックスの隣の […] をクリックします。この機能を使用するには CORS ルールがソースで有効になっていなければなりません。テンプレートが Azure Storage BLOB にある場合には、[こちら](https://docs.microsoft.com/ja-jp/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests)を参照して CORS を有効にしてください。", + "loc.input.label.csmFile": "テンプレート", + "loc.input.help.csmFile": "Azure Resource Manager テンプレートを指すパスまたはパターンを指定します。テンプレートの詳細については、「https://aka.ms/azuretemplates」を参照してください。すぐに開始するには、テンプレート https://aka.ms/sampletemplate を使用します。Azure CLI バージョンが 2.20.0 よりも新しい場合、'リンクされた成果物' には Bicep ファイルのサポートも含まれます。", + "loc.input.label.csmParametersFile": "テンプレート パラメーター", + "loc.input.help.csmParametersFile": "Azure Resource Manager テンプレートのパラメーター ファイルを指すパスまたはパターンを指定します。Azure CLI バージョンが 2.20.0 よりも新しい場合、'リンクされた成果物' には Bicep ファイルのサポートも含まれます。", + "loc.input.label.overrideParameters": "テンプレート パラメーターのオーバーライド", + "loc.input.help.overrideParameters": "グリッドでテンプレートのパラメーターを表示するには、[パラメーターのオーバーライド] のテキストボックスの横にある [...] をクリックします。この機能は、ソースで CORS ルールが有効になっている必要があります。テンプレートが Azure Storage BLOB にある場合は、[こちら](https://docs.microsoft.com/ja-jp/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) を参照して CORS を有効にします。または、テキストボックスにテンプレート パラメーターを入力してオーバーライドします。たとえば、
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre) です。
使用しているパラメーターの値に複数の単語が含まれる場合、変数を使用してそれらの単語を渡すとしても、引用符で囲みます。たとえば、-name \"parameter value\" -name2 \"$(var)\" です
オブジェクトの種類のパラメーターを上書きするには、文字列化した JSON オブジェクトを使用します。たとえば、-options [\"option1\"] -map {\"key1\": \"value1\" } です。", + "loc.input.label.deploymentMode": "配置モード", + "loc.input.help.deploymentMode": "詳細については、[こちら](https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/deployment-modes) を参照してください。\n\n 増分モードでは、デプロイはリソース グループへの増分更新として処理されます。このモードでは、リソース グループには存在していてもテンプレートでは指定されていない、変更されていないリソースが残されます。\n\n完全モードでは、テンプレートにないリソースが削除されます。完全モードは、増分モードよりも時間がかかります。タスクがタイムアウトになる場合、タイムアウト時間を増やすか、モードを '増分' に変更することをご検討ください。\n **[警告] 完全モードでは、リソース グループの既存リソースのうち、テンプレートで指定されていないものがすべて削除されます。デプロイ先のリソース グループに、必要なリソースのうち、テンプレートで指定されていないものが含まれていないことをご確認ください。**\n\n 検証モードでは、実際のリソースを作成する前にテンプレートに関する問題を見つけることができます。検証モードでは、実際のリソースを作成する前にテンプレートに関する問題を見つけることができます。このモードでは、リソースがデプロイされていない場合でも、リソース グループが作成されることに注意してください。\n\n 既定では増分モードが使用されます。", + "loc.input.label.deploymentName": "デプロイ名", + "loc.input.help.deploymentName": "作成するリソース グループ配置の名前を指定します。", + "loc.input.label.deploymentOutputs": "配置出力", + "loc.input.help.deploymentOutputs": "出力変数の変数の名前を指定します。これには、現在のデプロイ オブジェクトの出力セクションが文字列形式で含まれます。\"ConvertFrom-Json\" PowerShell コマンドレットを使用して JSON オブジェクトを解析し、個々の出力値にアクセスできます。詳細については、[こちら](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs) を参照してください", + "loc.input.label.addSpnToEnvironment": "オーバーライド パラメーターでサービス プリンシパルの詳細にアクセスする", + "loc.input.help.addSpnToEnvironment": "選択した Azure エンドポイントのサービス プリンシパル ID とキーを、スクリプトの実行環境に追加します。オーバーライド パラメーターで `-key $servicePrincipalKey` のように、`$servicePrincipalId` と `$servicePrincipalKey` の変数を使用できます", + "loc.messages.CheckResourceGroupExistence": "次のリソース グループが存在するかどうか確認しています: %s。", + "loc.messages.ResourceGroupStatusFetchFailed": "リソース グループの状態を確認できませんでした。エラー: %s。", + "loc.messages.ResourceGroupStatus": "リソース グループが存在しています: %s。", + "loc.messages.ResourceGroupCreationFailed": "リソース グループを作成できませんでした。エラー: %s", + "loc.messages.CreatingNewRG": "リソース グループ %s を作成しています", + "loc.messages.CreatedRG": "リソース グループが正常に作成されました。", + "loc.messages.CreatingTemplateDeployment": "展開パラメーターを作成しています。", + "loc.messages.TemplateParsingFailed": "テンプレート ファイル ( '%s' ) が有効であることをご確認ください。次のエラーにより、解析中にタスクが失敗しました: %s", + "loc.messages.FileFetchFailed": "ファイルをダウンロードできませんでした。URL: '%s'。エラー: %s", + "loc.messages.ParametersFileParsingFailed": "パラメーター ファイル ( '%s' ) が有効であることをご確認ください。次のエラーにより、解析中にタスクが失敗しました: %s", + "loc.messages.StartingDeployment": "配置を開始しています。", + "loc.messages.CreateTemplateDeploymentSucceeded": "テンプレートが正常に展開されました。", + "loc.messages.CreateTemplateDeploymentFailed": "テンプレート展開の作成中または更新中にタスクが失敗しました。", + "loc.messages.ErrorsInYourDeployment": "配置にエラーがありました。エラー コード: %s。", + "loc.messages.Details": "詳細:", + "loc.messages.ErrorType": "誤差の種類:", + "loc.messages.PolicyDefinitionName": "ポリシーの定義名:", + "loc.messages.PolicyAssignmentName": "ポリシーの割り当て名:", + "loc.messages.StartingValidation": "テンプレートの検証を開始しています。", + "loc.messages.ValidDeployment": "テンプレートの配置の検証が正常に完了しました。", + "loc.messages.CreateTemplateDeploymentValidationFailed": "テンプレートの検証が失敗しました。エラー: %s。", + "loc.messages.DeletingResourceGroup": "削除中のリソース グループ: %s", + "loc.messages.CouldNotDeletedResourceGroup": "リソース グループ '%s' を削除できませんでした。操作は次のエラーにより失敗しました: %s", + "loc.messages.DeletedResourceGroup": "削除されたリソース グループ: %s", + "loc.messages.InvalidAction": "このアクションは定義されていません。タスクの作成者にご確認ください。", + "loc.messages.ARGD_ConstructorFailed": "初期化中にタスクが失敗しました。エラー: %s", + "loc.messages.InvalidTemplateLocation": "指定されたテンプレートの場所が無効です。タスクは 'リンクされた成果物' または 'ファイルの URL' のみをサポートします", + "loc.messages.EncodingNotSupported": "ファイル '%s' のエンコードは '%s' ですが、これはサポートされていません。サポートされているファイル エンコードは ['utf-8'、'utf-16le'] です", + "loc.messages.CouldNotDetectEncoding": "ファイル '%s' のエンコードを検出できませんでした", + "loc.messages.DetectedFileEncoding": "ファイル '%s' から検出されたエンコードは '%s' です", + "loc.messages.ErrorWhileParsingParameter": "'%s' パラメーターをオーバーライドしているときに、'%s' が原因でエラーが発生しました。JavaScript Object Notation (JSON) に従っていることをご確認ください", + "loc.messages.TemplateFilePatternMatchingMoreThanOneFile": "テンプレート ファイル パターン %s に一致する複数のファイルが見つかりました", + "loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile": "テンプレート パラメーター ファイル パターン %s に一致する複数のファイルが見つかりました", + "loc.messages.TemplateFilePatternMatchingNoFile": "テンプレート ファイル パターンに一致するファイルが見つかりませんでした", + "loc.messages.TemplateParameterFilePatternMatchingNoFile": "テンプレート ファイル パターンに一致するファイルが見つかりませんでした", + "loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile": "パラメーター ファイル パターンがファイルではなくディレクトリと一致しました。", + "loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile": "テンプレート ファイル パターンがファイルではなくディレクトリと一致しました: %s", + "loc.messages.AddedOutputVariable": "出力変数 '%s' が更新されました。この変数には、現在の配置オブジェクトの出力セクションが文字列形式で格納されています。", + "loc.messages.UnableToReadResponseBody": "応答本文を読み取ることができません。エラー: %s", + "loc.messages.MoreInformationOnAzurePortal": "詳細は Azure portal にあります", + "loc.messages.LogDeploymentName": "配置名は %s です", + "loc.messages.ResourceGroupNameNotProvided": "リソース グループ名を指定する必要があります", + "loc.messages.LocationNotProvided": "デプロイには場所が必要です", + "loc.messages.ARMServiceConnectionScope": "ARM サービス接続のデプロイ スコープ - %s", + "loc.messages.ServicePrincipalRoleAssignmentDetails": "名前 %s のサービス プリンシパルに、エンティティ %s の適切なロールが割り当てられていることをご確認ください。詳細については、リンク https://docs.microsoft.com/ja-jp/azure/role-based-access-control/role-assignments-portal を参照してください", + "loc.messages.ServicePrincipalFetchFailed": "サービス プリンシパルの詳細を取得中にエラーが発生しました: %s", + "loc.messages.FindMoreDeploymentDetailsAzurePortal": "タスクで Azure Resource Manager デプロイが正常に作成されましたが、デプロイに失敗しました。詳細な Azure Resource Manager デプロイ ログをご確認ください: (リンクをコピーして貼り付けてください) %s", + "loc.messages.ManagedServiceIdentityDetails": "デプロイに使用するマネージド サービス ID に、リソース グループ %s に対する適切なロールが割り当てられていることを確認してください。詳細については次のリンクをご覧ください: https://docs.microsoft.com/ja-jp/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal", + "loc.messages.CompleteDeploymentModeNotSupported": "デプロイ モード 'Complete' は '%s' スコープでのデプロイではサポートされていません", + "loc.messages.TemplateValidationFailure": "Azure Resource Manager テンプレートで検証エラーが見つかりました。これにより、テンプレートのデプロイが失敗する可能性があります。%s。https://docs.microsoft.com/ja-jp/azure/azure-resource-manager/templates/template-syntax の内容に従ってください", + "loc.messages.TroubleshootingGuide": "トラブルシューティング ガイドを参照して、自分の問題が取り上げられていないかご確認ください。https://docs.microsoft.com/ja-jp/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting", + "loc.messages.IncompatibleAzureCLIVersion": "Azure CLI バージョンは 2.20.0 以降である必要があります", + "loc.messages.AzureCLINotFound": "Azure CLI がエージェントに見つかりません。", + "loc.messages.FailedToFetchAzureCLIVersion": "エージェントから az cli バージョンをフェッチできませんでした。エラー: %s", + "loc.messages.BicepBuildFailed": "\"az bicep build\" が失敗しました。エラー: %s", + "loc.messages.BicepFileCleanupFailed": "Bicep ファイルを削除できませんでした。エラー: %s" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/ko-KR/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/ko-KR/resources.resjson new file mode 100644 index 000000000000..159f3afd775f --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/ko-KR/resources.resjson @@ -0,0 +1,97 @@ +{ + "loc.friendlyName": "ARM 템플릿 배포", + "loc.helpMarkDown": "[이 작업에 대한 자세한 정보](https://aka.ms/armtaskreadme)", + "loc.description": "ARM(Azure Resource Manager) 템플릿을 모든 배포 범위에 배포", + "loc.instanceNameFormat": "ARM 템플릿 배포: $(deploymentScope) 범위", + "loc.releaseNotes": "- 모든 배포 범위에서 배포 지원이 추가되었습니다.\n - 모든 VM 관련 작업을 제거했습니다.", + "loc.group.displayName.AzureDetails": "Azure 세부 정보", + "loc.group.displayName.Template": "템플릿", + "loc.group.displayName.Advanced": "고급", + "loc.input.label.deploymentScope": "배포 범위", + "loc.input.help.deploymentScope": "배포의 배포 범위입니다. 배포 범위에 대한 자세한 내용은 이 [링크](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)를 참조하세요.", + "loc.input.label.ConnectedServiceName": "Azure Resource Manager 연결", + "loc.input.help.ConnectedServiceName": "선택한 배포 범위에 액세스할 수 있는 Azure Resource Manager 서비스 연결을 선택합니다.", + "loc.input.label.subscriptionName": "구독", + "loc.input.help.subscriptionName": "Azure 구독 선택", + "loc.input.label.action": "작업", + "loc.input.help.action": "Azure 리소스 또는 리소스 그룹에서 수행할 작업입니다.", + "loc.input.label.resourceGroupName": "리소스 그룹", + "loc.input.help.resourceGroupName": "리소스 그룹의 이름을 제공합니다.", + "loc.input.label.location": "위치", + "loc.input.help.location": "리소스 그룹 배포 범위의 경우 리소스 그룹을 배포할 위치입니다. 구독에 이미 리소스 그룹이 있으면 이 값은 무시됩니다.\n 다른 배포 범위의 경우 배포 메타데이터를 저장할 위치입니다.", + "loc.input.label.templateLocation": "템플릿 위치", + "loc.input.label.csmFileLink": "템플릿 링크", + "loc.input.help.csmFileLink": "템플릿 파일의 URL을 지정합니다. 예를 들면 [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json)입니다. \n\n개인 저장소 계정에 저장된 템플릿을 배포하려면 템플릿의 URL에 SAS(공유 액세스 서명)를 검색하여 포함하세요. 예를 들면 /template.json?`입니다. 템플릿 파일 또는 연결된 템플릿을 저장소 계정으로 업로드하고 SAS 토큰을 생성하려면 [Azure 파일 복사](https://aka.ms/azurefilecopyreadme) 작업을 사용하거나 [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080)이나 [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911)를 사용하여 단계를 수행합니다.\n\n표에서 템플릿 매개 변수를 확인하려면 [템플릿 매개 변수 재정의] 텍스트 상자 옆에 있는 “…”을 클릭하세요. 이 기능을 사용하려면 소스에서 CORS 규칙이 사용하도록 설정되어 있어야 합니다. 템플릿이 Azure Storage Blob에 있는 경우에는 [여기](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests)를 참조하여 CORS를 사용하도록 설정하세요.", + "loc.input.label.csmParametersFileLink": "템플릿 매개 변수 링크", + "loc.input.help.csmParametersFileLink": "매개 변수 파일의 URL을 지정합니다. 예를 들면 [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json)입니다. \n\n매개 변수 파일을 개인 저장소 계정으로 업로드하려면 템플릿의 URL에 SAS(공유 액세스 서명)를 검색하여 포함하세요. 예를 들면 `/template.json?`입니다. 매개 변수 파일을 저장소 계정으로 업로드하여 SAS 토큰을 생성하려면 [Azure 파일 복사](https://aka.ms/azurefilecopyreadme) 작업을 사용하거나 [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) 또는 [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911)를 사용하여 단계를 수행합니다.\n\n표에서 템플릿 매개 변수를 보려면 [템플릿 매개 변수 재정의] 텍스트 상자 옆에 있는 “…”을 클릭하세요. 이 기능을 사용하려면 소스에서 CORS 규칙이 사용하도록 설정되어 있어야 합니다. 템플릿이 Azure Storage Blob에 있는 경우에는 [여기](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests)를 참조하여 CORS를 사용하도록 설정하세요.", + "loc.input.label.csmFile": "템플릿", + "loc.input.help.csmFile": "Azure Resource Manager 템플릿을 가리키는 경로 또는 패턴을 지정합니다. 템플릿에 대한 자세한 내용은 https://aka.ms/azuretemplates를 참조하세요. 즉시 시작하려면 https://aka.ms/sampletemplate 템플릿을 사용하세요. '연결된 아티팩트'는 Azure CLI 버전 > 2.20.0인 경우 Bicep 파일도 지원합니다.", + "loc.input.label.csmParametersFile": "템플릿 매개 변수", + "loc.input.help.csmParametersFile": "Azure Resource Manager 템플릿의 매개 변수 파일을 가리키는 경로 또는 패턴을 지정합니다. '연결된 아티팩트'는 Azure CLI 버전 > 2.20.0인 경우 Bicep 파일도 지원합니다.", + "loc.input.label.overrideParameters": "템플릿 매개 변수 재정의", + "loc.input.help.overrideParameters": "템플릿 매개 변수를 표 형태로 보려면 [매개 변수 재정의] 텍스트 상자 옆에 있는 \"...\"을 클릭합니다. 이 기능을 사용하려면 소스에서 CORS 규칙을 사용하도록 설정해야 합니다. 템플릿이 Azure Storage Blob에 있는 경우 [이 문서](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests)를 참조하여 CORS를 사용하도록 설정하세요. 또는 텍스트 상자에 재정의할 템플릿 매개 변수를 입력합니다. 예:
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).
사용 중인 매개 변수 값이 여러 단어로 이루어진 경우에는 변수를 사용해서 전달하더라도 따옴표로 묶으세요. 예: -name \"parameter value\" -name2 \"$(var)\"
개체 형식 매개 변수를 재정의하려면 묶은 JSON 개체를 사용합니다. 예: -options [\"option1\"] -map {\"key1\": \"value1\" }. ", + "loc.input.label.deploymentMode": "배포 모드", + "loc.input.help.deploymentMode": "자세한 내용은 [이 항목](https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-modes)을 참조하세요. \n\n 증분 모드는 배포를 리소스 그룹에 대한 증분 업데이트로 처리합니다. 리소스 그룹에 존재하지만 템플릿에 지정되지 않은 변경되지 않은 리소스를 그대로 둡니다. \n\n 전체 모드는 템플릿에 없는 리소스를 삭제합니다. 완료 모드는 증분 모드보다 상대적으로 시간이 더 걸립니다. 작업 시간이 초과되면 시간 초과를 늘리거나 모드를 '증분'으로 변경하는 것이 좋습니다. \n **[경고] 전체 모드는 템플릿에 지정되지 않은 리소스 그룹의 기존 리소스를 모두 삭제합니다. 배포할 리소스 그룹에 템플릿에 지정되지 않은 필수 리소스가 없는지 검토하세요.** \n\n 유효성 검사 모드를 사용하면 실제 리소스를 생성하기 전에 템플릿의 문제를 찾을 수 있습니다. 유효성 검사 모드를 사용하면 실제 리소스를 생성하기 전에 템플릿의 문제를 찾을 수 있습니다. 이 모드는 리소스를 배포하지 않더라도 어쨌든 리소스 그룹을 생성합니다.\n\n 기본적으로 증분 모드가 사용됩니다.", + "loc.input.label.deploymentName": "배포 이름", + "loc.input.help.deploymentName": "만들 리소스 그룹 배포의 이름을 지정합니다.", + "loc.input.label.deploymentOutputs": "배포 출력", + "loc.input.help.deploymentOutputs": "현재 배포 개체의 출력 섹션이 포함될 출력 변수의 변수 이름을 문자열 형식으로 제공합니다. \"ConvertFrom-Json\" PowerShell cmdlet을 사용하여 JSON 개체를 구문 분석하고 개별 출력 값에 액세스할 수 있습니다. 자세한 내용은 [이 링크](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)를 참조하세요.", + "loc.input.label.addSpnToEnvironment": "재정의 매개 변수의 서비스 주체 정보 액세스", + "loc.input.help.addSpnToEnvironment": "선택한 Azure 엔드포인트의 서비스 주체 ID 및 키를 스크립트의 실행 환경에 추가합니다. 재정의 매개 변수에 '$servicePrincipalId' 및 '$servicePrincipalKey' 변수를 사용할 수 있습니다(예: '-key $servicePrincipalKey').", + "loc.messages.CheckResourceGroupExistence": "리소스 그룹 %s이(가) 있는지 확인하는 중입니다.", + "loc.messages.ResourceGroupStatusFetchFailed": "리소스 그룹 상태를 확인하지 못했습니다. 오류: %s.", + "loc.messages.ResourceGroupStatus": "리소스 그룹이 있음: %s.", + "loc.messages.ResourceGroupCreationFailed": "리소스 그룹을 만들지 못했습니다. 오류: %s", + "loc.messages.CreatingNewRG": "리소스 그룹을 만드는 중: %s", + "loc.messages.CreatedRG": "리소스 그룹을 만들었습니다.", + "loc.messages.CreatingTemplateDeployment": "배포 매개 변수를 만드는 중입니다.", + "loc.messages.TemplateParsingFailed": "템플릿 파일('%s')이 유효한지 확인하세요. 구문 분석하는 동안 %s 오류로 인해 작업에 실패했습니다.", + "loc.messages.FileFetchFailed": "파일을 다운로드하지 못했습니다. URL: '%s'. 오류: %s", + "loc.messages.ParametersFileParsingFailed": "매개 변수 파일('%s')이 유효한지 확인하세요. 구문 분석하는 동안 %s 오류로 인해 작업에 실패했습니다.", + "loc.messages.StartingDeployment": "배포를 시작하는 중입니다.", + "loc.messages.CreateTemplateDeploymentSucceeded": "템플릿을 배포했습니다.", + "loc.messages.CreateTemplateDeploymentFailed": "템플릿 배포를 만들거나 업데이트하는 동안 작업에 실패했습니다.", + "loc.messages.ErrorsInYourDeployment": "배포 시 오류가 발생했습니다. 오류 코드: %s.", + "loc.messages.Details": "세부 정보:", + "loc.messages.ErrorType": "오류 유형:", + "loc.messages.PolicyDefinitionName": "정책 정의 이름:", + "loc.messages.PolicyAssignmentName": "정책 할당 이름:", + "loc.messages.StartingValidation": "템플릿 유효성 검사를 시작하는 중입니다.", + "loc.messages.ValidDeployment": "템플릿 배포 유효성 검사가 완료되었습니다.", + "loc.messages.CreateTemplateDeploymentValidationFailed": "템플릿 유효성 검사에 실패했습니다. 오류: %s.", + "loc.messages.DeletingResourceGroup": "리소스 그룹 삭제 중: %s", + "loc.messages.CouldNotDeletedResourceGroup": "리소스 그룹 '%s'을(를) 삭제할 수 없습니다. %s 오류가 발생하여 작업에 실패했습니다.", + "loc.messages.DeletedResourceGroup": "리소스 그룹 삭제됨: %s", + "loc.messages.InvalidAction": "이 작업은 정의되지 않았습니다. 작업 작성자에게 확인하세요.", + "loc.messages.ARGD_ConstructorFailed": "초기화 중 작업에 실패했습니다. 오류: %s", + "loc.messages.InvalidTemplateLocation": "제공된 템플릿 위치가 잘못되었습니다. 작업은 '연결된 아티팩트' 또는 '파일의 URL'만 지원합니다.", + "loc.messages.EncodingNotSupported": "'%s' 파일의 인코딩 '%s'이(가) 지원되지 않습니다. 지원되는 파일 인코딩은 ['utf-8', 'utf-16le']입니다.", + "loc.messages.CouldNotDetectEncoding": "'%s' 파일의 인코딩을 검색할 수 없습니다.", + "loc.messages.DetectedFileEncoding": "검색된 '%s' 파일의 인코딩은 '%s'입니다.", + "loc.messages.ErrorWhileParsingParameter": "'%s' 매개 변수를 재정의하는 동안 오류가 발생했습니다(원인: '%s'). JSON(JavaScript Object Notation)을 따르는지 확인하세요.", + "loc.messages.TemplateFilePatternMatchingMoreThanOneFile": "템플릿 파일 패턴과 일치하는 파일이 여러 개 있습니다. %s", + "loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile": "템플릿 매개 변수 파일 패턴과 일치하는 파일이 여러 개 있습니다. %s", + "loc.messages.TemplateFilePatternMatchingNoFile": "템플릿 파일 패턴과 일치하는 파일을 찾을 수 없습니다.", + "loc.messages.TemplateParameterFilePatternMatchingNoFile": "템플릿 파일 패턴과 일치하는 파일을 찾을 수 없습니다.", + "loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile": "매개 변수 파일 패턴이 파일이 아니라 디렉터리를 찾습니다.", + "loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile": "템플릿 파일 패턴이 파일이 아니라 디렉터리를 찾습니다. %s", + "loc.messages.AddedOutputVariable": "현재 배포 개체의 출력 섹션을 문자열 형식으로 포함하는 출력 변수 '%s'을(를) 업데이트했습니다.", + "loc.messages.UnableToReadResponseBody": "응답 본문을 읽을 수 없습니다. 오류: %s", + "loc.messages.MoreInformationOnAzurePortal": "Azure Portal에 대한 자세한 정보", + "loc.messages.LogDeploymentName": "배포 이름은 %s입니다.", + "loc.messages.ResourceGroupNameNotProvided": "리소스 그룹 이름을 제공해야 합니다.", + "loc.messages.LocationNotProvided": "배포의 위치가 필요합니다.", + "loc.messages.ARMServiceConnectionScope": "ARM 서비스 연결 배포 범위 - %s", + "loc.messages.ServicePrincipalRoleAssignmentDetails": "이름이 %s인 서비스 주체에게 엔터티 %s에 대한 올바른 역할이 할당되었는지 확인하세요. 자세한 내용을 보려면 https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal 링크를 참조하세요.", + "loc.messages.ServicePrincipalFetchFailed": "서비스 주체 세부 정보를 가져오는 동안 오류 발생: %s", + "loc.messages.FindMoreDeploymentDetailsAzurePortal": "Azure Resource Manager 배포에서 작업을 만들었지만 배포하지 못했습니다. (링크 복사하여 붙여넣기) %s에서 자세한 Azure Resource Manager 배포 로그를 참조하세요.", + "loc.messages.ManagedServiceIdentityDetails": "배포에 사용되는 관리 서비스 ID에 리소스 그룹 %s에 대한 올바른 역할이 할당되어 있는지 확인하세요. 자세한 내용은 https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal 링크를 참조하세요.", + "loc.messages.CompleteDeploymentModeNotSupported": "배포 모드 '완료'는 '%s' 범위의 배포에 대해 지원되지 않습니다.", + "loc.messages.TemplateValidationFailure": "Azure Resource Manager 템플릿에 유효성 검사 오류가 있습니다. 이로 인해 템플릿 배포가 실패할 수 있습니다. %s. https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax를 따라 이동하세요.", + "loc.messages.TroubleshootingGuide": "문제가 해결되었는지 확인하려면 https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting에서 문제 해결 가이드를 확인하세요.", + "loc.messages.IncompatibleAzureCLIVersion": "Azure CLI 버전은 >= 2.20.0이어야 합니다.", + "loc.messages.AzureCLINotFound": "에이전트에서 Azure CLI를 찾을 수 없습니다.", + "loc.messages.FailedToFetchAzureCLIVersion": "에이전트에서 az cli 버전을 가져오지 못했습니다. 오류: %s", + "loc.messages.BicepBuildFailed": "\"az bicep 빌드\"가 실패했습니다. 오류: %s", + "loc.messages.BicepFileCleanupFailed": "Bicep 파일을 삭제하지 못했습니다. 오류: %s" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/ru-RU/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/ru-RU/resources.resjson new file mode 100644 index 000000000000..eb012c0c506e --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/ru-RU/resources.resjson @@ -0,0 +1,97 @@ +{ + "loc.friendlyName": "Развертывание шаблона ARM", + "loc.helpMarkDown": "[См. дополнительные сведения об этой задаче](https://aka.ms/armtaskreadme)", + "loc.description": "Развертывание шаблона Azure Resource Manager (ARM) во всех областях развертывания", + "loc.instanceNameFormat": "Развертывание шаблона ARM: область $(deploymentScope)", + "loc.releaseNotes": "— Добавлена поддержка развертывания во всех областях развертывания.\n— Удалены все действия, относящиеся к виртуальной машине.", + "loc.group.displayName.AzureDetails": "Сведения об Azure", + "loc.group.displayName.Template": "Шаблон", + "loc.group.displayName.Advanced": "Дополнительно", + "loc.input.label.deploymentScope": "Область развертывания", + "loc.input.help.deploymentScope": "Область развертывания. Дополнительные сведения об областях развертывания см. по этой [ссылке](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)", + "loc.input.label.ConnectedServiceName": "Подключение к Azure Resource Manager", + "loc.input.help.ConnectedServiceName": "Выберите подключение службы Azure Resource Manager, имеющее доступ к выбранной области развертывания.", + "loc.input.label.subscriptionName": "Подписка", + "loc.input.help.subscriptionName": "Выберите подписку Azure", + "loc.input.label.action": "Действие", + "loc.input.help.action": "Действие, выполняемое с ресурсами или группой ресурсов Azure.", + "loc.input.label.resourceGroupName": "Группа ресурсов", + "loc.input.help.resourceGroupName": "Укажите имя группы ресурсов.", + "loc.input.label.location": "Расположение", + "loc.input.help.location": "Для области развертывания группы ресурсов — расположение для развертывания группы ресурсов. Если группа ресурсов уже существует в подписке, это значение будет проигнорировано.\n Для другой области развертывания — расположение для хранения метаданных развертывания.", + "loc.input.label.templateLocation": "Расположение шаблона", + "loc.input.label.csmFileLink": "Ссылка на шаблон", + "loc.input.help.csmFileLink": "Укажите URL-адрес файла шаблона. Пример: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json). \n\nЧтобы развернуть шаблон, который хранится в закрытой учетной записи хранения, извлеките маркер подписанного URL-адреса (SAS) и добавьте его в URL-адрес шаблона. Пример: \"/template.json?<маркер_SAS>\". Чтобы отправить файл шаблона (или связанный шаблон) в учетную запись хранения и сгенерировать маркер SAS, можно воспользоваться задачей [Копирование файлов Azure](https://aka.ms/azurefilecopyreadme) или выполнить необходимые действия в [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) или [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911).\n\nЧтобы просмотреть таблицу параметров шаблона, щелкните многоточие (\"…\") рядом с текстовым полем \"Переопределить параметры шаблона\". Эта функция требует включения правил CORS в источнике. Если шаблоны находятся в хранилище BLOB-объектов Azure, обратитесь к [этой статье](https://docs.microsoft.com/ru-ru/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests), в которой описывается включение CORS.", + "loc.input.label.csmParametersFileLink": "Ссылка на параметры шаблона", + "loc.input.help.csmParametersFileLink": "Укажите URL-адрес файла параметров. Пример: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json). \n\nЧтобы воспользоваться файлом, который хранится в закрытой учетной записи хранения, извлеките маркер подписанного URL-адреса (SAS) и добавьте его в URL-адрес шаблона. Пример: \"/template.json?<маркер_SAS>\". Чтобы отправить файл параметров в учетную запись хранения и сгенерировать маркер SAS, можно воспользоваться задачей [Копирование файлов Azure](https://aka.ms/azurefilecopyreadme) или выполнить необходимые действия в [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) или [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911). \n\nЧтобы просмотреть таблицу параметров шаблона, щелкните многоточие (\"…\") рядом с текстовым полем \"Переопределить параметры шаблона\". Эта функция требует включения правил CORS в источнике. Если шаблоны находятся в хранилище BLOB-объектов Azure, обратитесь к [этой статье](https://docs.microsoft.com/ru-ru/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests), в которой описывается включение CORS.", + "loc.input.label.csmFile": "Шаблон", + "loc.input.help.csmFile": "Укажите путь или шаблон пути к шаблону диспетчера Azure Resource Manager. Дополнительные сведения о шаблонах см. по ссылке https://aka.ms/azuretemplates. Чтобы начать работу немедленно, используйте шаблон https://aka.ms/sampletemplate. \"Связанный артефакт\" также поддерживает файлы Bicep, если версия Azure CLI > 2.20.0", + "loc.input.label.csmParametersFile": "Параметры шаблона", + "loc.input.help.csmParametersFile": "Укажите путь или шаблон для файла параметров шаблона Azure Resource Manager. \"Связанный артефакт\" также поддерживает файлы Bicep, если версия Azure CLI > 2.20.0", + "loc.input.label.overrideParameters": "Переопределить параметры шаблона", + "loc.input.help.overrideParameters": "Чтобы просмотреть параметры шаблона в сетке, щелкните \"…\" рядом с текстовым полем \"Переопределить параметры\". Для использования этой функции на источнике должны быть включены правила CORS. Если шаблоны находятся в BLOB-объекте службы хранилища Azure, обратитесь к [этой статье](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests), чтобы включить CORS, или укажите переопределяемые параметры шаблона в текстовом поле. Например:
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).
Если значение используемого параметра состоит из нескольких слов, заключите их в кавычки, даже если они передаются с помощью переменных. Например: -name \"значение параметра\" -name2 \"$(var)\"
Чтобы переопределить параметры типов объектов, используйте объекты JSON, преобразованные в строку. Например: -options [\"параметр1\"] -map {\"key1\": \"значение1\" }. ", + "loc.input.label.deploymentMode": "Режим развертывания", + "loc.input.help.deploymentMode": "Дополнительные сведения см. [здесь](https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-modes). \n\n В добавочном режиме развертывания обрабатываются как добавочные обновления в группе ресурсов. Ресурсы, которые имеются в группе ресурсов, но не указаны в шаблоне, не изменяются. \n\n В полном режиме ресурсы, отсутствующие в шаблоне, удаляются. Для полного режима требуется больше времени, чем для добавочного режима. Если время ожидания задачи истекло, увеличьте время ожидания или измените режим на добавочный. \n **[Внимание!] В полном режиме будут удалены все имеющиеся ресурсы в группе ресурсов, которые не указаны в шаблоне. Проверьте, есть ли в развертываемой группе ресурсов нужные ресурсы, которые не указаны в шаблоне.** \n\n Режим проверки позволяет обнаружить проблемы с шаблоном до создания реальных ресурсов. Обратите внимание, что в этом режиме будет создана группа ресурсов, даже если развертывание ресурсов не происходит.\n\n По умолчанию используется добавочный режим.", + "loc.input.label.deploymentName": "Имя развертывания", + "loc.input.help.deploymentName": "Указывает имя создаваемого развертывания группы ресурсов.", + "loc.input.label.deploymentOutputs": "Выходные данные развертывания", + "loc.input.help.deploymentOutputs": "Укажите имя для выходной переменной, которая будет содержать раздел выходных данных текущего объекта развертывания в строковом формате. Вы можете использовать командлет ConvertFrom-Json PowerShell для анализа объекта JSON и доступа к отдельным выходным значениям. Дополнительные сведения см. [здесь](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)", + "loc.input.label.addSpnToEnvironment": "Доступ к сведениям о субъекте-службе в параметрах переопределения", + "loc.input.help.addSpnToEnvironment": "Добавляет идентификатор субъекта-службы и ключ выбранной конечной точки Azure в среду выполнения скрипта. Переменные \"$servicePrincipalId\" и \"$servicePrincipalKey\" можно использовать в таких параметрах переопределения, как \"-key $servicePrincipalKey\"", + "loc.messages.CheckResourceGroupExistence": "Проверка наличия следующей группы ресурсов: %s.", + "loc.messages.ResourceGroupStatusFetchFailed": "Не удалось проверить состояние группы ресурсов. Ошибка: %s.", + "loc.messages.ResourceGroupStatus": "Такая группа ресурсов существует: %s.", + "loc.messages.ResourceGroupCreationFailed": "Не удалось создать группу ресурсов. Ошибка: %s", + "loc.messages.CreatingNewRG": "Создание группы ресурсов: %s", + "loc.messages.CreatedRG": "Группа ресурсов успешно создана.", + "loc.messages.CreatingTemplateDeployment": "Создание параметров развертывания.", + "loc.messages.TemplateParsingFailed": "Убедитесь, что файл шаблона (\"%s\") допустимый. Не удалось выполнить задачу при синтаксическом анализе следующей ошибки: %s", + "loc.messages.FileFetchFailed": "Не удалось скачать файл. URL-адрес: \"%s\". Ошибка: %s", + "loc.messages.ParametersFileParsingFailed": "Убедитесь в том, что файл параметров (\"%s\") является допустимым. Не удалось выполнить задачу при синтаксическом анализе следующей ошибки: %s", + "loc.messages.StartingDeployment": "Запуск развертывания.", + "loc.messages.CreateTemplateDeploymentSucceeded": "Шаблон успешно развернут.", + "loc.messages.CreateTemplateDeploymentFailed": "Сбой задачи при создании или обновлении развертывания шаблона.", + "loc.messages.ErrorsInYourDeployment": "В развертывании обнаружены ошибки. Код ошибки: %s.", + "loc.messages.Details": "Сведения:", + "loc.messages.ErrorType": "Тип ошибки:", + "loc.messages.PolicyDefinitionName": "Имя определения политики:", + "loc.messages.PolicyAssignmentName": "Имя назначения политики:", + "loc.messages.StartingValidation": "Запуск проверки шаблона.", + "loc.messages.ValidDeployment": "Проверка развертывания шаблона выполнена успешно.", + "loc.messages.CreateTemplateDeploymentValidationFailed": "Сбой при проверке шаблона. Ошибка: %s.", + "loc.messages.DeletingResourceGroup": "Удаление группы ресурсов: %s", + "loc.messages.CouldNotDeletedResourceGroup": "Не удалось удалить группу ресурсов: \"%s\". Операция завершилась ошибкой: %s", + "loc.messages.DeletedResourceGroup": "Удаленная группа ресурсов: %s", + "loc.messages.InvalidAction": "Это действие не определено. Свяжитесь с автором задачи.", + "loc.messages.ARGD_ConstructorFailed": "Сбой при инициализации задачи. Ошибка: %s", + "loc.messages.InvalidTemplateLocation": "Указано недопустимое расположение шаблона. Задача поддерживает только параметры \"Связанный артефакт\" или \"URL-адрес файла\".", + "loc.messages.EncodingNotSupported": "Кодировка файла \"%s\" (\"%s\") не поддерживается. Поддерживаемые кодировки файлов: [\"utf-8\", \"utf-16le\"]", + "loc.messages.CouldNotDetectEncoding": "Не удалось определить кодировку файла \"%s\"", + "loc.messages.DetectedFileEncoding": "Для файла \"%s\" обнаружена кодировка \"%s\"", + "loc.messages.ErrorWhileParsingParameter": "Произошла ошибка при переопределении параметра \"%s\" из-за \"%s\". Убедитесь, что этот параметр соответствует нотации объектов JavaScript (JSON)", + "loc.messages.TemplateFilePatternMatchingMoreThanOneFile": "Найдено несколько файлов, соответствующих шаблону пути к файлу шаблона: %s", + "loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile": "Найдено несколько файлов, соответствующих шаблону пути к файлу параметров: %s", + "loc.messages.TemplateFilePatternMatchingNoFile": "Не удалось найти ни один файл, соответствующий шаблону", + "loc.messages.TemplateParameterFilePatternMatchingNoFile": "Не удалось найти ни один файл, соответствующий шаблону", + "loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile": "Шаблон пути к файлу параметров соответствует каталогу, а не файлу.", + "loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile": "Шаблон пути к файлу шаблона соответствует каталогу, а не файлу: %s", + "loc.messages.AddedOutputVariable": "Обновлена выходная переменная \"%s\", которая содержит раздел выходных данных текущего объекта развертывания в строковом формате.", + "loc.messages.UnableToReadResponseBody": "Не удалось прочитать текст ответа. Ошибка: %s", + "loc.messages.MoreInformationOnAzurePortal": "Дополнительные сведения о портале Azure", + "loc.messages.LogDeploymentName": "Имя развертывания: %s", + "loc.messages.ResourceGroupNameNotProvided": "Необходимо указать имя группы ресурсов", + "loc.messages.LocationNotProvided": "Для развертывания требуется расположение", + "loc.messages.ARMServiceConnectionScope": "Область развертывания подключения к службе ARM — %s", + "loc.messages.ServicePrincipalRoleAssignmentDetails": "Убедитесь, что субъекту-службе с именем %s назначены нужные роли для сущности %s. Чтобы получить дополнительные сведения, перейдите по ссылке https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal", + "loc.messages.ServicePrincipalFetchFailed": "Ошибка при извлечении сведений о субъекте-службе: %s", + "loc.messages.FindMoreDeploymentDetailsAzurePortal": "Задача успешно создала развертывание Azure Resource Manager, но это развертывание выполнить не удалось. Подробные журналы развертывания Azure Resource Manager см. по адресу (скопируйте и вставьте ссылку) %s", + "loc.messages.ManagedServiceIdentityDetails": "Убедитесь, что Управляемому удостоверению службы, используемому для развертывания, назначены нужные роли для группы ресурсов %s. Чтобы получить дополнительные сведения, перейдите по ссылке https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal", + "loc.messages.CompleteDeploymentModeNotSupported": "Режим развертывания \"Полный\" не поддерживается для развертывания в области \"%s\"", + "loc.messages.TemplateValidationFailure": "В шаблоне Azure Resource Manager обнаружены ошибки проверки. Это может привести к сбою развертывания шаблона. %s. Следуйте указаниям на следующей странице: https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax", + "loc.messages.TroubleshootingGuide": "Ознакомьтесь с руководством по устранению неполадок, чтобы узнать, решена ли указанная вами проблема: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting.", + "loc.messages.IncompatibleAzureCLIVersion": "Версия Azure CLI должна быть >= 2.20.0", + "loc.messages.AzureCLINotFound": "Azure CLI не найден в агенте.", + "loc.messages.FailedToFetchAzureCLIVersion": "Не удалось получить версию AZ CLI от агента. Ошибка: %s", + "loc.messages.BicepBuildFailed": "Не удалось выполнить команду \"az bicep build\". Ошибка: %s", + "loc.messages.BicepFileCleanupFailed": "Не удалось удалить файл Bicep. Ошибка: %s" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/zh-CN/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/zh-CN/resources.resjson new file mode 100644 index 000000000000..5c539646256d --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/zh-CN/resources.resjson @@ -0,0 +1,97 @@ +{ + "loc.friendlyName": "ARM 模板部署", + "loc.helpMarkDown": "[详细了解此任务](https://aka.ms/armtaskreadme)", + "loc.description": "将 Azure 资源管理器(ARM)模板部署到所有部署范围", + "loc.instanceNameFormat": "ARM 模板部署: $(deploymentScope)范围", + "loc.releaseNotes": "- 已在所有部署范围添加部署支持。\n- 已删除所有 VM 相关操作。", + "loc.group.displayName.AzureDetails": "Azure 详细信息", + "loc.group.displayName.Template": "模板", + "loc.group.displayName.Advanced": "高级", + "loc.input.label.deploymentScope": "部署范围", + "loc.input.help.deploymentScope": "部署的部署范围。若要了解部署范围的详细信息,请参阅此[链接](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)", + "loc.input.label.ConnectedServiceName": "Azure 资源管理器连接", + "loc.input.help.ConnectedServiceName": "选择有权访问所选部署范围的 Azure 资源管理器服务连接。", + "loc.input.label.subscriptionName": "订阅", + "loc.input.help.subscriptionName": "选择 Azure 订阅", + "loc.input.label.action": "操作", + "loc.input.help.action": "将对 Azure 资源或资源组执行的操作。", + "loc.input.label.resourceGroupName": "资源组", + "loc.input.help.resourceGroupName": "提供资源组的名称。", + "loc.input.label.location": "位置", + "loc.input.help.location": "资源组部署范围: 部署资源组的位置。如果订阅中已存在该资源组,则将忽略此值。\n其他部署范围: 存储部署元数据的位置。", + "loc.input.label.templateLocation": "模板位置", + "loc.input.label.csmFileLink": "模板链接", + "loc.input.help.csmFileLink": "指定模板文件的 URL。例如: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\n若要部署存储在私有存储帐户中的模板,请检索共享访问签名(SAS)令牌并将其包括在模板的 URL 中。例如: \"/template.json?\" 若要将模板文件(或链接的模板)上传到存储帐户并生成 SAS 令牌,可以使用 [Azure 文件复制](https://aka.ms/azurefilecopyreadme)任务,或者使用 [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) 或 [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911)按步骤操作。\n\n若要以网格方式查看模板参数,请单击“替代”模板参数文本框旁的“…”。此功能要求在源中启用 CORS 规则。如果模板在 Azure 存储 blob 中,请参阅[此文](https://docs.microsoft.com/zh-cn/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests)来启用 CORS。", + "loc.input.label.csmParametersFileLink": "模板参数链接", + "loc.input.help.csmParametersFileLink": "指定参数文件的 URL。例如: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json) \n\n若要使用存储在私有存储帐户中的文件,请检索共享访问签名(SAS)令牌并将其包括在模板的 URL 中。例如: \"/template.json?\"若要将参数文件上传到存储帐户并生成 SAS 令牌,可以使用 [Azure 文件复制](https://aka.ms/azurefilecopyreadme)任务,或者使用 [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) 或 [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911)按步骤操作。\n\n若要以网格方式查看模板参数,请单击“替代”模板参数文本框旁的“…”。此功能要求在源中启用 CORS 规则。如果模板在 Azure 存储 blob 中,请参阅[此文](https://docs.microsoft.com/zh-cn/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests)来启用 CORS。", + "loc.input.label.csmFile": "模板", + "loc.input.help.csmFile": "指定指向 Azure 资源管理器模板的路径或模式。有关模板的详细信息,请参阅 https://aka.ms/azuretemplates。要立即开始使用模板,请参阅 https://aka.ms/sampletemplate。当 Azure CLI版本 > 2.20.0 时,“链接项目”还支持 Bicep 文件", + "loc.input.label.csmParametersFile": "模板参数", + "loc.input.help.csmParametersFile": "为 Azure 资源管理器模板的参数文件指定路径或模式指向。当 Azure CLI版本 > 2.20.0 时,“链接项目”还支持 Bicep 文件", + "loc.input.label.overrideParameters": "替代模板参数", + "loc.input.help.overrideParameters": "若要查看网格中的模板参数,请单击“替代参数”文本框旁的 \"…\"。此功能需要在源启用 CORS 规则。如果模板位于 Azure 存储 blob 中,请参阅 [此文章](https://docs.microsoft.com/zh-cn/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests)以启用 CORS。或键入文本框中重写的模板参数。例如,
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre)。
如果正在使用的参数值具有多个词,请将它们括在引号中,即使将使用变量传递它们。例如 -name \"parameter value\" -name2 \"$(var)\"
若要替代对象类型参数,请使用 stringified JSON 对象。例如 -options [\"option1\"] -map {\"key1\": \"value1\" }。", + "loc.input.label.deploymentMode": "部署模式", + "loc.input.help.deploymentMode": "有关详细信息,请参阅[此处](https://docs.microsoft.com/zh-cn/azure/azure-resource-manager/deployment-modes)。\n\n增量模式将部署作为资源组的增量更新进行处理。它会保留存在于资源组中但未在模板中指定的未更改资源。\n\n完整模式会删除不在模板中的资源。与增量模式相比,完整模式较为耗时。如果任务超时,请考虑增加超时时间,或将模式更改为“增量”。\n**[警告]完整模式将删除资源组中未在模板中指定的所有现有资源。如果要部署到的资源组不包含未在模板中指定的任何必要资源,请进行审查。\n\n使用验证模式,可以在创建实际资源之前查找模板的问题。通过验证模式,可在创建实际资源之前发现模板的问题。请注意,即使不创建任何资源,此模式仍将创建资源组。\n\n默认使用“增量”模式。", + "loc.input.label.deploymentName": "部署名称", + "loc.input.help.deploymentName": "指定要创建的资源组部署的名称。", + "loc.input.label.deploymentOutputs": "部署输出", + "loc.input.help.deploymentOutputs": "提供输出变量的变量名称,该输出变量中将包含字符串格式的当前部署对象的输出部分。可使用 \"ConvertFrom-Json\" PowerShell cmdlet 分析 JSON 对象并访问单个输出值。有关详细信息,请参阅[此链接](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)", + "loc.input.label.addSpnToEnvironment": "在替代参数中访问服务主体详细信息", + "loc.input.help.addSpnToEnvironment": "将选择的 Azure 终结点的服务主体 ID 和密钥添加到脚本的执行环境中。可以在 \"-key $servicePrincipalKey\" 等替代参数中使用以下变量: \"$servicePrincipalId\" 和 \"$servicePrincipalKey\"", + "loc.messages.CheckResourceGroupExistence": "正在检查是否存在以下资源组: %s。", + "loc.messages.ResourceGroupStatusFetchFailed": "未能检查资源组状态。错误: %s。", + "loc.messages.ResourceGroupStatus": "资源组已存在: %s。", + "loc.messages.ResourceGroupCreationFailed": "未能创建资源组。错误: %s", + "loc.messages.CreatingNewRG": "正在创建资源组: %s", + "loc.messages.CreatedRG": "已成功创建资源组。", + "loc.messages.CreatingTemplateDeployment": "正在创建部署参数。", + "loc.messages.TemplateParsingFailed": "请确保模板文件(“%s”)有效。分析过程中任务失败,出现以下错误: %s", + "loc.messages.FileFetchFailed": "未能下载文件。URL:“%s”。错误: %s", + "loc.messages.ParametersFileParsingFailed": "请确保参数文件(“%s”)有效。分析过程中任务失败,出现以下错误: %s", + "loc.messages.StartingDeployment": "正在启动部署。", + "loc.messages.CreateTemplateDeploymentSucceeded": "已成功部署模板。", + "loc.messages.CreateTemplateDeploymentFailed": "创建或更新模板部署时任务失败。", + "loc.messages.ErrorsInYourDeployment": "部署中出现错误。错误代码: %s。", + "loc.messages.Details": "详细信息:", + "loc.messages.ErrorType": "错误类型:", + "loc.messages.PolicyDefinitionName": "策略定义名称:", + "loc.messages.PolicyAssignmentName": "策略分配名称:", + "loc.messages.StartingValidation": "正在启动模板验证。", + "loc.messages.ValidDeployment": "已成功完成模板部署验证。", + "loc.messages.CreateTemplateDeploymentValidationFailed": "模板验证失败。错误: %s。", + "loc.messages.DeletingResourceGroup": "正在删除资源组: %s", + "loc.messages.CouldNotDeletedResourceGroup": "无法删除资源组:“%s”。操作失败,错误: %s", + "loc.messages.DeletedResourceGroup": "已删除的资源组: %s", + "loc.messages.InvalidAction": "此操作未定义。请与任务作者核实。", + "loc.messages.ARGD_ConstructorFailed": "任务初始化失败。错误: %s", + "loc.messages.InvalidTemplateLocation": "提供的模板位置无效。任务仅支持“链接的项目”或“文件的 URL”", + "loc.messages.EncodingNotSupported": "文件“%s”的编码为“%s”,它不受支持。支持的文件编码为 [\"utf-8\"、\"utf-16le\"]", + "loc.messages.CouldNotDetectEncoding": "无法检测到文件“%s”的编码", + "loc.messages.DetectedFileEncoding": "为文件“%s”检测到的编码为“%s”", + "loc.messages.ErrorWhileParsingParameter": "由于“%s”,替代“%s”参数时出错,确保其遵循 JavaScript 对象表示法(JSON)", + "loc.messages.TemplateFilePatternMatchingMoreThanOneFile": "找到多个匹配模板文件模式 %s 的文件", + "loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile": "找到多个匹配模板参数文件模式 %s 的文件", + "loc.messages.TemplateFilePatternMatchingNoFile": "找不到匹配模板文件模式的任何文件", + "loc.messages.TemplateParameterFilePatternMatchingNoFile": "找不到匹配模板文件模式的任何文件", + "loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile": "参数文件模式匹配目录,而不是文件。", + "loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile": "模板文件模式匹配目录,而不是文件: %s", + "loc.messages.AddedOutputVariable": "已更新的输出变量“%s”,该变量包含字符串格式的当前部署对象的输出部分。", + "loc.messages.UnableToReadResponseBody": "无法读取响应正文。错误: %s", + "loc.messages.MoreInformationOnAzurePortal": "Azure 门户的详细信息", + "loc.messages.LogDeploymentName": "部署名称为 %s", + "loc.messages.ResourceGroupNameNotProvided": "应提供资源组名称", + "loc.messages.LocationNotProvided": "需要位置以进行部署", + "loc.messages.ARMServiceConnectionScope": "ARM 服务连接部署范围 - %s", + "loc.messages.ServicePrincipalRoleAssignmentDetails": "请确保为名称为 %s 的服务主体分配了实体 %s 的正确角色。访问链接以了解更多详细信息: https://docs.microsoft.com/zh-cn/azure/role-based-access-control/role-assignments-portal", + "loc.messages.ServicePrincipalFetchFailed": "提取服务主体详细信息时出错: %s", + "loc.messages.FindMoreDeploymentDetailsAzurePortal": "任务已成功创建 Azure 资源管理器部署,但部署失败。请在以下位置查看更多详细的 Azure 资源管理器部署日志: (请复制并粘贴链接) %s", + "loc.messages.ManagedServiceIdentityDetails": "请确保为用于部署的托管服务标识分配了资源组 %s 的正确角色。访问链接以了解更多详细信息: https://docs.microsoft.com/zh-cn/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal", + "loc.messages.CompleteDeploymentModeNotSupported": "\"%s\" 范围的部署不支持“完整”部署模式", + "loc.messages.TemplateValidationFailure": "在 Azure 资源管理器模板中发现验证错误。这可能会导致模板部署失败。%s。请遵循 https://docs.microsoft.com/zh-cn/azure/azure-resource-manager/templates/template-syntax", + "loc.messages.TroubleshootingGuide": "查看故障排除指南以了解你的问题是否已解决: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting", + "loc.messages.IncompatibleAzureCLIVersion": "Azure CLI 版本应 >= 2.20.0", + "loc.messages.AzureCLINotFound": "在代理上找不到 Azure CLI。", + "loc.messages.FailedToFetchAzureCLIVersion": "无法从代理提取 az cli 版本。错误: %s", + "loc.messages.BicepBuildFailed": "“az bicep 版本”失败。错误: %s", + "loc.messages.BicepFileCleanupFailed": "未能删除 Bicep 文件。错误: %s" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/zh-TW/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/zh-TW/resources.resjson new file mode 100644 index 000000000000..97698c091233 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Strings/resources.resjson/zh-TW/resources.resjson @@ -0,0 +1,97 @@ +{ + "loc.friendlyName": "ARM 範本部署", + "loc.helpMarkDown": "[深入了解此工作](https://aka.ms/armtaskreadme)", + "loc.description": "將 Azure Resource Manager (ARM) 範本部署到所有部署範圍", + "loc.instanceNameFormat": "ARM 範本部署: $(deploymentScope) 範圍", + "loc.releaseNotes": "- 在所有部署範圍新增了部署支援。\n- 移除了所有 VM 相關動作。", + "loc.group.displayName.AzureDetails": "Azure 詳細資料", + "loc.group.displayName.Template": "範本", + "loc.group.displayName.Advanced": "進階", + "loc.input.label.deploymentScope": "部署範圍", + "loc.input.help.deploymentScope": "部署的部署範圍。若要深入了解部署範圍,請參閱此[連結](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)", + "loc.input.label.ConnectedServiceName": "Azure Resource Manager 連線", + "loc.input.help.ConnectedServiceName": "選取有權存取所選部署範圍的 Azure Resource Manager 服務連線。", + "loc.input.label.subscriptionName": "訂閱", + "loc.input.help.subscriptionName": "選取 Azure 訂用帳戶", + "loc.input.label.action": "動作", + "loc.input.help.action": "要在 Azure 資源或資源群組上執行的動作。", + "loc.input.label.resourceGroupName": "資源群組", + "loc.input.help.resourceGroupName": "請提供資源群組的名稱。", + "loc.input.label.location": "位置", + "loc.input.help.location": "針對資源群組部署範圍: 部署資源群組的位置。如果訂用帳戶中已有資源群組,則會忽略此值。\n針對其他部署範圍: 儲存部署中繼資料的位置。", + "loc.input.label.templateLocation": "範本位置", + "loc.input.label.csmFileLink": "範本連結", + "loc.input.help.csmFileLink": "請指定範本檔案的 URL。例如: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\n若要部署儲存在私人儲存體帳戶中的範本,請擷取共用存取簽章 (SAS) 權杖,並將其加入範本的 URL 中。例如: `/template.json?`。若要將範本檔案 (或連結的範本) 上傳到儲存體帳戶,並產生 SAS 權杖,可以使用 [Azure 檔案複製](https://aka.ms/azurefilecopyreadme) 工作,或執行 [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) 或 [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911) 的使用步驟。\n\n若要使用格線檢視範本參數,請按一下 [覆寫範本參數] 文字方塊旁的 […]。此功能需要於來源處啟用 CORS 規則。若範本位於 Azure 儲存體 Blob 中,請參閱 [這裡](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests),以啟用 CORS。", + "loc.input.label.csmParametersFileLink": "範本參數連結", + "loc.input.help.csmParametersFileLink": "請指定範本檔案的 URL。例如: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json) \n\n若要使用儲存在私人儲存體帳戶中的檔案,請擷取共用存取簽章 (SAS) 權杖,並將其加入範本的 URL 中。例如: `/template.json?`。若要將參數檔案上傳到儲存體帳戶,並產生 SAS 權杖,可使用 [Azure 檔案複製](https://aka.ms/azurefilecopyreadme) 工作,或執行 [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) 或 [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911) 的使用步驟。\n\n若要使用格線檢視範本參數,請按一下 [覆寫範本參數] 文字方塊旁的 […]。此功能需要於來源處啟用 CORS 規則。若範本位於 Azure 儲存體 Blob 中,請參閱 [這裡](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests),以啟用 CORS。", + "loc.input.label.csmFile": "範本", + "loc.input.help.csmFile": "請指定指向 Azure Resource Manager 範本的路徑或模式。如需範本的詳細資訊,請參閱 https://aka.ms/azuretemplates。若要立即啟動,請使用範本 https://aka.ms/sampletemplate。當 Azure CLI 版本大於 2.20.0 時,'連結的成品' 也支援 Bicep 檔案", + "loc.input.label.csmParametersFile": "範本參數", + "loc.input.help.csmParametersFile": "指定 Azure Resource Manager 範本之參數檔案的路徑或模式指標。當 Azure CLI 版本大於 2.20.0 時,'連結的成品' 也支援 Bicep 檔案", + "loc.input.label.overrideParameters": "覆寫範本參數", + "loc.input.help.overrideParameters": "若要以網格模式檢視範本參數,請按一下 [Override Parameters] 文字方塊旁的 [...]。必須在來源啟用 CORS 規則才能使用此功能。若範本在 Azure 儲存體 Blob 中,請參閱[本篇](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests)來啟用 CORS,或是在文字方塊中鍵入要覆寫的範本參數。例如,
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre)。
若您使用的參數有多個文字,請以引號括住文字,即使您使用變數來傳遞文字亦同。例如,-name \"參數值\" -name2 \"$(var)\"
若要覆寫物件類型參數,請使用已轉換為字串的 JSON 物件。例如,-options [\"option1\"] -map {\"key1\": \"value1\" }。 ", + "loc.input.label.deploymentMode": "部署模式", + "loc.input.help.deploymentMode": "如需更多詳細資料,請參閱[這裡](https://docs.microsoft.com/zh-tw/azure/azure-resource-manager/templates/deployment-modes)。\n\n 累加模式會將部署當成資源群組的累加式更新處理。此模式會保留存在於資源群組,但未在範本中指定的未變更資源。\n\n 完整模式會刪除不在您範本中的資源。完整模式花費的時間比累加模式多。如果工作逾時,請考慮增加逾時或變更為「累加」模式。\n **[警告] 完整模式會刪除所有未在範本中指定的資源群組現有資源。請確實檢查要部署的資源群組中,是否真的沒有未在範本中指定的任何必要資源。** \n\n 驗證模式可讓您在建立實際資源前,找出範本的問題。驗證模式讓您能夠在建立實際資源前發現範本的問題。請注意,這種模式無論如何都會建立一個資源群組,即使沒有部署任何資源\n\n 預設使用累加模式。", + "loc.input.label.deploymentName": "部署名稱", + "loc.input.help.deploymentName": "指定欲建立資源群組部署的名稱。", + "loc.input.label.deploymentOutputs": "部署輸出", + "loc.input.help.deploymentOutputs": "為輸出變數提供變數的名稱,該名稱會以字串格式包含目前部署物件的輸出區段。您可以使用 \"ConvertFrom-Json\" PowerShell Cmdlet 來剖析 JSON 物件,並存取個別的輸出值。如需詳細資料,請參閱[這裡](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)", + "loc.input.label.addSpnToEnvironment": "存取覆寫參數中的服務主體詳細資料", + "loc.input.help.addSpnToEnvironment": "將服務主體識別碼和您所選 Azure 端點的金鑰新增至指令碼的執行環境。您可以在 `-key $servicePrincipalKey` 等覆寫參數中使用以下變數: `$servicePrincipalId` 和 `$servicePrincipalKey`。", + "loc.messages.CheckResourceGroupExistence": "正在檢查下列資源群組是否存在: %s。", + "loc.messages.ResourceGroupStatusFetchFailed": "無法查看資源群組狀態。錯誤: %s。", + "loc.messages.ResourceGroupStatus": "已有資源群組: %s。", + "loc.messages.ResourceGroupCreationFailed": "無法建立資源群組。錯誤: %s", + "loc.messages.CreatingNewRG": "正在建立資源群組: %s", + "loc.messages.CreatedRG": "資源群組建立成功。", + "loc.messages.CreatingTemplateDeployment": "正在建立部署參數。", + "loc.messages.TemplateParsingFailed": "請確定範本檔案 ('%s') 有效。剖析時工作失敗。錯誤如下: %s", + "loc.messages.FileFetchFailed": "無法下載檔案。URL: '%s'。錯誤: %s", + "loc.messages.ParametersFileParsingFailed": "請確定參數檔案 ('%s') 有效。剖析時工作失敗。錯誤如下: %s", + "loc.messages.StartingDeployment": "正在啟動部署。", + "loc.messages.CreateTemplateDeploymentSucceeded": "已成功部署範本。", + "loc.messages.CreateTemplateDeploymentFailed": "建立或更新範本部署時工作失敗。", + "loc.messages.ErrorsInYourDeployment": "部署發生錯誤。錯誤代碼: %s。", + "loc.messages.Details": "詳細資料:", + "loc.messages.ErrorType": "錯誤類型:", + "loc.messages.PolicyDefinitionName": "原則定義名稱:", + "loc.messages.PolicyAssignmentName": "原則指派名稱:", + "loc.messages.StartingValidation": "正在啟動範本驗證。", + "loc.messages.ValidDeployment": "範本部署驗證已成功完成。", + "loc.messages.CreateTemplateDeploymentValidationFailed": "範本驗證失敗。錯誤: %s。", + "loc.messages.DeletingResourceGroup": "正在刪除資源群組: %s", + "loc.messages.CouldNotDeletedResourceGroup": "無法刪除資源群組: '%s'。作業失敗。錯誤: %s", + "loc.messages.DeletedResourceGroup": "已刪除的資源群組: %s", + "loc.messages.InvalidAction": "此動作未定義。請連絡工作作者。", + "loc.messages.ARGD_ConstructorFailed": "初始化時工作失敗。錯誤: %s", + "loc.messages.InvalidTemplateLocation": "提供的範本位置無效。工作只支援「連結的成品」或「檔案 URL」", + "loc.messages.EncodingNotSupported": "檔案 '%s' 的編碼為不受支援的 '%s'。支援的檔案編碼為 ['utf-8'、'utf-16le']", + "loc.messages.CouldNotDetectEncoding": "偵測不到檔案 '%s' 的編碼", + "loc.messages.DetectedFileEncoding": "偵測到檔案 '%s' 的編碼為 '%s'", + "loc.messages.ErrorWhileParsingParameter": "覆寫 '%s' 參數時發生錯誤 (原因為 '%s'),請確認其遵循 JavaScript 物件標記法 (JSON)", + "loc.messages.TemplateFilePatternMatchingMoreThanOneFile": "找到多個檔案符合範本檔案模式: %s", + "loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile": "找到多個檔案符合範本參數檔案模式: %s", + "loc.messages.TemplateFilePatternMatchingNoFile": "找不到任何符合範本檔案模式的檔案", + "loc.messages.TemplateParameterFilePatternMatchingNoFile": "找不到任何符合範本檔案模式的檔案", + "loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile": "與範本檔案模式相符的是目錄而非檔案。", + "loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile": "與範本檔案模式相符的是目錄而非檔案: %s", + "loc.messages.AddedOutputVariable": "已更新輸出變數 '%s',其包含格式為字串之目前部署物件的輸出區段。", + "loc.messages.UnableToReadResponseBody": "無法讀取回應主體。錯誤: %s", + "loc.messages.MoreInformationOnAzurePortal": "Azure 入口網站的詳細資訊", + "loc.messages.LogDeploymentName": "部署名稱為 %s", + "loc.messages.ResourceGroupNameNotProvided": "必須提供資源群組名稱", + "loc.messages.LocationNotProvided": "必須為部署提供位置", + "loc.messages.ARMServiceConnectionScope": "ARM 服務連線部署範圍 - %s", + "loc.messages.ServicePrincipalRoleAssignmentDetails": "請確定已將實體 %s 的正確角色指派給名為 %s 的服務主體。如需詳細資料,請參閱此連結: https://docs.microsoft.com/zh-tw/azure/role-based-access-control/role-assignments-portal (機器翻譯)", + "loc.messages.ServicePrincipalFetchFailed": "擷取服務主體詳細資料時發生錯誤: %s", + "loc.messages.FindMoreDeploymentDetailsAzurePortal": "工作已成功建立 Azure Resource Manager 部署,但部署失敗。請在下列位置查看詳細的 Azure Resource Manager 部署記錄: (請複製並貼上連結) %s", + "loc.messages.ManagedServiceIdentityDetails": "請確定已將資源群組 %s 的適當角色指派給用於部署的受控服務識別。如需詳細資料,請參閱此連結: https://docs.microsoft.com/zh-tw/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal (機器翻譯)", + "loc.messages.CompleteDeploymentModeNotSupported": "'%s' 範圍中的部署不支援「完成」部署模式", + "loc.messages.TemplateValidationFailure": "在 Azure Resource Manager 範本中發現驗證錯誤。此情況可能會造成範本部署失敗。%s。請前往 https://docs.microsoft.com/zh-tw/azure/azure-resource-manager/templates/template-syntax (機器翻譯)", + "loc.messages.TroubleshootingGuide": "請參閱疑難排解手冊,查看問題是否已解決: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting", + "loc.messages.IncompatibleAzureCLIVersion": "Azure CLI 版本應 >= 2.20.0", + "loc.messages.AzureCLINotFound": "在代理程式上找不到 Azure CLI。", + "loc.messages.FailedToFetchAzureCLIVersion": "無法從代理程式擷取 AZ CLI 版本。錯誤: %s", + "loc.messages.BicepBuildFailed": "「az bicep 組建」失敗。錯誤: %s", + "loc.messages.BicepFileCleanupFailed": "無法刪除 Bicep 檔案。錯誤: %s" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSM.json b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSM.json new file mode 100644 index 000000000000..8b9823e55ee7 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSM.json @@ -0,0 +1,8 @@ +{ + "parameters": { + "param": { + "value": false, + "toBeRemoved": true + } + } +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicep b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicep new file mode 100644 index 000000000000..69219e35cb2b --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicep @@ -0,0 +1,18 @@ +param location string = 'eastasia' + +var storageAccountName = 'deepak2121' +var storageAccountType = 'Premium_LRS' + +resource storageAccount 'Microsoft.Storage/storageAccounts@2021-01-01' = { + name: toLower(take(storageAccountName, 24)) + location: location + sku: { + name: storageAccountType + } + kind: 'StorageV2' +} + +output storageAccount_Name string = storageAccount.name +output storageAccount_Location string = storageAccount.location +output storageAccount_SKUName string = storageAccount.sku.name +output storageAccount_Kind string = storageAccount.kind diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicepparam b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicepparam new file mode 100644 index 000000000000..358b83b8dc21 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicep.bicepparam @@ -0,0 +1,3 @@ +using 'CSMwithBicep.bicep' + +param location = 'eastasia' diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicepWithError.bicep b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicepWithError.bicep new file mode 100644 index 000000000000..f11f9841591b --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicepWithError.bicep @@ -0,0 +1,20 @@ +param location string = 'eastasia' + +var storageAccountName_var = 'deepak2121' +var storageAccountType = 'Premium_LRS' + +randomstring + +resource storageAccount 'Microsoft.Storage/storageAccounts@2021-01-01' = { + name: toLower(take(storageAccountName_var, 24)) + location: location + sku: { + name: storageAccountType + } + kind: 'StorageV2' +} + +output storageAccount_Name string = storageAccount.name +output storageAccount_Location string = storageAccount.location +output storageAccount_SKUName string = storageAccount.sku.name +output storageAccount_Kind string = storageAccount.kind \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicepWithWarning.bicep b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicepWithWarning.bicep new file mode 100644 index 000000000000..ee96f96d64bf --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithBicepWithWarning.bicep @@ -0,0 +1,19 @@ +param location string = 'eastasia' +param unusedParam string = 'test' + +var storageAccountName_var = 'deepak2121' +var storageAccountType = 'Premium_LRS' + +resource storageAccount 'Microsoft.Storage/storageAccounts@2021-01-01' = { + name: toLower(take(storageAccountName_var, 24)) + location: location + sku: { + name: storageAccountType + } + kind: 'StorageV2' +} + +output storageAccount_Name string = storageAccount.name +output storageAccount_Location string = storageAccount.location +output storageAccount_SKUName string = storageAccount.sku.name +output storageAccount_Kind string = storageAccount.kind \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithComments.json b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithComments.json new file mode 100644 index 000000000000..786f77ba1304 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/CSMwithComments.json @@ -0,0 +1,5 @@ +{ + // This json file has comments + "var": "value ending with escaped character\\\"\\\\" + /*some Comment After the escaped Character */ +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/L0.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/L0.ts new file mode 100644 index 000000000000..f8fb2d0a8e24 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/L0.ts @@ -0,0 +1,267 @@ +'use strict'; + +const assert = require('assert'); +const ttm = require('azure-pipelines-task-lib/mock-test'); +const path = require('path'); +import fs = require("fs"); + +function setResponseFile(name) { + process.env['MOCK_RESPONSES'] = path.join(__dirname, name); +} + +describe('Azure Resource Manager Template Deployment', function () { + this.timeout(120000); + before((done) => { + done(); + }); + after(function () { + }); + + process.env['AGENT_HOMEDIRECTORY'] = process.env['AGENT_HOMEDIRECTORY'] || "C:\\temp\\agent\\home"; + if (!fs.existsSync(process.env['AGENT_HOMEDIRECTORY'])){ + fs.mkdirSync(process.env['AGENT_HOMEDIRECTORY']); + } + process.env['BUILD_SOURCESDIRECTORY'] = process.env['BUILD_SOURCESDIRECTORY'] || "C:\\temp\\agent\\home\\sources"; + if (!fs.existsSync(process.env['BUILD_SOURCESDIRECTORY'])){ + fs.mkdirSync(process.env['BUILD_SOURCESDIRECTORY']); + } + process.env['SYSTEM_DEFAULTWORKINGDIRECTORY'] = process.env['SYSTEM_DEFAULTWORKINGDIRECTORY'] || "C:\\temp\\agent\\home"; + if (!fs.existsSync(process.env['SYSTEM_DEFAULTWORKINGDIRECTORY'])){ + fs.mkdirSync(process.env['SYSTEM_DEFAULTWORKINGDIRECTORY']); + } + process.env["AGENT_TEMPDIRECTORY"] = process.env["AGENT_TEMPDIRECTORY"] || "C:\\temp\\agent\\home\\temp"; + if (!fs.existsSync(process.env['AGENT_TEMPDIRECTORY'])){ + fs.mkdirSync(process.env['AGENT_TEMPDIRECTORY']); + } + +// uncomment to get test traces +// process.env['TASK_TEST_TRACE'] = "1"; + + /*it('Successfully triggered createOrUpdate deployment', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSM.json"; + process.env["csmParametersFile"] = "CSM.json"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(tr.succeeded, "Should have succeeded"); + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") > 0, "deployments.createOrUpdate function should have been called from azure-sdk"); + assert(tr.stdout.indexOf("set ") < 0, "deploymentsOutput should not have been updated"); + assert(tr.stdout.indexOf("properly sanitized") > 0, "Parameters should have been sanitized"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + });*/ + it('Successfully triggered createOrUpdate deployment and updated deploymentOutputs', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSM.json"; + process.env["csmParametersFile"] = "CSM.json"; + process.env["deploymentOutputs"] = "someVar"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(tr.succeeded, "Should have succeeded"); + assert(tr.stdout.indexOf("properly sanitized") > 0, "Parameters should have been sanitized"); + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") > 0, "deployments.createOrUpdate function should have been called from azure-sdk"); + assert(tr.stdout.indexOf("##vso[task.setvariable variable=someVar;]") >= 0, "deploymentsOutput should have been updated"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + it('Create or Update RG, failed on faulty CSM template file', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "faultyCSM.json"; + process.env["csmParametersFile"] = "faultyCSM.json"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(tr.failed, "Task should have failed"); + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") == -1, "Task should have failed before calling deployments.createOrUpdate function from azure-sdk"); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + done(); + }); + it('Create or Update RG, succeeded on CSM template file with comments', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSMwithComments.json"; + process.env["csmParametersFile"] = "CSMwithComments.json"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(tr.succeeded, "Should have succeeded"); + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") > 0, "deployments.createOrUpdate function should have been called from azure-sdk"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + it('createOrUpdate deployment should fail when no template file is found', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSMNotThere.json"; + process.env["csmParametersFile"] = "CSM.json"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(!tr.succeeded, "Should have failed"); + assert(tr.stdout.indexOf("TemplateFilePatternMatchingNoFile") > 0, "should have printed TemplateFilePatternMatchingNoFile") + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") < 0, "deployments.createOrUpdate function should not have been called from azure-sdk"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + + it('createOrUpdate deployment should fail when multiple template files are found', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSMmultiple.json"; + process.env["csmParametersFile"] = "CSM.json"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(!tr.succeeded, "Should have failed"); + assert(tr.stdout.indexOf("TemplateFilePatternMatchingMoreThanOneFile") > 0, "should have printed TemplateFilePatternMatchingMoreThanOneFile") + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") < 0, "deployments.createOrUpdate function should not have been called from azure-sdk"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + + it('createOrUpdate deployment should fail when no parameter file is found', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSM.json"; + process.env["csmParametersFile"] = "CSMNotThere.json"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(!tr.succeeded, "Should have failed"); + assert(tr.stdout.indexOf("TemplateParameterFilePatternMatchingNoFile") > 0, "should have printed TemplateParameterFilePatternMatchingNoFile") + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") < 0, "deployments.createOrUpdate function should not have been called from azure-sdk"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + + it('createOrUpdate deployment should fail when multiple template files are found', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSM.json"; + process.env["csmParametersFile"] = "CSMmultiple.json"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(!tr.succeeded, "Should have failed"); + assert(tr.stdout.indexOf("TemplateParameterFilePatternMatchingMoreThanOneFile") > 0, "should have printed TemplateFilePatternMatchingMoreThanOneFile") + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") < 0, "deployments.createOrUpdate function should not have been called from azure-sdk"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + + it('Successfully triggered createOrUpdate deployment using bicep file', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSMwithBicep.bicep"; + process.env["csmParametersFile"] = ""; + process.env["deploymentOutputs"] = "someVar"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(tr.succeeded, "Should have succeeded"); + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") > 0, "deployments.createOrUpdate function should have been called from azure-sdk"); + assert(tr.stdout.indexOf("##vso[task.setvariable variable=someVar;]") >= 0, "deploymentsOutput should have been updated"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + + it('Successfully triggered createOrUpdate deployment using bicep file with unused params', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSMwithBicepWithWarning.bicep"; + process.env["csmParametersFile"] = ""; + process.env["deploymentOutputs"] = "someVar"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(tr.succeeded, "Should have succeeded"); + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") > 0, "deployments.createOrUpdate function should have been called from azure-sdk"); + assert(tr.stdout.indexOf("##vso[task.setvariable variable=someVar;]") >= 0, "deploymentsOutput should have been updated"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + + it('Successfully triggered createOrUpdate deployment using bicep file with bicepparam file', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSMwithBicep.bicep"; + process.env["csmParametersFile"] = "CSMwithBicep.bicepparam"; + process.env["deploymentOutputs"] = "someVar"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(tr.succeeded, "Should have succeeded"); + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") > 0, "deployments.createOrUpdate function should have been called from azure-sdk"); + assert(tr.stdout.indexOf("##vso[task.setvariable variable=someVar;]") >= 0, "deploymentsOutput should have been updated"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + + // it('createOrUpdate deployment should fail when bicep file contains error', (done) => { + // let tp = path.join(__dirname, 'createOrUpdate.js'); + // process.env["csmFile"] = "CSMwithBicepWithError.bicep"; + // process.env["csmParametersFile"] = ""; + // let tr = new ttm.MockTestRunner(tp); + // tr.run(); + // try { + // assert(!tr.succeeded, "Should have failed"); + // assert(tr.stdout.indexOf("This declaration type is not recognized. Specify a parameter, variable, resource, or output declaration.") > 0, "should have printed the error message") + // assert(tr.stdout.indexOf("deployments.createOrUpdate is called") < 0, "deployments.createOrUpdate function should not have been called from azure-sdk"); + // done(); + // } + // catch (error) { + // console.log("STDERR", tr.stderr); + // console.log("STDOUT", tr.stdout); + // done(error); + // } + // }); +}); diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/createOrUpdate.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/createOrUpdate.ts new file mode 100644 index 000000000000..c4c7d9ebc73c --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/createOrUpdate.ts @@ -0,0 +1,104 @@ +import ma = require('azure-pipelines-task-lib/mock-answer'); +import tmrm = require('azure-pipelines-task-lib/mock-run'); +import path = require('path'); +const fs = require('fs'); +var cpExec = require('child_process').execSync; + +let taskPath = path.join(__dirname, '..', 'main.js'); +let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(taskPath); + +tr.setInput("action", "Create Or Update Resource Group"); +tr.setInput("ConnectedServiceName", "AzureRM"); +tr.setInput("resourceGroupName", "dummy"); +tr.setInput("location", "West US"); +tr.setInput("templateLocation", "Linked artifact") +tr.setInput("csmFile", process.env["csmFile"]); +tr.setInput("overrideParameters", ""); +tr.setInput("deploymentMode", "Complete"); +tr.setInput("enableDeploymentPrerequisites", "None"); +tr.setInput("csmParametersFile", process.env["csmParametersFile"]); +tr.setInput("deploymentOutputs", !!process.env["deploymentOutputs"] ? process.env["deploymentOutputs"] : ""); + +process.env["ENDPOINT_AUTH_AzureRM"] = "{\"parameters\":{\"serviceprincipalid\":\"id\",\"serviceprincipalkey\":\"key\",\"tenantid\":\"tenant\"},\"scheme\":\"ServicePrincipal\"}"; +process.env["ENDPOINT_AUTH_PARAMETER_AzureRM_SERVICEPRINCIPALID"] = "id"; +process.env["ENDPOINT_AUTH_PARAMETER_AzureRM_SERVICEPRINCIPALKEY"] = "key"; +process.env["ENDPOINT_AUTH_PARAMETER_AzureRM_TENANTID"] = "tenant"; +process.env["ENDPOINT_DATA_AzureRM_SUBSCRIPTIONID"] = "sId"; +process.env["ENDPOINT_DATA_AzureRM_SUBSCRIPTIONNAME"] = "sName"; +process.env["ENDPOINT_URL_AzureRM"] = "https://management.azure.com/"; +process.env["ENDPOINT_DATA_AzureRM_ENVIRONMENTAUTHORITYURL"] = "https://login.windows.net/"; +process.env["ENDPOINT_DATA_AzureRM_ACTIVEDIRECTORYSERVICEENDPOINTRESOURCEID"] = "https://management.azure.com"; +process.env["ENDPOINT_AUTH_SCHEME_AzureRM"] = "serviceprincipal"; +process.env["ENDPOINT_AUTH_PARAMETER_AzureRM_AUTHENTICATIONTYPE"] = "key"; + +var CSMJson = path.join(__dirname, "CSM.json"); +var CSMBicep = path.join(__dirname, "CSMwithBicep.bicep"); +var CSMBicepParam = path.join(__dirname, "CSMwithBicep.bicepparam"); +var CSMBicepWithWarning = path.join(__dirname, "CSMwithBicepWithWarning.bicep"); +var CSMBicepWithError = path.join(__dirname, "CSMwithBicepWithError.bicep"); +var CSMwithComments = path.join(__dirname, "CSMwithComments.json"); +var defaults = path.join(__dirname, "defaults.json"); +var faultyCSM = path.join(__dirname, "faultyCSM.json"); +var bicepbuildCmd = `az bicep build --file ${path.join(__dirname, "CSMwithBicep.bicep")}`; +var bicepparambuildCmd = `az bicep build-params --file ${path.join(__dirname, "CSMwithBicep.bicepparam")} --outfile ${path.join(__dirname, "CSMwithBicep.parameters.json")}`; +var bicepbuildwithWarning = `az bicep build --file ${path.join(__dirname, "CSMwithBicepWithWarning.bicep")}`; +var azloginCommand = `az login --service-principal -u "id" --password="key" --tenant "tenant" --allow-no-subscriptions`; +var azaccountSet = `az account set --subscription "sId"`; +var azlogoutCommand = `az account clear` + +var exec = {} +const successExec = { + "code": 0, + "stdout": "Executed Successfully" +} +exec[bicepbuildCmd] = successExec; +exec[bicepparambuildCmd] = successExec; +exec[bicepbuildwithWarning] = successExec; +exec[azloginCommand] = successExec; +exec[azaccountSet] = successExec; +exec[azlogoutCommand] = successExec; + +let a: ma.TaskLibAnswers = { + "which": { + "az": "az" + }, + "checkPath": { + "az": true + }, + exec, + "findMatch": { + "CSM.json": [CSMJson], + "CSMwithBicep.bicep": [CSMBicep], + "CSMwithBicep.bicepparam": [CSMBicepParam], + "CSMwithBicepWithWarning.bicep": [CSMBicepWithWarning], + "CSMwithBicepWithError.bicep": [CSMBicepWithError], + "CSMwithComments.json": [CSMwithComments], + "defaults.json": [defaults], + "faultyCSM.json": [faultyCSM], + "CSMNotThere.json": [], + "CSMmultiple.json": [CSMJson, CSMJson], + "": [""] + } +}; + +process.env["MOCK_NORMALIZE_SLASHES"] = "true"; +tr.setAnswers(a); + +tr.registerMock('azure-pipelines-task-lib/toolrunner', require('azure-pipelines-task-lib/mock-toolrunner')); +tr.registerMock('azure-pipelines-tasks-azure-arm-rest/azure-arm-resource', require('./mock_node_modules/azure-arm-resource')); + +const fsClone = Object.assign({}, fs); +fsClone.readFileSync = function(fileName: string): Buffer { + if (fileName.indexOf("CSMwithBicep.json") >= 0 || fileName.indexOf("CSMwithBicepWithWarning.json") >= 0) { + const filePath = fileName.replace('.json', '.bicep'); + cpExec(`az bicep build --file ${filePath}`); + } + else if (fileName.indexOf("CSMwithBicep.parameters.json") >= 0) { + const filePath = fileName.replace('.parameters.json', '.bicepparam'); + cpExec(`az bicep build-params --file ${filePath} --outfile ${fileName}`); + } + var buffer = fs.readFileSync(fileName); + return buffer; +} +tr.registerMock('fs', fsClone); +tr.run(); \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/defaults.json b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/defaults.json new file mode 100644 index 000000000000..94c57135a556 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/defaults.json @@ -0,0 +1,10 @@ +{ + "getVariable": { + "ENDPOINT_AUTH_AzureRM": "{\"parameters\":{\"serviceprincipalid\":\"id\",\"serviceprincipalkey\":\"key\",\"tenantid\":\"tenant\"},\"scheme\":\"ServicePrincipal\"}", + "ENDPOINT_AUTH_PARAMETER_AzureRM_SERVICEPRINCIPALID": "id", + "ENDPOINT_AUTH_PARAMETER_AzureRM_SERVICEPRINCIPALKEY": "key", + "ENDPOINT_AUTH_PARAMETER_AzureRM_TENANTID": "tenant", + "ENDPOINT_DATA_AzureRM_SUBSCRIPTIONID": "sId", + "ENDPOINT_DATA_AzureRM_SUBSCRIPTIONNAME": "sName" + } +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/deleteResourceGroup.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/deleteResourceGroup.ts new file mode 100644 index 000000000000..a336c5d3e606 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/deleteResourceGroup.ts @@ -0,0 +1,24 @@ +import ma = require('azure-pipelines-task-lib/mock-answer'); +import tmrm = require('azure-pipelines-task-lib/mock-run'); +import path = require('path'); + +let taskPath = path.join(__dirname, '..', 'main.js'); +let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(taskPath); + +tr.setInput("action", "DeleteRG"); +tr.setInput("ConnectedServiceName", "AzureRM"); +tr.setInput("resourceGroupName", "dummy"); + +process.env[ "ENDPOINT_AUTH_AzureRM"] = "{\"parameters\":{\"serviceprincipalid\":\"id\",\"serviceprincipalkey\":\"key\",\"tenantid\":\"tenant\"},\"scheme\":\"ServicePrincipal\"}"; +process.env["ENDPOINT_AUTH_PARAMETER_AzureRM_SERVICEPRINCIPALID"] = "id"; +process.env["ENDPOINT_AUTH_PARAMETER_AzureRM_SERVICEPRINCIPALKEY"] = "key"; +process.env["ENDPOINT_AUTH_PARAMETER_AzureRM_TENANTID"] = "tenant"; +process.env["ENDPOINT_DATA_AzureRM_SUBSCRIPTIONID"] = "sId"; +process.env["ENDPOINT_DATA_AzureRM_SUBSCRIPTIONNAME"] = "sName"; +process.env["ENDPOINT_URL_AzureRM"] = "https://management.azure.com/"; +process.env["ENDPOINT_DATA_AzureRM_ENVIRONMENTAUTHORITYURL"] = "https://login.windows.net/"; +process.env["ENDPOINT_DATA_AzureRM_ACTIVEDIRECTORYSERVICEENDPOINTRESOURCEID"] = "https://management.azure.com"; + +tr.registerMock('azure-pipelines-task-lib/toolrunner', require('azure-pipelines-task-lib/mock-toolrunner')); +tr.registerMock('azure-pipelines-tasks-azure-arm-rest/azure-arm-resource', require('./mock_node_modules/azure-arm-resource')); +tr.run(); \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/faultyCSM.json b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/faultyCSM.json new file mode 100644 index 000000000000..8bb8e97c3c03 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/faultyCSM.json @@ -0,0 +1,3 @@ +{ + "parameters" +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/LICENSE.txt b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/LICENSE.txt new file mode 100644 index 000000000000..a28827c2b848 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 Microsoft + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/README.md b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/README.md new file mode 100644 index 000000000000..1e5d74dd51ed --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/README.md @@ -0,0 +1,147 @@ +# Microsoft Azure SDK for Node.js - Resource Management + +This project provides a Node.js package that makes it easy to manage Azure resources. Right now it supports: +- **Node.js version: 4.x.x or higher** +- **API version: 2016-02-01** + +## Features + + - TODO + +## How to Install + +```bash +npm install azure-arm-resource +``` + +## How to Use + +### Authentication, client creation and listing resources as an example + + ```javascript + var msRestAzure = require('ms-rest-azure'); + var resourceManagement = require("azure-arm-resource"); + + // Interactive Login + msRestAzure.interactiveLogin(function(err, credentials) { + var client = new resourceManagement.ResourceManagementClient(credentials, groupName, 'your-subscription-id'); + client.resources.list(function(err, result) { + if (err) console.log(err); + console.log(result); + }); + }); + ``` + +## Creating a Resource Group + +```javascript +var util = require('util'); +var groupParameters = { + location: 'West US', + tags: { + tag1: 'val1', + tag2: 'val2' + } +}; +client.resourceGroup.createOrUpdate(groupParameters, function (err, result, request, response) { + if (err) { + console.log(err); + /*err has reference to the actual request and response, so you can see what was sent and received on the wire. + The structure of err looks like this: + err: { + code: 'Error Code', + message: 'Error Message', + body: 'The response body if any', + request: reference to a stripped version of http request + response: reference to a stripped version of the response + } + */ + } else { + console.log('result is: ' + util.inspect(result, {depth: null})); + } +}); +``` + +## Create a Generic Resource in a Resource Group + +```javascript +var resourceName = 'autorestsite102'; +var params = { 'location': 'West US', 'properties' : { 'SiteMode': 'Limited', 'ComputeMode': 'Shared' }, 'Name': resourceName }; +var resourceType = 'sites'; +var parentResourcePath = ''; +var resourceProviderNamespace = 'Microsoft.Web'; +var apiVersion = '2014-04-01'; +client.resources.createOrUpdate(, parentResourcePath, + resourceType, resourceName , apiVersion, params, function (err, result, request, response) { + if (err) { + console.log(err); + } else { + console.log(result); + } +}); +``` + +## Get a Generic Resource in a Resource Group + +```javascript +var resourceName = 'autorestsite102'; +var resourceType = 'sites'; +var parentResourcePath = ''; +var resourceProviderNamespace = 'Microsoft.Web'; +var apiVersion = '2014-04-01'; +client.resources.get(resourceProviderNamespace, parentResourcePath, + resourceType, resourceName, apiVersion, function (err, result, request, response) { + if (err) { + console.log(err); + } else { + console.log(result); + } +}); +``` + +## Listing all resources in your subscription + +```javascript +client.resources.list(function (err, result, request, response) { + if (err) { + console.log(err); + } else { + console.log(result); + } +}); +``` + +## Deleting a Generic Resource in a Resource Group + +```javascript +var resourceName = 'autorestsite102'; +var resourceType = 'sites'; +var parentResourcePath = ''; +var resourceProviderNamespace = 'Microsoft.Web'; +var apiVersion = '2014-04-01'; +client.resources.deleteMethod(resourceProviderNamespace, parentResourcePath, + resourceType, resourceName, apiVersion, function (err, result, request, response) { + if (err) { + console.log(err); + } else { + console.log(result); + } +}); +``` + +## Deleting the Resource Group + +```javascript +client.resourceGroup.deleteMethod(function (err, result, request, response) { + if (err) { + console.log(err); + } else { + console.log(result); + } +}); +``` +Please take a look at the tests over [here](https://github.com/Azure/azure-sdk-for-node/tree/autorest/test/services/resourceManagement) for more examples. + +## Related projects + +- [Microsoft Azure SDK for Node.js - All-up](https://github.com/Azure/azure-sdk-for-node) diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource.js b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource.js new file mode 100644 index 000000000000..454f46b21f40 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource.js @@ -0,0 +1,20 @@ +// +// Copyright (c) Microsoft and contributors. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// +// See the License for the specific language governing permissions and +// limitations under the License. +// +'use strict'; + +exports.ResourceManagementClient = require('./resource/resourceManagementClient'); + +exports = module.exports; \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/operations/index.js b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/operations/index.js new file mode 100644 index 000000000000..e7b9d2093baa --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/operations/index.js @@ -0,0 +1,18 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +/* jshint latedef:false */ +/* jshint forin:false */ +/* jshint noempty:false */ + +'use strict'; + +exports.ResourceGroupDeployments = require('./resourceGroupDeployments'); +exports.ResourceGroup = require('./resourceGroup'); diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/operations/resourceGroup.js b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/operations/resourceGroup.js new file mode 100644 index 000000000000..ecbcb9023831 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/operations/resourceGroup.js @@ -0,0 +1,87 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for + * license information. + * + * Code generated by Microsoft (R) AutoRest Code Generator. + * Changes may cause incorrect behavior and will be lost if the code is + * regenerated. + */ + +'use strict'; + +var util = require('util'); + +/** + * @class + * ResourceGroup + * __NOTE__: An instance of this class is automatically created for an + * instance of the ResourceManagementClient. + * Initializes a new instance of the ResourceGroup class. + * @constructor + * + * @param {ResourceManagementClient} client Reference to the service client. + */ +function ResourceGroup(client) { + this.client = client; +} + +ResourceGroup.prototype.createOrUpdate = function (parameters, callback) { + console.log("resourceGroup.createOrUpdate is called") + var client = this.client; + if (!callback) { + throw new Error('callback cannot be null.'); + } + // Validate + try { + if (client.resourceGroupName === null || client.resourceGroupName === undefined || typeof client.resourceGroupName.valueOf() !== 'string') { + throw new Error('client.resourceGroupName cannot be null or undefined and it must be of type string.'); + } + if (client.resourceGroupName !== null && client.resourceGroupName !== undefined) { + if (client.resourceGroupName.length > 90) + { + throw new Error('"client.resourceGroupName" should satisfy the constraint - "MaxLength": 90'); + } + if (client.resourceGroupName.length < 1) + { + throw new Error('"client.resourceGroupName" should satisfy the constraint - "MinLength": 1'); + } + if (client.resourceGroupName.match(/^[-\w\._\(\)]+$/) === null) + { + throw new Error('"client.resourceGroupName" should satisfy the constraint - "Pattern": /^[-\w\._\(\)]+$/'); + } + } + if (parameters === null || parameters === undefined) { + throw new Error('parameters cannot be null or undefined.'); + } + if (this.client.apiVersion === null || this.client.apiVersion === undefined || typeof this.client.apiVersion.valueOf() !== 'string') { + throw new Error('this.client.apiVersion cannot be null or undefined and it must be of type string.'); + } + if (this.client.subscriptionId === null || this.client.subscriptionId === undefined || typeof this.client.subscriptionId.valueOf() !== 'string') { + throw new Error('this.client.subscriptionId cannot be null or undefined and it must be of type string.'); + } + if (this.client.acceptLanguage !== null && this.client.acceptLanguage !== undefined && typeof this.client.acceptLanguage.valueOf() !== 'string') { + throw new Error('this.client.acceptLanguage must be of type string.'); + } + } catch (error) { + return callback(error); + } + callback(null, true); +}; + +ResourceGroup.prototype.deleteMethod = function (callback) { + console.log("resourceGroup.deleteMethod is called") + var client = this.client; + + if (!callback) { + throw new Error('callback cannot be null.'); + } + +}; + +ResourceGroup.prototype.checkExistence = function (callback) { + console.log("resourceGroup.checkExistence is called") + return callback(null, true); +} + +module.exports = ResourceGroup; diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/operations/resourceGroupDeployments.js b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/operations/resourceGroupDeployments.js new file mode 100644 index 000000000000..ce19d5ace71c --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/operations/resourceGroupDeployments.js @@ -0,0 +1,37 @@ +'use strict'; + +var util = require('util'); + +function ResourceGroupDeployments(client) { + this.client = client; +} + +ResourceGroupDeployments.prototype.createOrUpdate = function (deploymentName, parameters, callback) { + console.log("deployments.createOrUpdate is called") + + if (!callback && typeof options === 'function') { + callback = options; + options = null; + } + console.log(JSON.stringify(parameters)); + if (!!parameters["properties"] && !!parameters["properties"]["parameters"] && !!parameters["properties"]["parameters"]["param"]) { + if (!!parameters["properties"]["parameters"]["param"]["toBeRemoved"]) { + console.log("not sanitized"); + } + else { + console.log("properly sanitized"); + } + } + + if (!callback) { + throw new Error('callback cannot be null.'); + } + return callback(null, { + properties: { + outputs: {} + } + }) +}; + + +module.exports = ResourceGroupDeployments; diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/resourceManagementClient.js b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/resourceManagementClient.js new file mode 100644 index 000000000000..ba61d7574010 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/lib/resource/resourceManagementClient.js @@ -0,0 +1,45 @@ + +'use strict'; + +var util = require('util'); + +var operations = require('./operations'); +function ResourceManagementClient(credentials, resourceGroupName, subscriptionId, baseUri, options) { + this.apiVersion = '2016-07-01'; + this.acceptLanguage = 'en-US'; + this.longRunningOperationRetryTimeout = 30; + this.generateClientRequestId = true; + if (credentials === null || credentials === undefined) { + throw new Error('\'credentials\' cannot be null.'); + } + if (subscriptionId === null || subscriptionId === undefined) { + throw new Error('\'subscriptionId\' cannot be null.'); + } + if (!options) options = {}; + + this.baseUri = baseUri; + if (!this.baseUri) { + this.baseUri = 'https://management.azure.com'; + } + this.credentials = credentials; + this.subscriptionId = subscriptionId; + + if (options.apiVersion !== null && options.apiVersion !== undefined) { + this.apiVersion = options.apiVersion; + } + if (options.acceptLanguage !== null && options.acceptLanguage !== undefined) { + this.acceptLanguage = options.acceptLanguage; + } + if (options.longRunningOperationRetryTimeout !== null && options.longRunningOperationRetryTimeout !== undefined) { + this.longRunningOperationRetryTimeout = options.longRunningOperationRetryTimeout; + } + if (options.generateClientRequestId !== null && options.generateClientRequestId !== undefined) { + this.generateClientRequestId = options.generateClientRequestId; + } + this.deployments = new operations.ResourceGroupDeployments(this); + this.resourceGroup = new operations.ResourceGroup(this); + this.resourceGroupName = resourceGroupName; +} + + +module.exports = ResourceManagementClient; diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/package.json b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/package.json new file mode 100644 index 000000000000..31f81ceb3e5a --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/Tests/mock_node_modules/azure-arm-resource/package.json @@ -0,0 +1,108 @@ +{ + "_args": [ + [ + { + "raw": "azure-arm-resource@1.5.1-preview", + "scope": null, + "escapedName": "azure-arm-resource", + "name": "azure-arm-resource", + "rawSpec": "1.5.1-preview", + "spec": "1.5.1-preview", + "type": "version" + }, + "D:\\git\\vsts-tasks\\Tasks\\DeployAzureResourceGroup" + ] + ], + "_from": "azure-arm-resource@1.5.1-preview", + "_id": "azure-arm-resource@1.5.1-preview", + "_inCache": true, + "_installable": true, + "_location": "/azure-arm-resource", + "_nodeVersion": "4.4.7", + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/azure-arm-resource-1.5.1-preview.tgz_1472854031051_0.035985670518130064" + }, + "_npmUser": { + "name": "windowsazure", + "email": "azuresdk@outlook.com" + }, + "_npmVersion": "3.10.5", + "_phantomChildren": {}, + "_requested": { + "raw": "azure-arm-resource@1.5.1-preview", + "scope": null, + "escapedName": "azure-arm-resource", + "name": "azure-arm-resource", + "rawSpec": "1.5.1-preview", + "spec": "1.5.1-preview", + "type": "version" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npmjs.org/azure-arm-resource/-/azure-arm-resource-1.5.1-preview.tgz", + "_shasum": "2f8666289f24927aa08331e60d368b11474cf68e", + "_shrinkwrap": null, + "_spec": "azure-arm-resource@1.5.1-preview", + "_where": "D:\\git\\vsts-tasks\\Tasks\\DeployAzureResourceGroup", + "author": { + "name": "Microsoft Corporation" + }, + "bugs": { + "url": "http://github.com/Azure/azure-sdk-for-node/issues" + }, + "contributors": [ + { + "name": "Wang, Yugang", + "email": "yugangw@microsoft.com" + }, + { + "name": "Zavery, Amar", + "email": "amzavery@microsoft.com" + }, + { + "name": "Srinivasan, Vivek", + "email": "visriniv@microsoft.com" + } + ], + "dependencies": { + "ms-rest": "^1.14.0", + "ms-rest-azure": "^1.14.0" + }, + "description": "Microsoft Azure Resource Management Client Library for node", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "2f8666289f24927aa08331e60d368b11474cf68e", + "tarball": "https://registry.npmjs.org/azure-arm-resource/-/azure-arm-resource-1.5.1-preview.tgz" + }, + "homepage": "http://github.com/Azure/azure-sdk-for-node", + "keywords": [ + "node", + "azure" + ], + "license": "MIT", + "main": "./lib/resource.js", + "maintainers": [ + { + "name": "windowsazure", + "email": "azuresdk@outlook.com" + } + ], + "name": "azure-arm-resource", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Azure/azure-sdk-for-node.git" + }, + "scripts": { + "test": "npm -s run-script jshint" + }, + "tags": [ + "azure", + "sdk" + ], + "version": "1.5.1-preview" +} diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/ThirdPartyNotices.txt b/_generated/AzureResourceManagerTemplateDeploymentV3/ThirdPartyNotices.txt new file mode 100644 index 000000000000..40df19c248e4 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/ThirdPartyNotices.txt @@ -0,0 +1,1138 @@ + +THIRD-PARTY SOFTWARE NOTICES AND INFORMATION +Do Not Translate or Localize + +Azure Resource Management Template Deployment Task incorporates third party material from the projects listed below. The original copyright notice and the license under which Microsoft received such third party material are set forth below. Microsoft reserves all other rights not expressly granted, whether by implication, estoppel or otherwise. + + +1. balanced-match (https://github.com/juliangruber/balanced-match) +2. brace-expansion (https://github.com/juliangruber/brace-expansion) +3. buffer-equal-constant-time (https://github.com/salesforce/buffer-equal-constant-time) +4. concat-map (https://github.com/substack/node-concat-map) +5. hoek (https://github.com/hapijs/hoek) + Includes:Deep-eql +6. isemail (https://github.com/hapijs/isemail) +7. joi (https://github.com/hapijs/joi) +8. jsonwebtoken (https://github.com/auth0/node-jsonwebtoken) +9. lodash.once (https://github.com/lodash/lodash) +10. minimatch (https://github.com/isaacs/minimatch) +11. Mockery (https://github.com/mfncooper/mockery) +12. Moment (https://github.com/moment/moment) + Includes:Files with code from Closure +13. ms (https://github.com/zeit/ms) +14. Node.js (https://nodejs.org/) +15. node-ecdsa-sig-formatter (https://github.com/Brightspace/node-ecdsa-sig-formatter) +16. node-jwa (https://github.com/brianloveswords/node-jwa) +17. node-jws (https://github.com/brianloveswords/node-jws) +18. node-uuid (https://github.com/broofa/node-uuid/) +19. OpenSSL (http://www.openssl.org) +20. Q (https://github.com/kriskowal/q) +21. safe-buffer (https://github.com/feross/safe-buffer) +22. sax js (https://github.com/isaacs/sax-js) +23. semver (https://github.com/npm/node-semver/) +24. ShellJS (https://github.com/shelljs/shelljs) +25. topo (https://github.com/hapijs/topo) +26. tunnel (https://github.com/koichik/node-tunnel) +27. underscore.js (http://underscorejs.org/; https://github.com/jashkenas/underscore) +28. vso-node-api (https://github.com/Microsoft/vsts-node-api) +29. azure-pipelines-task-lib (https://github.com/Microsoft/azure-pipelines-task-lib) +30. Xml2JS (https://github.com/Leonidas-from-XIV/node-xml2js) +31. Xmlbuilder (https://github.com/oozcitak/xmlbuilder-js) +32. xtend (https://github.com/Raynos/xtend) +33. @types/node (https://www.github.com/DefinitelyTyped/DefinitelyTyped.git) +34. @types/q (https://www.github.com/DefinitelyTyped/DefinitelyTyped.git) +35. @types/mocha (https://github.com/DefinitelyTyped/DefinitelyTyped.git) + + +%% balanced-match NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(MIT) + +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +========================================= +END OF balanced-match NOTICES, INFORMATION, AND LICENSE + +%% brace-expansion NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(MIT) + +Copyright (c) 2013 Julian Gruber + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +========================================= +END OF brace-expansion NOTICES, INFORMATION, AND LICENSE + +%% buffer-equal-constant-time NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2013, GoInstant Inc., a salesforce.com company +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +* Neither the name of salesforce.com, nor GoInstant, nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF buffer-equal-constant-time NOTICES, INFORMATION, AND LICENSE + +%% concat-map NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) James Halliday/substack + +This software is released under the MIT license: + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +END OF concat-map NOTICES, INFORMATION, AND LICENSE + +%% hoek NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= + +Copyright (c) 2011-2014, Walmart and other contributors. +Copyright (c) 2011, Yahoo Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * The names of any contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + * * * + +The complete list of contributors can be found at: https://github.com/hapijs/hapi/graphs/contributors +Portions of this project were initially based on the Yahoo! Inc. Postmile project, +published at https://github.com/yahoo/postmile. +========================================= +Includes code from Deep-eql + +Copyright (c) 2013 Jake Luer jake@alogicalparadox.com + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +END OF hoek NOTICES, INFORMATION, AND LICENSE + +%% isemail NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2008-2011, Dominic Sayers +Copyright (c) 2013-2014, GlobeSherpa +Copyright (c) 2014-2015, Eli Skeggs + +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. +- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. +- Neither the name of Dominic Sayers nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF isemail NOTICES, INFORMATION, AND LICENSE + +%% joi NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012-2014, Walmart and other contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * The names of any contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + * * * + +The complete list of contributors can be found at: https://github.com/hapijs/joi/graphs/contributors +========================================= +END OF joi NOTICES, INFORMATION, AND LICENSE + +%% jsonwebtoken NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2015 Auth0, Inc. (http://auth0.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +========================================= +END OF jsonwebtoken NOTICES, INFORMATION, AND LICENSE + +%% lodash.once NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright jQuery Foundation and other contributors + +Based on Underscore.js, copyright Jeremy Ashkenas, +DocumentCloud and Investigative Reporters & Editors + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/lodash/lodash + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code displayed within the prose of the +documentation. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +Files located in the node_modules and vendor directories are externally +maintained libraries used by this software which have their own +licenses; we recommend you read them, as their terms may differ from the +terms above. +========================================= +END OF lodash.once NOTICES, INFORMATION, AND LICENSE + +%% minimatch NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +========================================= +END OF minimatch NOTICES, INFORMATION, AND LICENSE + +%% Mockery NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyrights for code authored by Yahoo! Inc. is licensed under the following +terms: + + MIT License + + Copyright (c) 2011 Yahoo! Inc. All Rights Reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +========================================= +END OF Mockery NOTICES, INFORMATION, AND LICENSE + +%% Moment NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) JS Foundation and other contributors + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. +========================================= +Files with code from Closure + +Copyright (c) 2006 The Closure Library Authors. All Rights Reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +========================================= +END OF Moment NOTICES, INFORMATION, AND LICENSE + +%% ms NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +(The MIT License) + +Copyright (c) 2014 Guillermo Rauch +Copyright (c) 2016 Zeit, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the Software), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +END OF ms NOTICES, INFORMATION, AND LICENSE + +%% Node.js NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Node.js is licensed for use as follows: + +""" +Copyright Node.js contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. +""" + +This license applies to parts of Node.js originating from the +https://github.com/joyent/node repository: + +""" +Copyright Joyent, Inc. and other Node contributors. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. +""" + +The Node.js license applies to all parts of Node.js that are not externally +maintained libraries. +========================================= +END OF Node.js NOTICES, INFORMATION, AND LICENSE + +%% node-ecdsa-sig-formatter NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= + Copyright 2015 D2L Corporation + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +========================================= +END OF node-ecdsa-sig-formatter NOTICES, INFORMATION, AND LICENSE + +%% node-jwa NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2013 Brian J. Brennan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the +Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +END OF node-jwa NOTICES, INFORMATION, AND LICENSE + +%% node-jws NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2013 Brian J. Brennan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the +Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +END OF node-jws NOTICES, INFORMATION, AND LICENSE + +%% node-uuid NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2010-2012 Robert Kieffer + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the Software), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +END OF node-uuid NOTICES, INFORMATION, AND LICENSE + +%% OpenSSL NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= + LICENSE ISSUES + ============== + + The OpenSSL toolkit stays under a dual license, i.e. both the conditions of + the OpenSSL License and the original SSLeay license apply to the toolkit. + See below for the actual license texts. Actually both licenses are BSD-style + Open Source licenses. In case of any license issues related to OpenSSL + please contact openssl-core@openssl.org. + + OpenSSL License + --------------- + +/* ==================================================================== + * Copyright (c) 1998-2011 The OpenSSL Project. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * 3. All advertising materials mentioning features or use of this + * software must display the following acknowledgment: + * This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit. (http://www.openssl.org/) + * + * 4. The names OpenSSL Toolkit and OpenSSL Project must not be used to + * endorse or promote products derived from this software without + * prior written permission. For written permission, please contact + * openssl-core@openssl.org. + * + * 5. Products derived from this software may not be called OpenSSL + * nor may OpenSSL appear in their names without prior written + * permission of the OpenSSL Project. + * + * 6. Redistributions of any form whatsoever must retain the following + * acknowledgment: + * This product includes software developed by the OpenSSL Project + * for use in the OpenSSL Toolkit (http://www.openssl.org/) + * + * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY + * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * ==================================================================== + * + * This product includes cryptographic software written by Eric Young + * (eay@cryptsoft.com). This product includes software written by Tim + * Hudson (tjh@cryptsoft.com). + * + */ + + Original SSLeay License + ----------------------- + +/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) + * All rights reserved. + * + * This package is an SSL implementation written + * by Eric Young (eay@cryptsoft.com). + * The implementation was written so as to conform with Netscapes SSL. + * + * This library is free for commercial and non-commercial use as long as + * the following conditions are aheared to. The following conditions + * apply to all code found in this distribution, be it the RC4, RSA, + * lhash, DES, etc., code; not just the SSL code. The SSL documentation + * included with this distribution is covered by the same copyright terms + * except that the holder is Tim Hudson (tjh@cryptsoft.com). + * + * Copyright remains Eric Young's, and as such any Copyright notices in + * the code are not to be removed. + * If this package is used in a product, Eric Young should be given attribution + * as the author of the parts of the library used. + * This can be in the form of a textual message at program startup or + * in documentation (online or textual) provided with the package. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes cryptographic software written by + * Eric Young (eay@cryptsoft.com) + * The word 'cryptographic' can be left out if the rouines from the library + * being used are not cryptographic related :-). + * 4. If you include any Windows specific code (or a derivative thereof) from + * the apps directory (application code) you must include an acknowledgement: + * This product includes software written by Tim Hudson (tjh@cryptsoft.com) + * + * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * The licence and distribution terms for any publically available version or + * derivative of this code cannot be changed. i.e. this code cannot simply be + * copied and put under another distribution licence + * [including the GNU Public Licence.] +========================================= +END OF OpenSSL NOTICES, INFORMATION, AND LICENSE + +%% Q NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright 2009�2014 Kristopher Michael Kowal. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. + +The file q.js is prefaced by the following additional third-party subcomponent information: + +/*! + * + * Copyright 2009-2012 Kris Kowal under the terms of the MIT + * license found at http://github.com/kriskowal/q/raw/master/LICENSE + * + * With parts by Tyler Close + * Copyright 2007-2009 Tyler Close under the terms of the MIT X license found + * at http://www.opensource.org/licenses/mit-license.html + * Forked at ref_send.js version: 2009-05-11 + * + * With parts by Mark Miller + * Copyright (C) 2011 Google Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ +========================================= +END OF Q NOTICES, INFORMATION, AND LICENSE + +%% safe-buffer NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) Feross Aboukhadijeh + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF safe-buffer NOTICES, INFORMATION, AND LICENSE + +%% sax js NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +==== + +`String.fromCodePoint` by Mathias Bynens used according to terms of MIT +License, as follows: + + Copyright Mathias Bynens + + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE + LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION + OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION + WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +END OF sax js NOTICES, INFORMATION, AND LICENSE + +%% semver NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +========================================= +END OF semver NOTICES, INFORMATION, AND LICENSE + +%% ShellJS NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012, Artur Adib +All rights reserved. + +You may use this project under the terms of the New BSD license as follows: + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Artur Adib nor the + names of the contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL ARTUR ADIB BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +========================================= +END OF ShellJS NOTICES, INFORMATION, AND LICENSE + +%% topo NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012-2014, Walmart and other contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * The names of any contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + * * * + +The complete list of contributors can be found at: https://github.com/hapijs/topo/graphs/contributors +========================================= +END OF topo NOTICES, INFORMATION, AND LICENSE + +%% tunnel NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2012 Koichi Kobayashi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF tunnel NOTICES, INFORMATION, AND LICENSE + +%% underscore.js NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2009-2017 Jeremy Ashkenas, DocumentCloud and Investigative +Reporters & Editors + +Permission is hereby granted, free of charge, to any person +obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without +restriction, including without limitation the rights to use, +copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +========================================= +END OF underscore.js NOTICES, INFORMATION, AND LICENSE + +%% vso-node-api NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) Microsoft Corporation + +All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +associated documentation files (the "Software"), to deal in the Software without restriction, +including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +END OF vso-node-api NOTICES, INFORMATION, AND LICENSE + +%% azure-pipelines-task-lib NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +========================================= +END OF azure-pipelines-task-lib NOTICES, INFORMATION, AND LICENSE + +%% Xml2JS NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright 2010, 2011, 2012, 2013. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to +deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +IN THE SOFTWARE. +========================================= +END OF Xml2JS NOTICES, INFORMATION, AND LICENSE + +%% Xmlbuilder NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2013 Ozgur Ozcitak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF Xmlbuilder NOTICES, INFORMATION, AND LICENSE + +%% xtend NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +Copyright (c) 2012-2014 Raynos. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the Software), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF xtend NOTICES, INFORMATION, AND LICENSE + +%% @types/mocha NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF @types/mocha NOTICES, INFORMATION, AND LICENSE + +%% @types/node NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +MIT License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF @types/node NOTICES, INFORMATION, AND LICENSE + +%% @types/q NOTICES, INFORMATION, AND LICENSE BEGIN HERE +========================================= +MIT License + +Copyright (c) Microsoft Corporation. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +END OF @types/q NOTICES, INFORMATION, AND LICENSE \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/icon.png b/_generated/AzureResourceManagerTemplateDeploymentV3/icon.png new file mode 100644 index 000000000000..c06715f15bbe Binary files /dev/null and b/_generated/AzureResourceManagerTemplateDeploymentV3/icon.png differ diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/icon.svg b/_generated/AzureResourceManagerTemplateDeploymentV3/icon.svg new file mode 100644 index 000000000000..179725f3182c --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/main.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/main.ts new file mode 100644 index 000000000000..0fb14e3fb14d --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/main.ts @@ -0,0 +1,71 @@ +import tl = require("azure-pipelines-task-lib/task"); +import path = require("path"); + +import armDeployTaskParameters = require("./models/TaskParameters"); +import resourceGroup = require("./operations/ResourceGroup"); +import armResource = require("azure-pipelines-tasks-azure-arm-rest/azure-arm-resource"); +import armManagementGroup = require("azure-pipelines-tasks-azure-arm-rest/azure-arm-management-group"); +import armSubscription = require("azure-pipelines-tasks-azure-arm-rest/azure-arm-subscription"); + +import { DeploymentParameters } from "./operations/DeploymentParameters"; +import { DeploymentScopeBase } from "./operations/DeploymentScopeBase"; + +function run(): Promise { + var taskParameters = new armDeployTaskParameters.TaskParameters(); + return taskParameters.getTaskParameters().then((taskParameters) => { + + //Telemetry + var deploymentScopeTelemetry = { + deploymentScope: taskParameters.deploymentScope, + deploymentMode: taskParameters.deploymentMode + }; + console.log("##vso[telemetry.publish area=TaskDeploymentMethod;feature=AzureResourceManagerTemplateDeployment]" + JSON.stringify(deploymentScopeTelemetry)); + + if(taskParameters.deploymentScope === "Management Group"){ + var deploymentParameters = new DeploymentParameters({}, taskParameters.location); + var managementGroupOperationsController = new DeploymentScopeBase( + new armManagementGroup.ManagementGroupManagementClient( + taskParameters.credentials, + taskParameters.managementGroupId), + taskParameters, + deploymentParameters); + return managementGroupOperationsController.deploy(); + } + else if(taskParameters.deploymentScope === "Subscription") { + var deploymentParameters = new DeploymentParameters({}, taskParameters.location); + var subscriptionOperationsController = new DeploymentScopeBase( + new armSubscription.SubscriptionManagementClient( + taskParameters.credentials, + taskParameters.subscriptionId), + taskParameters, + deploymentParameters); + return subscriptionOperationsController.deploy(); + } + var resourceGroupOperationsController = new resourceGroup.ResourceGroup( + new armResource.ResourceManagementClient( + taskParameters.credentials, + taskParameters.resourceGroupName, + taskParameters.subscriptionId), + taskParameters); + switch (taskParameters.action) { + case "Create Or Update Resource Group": + return resourceGroupOperationsController.deploy(); + case "DeleteRG": + return resourceGroupOperationsController.deleteResourceGroup(); + default: + throw tl.loc("InvalidAction", taskParameters.action); + } + }); +} + +var taskManifestPath = path.join(__dirname, "task.json"); +tl.debug("Setting resource path to " + taskManifestPath); +tl.setResourcePath(taskManifestPath); +tl.setResourcePath(path.join( __dirname, 'node_modules/azure-pipelines-tasks-azure-arm-rest/module.json'), true); + +run().then((result) => + tl.setResult(tl.TaskResult.Succeeded, "") +).catch((error) => { + tl.error(tl.loc("TroubleshootingGuide")); + tl.setResult(tl.TaskResult.Failed, error) +}); diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/make.json b/_generated/AzureResourceManagerTemplateDeploymentV3/make.json new file mode 100644 index 000000000000..5a1668b218b6 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/make.json @@ -0,0 +1,13 @@ +{ + "rm": [ + { + "items": [ + "node_modules/azure-pipelines-tasks-artifacts-common/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-azure-arm-rest/node_modules/azure-pipelines-task-lib", + "node_modules/azure-pipelines-tasks-azure-arm-rest/node_modules/vso-node-api", + "node_modules/https-proxy-agent/node_modules/agent-base" + ], + "options": "-Rf" + } + ] +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/models/TaskParameters.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/models/TaskParameters.ts new file mode 100644 index 000000000000..646f47f5b01d --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/models/TaskParameters.ts @@ -0,0 +1,129 @@ +import tl = require("azure-pipelines-task-lib/task"); +import msRestAzure = require('azure-pipelines-tasks-azure-arm-rest/azure-arm-common'); +import { AzureRMEndpoint } from 'azure-pipelines-tasks-azure-arm-rest/azure-arm-endpoint'; +import { GraphManagementClient } from 'azure-pipelines-tasks-azure-arm-rest/azure-graph'; + +export class TaskParameters { + + public action: string; + public resourceGroupName: string; + public location: string; + public csmFile: string; + public csmParametersFile: string; + public templateLocation: string; + public csmFileLink: string; + public csmParametersFileLink: string; + public overrideParameters: string; + public outputVariable: string; + public subscriptionId: string; + public endpointPortalUrl: string; + public deploymentName: string; + public deploymentMode: string; + public credentials: msRestAzure.ApplicationTokenCredentials; + public graphCredentials: msRestAzure.ApplicationTokenCredentials; + public deploymentOutputs: string; + public addSpnToEnvironment: boolean; + public useWithoutJSON: boolean; + public connectedService: string; + public deploymentScope: string; + public managementGroupId: string; + public authScheme: string; + + private async getARMCredentials(connectedService: string): Promise { + var azureEndpoint = await new AzureRMEndpoint(connectedService).getEndpoint(); + return azureEndpoint.applicationTokenCredentials; + } + + private async getGraphCredentials(connectedService: string): Promise { + var azureEndpoint = await new AzureRMEndpoint(connectedService).getEndpoint(true); + return azureEndpoint.applicationTokenCredentials; + } + + public async getTaskParameters() : Promise + { + try { + + //Deployment Scope + this.deploymentScope = tl.getInput("deploymentScope"); + if(!this.deploymentScope){ + this.deploymentScope = "Resource Group"; + } + + var resourceGroupNameInServiceConnection; + + //Service Connection + this.connectedService = tl.getInput("ConnectedServiceName", true); + var endpointTelemetry = '{"endpointId":"' + this.connectedService + '"}'; + console.log("##vso[telemetry.publish area=TaskEndpointId;feature=AzureResourceManagerTemplateDeployment]" + endpointTelemetry); + this.endpointPortalUrl = tl.getEndpointDataParameter(this.connectedService, "armManagementPortalUrl", true); + var armServiceConnectionScope = tl.getEndpointDataParameter(this.connectedService, 'ScopeLevel', true); + if(!!armServiceConnectionScope && armServiceConnectionScope === "Subscription"){ + var armServiceConnectionAuthScope = tl.getEndpointAuthorizationParameter(this.connectedService, 'scope', true); + if(!!armServiceConnectionAuthScope){ + var armServiceConnectionAuthScopeSplit = armServiceConnectionAuthScope.split("/"); + if(!!armServiceConnectionAuthScopeSplit[4]){ + armServiceConnectionScope = "Resource Group"; + resourceGroupNameInServiceConnection = armServiceConnectionAuthScopeSplit[4]; + } + } + } + console.log(tl.loc("ARMServiceConnectionScope", armServiceConnectionScope)); + + //Management Group Id + if(this.deploymentScope === "Management Group"){ + this.managementGroupId = tl.getEndpointDataParameter(this.connectedService, "ManagementGroupId", false); + } + + //Subscripion Id + this.subscriptionId = tl.getInput("subscriptionName"); + if(!this.subscriptionId && (this.deploymentScope === "Subscription" || this.deploymentScope === "Resource Group")) { + this.subscriptionId = tl.getEndpointDataParameter(this.connectedService, "SubscriptionId", false); + } + + //Resource group name + this.resourceGroupName = tl.getInput("resourceGroupName"); + if(!this.resourceGroupName && this.deploymentScope === "Resource Group"){ + this.resourceGroupName = resourceGroupNameInServiceConnection; + if(!this.resourceGroupName){ + throw new Error(tl.loc("ResourceGroupNameNotProvided")); + } + } + + this.action = tl.getInput("action"); + + //Location + this.location = tl.getInput("location"); + if(!this.location && this.deploymentScope === "Resource Group" && this.action != "DeleteRG"){ + throw new Error(tl.loc("LocationNotProvided")); + } + + //Deployment mode + this.deploymentMode = tl.getInput("deploymentMode"); + if(!!this.deploymentMode && this.deploymentMode === "Complete" && this.deploymentScope != "Resource Group"){ + throw new Error(tl.loc("CompleteDeploymentModeNotSupported", this.deploymentScope)); + } + + this.templateLocation = tl.getInput("templateLocation"); + if (this.templateLocation === "Linked artifact") { + this.csmFile = tl.getPathInput("csmFile"); + this.csmParametersFile = tl.getPathInput("csmParametersFile"); + } else { + this.csmFileLink = tl.getInput("csmFileLink"); + this.csmParametersFileLink = tl.getInput("csmParametersFileLink"); + } + this.overrideParameters = tl.getInput("overrideParameters"); + this.outputVariable = tl.getInput("outputVariable"); + this.deploymentName = tl.getInput("deploymentName"); + this.credentials = await this.getARMCredentials(this.connectedService); + this.authScheme = tl.getEndpointAuthorizationScheme(this.connectedService, true); + this.graphCredentials = await this.getGraphCredentials(this.connectedService); + this.deploymentOutputs = tl.getInput("deploymentOutputs"); + this.addSpnToEnvironment = tl.getBoolInput("addSpnToEnvironment", false); + this.useWithoutJSON = tl.getBoolInput("useWithoutJSON", false); + + return this; + } catch (error) { + throw new Error(tl.loc("ARGD_ConstructorFailed", error.message)); + } + } +} diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/models/Types.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/models/Types.ts new file mode 100644 index 000000000000..dddc60ba1ed7 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/models/Types.ts @@ -0,0 +1,14 @@ +export interface ParameterValue { + value?: any; + reference?: any; + type?: string; +} + +export interface TemplateObject { + $schema: string; + contentVersion: string; + outputs: Map; + parameters: Map; + resources: Map[]; + variables: Map; +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/operations/DeploymentParameters.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/DeploymentParameters.ts new file mode 100644 index 000000000000..8f04ccc57c2d --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/DeploymentParameters.ts @@ -0,0 +1,12 @@ +export class DeploymentParameters { + public properties: Object; + public location: string; + + constructor(properties: Object, location?: string) { + this.properties = properties; + this.location = location; + } + public updateCommonProperties(mode: string) { + this.properties["mode"] = mode; + } +} diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/operations/DeploymentScopeBase.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/DeploymentScopeBase.ts new file mode 100644 index 000000000000..3b385591f04e --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/DeploymentScopeBase.ts @@ -0,0 +1,183 @@ +import tl = require("azure-pipelines-task-lib/task"); + +import armDeployTaskParameters = require("../models/TaskParameters"); +import armResource = require("azure-pipelines-tasks-azure-arm-rest/AzureServiceClientBase"); +import utils = require("./Utils"); +import { sleepFor } from 'azure-pipelines-tasks-azure-arm-rest/webClient'; +import { DeploymentParameters } from "./DeploymentParameters"; +import azureGraph = require("azure-pipelines-tasks-azure-arm-rest/azure-graph"); + +export class DeploymentScopeBase { + protected deploymentParameters: DeploymentParameters; + protected taskParameters: armDeployTaskParameters.TaskParameters; + protected armClient: armResource.AzureServiceClientBase; + private _spnName: string; + constructor(armClient: armResource.AzureServiceClientBase, taskParameters: armDeployTaskParameters.TaskParameters, deploymentParameters?: DeploymentParameters) { + this.taskParameters = taskParameters; + this.armClient = armClient; + this.deploymentParameters = deploymentParameters; + this._spnName = null; + } + + public async deploy(): Promise { + await this.createTemplateDeployment(); + utils.deleteGeneratedFiles() + } + + protected async createTemplateDeployment() { + console.log(tl.loc("CreatingTemplateDeployment")); + var params: DeploymentParameters; + if (this.taskParameters.templateLocation === "Linked artifact") { + params = await utils.getDeploymentDataForLinkedArtifact(this.taskParameters); + } else if (this.taskParameters.templateLocation === "URL of the file") { + params = await utils.getDeploymentObjectForPublicURL(this.taskParameters); + } else { + throw new Error(tl.loc("InvalidTemplateLocation")); + } + + if(!!this.deploymentParameters){ + params.location = this.deploymentParameters.location; + } + + this.deploymentParameters = params; + await this.performAzureDeployment(3); + } + + protected async performAzureDeployment(retryCount = 0): Promise { + if(!this._spnName && this.taskParameters.authScheme == "ServicePrincipal") { + this._spnName = await this.getServicePrincipalName(); + } + + if (this.deploymentParameters.properties["mode"] === "Validation") { + this.deploymentParameters.properties["mode"] = "Incremental"; + return this.validateDeployment(); + } else { + try { + await this.validateDeployment(); + } catch (error) { + tl.warning(tl.loc("TemplateValidationFailure", error)); + } + console.log(tl.loc("StartingDeployment")); + return new Promise((resolve, reject) => { + this.taskParameters.deploymentName = this.taskParameters.deploymentName || utils.createDeploymentName(this.taskParameters); + console.log(tl.loc("LogDeploymentName", this.taskParameters.deploymentName)); + this.armClient.deployments.createOrUpdate(this.taskParameters.deploymentName, this.deploymentParameters, (error, result, request, response) => { + if (error) { + if(this.taskParameters.deploymentScope === "Resource Group" && error.code == "ResourceGroupNotFound" && retryCount > 0){ + return this.waitAndPerformAzureDeployment(retryCount); + } + utils.writeDeploymentErrors(this.taskParameters, error); + this.checkAndPrintPortalDeploymentURL((!!result && !!result.error) ? result.error : error); + this.printServicePrincipalRoleAssignmentError(error); + return reject(tl.loc("CreateTemplateDeploymentFailed")); + } + if (result && result["properties"] && result["properties"]["outputs"] && utils.isNonEmpty(this.taskParameters.deploymentOutputs)) { + const setVariablesInObject = (path: string, obj: any) => { + for (var key of Object.keys(obj)) { + if (obj[key] && typeof(obj[key]) === "object") { + setVariablesInObject(`${path}.${key}`, obj[key]); + } + else { + console.log(`##vso[task.setvariable variable=${path}.${key};]` + (this.taskParameters.useWithoutJSON ? obj[key] : JSON.stringify(obj[key]))); + console.log(tl.loc("AddedOutputVariable", `${path}.${key}`)); + } + } + } + if (typeof(result["properties"]["outputs"]) === "object") { + setVariablesInObject(this.taskParameters.deploymentOutputs, result["properties"]["outputs"]); + } + console.log(`##vso[task.setvariable variable=${this.taskParameters.deploymentOutputs};]` + JSON.stringify(result["properties"]["outputs"])); + console.log(tl.loc("AddedOutputVariable", this.taskParameters.deploymentOutputs)); + } + + console.log(tl.loc("CreateTemplateDeploymentSucceeded")); + resolve(); + }); + }); + } + } + + private printServicePrincipalRoleAssignmentError(error: any) { + if(!!error && error.statusCode == 403) { + if(this.taskParameters.authScheme == "ServicePrincipal") { + if(this.taskParameters.deploymentScope == "Resource Group") { + tl.error(tl.loc("ServicePrincipalRoleAssignmentDetails", this._spnName, this.taskParameters.resourceGroupName)); + } else if(this.taskParameters.deploymentScope == "Subscription") { + tl.error(tl.loc("ServicePrincipalRoleAssignmentDetails", this._spnName, this.taskParameters.subscriptionId)); + } else if(this.taskParameters.deploymentScope == "Management Group") { + tl.error(tl.loc("ServicePrincipalRoleAssignmentDetails", this._spnName, this.taskParameters.managementGroupId)); + } + } else if(this.taskParameters.authScheme == "ManagedServiceIdentity") { + tl.error(tl.loc("ManagedServiceIdentityDetails", this.taskParameters.resourceGroupName)); + } + } + } + + protected async getServicePrincipalName(): Promise { + try { + var graphClient: azureGraph.GraphManagementClient = new azureGraph.GraphManagementClient(this.taskParameters.graphCredentials); + var servicePrincipalObject = await graphClient.servicePrincipals.GetServicePrincipal(null); + return !!servicePrincipalObject ? servicePrincipalObject.appDisplayName : ""; + } catch (error) { + tl.debug(tl.loc("ServicePrincipalFetchFailed", (error.message || error))); + return ""; + } + } + + protected checkAndPrintPortalDeploymentURL(error: any) { + if((this.taskParameters.deploymentScope == "Resource Group" || this.taskParameters.deploymentScope == "Subscription") && (!!error && (error.statusCode < 400 || error.statusCode >= 500))) { + let url = this.getAzurePortalDeploymentURL(); + if(url != null) { + tl.error(tl.loc("FindMoreDeploymentDetailsAzurePortal", this.getAzurePortalDeploymentURL())); + } + } + } + + private getAzurePortalDeploymentURL() { + try { + let portalUrl = this.taskParameters.endpointPortalUrl ? this.taskParameters.endpointPortalUrl : "https://portal.azure.com"; + portalUrl += "/#blade/HubsExtension/DeploymentDetailsBlade/overview/id/"; + + let subscriptionSpecificURL = "/subscriptions/" + this.taskParameters.subscriptionId; + if(this.taskParameters.deploymentScope == "Resource Group") { + subscriptionSpecificURL += "/resourceGroups/" + this.taskParameters.resourceGroupName; + } + + subscriptionSpecificURL += "/providers/Microsoft.Resources/deployments/" + this.taskParameters.deploymentName; + + return portalUrl + subscriptionSpecificURL.replace(/\//g, '%2F'); + } catch (error) { + tl.error(error); + return null; + } + } + + protected validateDeployment(): Promise { + return new Promise((resolve, reject) => { + console.log(tl.loc("StartingValidation")); + if(!(!!this.deploymentParameters.properties["mode"] && (this.deploymentParameters.properties["mode"] === "Complete" || this.deploymentParameters.properties["mode"] === "Incremental"))) + { + this.deploymentParameters.properties["mode"] = "Incremental"; + } + this.taskParameters.deploymentName = this.taskParameters.deploymentName || utils.createDeploymentName(this.taskParameters); + console.log(tl.loc("LogDeploymentName", this.taskParameters.deploymentName)); + this.armClient.deployments.validate(this.taskParameters.deploymentName, this.deploymentParameters, (error, result, request, response) => { + if (error) { + return reject(tl.loc("CreateTemplateDeploymentValidationFailed", utils.getError(error))); + } + if (result.error) { + utils.writeDeploymentErrors(this.taskParameters, result.error); + return reject(tl.loc("CreateTemplateDeploymentFailed")); + } else { + console.log(tl.loc("ValidDeployment")); + resolve(); + } + }); + }); + } + + private async waitAndPerformAzureDeployment(retryCount): Promise { + await sleepFor(3); + return this.performAzureDeployment(retryCount - 1); + } +} diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/operations/FileEncoding.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/FileEncoding.ts new file mode 100644 index 000000000000..dc2452386603 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/FileEncoding.ts @@ -0,0 +1,105 @@ +//File Encoding detected to be : utf-32be, which is not supported by Node.js +//'Unable to detect encoding of file ' + typeCode +//'File buffer is too short to detect encoding type' + +var fs = require('fs'); +import tl = require('azure-pipelines-task-lib'); + +export class FileEncoding { + public type: string; + public usesBOM: boolean; + constructor(type: string, usesBOM: boolean) { + this.type = type; + this.usesBOM = usesBOM; + } +} + +function detectFileEncodingWithBOM(buffer: Buffer): FileEncoding { + tl.debug('Detecting file encoding using BOM'); + var type: string; + if (buffer.slice(0, 3).equals(new Buffer([239, 187, 191]))) { + type = 'utf-8'; + } + else if (buffer.slice(0, 4).equals(new Buffer([255, 254, 0, 0]))) { + type = 'utf-32le'; + } + else if (buffer.slice(0, 2).equals(new Buffer([254, 255]))) { + type = 'utf-16be'; + } + else if (buffer.slice(0, 2).equals(new Buffer([255, 254]))) { + type = 'utf-16le'; + } + else if (buffer.slice(0, 4).equals(new Buffer([0, 0, 254, 255]))) { + type = 'utf-32be'; + } + else { + tl.debug('Unable to detect File encoding using BOM'); + return null; + } + return new FileEncoding(type, true); +} + +function detectFileEncodingWithoutBOM(buffer: Buffer): FileEncoding { + tl.debug('Detecting file encoding without BOM'); + + var typeCode = 0; + var type: string; + var codeForUtf8 = 0 + for (var index = 0; index < 4 && index < buffer.length; index++) { + typeCode = typeCode << 1; + typeCode = typeCode | (buffer[index] > 0 ? 1 : 0); + codeForUtf8 = codeForUtf8 << 1; + codeForUtf8++; + } + switch (typeCode) { + case 1: + type = 'utf-32be'; + break; + case 5: + type = 'utf-16be'; + break; + case 8: + type = 'utf-32le'; + break; + case 10: + type = 'utf-16le'; + break; + default: + if (codeForUtf8 == typeCode) { + type = 'utf-8'; + } + else { + return null; + } + } + return new FileEncoding(type, false); +} +export function detectFileEncoding(fileName: string, buffer: Buffer): FileEncoding { + var fileEncoding: FileEncoding = detectFileEncodingWithBOM(buffer); + if (fileEncoding == null) { + if (buffer.length < 4) { + tl.debug('Short file buffer error on file' + fileName + '. length: ' + buffer.length); + } + fileEncoding = detectFileEncodingWithoutBOM(buffer); + } + + if (fileEncoding == null) { + throw new Error(tl.loc("CouldNotDetectEncoding", fileName)); + } + console.log(tl.loc("DetectedFileEncoding", fileName, fileEncoding.type)); + return fileEncoding; +} + +export function readFileContentsAsText(fileName: string): string { + var buffer = fs.readFileSync(fileName); + var supportedFileEncodings = ["utf-8", "utf-16le"] + var fileEncoding = detectFileEncoding(fileName, buffer); + if (supportedFileEncodings.indexOf(fileEncoding.type) < 0) { + throw new Error(tl.loc('EncodingNotSupported', fileName, fileEncoding.type)); + } + var fileContents: string = buffer.toString(fileEncoding.type); + if (fileEncoding.usesBOM) { + fileContents = fileContents.slice(1); + } + return fileContents; +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/operations/ParameterParser.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/ParameterParser.ts new file mode 100644 index 000000000000..c079284530f8 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/ParameterParser.ts @@ -0,0 +1,154 @@ +// This class manages the powershell parameters format + +export interface NameValuePair { + name: string; + value: string; +} + +export class PowerShellParameters { + + // Parses the string and retuens array of key-value pairs + public static parse(input: string, removeQuotes?: boolean, escapeCharacter?: string): NameValuePair[] { + if (!!escapeCharacter) { + this.escapeCharacter = escapeCharacter; + } + var result: NameValuePair[] = []; + var index = 0; + var obj: NameValuePair = { name: "", value: "" }; + + input = input.trim(); + + while (index < input.length) { + var literalData = this.findLiteral(input, index); + var nextIndex = literalData.currentPosition; + var hasSpecialCharacter = literalData.hasSpecialCharacter; + var literal = input.substr(index, nextIndex - index).trim(); + if (this.isName(literal, hasSpecialCharacter)) { + if (obj.name) { + result.push(obj); + obj = { name: "", value: "" }; + } + //substr from index 1 to remove '-' in the starting of literal + obj.name = literal.substr(1, literal.length); + } + else { + obj.value = literal; + result.push(obj); + obj = { name: "", value: "" }; + } + + index = nextIndex + 1; + } + + if (obj.name) { + result.push(obj); + } + if (!!removeQuotes) { + for (var name in result) { + result[name].value = result[name].value.replace(/^"(.*)"$/, '$1'); + } + } + + this.escapeCharacter = "`"; // Resetting escape character + return result; + } + + private static isName(literal: string, hasSpecialCharacter: boolean): boolean { + return literal[0] === '-' && !hasSpecialCharacter && isNaN(Number(literal)); + } + + private static findLiteral(input, currentPosition) { + var hasSpecialCharacter = false; + for (; currentPosition < input.length; currentPosition++) { + if (input[currentPosition] == " " || input[currentPosition] == "\t") { + for (; currentPosition < input.length; currentPosition++) { + if (input[currentPosition + 1] != " " && input[currentPosition + 1] != "\t") { + break; + } + } + + break; + } + else if (input[currentPosition] == "(") { + currentPosition = this.findClosingBracketIndex(input, currentPosition + 1, ")"); + hasSpecialCharacter = true; + } + else if (input[currentPosition] == "[") { + currentPosition = this.findClosingBracketIndex(input, currentPosition + 1, "]"); + hasSpecialCharacter = true; + } + else if (input[currentPosition] == "{") { + currentPosition = this.findClosingBracketIndex(input, currentPosition + 1, "}"); + hasSpecialCharacter = true; + } + else if (input[currentPosition] == "\"") { + //keep going till this one closes + currentPosition = this.findClosingQuoteIndex(input, currentPosition + 1, "\""); + hasSpecialCharacter = true; + } + else if (input[currentPosition] == "'") { + //keep going till this one closes + currentPosition = this.findClosingQuoteIndex(input, currentPosition + 1, "'"); + hasSpecialCharacter = true; + } + else if (input[currentPosition] == this.escapeCharacter) { + currentPosition++; + hasSpecialCharacter = true; + if (currentPosition >= input.length) { + break; + } + } + + } + return { currentPosition: currentPosition, hasSpecialCharacter: hasSpecialCharacter }; + } + + private static findClosingBracketIndex(input, currentPosition, closingBracket): number { + for (; currentPosition < input.length; currentPosition++) { + if (input[currentPosition] == closingBracket) { + break; + } + else if (input[currentPosition] == "(") { + currentPosition = this.findClosingBracketIndex(input, currentPosition + 1, ")"); + } + else if (input[currentPosition] == "[") { + currentPosition = this.findClosingBracketIndex(input, currentPosition + 1, "]"); + } + else if (input[currentPosition] == "{") { + currentPosition = this.findClosingBracketIndex(input, currentPosition + 1, "}"); + } + else if (input[currentPosition] == "\"") { + currentPosition = this.findClosingQuoteIndex(input, currentPosition + 1, "\""); + } + else if (input[currentPosition] == "'") { + currentPosition = this.findClosingQuoteIndex(input, currentPosition + 1, "'"); + } + else if (input[currentPosition] == this.escapeCharacter) { + currentPosition++; + if (currentPosition >= input.length) { + break; + } + } + } + + return currentPosition; + } + + private static findClosingQuoteIndex(input, currentPosition, closingQuote) { + for (; currentPosition < input.length; currentPosition++) { + if (input[currentPosition] == this.escapeCharacter) { + currentPosition++; + if (currentPosition >= input.length) { + break; + } + } + else if (input[currentPosition] == closingQuote) { + break; + } + } + + return currentPosition; + } + + private static escapeCharacter = "`"; +} diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/operations/ResourceGroup.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/ResourceGroup.ts new file mode 100644 index 000000000000..ddbaf1aa0f97 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/ResourceGroup.ts @@ -0,0 +1,68 @@ +import tl = require("azure-pipelines-task-lib/task"); + +import armDeployTaskParameters = require("../models/TaskParameters"); +import armResource = require("azure-pipelines-tasks-azure-arm-rest/azure-arm-resource"); +import utils = require("./Utils"); +import { DeploymentScopeBase } from "./DeploymentScopeBase"; + +export class ResourceGroup extends DeploymentScopeBase { + + public resourceManagementClient: armResource.ResourceManagementClient; + + constructor(resourceManagementClient: armResource.ResourceManagementClient, taskParameters: armDeployTaskParameters.TaskParameters) { + super(resourceManagementClient, taskParameters); + this.resourceManagementClient = resourceManagementClient; + } + + public async deploy(): Promise { + await this.createResourceGroupIfRequired(); + await this.createTemplateDeployment(); + utils.deleteGeneratedFiles() + } + + public deleteResourceGroup(): Promise { + return new Promise((resolve, reject) => { + console.log(tl.loc("DeletingResourceGroup", this.taskParameters.resourceGroupName)); + this.resourceManagementClient.resourceGroup.deleteMethod((error, result, request, response) => { + if (error) { + return reject(tl.loc("CouldNotDeletedResourceGroup", this.taskParameters.resourceGroupName, utils.getError(error))); + } + console.log(tl.loc("DeletedResourceGroup", this.taskParameters.resourceGroupName)); + resolve(); + }); + }); + } + + private async createResourceGroupIfRequired() { + var exists = await this.checkResourceGroupExistence() + if (!exists) { + await this.createResourceGroup(); + } + } + + private checkResourceGroupExistence(): Promise { + console.log(tl.loc("CheckResourceGroupExistence", this.taskParameters.resourceGroupName)); + return new Promise((resolve, reject) => { + this.resourceManagementClient.resourceGroup.checkExistence((error, exists, request, response) => { + if (error) { + return reject(tl.loc("ResourceGroupStatusFetchFailed", utils.getError(error))); + } + console.log(tl.loc("ResourceGroupStatus", exists)); + resolve(exists); + }); + }); + } + + private createResourceGroup(): Promise { + return new Promise((resolve, reject) => { + console.log(tl.loc("CreatingNewRG", this.taskParameters.resourceGroupName)); + this.resourceManagementClient.resourceGroup.createOrUpdate({ "name": this.taskParameters.resourceGroupName, "location": this.taskParameters.location }, (error, result, request, response) => { + if (error) { + return reject(tl.loc("ResourceGroupCreationFailed", utils.getError(error))); + } + console.log(tl.loc("CreatedRG")); + resolve(); + }); + }); + } +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/operations/Utils.ts b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/Utils.ts new file mode 100644 index 000000000000..88fd16cdcf26 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/operations/Utils.ts @@ -0,0 +1,523 @@ +import util = require("util"); +import path = require("path"); +import tl = require("azure-pipelines-task-lib/task"); +import fs = require("fs"); + +import armDeployTaskParameters = require("../models/TaskParameters"); +import { PowerShellParameters, NameValuePair } from "./ParameterParser"; +import fileEncoding = require('./FileEncoding'); +import { TemplateObject, ParameterValue } from "../models/Types"; +import httpInterfaces = require("typed-rest-client/Interfaces"); +import { DeploymentParameters } from "./DeploymentParameters"; +import { IExecSyncResult } from 'azure-pipelines-task-lib/toolrunner'; +import { setAzureCloudBasedOnServiceEndpoint, loginAzureRM } from 'azure-pipelines-tasks-artifacts-common/azCliUtils'; + +var cpExec = util.promisify(require('child_process').exec); +var hm = require("typed-rest-client/HttpClient"); +var uuid = require("uuid"); + +let proxyUrl: string = tl.getVariable("agent.proxyurl"); +var requestOptions: httpInterfaces.IRequestOptions = proxyUrl ? { + proxy: { + proxyUrl: proxyUrl, + proxyUsername: tl.getVariable("agent.proxyusername"), + proxyPassword: tl.getVariable("agent.proxypassword"), + proxyBypassHosts: tl.getVariable("agent.proxybypasslist") ? JSON.parse(tl.getVariable("agent.proxybypasslist")) : null + } +} : {}; + +let ignoreSslErrors: string = tl.getVariable("VSTS_ARM_REST_IGNORE_SSL_ERRORS"); +requestOptions.ignoreSslError = ignoreSslErrors && ignoreSslErrors.toLowerCase() == "true"; + +let httpClient = new hm.HttpClient(tl.getVariable("AZURE_HTTP_USER_AGENT"), null, requestOptions); + +function formatNumber(num: number): string { + return ("0" + num).slice(-2); +} + +class Utils { + public static cleanupFileList = [] + + public static isNonEmpty(str: string): boolean { + return (!!str && !!str.trim()); + } + + public static getError(error: any): string { + if (error && error.message) { + return JSON.stringify(error.message); + } + + if (typeof error === "string") { + return error; + } + + return JSON.stringify(error); + } + + public static buildErrorString(errors: string[]): string { + let index: number = 1; + return errors.map(error => !!error ? util.format("%s. %s \n", index++, error) : "").join(""); + } + + public static stripJsonComments(content) { + if (!content || (content.indexOf("//") < 0 && content.indexOf("/*") < 0)) { + return content; + } + + var currentChar; + var nextChar; + var insideQuotes = false; + var contentWithoutComments = ''; + var insideComment = 0; + var singlelineComment = 1; + var multilineComment = 2; + + for (var i = 0; i < content.length; i++) { + currentChar = content[i]; + nextChar = i + 1 < content.length ? content[i + 1] : ""; + + if (insideComment) { + var update = false; + if (insideComment == singlelineComment && (currentChar + nextChar === '\r\n' || currentChar === '\n')) { + i--; + insideComment = 0; + continue; + } + + if (insideComment == multilineComment && currentChar + nextChar === '*/') { + i++; + insideComment = 0; + continue; + } + + } else { + if (insideQuotes && currentChar == "\\") { + contentWithoutComments += currentChar + nextChar; + i++; // Skipping checks for next char if escaped + continue; + } + else { + if (currentChar == '"') { + insideQuotes = !insideQuotes; + } + + if (!insideQuotes) { + if (currentChar + nextChar === '//') { + insideComment = singlelineComment; + i++; + } + + if (currentChar + nextChar === '/*') { + insideComment = multilineComment; + i++; + } + } + } + } + + if (!insideComment) { + contentWithoutComments += content[i]; + } + } + + return contentWithoutComments; + } + + public static writeDeploymentErrors(taskParameters: armDeployTaskParameters.TaskParameters, error): void { + console.log(tl.loc("ErrorsInYourDeployment", error.code)); + if (error.message) { + tl.error(error.message); + if (error.details) { + tl.error(tl.loc("Details")); + + + for (var i = 0; i < error.details.length; i++) { + var errorMessage = null; + let policyLink = null; + + if (error.details[i].code === "RequestDisallowedByPolicy") { + policyLink = this.getPolicyHelpLink(taskParameters, error.details[i]); + errorMessage = this.getPolicyErrorMessage(error.details[i]); + } else { + errorMessage = util.format("%s: %s", error.details[i].code, error.details[i].message); + if(error.details[i].details) { + if(typeof error.details[i].details == 'object') { + errorMessage += " " + JSON.stringify(error.details[i].details); + } else { + errorMessage += " " + String(error.details[i].details); + } + } + } + + tl.error(errorMessage); + if (policyLink) { + tl.error(util.format("[%s](%s)", tl.loc("MoreInformationOnAzurePortal"), policyLink)); + } + } + + + } + } else { + tl.error(error); + } + } + + public static async getDeploymentObjectForPublicURL(taskParameters: armDeployTaskParameters.TaskParameters): Promise { + var properties = {}; + properties["templateLink"] = { + uri: taskParameters.csmFileLink + }; + var parameters: Map = {} as Map; + var deploymentParameters = new DeploymentParameters(properties); + + if (this.isNonEmpty(taskParameters.csmParametersFileLink)) { + if (this.isNonEmpty(taskParameters.overrideParameters)) { + var contents = await this.downloadFile(taskParameters.csmParametersFileLink); + parameters = JSON.parse(this.stripJsonComments(contents)).parameters; + } + else { + deploymentParameters.properties["parametersLink"] = { + uri: taskParameters.csmParametersFileLink + }; + } + } + + if (this.isNonEmpty(taskParameters.overrideParameters)) { + tl.debug("Downloading CSM Template File.. " + taskParameters.csmFileLink); + var templateFile = await this.downloadFile(taskParameters.csmFileLink); + var template; + try { + var template = JSON.parse(this.stripJsonComments(templateFile)); + tl.debug("Loaded CSM File"); + } + catch (error) { + throw new Error(tl.loc("TemplateParsingFailed", this.getError(error.message))); + } + parameters = this.updateOverrideParameters(taskParameters, template, parameters); + parameters = this.sanitizeParameters(parameters); + deploymentParameters.properties["parameters"] = parameters; + } + + deploymentParameters.updateCommonProperties(taskParameters.deploymentMode); + return deploymentParameters; + } + + public static createDeploymentName(taskParameters: armDeployTaskParameters.TaskParameters): string { + var name: string; + if (taskParameters.templateLocation == "Linked artifact") { + name = tl.findMatch(tl.getVariable("System.DefaultWorkingDirectory"), this.escapeBlockCharacters(taskParameters.csmFile))[0]; + } else { + name = taskParameters.csmFileLink; + } + name = path.basename(name).split(".")[0].replace(/\s/g, ""); + name = name.substr(0, 40); + var timestamp = new Date(Date.now()); + var uniqueId = uuid().substr(0, 4); + var suffix = util.format("%s%s%s-%s%s%s-%s", timestamp.getFullYear(), + formatNumber(timestamp.getMonth() + 1), + formatNumber(timestamp.getDate()), + formatNumber(timestamp.getHours()), + formatNumber(timestamp.getMinutes()), + formatNumber(timestamp.getSeconds()), + uniqueId); + var deploymentName = util.format("%s-%s", name, suffix); + if (deploymentName.match(/^[-\w\._\(\)]+$/) === null) { + deploymentName = util.format("deployment-%s", suffix); + } + return deploymentName; + } + + public static async getDeploymentDataForLinkedArtifact(taskParameters: armDeployTaskParameters.TaskParameters): Promise { + var template: TemplateObject; + var fileMatches = tl.findMatch(tl.getVariable("System.DefaultWorkingDirectory"), this.escapeBlockCharacters(taskParameters.csmFile)); + if (fileMatches.length > 1) { + throw new Error(tl.loc("TemplateFilePatternMatchingMoreThanOneFile", fileMatches)); + } + if (fileMatches.length < 1) { + throw new Error(tl.loc("TemplateFilePatternMatchingNoFile")); + } + var csmFilePath = fileMatches[0]; + if (!fs.lstatSync(csmFilePath).isDirectory()) { + tl.debug("Loading CSM Template File.. " + csmFilePath); + csmFilePath = await this.getFilePathForLinkedArtifact(csmFilePath, taskParameters) + try { + template = JSON.parse(this.stripJsonComments(fileEncoding.readFileContentsAsText(csmFilePath))); + } + catch (error) { + throw new Error(tl.loc("TemplateParsingFailed", csmFilePath, this.getError(error.message))); + } + tl.debug("Loaded CSM File"); + } else { + throw new Error(tl.loc("CsmFilePatternMatchesADirectoryInsteadOfAFile", csmFilePath)); + } + + var parameters: Map = {} as Map; + if (this.isNonEmpty(taskParameters.csmParametersFile)) { + var fileMatches = tl.findMatch(tl.getVariable("System.DefaultWorkingDirectory"), this.escapeBlockCharacters(taskParameters.csmParametersFile)); + if (fileMatches.length > 1) { + throw new Error(tl.loc("TemplateParameterFilePatternMatchingMoreThanOneFile", fileMatches)); + } + if (fileMatches.length < 1) { + throw new Error(tl.loc("TemplateParameterFilePatternMatchingNoFile")); + } + var csmParametersFilePath = fileMatches[0]; + if (!fs.lstatSync(csmParametersFilePath).isDirectory()) { + tl.debug("Loading Parameters File.. " + csmParametersFilePath); + csmParametersFilePath = await this.getFilePathForLinkedArtifact(csmParametersFilePath, taskParameters) + try { + var parameterFile = JSON.parse(this.stripJsonComments(fileEncoding.readFileContentsAsText(csmParametersFilePath))); + tl.debug("Loaded Parameters File"); + parameters = parameterFile["parameters"] as Map; + } catch (error) { + throw new Error(tl.loc("ParametersFileParsingFailed", csmParametersFilePath, this.getError(error.message))); + } + } else { + if (tl.filePathSupplied("csmParametersFile")) { + throw new Error(tl.loc("ParametersPatternMatchesADirectoryInsteadOfAFile", csmParametersFilePath)); + } + } + } + + if (this.isNonEmpty(taskParameters.overrideParameters)) { + parameters = this.updateOverrideParameters(taskParameters, template, parameters); + } + + parameters = this.sanitizeParameters(parameters); + + var deploymentParameters = new DeploymentParameters({ + template: template, + parameters: parameters + }); + deploymentParameters.updateCommonProperties(taskParameters.deploymentMode); + return deploymentParameters; + } + + public static deleteGeneratedFiles(): void{ + this.cleanupFileList.forEach(filePath => { + try{ + fs.unlinkSync(filePath); + }catch(err){ + console.log(tl.loc("BicepFileCleanupFailed", err)) + } + }); + } + + private static getPolicyHelpLink(taskParameters: armDeployTaskParameters.TaskParameters, errorDetail) { + var additionalInfo = errorDetail.additionalInfo; + if (!!additionalInfo) { + for (var i = 0; i < additionalInfo.length; i++) { + if (!!additionalInfo[i].info && !!additionalInfo[i].info.policyAssignmentId) { + let portalUrl = taskParameters.endpointPortalUrl ? taskParameters.endpointPortalUrl : "https://portal.azure.com"; + return portalUrl + "#blade/Microsoft_Azure_Policy/EditAssignmentBlade/id/" + encodeURIComponent(additionalInfo[i].info.policyAssignmentId); + } + } + } + + return null; + } + + private static getPolicyErrorMessage(errorDetail): string { + var errorMessage = errorDetail.message; + + if (!!errorMessage) { + errorMessage = errorMessage.split(".")[0] + "."; + } + + var additionalInfo = errorDetail.additionalInfo; + if (!!additionalInfo) { + for (var i = 0; i < additionalInfo.length; i++) { + if (!!additionalInfo[i].info) { + errorMessage = util.format("%s %s %s, %s %s, %s %s.", errorMessage, tl.loc("ErrorType"), additionalInfo[i].type, tl.loc("PolicyDefinitionName"), additionalInfo[i].info.policyDefinitionDisplayName, tl.loc("PolicyAssignmentName"), additionalInfo[i].info.policyAssignmentName); + } + } + } + + return errorMessage; + } + + private static castToType(value: string, type: string): any { + switch (type.toLowerCase()) { + case "int": + case "object": + case "secureobject": + case "array": + case "bool": + return JSON.parse(value); + case "string": + case "securestring": + return JSON.parse(`"` + value + `"`); // Adding trailing quotes for JSON parser to detect string + default: + // Sending as string + break; + } + return value; + } + + private static updateOverrideParameters(taskParameters: armDeployTaskParameters.TaskParameters, template: TemplateObject, parameters: Map): Map { + tl.debug("Overriding Parameters.."); + + var overrideParameters: NameValuePair[] = PowerShellParameters.parse(taskParameters.overrideParameters, true, "\\"); + for (var overrideParameter of overrideParameters) { + tl.debug("Overriding key: " + overrideParameter.name); + if (taskParameters.addSpnToEnvironment) { + if (overrideParameter.value === "$servicePrincipalId") { + overrideParameter.value = tl.getEndpointAuthorizationParameter(taskParameters.connectedService, 'serviceprincipalid', true); + } + if (overrideParameter.value === "$servicePrincipalKey") { + overrideParameter.value = tl.getEndpointAuthorizationParameter(taskParameters.connectedService, 'serviceprincipalkey', false); + } + } + + try { + overrideParameter.value = this.castToType(overrideParameter.value, template.parameters[overrideParameter.name].type); + } catch (error) { + console.log(tl.loc("ErrorWhileParsingParameter", overrideParameter.name, error.toString())); + } + parameters[overrideParameter.name] = { + value: overrideParameter.value + } as ParameterValue; + } + return parameters; + } + + private static downloadFile(url): Promise { + return new Promise((resolve, reject) => { + httpClient.get(url, {}).then(async (response) => { + if (response.message.statusCode == 200) { + let contents: string = ""; + try { + contents = await response.readBody(); + contents = contents.replace(/^\uFEFF/, ''); // Remove UTF-8 BOM if present. + } catch (error) { + reject(tl.loc("UnableToReadResponseBody", error)); + } + resolve(contents); + } else { + var errorMessage = response.message.statusCode.toString() + ": " + response.message.statusMessage; + return reject(tl.loc("FileFetchFailed", url, errorMessage)); + } + }, (error) => { + return reject(tl.loc("FileFetchFailed", url, error)); + }); + }); + } + + private static sanitizeParameters(parameters: Map): Map { + var result: Map = {} as Map; + for (var key in parameters) { + if (!!parameters[key]) { + if (parameters[key].hasOwnProperty("value")) { + result[key] = { + value: parameters[key].value + } as ParameterValue; + } else if (parameters[key].hasOwnProperty("reference")) { + result[key] = { + reference: parameters[key].reference + } as ParameterValue; + } + } + } + + return result; + } + + private static escapeBlockCharacters(str: string): string { + return str.replace(/[\[]/g, '$&[]'); + } + + private static async getFilePathForLinkedArtifact(filePath: string, taskParameters: armDeployTaskParameters.TaskParameters): Promise { + var filePathExtension: string = filePath.split('.').pop(); + if(filePathExtension.startsWith('bicep')){ + let azcliversion = await this.getAzureCliVersion() + if(parseFloat(azcliversion)){ + if(this.isBicepAvailable(azcliversion, filePathExtension)){ + setAzureCloudBasedOnServiceEndpoint(taskParameters.connectedService); + await loginAzureRM(taskParameters.connectedService); + await this.execBicepBuild(filePath) + if(filePathExtension === 'bicep'){ + filePath = filePath.replace('.bicep', '.json') + } + else{ + filePath = filePath.replace('.bicepparam', '.parameters.json') + } + await this.logoutAzure(); + }else{ + //Maintain backwards compatibility for runs that are not using bicep param and do not require higher version + if(filePathExtension === 'bicep'){ + throw new Error(tl.loc("IncompatibleAzureCLIVersion")); + } + else{ + throw new Error(tl.loc("IncompatibleAzureCLIVersionBicepParam")); + } + } + }else{ + throw new Error(tl.loc("AzureCLINotFound")); + } + } + + return filePath + } + + private static async getAzureCliVersion(): Promise { + let azcliversion: string = "" ; + const {error, stdout, stderr } = await cpExec('az version'); + if(error && error.code !== 0){ + throw new Error(tl.loc("FailedToFetchAzureCLIVersion", stderr)); + }else{ + try{ + azcliversion = JSON.parse(stdout)["azure-cli"] + }catch(err){ + throw new Error(tl.loc("FailedToFetchAzureCLIVersion", err)); + } + } + return azcliversion + } + + private static async execBicepBuild(filePath): Promise { + var filePathExtension: string = filePath.split('.').pop(); + var finalPathExtension: string = ".json" + + if(filePathExtension === 'bicep'){ + const result: IExecSyncResult = tl.execSync("az", `bicep build --file ${filePath}`); + if(result && result.code !== 0){ + throw new Error(tl.loc("BicepBuildFailed", result.stderr)); + } + } + else{ + var fileName: string = filePath.split(path.sep).pop().split('.')[0]; + var fileDir: string = filePath.replace(path.sep + fileName +'.bicepparam', '') + finalPathExtension = ".parameters.json" + + //Using --outfile to avoid overwriting primary bicep file in the case bicep and param file have the the same file name. + const result: IExecSyncResult = tl.execSync("az", `bicep build-params --file ${filePath} --outfile ${path.join(fileDir, fileName + finalPathExtension)}`); + if(result && result.code !== 0){ + throw new Error(tl.loc("BicepParamBuildFailed", result.stderr)); + } + } + + this.cleanupFileList.push(filePath.replace('.' + filePathExtension, finalPathExtension)) + } + + private static async logoutAzure() { + const result: IExecSyncResult = tl.execSync("az", "account clear"); + if(result && result.code !== 0){ + throw new Error(tl.loc("BicepBuildFailed", result.stderr)); + } + } + + private static isBicepAvailable(azcliversion,extension): Boolean{ + let majorVersion = azcliversion.split('.')[0] + let minorVersion = azcliversion.split('.')[1] + // Support for Bicep format was introduced in az-cli 2.20.0 + if(((majorVersion == 2 && minorVersion >= 20) && extension === 'bicep') || majorVersion > 2){ + return true + } + // Support for Bicep Param format was introduced in az-cli 2.47.0 + else if(((majorVersion == 2 && minorVersion >= 47) && extension === 'bicepparam') || majorVersion > 2){ + return true + } + return false + } +} + +export = Utils; \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/package-lock.json b/_generated/AzureResourceManagerTemplateDeploymentV3/package-lock.json new file mode 100644 index 000000000000..4d8ee3c2f66c --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/package-lock.json @@ -0,0 +1,883 @@ +{ + "name": "AzureResourceManagerTemplateDeployment", + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@azure/msal-common": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-9.1.1.tgz", + "integrity": "sha512-we9xR8lvu47fF0h+J8KyXoRy9+G/fPzm3QEa2TrdR3jaVS3LKAyE2qyMuUkNdbVkvzl8Zr9f7l+IUSP22HeqXw==" + }, + "@azure/msal-node": { + "version": "1.14.5", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.14.5.tgz", + "integrity": "sha512-NcVdMfn8Z3ogN+9RjOSF7uwf2Gki5DEJl0BdDSL83KUAgVAobtkZi5W8EqxbJLrTO/ET0jv5DregrcR5qg2pEA==", + "requires": { + "@azure/msal-common": "^9.0.1", + "jsonwebtoken": "^8.5.1", + "uuid": "^8.3.0" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } + }, + "@types/concat-stream": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-1.6.1.tgz", + "integrity": "sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==", + "requires": { + "@types/node": "*" + } + }, + "@types/form-data": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-0.0.33.tgz", + "integrity": "sha1-yayFsqX9GENbjIXZ7LUObWyJP/g=", + "requires": { + "@types/node": "*" + } + }, + "@types/fs-extra": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.0.0.tgz", + "integrity": "sha512-bCtL5v9zdbQW86yexOlXWTEGvLNqWxMFyi7gQA7Gcthbezr2cPSOb8SkESVKA937QD5cIwOFLDFt0MQoXOEr9Q==", + "requires": { + "@types/node": "*" + } + }, + "@types/jsonwebtoken": { + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-8.5.9.tgz", + "integrity": "sha512-272FMnFGzAVMGtu9tkr29hRL6bZj4Zs1KZNeHLnKqAvp06tAIcarTMwOh8/8bz4FmKRcMxZhZNeUAQsNLoiPhg==", + "requires": { + "@types/node": "*" + } + }, + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "@types/node": { + "version": "16.18.39", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.39.tgz", + "integrity": "sha512-8q9ZexmdYYyc5/cfujaXb4YOucpQxAV4RMG0himLyDUOEr8Mr79VrqsFI+cQ2M2h89YIuy95lbxuYjxT4Hk4kQ==" + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "async-mutex": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/async-mutex/-/async-mutex-0.4.0.tgz", + "integrity": "sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA==", + "requires": { + "tslib": "^2.4.0" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "azure-devops-node-api": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-12.0.0.tgz", + "integrity": "sha512-S6Il++7dQeMlZDokBDWw7YVoPeb90tWF10pYxnoauRMnkuL91jq9M7SOYRVhtO3FUC5URPkB/qzGa7jTLft0Xw==", + "requires": { + "tunnel": "0.0.6", + "typed-rest-client": "^1.8.4" + } + }, + "azure-pipelines-task-lib": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.4.0.tgz", + "integrity": "sha512-JgtxfjxjRA+KWY0Q5UC1fo48nkbVxFHgKEuasKdJMSNxHydOyNlB5MNw4UTiTXp9b0nnqKeOQOBn5RN3go3aPg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "azure-pipelines-tasks-artifacts-common": { + "version": "2.225.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-artifacts-common/-/azure-pipelines-tasks-artifacts-common-2.225.0.tgz", + "integrity": "sha512-08XSqanlmZ4STq4AIOHV44Dz7Tpxjq7XpKVmlOoM/g38spb4B+XUQmZ3c+477co3Dye7c5X11zs2ZadAatmiww==", + "requires": { + "@types/fs-extra": "8.0.0", + "@types/mocha": "^5.2.6", + "@types/node": "^16.11.39", + "azure-devops-node-api": "12.0.0", + "azure-pipelines-task-lib": "^4.2.0", + "fs-extra": "8.1.0", + "semver": "6.3.0" + }, + "dependencies": { + "@types/node": { + "version": "16.18.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.38.tgz", + "integrity": "sha512-6sfo1qTulpVbkxECP+AVrHV9OoJqhzCsfTNp5NIG+enM4HyM3HvZCO798WShIXBN0+QtDIcutJCjsVYnQP5rIQ==" + }, + "azure-pipelines-task-lib": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.4.0.tgz", + "integrity": "sha512-JgtxfjxjRA+KWY0Q5UC1fo48nkbVxFHgKEuasKdJMSNxHydOyNlB5MNw4UTiTXp9b0nnqKeOQOBn5RN3go3aPg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + } + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "azure-pipelines-tasks-azure-arm-rest": { + "version": "3.223.3", + "resolved": "https://registry.npmjs.org/azure-pipelines-tasks-azure-arm-rest/-/azure-pipelines-tasks-azure-arm-rest-3.223.3.tgz", + "integrity": "sha512-kja8LPk5krRZpr8YAVpiYaxzYhn9jEGEkSkMSSDGpqnlJVf6maEkfYdyTvnXQ693wW9AGYQ/eiR75f2Rddu+nA==", + "requires": { + "@azure/msal-node": "1.14.5", + "@types/jsonwebtoken": "^8.5.8", + "@types/mocha": "^5.2.7", + "@types/node": "^10.17.0", + "@types/q": "1.5.4", + "async-mutex": "^0.4.0", + "azure-devops-node-api": "^12.0.0", + "azure-pipelines-task-lib": "^3.4.0", + "https-proxy-agent": "^4.0.0", + "jsonwebtoken": "^8.5.1", + "node-fetch": "^2.6.7", + "q": "1.5.1", + "typed-rest-client": "1.8.4", + "xml2js": "0.4.13" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "azure-pipelines-task-lib": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-3.4.0.tgz", + "integrity": "sha512-3eC4OTFw+7xD7A2aUhxR/j+jRlTI+vVfS0CGxt1pCLs4c/KmY0tQWgbqjD3157kmiucWxELBvgZHaD2gCBe9fg==", + "requires": { + "minimatch": "3.0.5", + "mockery": "^2.1.0", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "sync-request": "6.1.0", + "uuid": "^3.0.1" + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "typed-rest-client": { + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.4.tgz", + "integrity": "sha512-MyfKKYzk3I6/QQp6e1T50py4qg+c+9BzOEl2rBmQIpStwNUoqQ73An+Tkfy9YuV7O+o2mpVVJpe+fH//POZkbg==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-port": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", + "integrity": "sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw=" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-basic": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/http-basic/-/http-basic-8.1.3.tgz", + "integrity": "sha512-/EcDMwJZh3mABI2NhGfHOGOeOZITqfkEO4p/xK+l3NpyncIHUQBoMvCSF/b5GqvKtySC2srL/GGG3+EtlqlmCw==", + "requires": { + "caseless": "^0.12.0", + "concat-stream": "^1.6.2", + "http-response-object": "^3.0.1", + "parse-cache-control": "^1.0.1" + } + }, + "http-response-object": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/http-response-object/-/http-response-object-3.0.2.tgz", + "integrity": "sha512-bqX0XTF6fnXSQcEJ2Iuyr75yVakyjIDCqroJQ/aHfSdlM743Cwqoi2nDYMzLGWUcuTWGWy8AAvOKXTfiv6q9RA==", + "requires": { + "@types/node": "^10.0.3" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } + } + }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", + "requires": { + "agent-base": "5", + "debug": "4" + }, + "dependencies": { + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==" + } + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "requires": { + "has": "^1.0.3" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonwebtoken": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", + "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^5.6.0" + } + }, + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mockery": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mockery/-/mockery-2.1.0.tgz", + "integrity": "sha512-9VkOmxKlWXoDO/h1jDZaS4lH33aWfRiJiNT/tKj+8OGzrcFDLo8d0syGdbsc3Bc4GvRXPb+NMMvojotmuGJTvA==" + }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "parse-cache-control": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-cache-control/-/parse-cache-control-1.0.1.tgz", + "integrity": "sha1-juqz5U+laSD+Fro493+iGqzC104=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "promise": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", + "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "requires": { + "asap": "~2.0.6" + } + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "sync-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/sync-request/-/sync-request-6.1.0.tgz", + "integrity": "sha512-8fjNkrNlNCrVc/av+Jn+xxqfCjYaBoHqCsDz6mt030UMxJGr+GSfCV1dQt2gRtlL63+VPidwDVLr7V2OcTSdRw==", + "requires": { + "http-response-object": "^3.0.1", + "sync-rpc": "^1.2.1", + "then-request": "^6.0.0" + } + }, + "sync-rpc": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/sync-rpc/-/sync-rpc-1.3.6.tgz", + "integrity": "sha512-J8jTXuZzRlvU7HemDgHi3pGnh/rkoqR/OZSjhTyyZrEkkYQbk7Z33AXp37mkPfPpfdOuj7Ex3H/TJM1z48uPQw==", + "requires": { + "get-port": "^3.1.0" + } + }, + "then-request": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/then-request/-/then-request-6.0.2.tgz", + "integrity": "sha512-3ZBiG7JvP3wbDzA9iNY5zJQcHL4jn/0BWtXIkagfz7QgOL/LqjCEOBQuJNZfu0XYnv5JhKh+cDxCPM4ILrqruA==", + "requires": { + "@types/concat-stream": "^1.6.0", + "@types/form-data": "0.0.33", + "@types/node": "^8.0.0", + "@types/qs": "^6.2.31", + "caseless": "~0.12.0", + "concat-stream": "^1.6.0", + "form-data": "^2.2.0", + "http-basic": "^8.1.1", + "http-response-object": "^3.0.1", + "promise": "^8.0.0", + "qs": "^6.4.0" + }, + "dependencies": { + "@types/node": { + "version": "8.10.66", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.66.tgz", + "integrity": "sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==" + } + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tslib": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.2.tgz", + "integrity": "sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "typed-rest-client": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", + "requires": { + "qs": "^6.9.1", + "tunnel": "0.0.6", + "underscore": "^1.12.1" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml2js": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.13.tgz", + "integrity": "sha512-BoxD65qWA2p4znzbaati/Td19uFEc0X6ydj0bFphJO62RrNaGqOyW6ljLWPo3GKDbvW/6dnxAoRX01BsgEWsMA==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": ">=2.4.6" + } + }, + "xmlbuilder": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz", + "integrity": "sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==" + } + } +} diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/package.json b/_generated/AzureResourceManagerTemplateDeploymentV3/package.json new file mode 100644 index 000000000000..f424495da5da --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/package.json @@ -0,0 +1,16 @@ +{ + "name": "AzureResourceManagerTemplateDeployment", + "main": "main.js", + "dependencies": { + "@types/node": "^16.11.39", + "agent-base": "^6.0.2", + "azure-pipelines-task-lib": "^4.4.0", + "azure-pipelines-tasks-artifacts-common": "^2.225.0", + "azure-pipelines-tasks-azure-arm-rest": "3.223.3", + "moment": "^2.29.4", + "typed-rest-client": "^1.8.9" + }, + "devDependencies": { + "typescript": "4.0.2" + } +} diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/task.json b/_generated/AzureResourceManagerTemplateDeploymentV3/task.json new file mode 100644 index 000000000000..87c54da97336 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/task.json @@ -0,0 +1,342 @@ +{ + "id": "94A74903-F93F-4075-884F-DC11F34058B4", + "name": "AzureResourceManagerTemplateDeployment", + "friendlyName": "ARM template deployment", + "description": "Deploy an Azure Resource Manager (ARM) template to all the deployment scopes", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment", + "helpMarkDown": "[Learn more about this task](https://aka.ms/armtaskreadme)", + "category": "Deploy", + "releaseNotes": "- Added support for bicepparam.", + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 3, + "Minor": 235, + "Patch": 0 + }, + "demands": [], + "minimumAgentVersion": "2.119.1", + "groups": [ + { + "name": "AzureDetails", + "displayName": "Azure Details", + "isExpanded": true + }, + { + "name": "Template", + "displayName": "Template", + "isExpanded": true, + "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group" + }, + { + "name": "Advanced", + "displayName": "Advanced", + "isExpanded": true, + "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group" + } + ], + "inputs": [ + { + "name": "deploymentScope", + "type": "pickList", + "label": "Deployment scope", + "defaultValue": "Resource Group", + "required": "true", + "groupName": "AzureDetails", + "helpMarkDown": "Deployment scope of the deployment. To know more abour deployment scopes, refer this [link](https://docs.microsoft.com/bs-latn-ba/Azure/azure-resource-manager/resource-group-template-deploy-rest#deployment-scope)", + "options": { + "Management Group": "Management Group", + "Subscription": "Subscription", + "Resource Group": "Resource Group" + } + }, + { + "name": "ConnectedServiceName", + "aliases": [ + "azureResourceManagerConnection" + ], + "type": "connectedService:AzureRM", + "label": "Azure Resource Manager connection", + "defaultValue": "", + "required": true, + "groupName": "AzureDetails", + "helpMarkDown": "Select the Azure Resource Manager service connection having access to the selected deployment scope.", + "properties": { + "EndpointFilterRule": "ScopeLevel >= deploymentScope" + } + }, + { + "name": "subscriptionName", + "aliases": [ + "subscriptionId" + ], + "type": "pickList", + "label": "Subscription", + "required": true, + "groupName": "AzureDetails", + "helpMarkDown": "Select the Azure subscription", + "properties": { + "EditableOptions": "True" + }, + "visibleRule": "deploymentScope != Management Group" + }, + { + "name": "action", + "type": "pickList", + "label": "Action", + "defaultValue": "Create Or Update Resource Group", + "required": true, + "groupName": "AzureDetails", + "helpMarkDown": "Action to be performed on the Azure resources or resource group.", + "options": { + "Create Or Update Resource Group": "Create or update resource group", + "DeleteRG": "Delete resource group" + }, + "visibleRule": "deploymentScope = Resource Group" + }, + { + "name": "resourceGroupName", + "type": "pickList", + "label": "Resource group", + "required": true, + "groupName": "AzureDetails", + "helpMarkDown": "Provide the name of a resource group.", + "properties": { + "EditableOptions": "True" + }, + "visibleRule": "deploymentScope = Resource Group" + }, + { + "name": "location", + "type": "pickList", + "label": "Location", + "required": true, + "helpMarkDown": "For Resource Group deployment scope: Location for deploying the resource group. If the resource group already exists in the subscription, then this value will be ignored.\n For other deployment scope: Location to store deployment metadata.", + "groupName": "AzureDetails", + "properties": { + "EditableOptions": "True" + }, + "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group" + }, + { + "name": "templateLocation", + "type": "pickList", + "label": "Template location", + "required": true, + "defaultValue": "Linked artifact", + "groupName": "Template", + "options": { + "Linked artifact": "Linked artifact", + "URL of the file": "URL of the file" + } + }, + { + "name": "csmFileLink", + "type": "string", + "label": "Template link", + "defaultValue": "", + "required": true, + "groupName": "Template", + "helpMarkDown": "Specify the URL of the template file. Example: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.json) \n\nTo deploy a template stored in a private storage account, retrieve and include the shared access signature (SAS) token in the URL of the template. Example: `/template.json?` To upload a template file (or a linked template) to a storage account and generate a SAS token, you could use [Azure file copy](https://aka.ms/azurefilecopyreadme) task or follow the steps using [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) or [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911).\n\nTo view the template parameters in a grid, click on “…” next to Override template parameters text box. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS.", + "visibleRule": "templateLocation = URL of the file" + }, + { + "name": "csmParametersFileLink", + "type": "string", + "label": "Template parameters link", + "defaultValue": "", + "required": false, + "groupName": "Template", + "helpMarkDown": "Specify the URL of the parameters file. Example: [https://raw.githubusercontent.com/Azure/...](https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/101-vm-simple-windows/azuredeploy.parameters.json) \n\nTo use a file stored in a private storage account, retrieve and include the shared access signature (SAS) token in the URL of the template. Example: `/template.json?` To upload a parameters file to a storage account and generate a SAS token, you could use [Azure file copy](https://aka.ms/azurefilecopyreadme) task or follow the steps using [PowerShell](https://go.microsoft.com/fwlink/?linkid=838080) or [Azure CLI](https://go.microsoft.com/fwlink/?linkid=836911). \n\nTo view the template parameters in a grid, click on “…” next to Override template parameters text box. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS.", + "visibleRule": " templateLocation = URL of the file" + }, + { + "name": "csmFile", + "type": "filePath", + "label": "Template", + "defaultValue": "", + "required": true, + "groupName": "Template", + "visibleRule": " templateLocation = Linked artifact", + "helpMarkDown": "Specify the path or a pattern pointing to the Azure Resource Manager template. For more information about the templates see https://aka.ms/azuretemplates. To get started immediately use template https://aka.ms/sampletemplate. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0" + }, + { + "name": "csmParametersFile", + "type": "filePath", + "label": "Template parameters", + "defaultValue": "", + "required": false, + "groupName": "Template", + "helpMarkDown": "Specify the path or a pattern pointing for the parameters file for the Azure Resource Manager template. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0", + "visibleRule": " templateLocation = Linked artifact" + }, + { + "name": "overrideParameters", + "type": "multiLine", + "label": "Override template parameters", + "defaultValue": "", + "required": false, + "groupName": "Template", + "helpMarkDown": "To view the template parameters in a grid, click on “…” next to Override Parameters textbox. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS. Or type the template parameters to override in the textbox. Example,
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).
If the parameter value you're using has multiple words, enclose them in quotes, even if you're passing them using variables. For example, -name \"parameter value\" -name2 \"$(var)\"
To override object type parameters use stringified JSON objects. For example, -options [\"option1\"] -map {\"key1\": \"value1\" }. ", + "properties": { + "editorExtension": "ms.vss-services-azure.azurerg-parameters-grid" + } + }, + { + "name": "deploymentMode", + "type": "pickList", + "label": "Deployment mode", + "defaultValue": "Incremental", + "required": true, + "groupName": "Template", + "helpMarkDown": "Refer to [this](https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-modes) for more details. \n\n Incremental mode handles deployments as incremental updates to the resource group. It leaves unchanged resources that exist in the resource group but are not specified in the template. \n\n Complete mode deletes resources that are not in your template. Complete mode takes relatively more time than incremental mode. If the task times out, consider increasing the timeout, or changing the mode to 'Incremental'. \n **[Warning] Complete mode will delete all the existing resources in the resource group that are not specified in the template. Do review if the resource group you're deploying to doesn't contain any necessary resources that are not specified in the template.** \n\n Validate mode enables you to find problems with the template before creating actual resources. Validate mode enables you to find problems with the template before creating actual resources. Please note that this mode will anyways create a resource group even if it does not deploy any resource.\n\n By default, Incremental mode is used.", + "options": { + "Incremental": "Incremental", + "Complete": "Complete", + "Validation": "Validation only" + } + }, + { + "name": "deploymentName", + "type": "string", + "label": "Deployment name", + "defaultValue": "", + "required": false, + "groupName": "Advanced", + "helpMarkDown": "Specifies the name of the resource group deployment to create." + }, + { + "name": "deploymentOutputs", + "type": "string", + "label": "Deployment outputs", + "required": false, + "defaultValue": "", + "groupName": "Advanced", + "helpMarkDown": "Provide a name for the variable for the output variable which will contain the outputs section of the current deployment object in string format. You can use the “ConvertFrom-Json” PowerShell cmdlet to parse the JSON object and access the individual output values. For more details refer to [this](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)" + }, + { + "name": "addSpnToEnvironment", + "type": "boolean", + "label": "Access service principal details in override parameters", + "defaultValue": "false", + "required": false, + "helpMarkDown": "Adds service principal id and key of the Azure endpoint you chose to the script's execution environment. You can use these variables: `$servicePrincipalId` and `$servicePrincipalKey` in your override parameters like `-key $servicePrincipalKey`", + "groupName": "Advanced" + }, + { + "name": "useWithoutJSON", + "type": "boolean", + "label": "Use individual output values without JSON.Stringify applied", + "defaultValue": "false", + "required": false, + "helpMarkDown": "Individual output values are being converted via JSON.Stringify by default. If you want to use the output values as it is without converting them via JSON.Stringify, enable this option. For more details refer to [this](https://github.com/microsoft/azure-pipelines-tasks/tree/master/Tasks/AzureResourceManagerTemplateDeploymentV3#deployment-outputs)", + "groupName": "Advanced" + } + ], + "dataSourceBindings": [ + { + "target": "subscriptionName", + "endpointId": "$(ConnectedServiceName)", + "dataSourceName": "AzureSubscriptions", + "resultTemplate": "{ \"Value\" : \"{{{subscriptionId}}}\", \"DisplayValue\" : \"{{{displayName}}} ({{{subscriptionId}}})\" }" + }, + { + "target": "resourceGroupName", + "endpointId": "$(ConnectedServiceName)", + "dataSourceName": "AzureResourceGroupsByExplicitSubscription", + "parameters": { + "subscriptionId": "$(subscriptionName)" + } + }, + { + "target": "location", + "endpointId": "$(ConnectedServiceName)", + "dataSourceName": "AzureLocationsByDeploymentScope", + "parameters": { + "subscriptionId": "$(subscriptionName)", + "deploymentScope": "$(deploymentScope)" + } + } + ], + "instanceNameFormat": "ARM Template deployment: $(deploymentScope) scope", + "execution": { + "Node10": { + "target": "main.js" + }, + "Node16": { + "target": "main.js", + "argumentFormat": "" + } + }, + "messages": { + "CheckResourceGroupExistence": "Checking if the following resource group exists: %s.", + "ResourceGroupStatusFetchFailed": "Failed to check the resource group status. Error: %s.", + "ResourceGroupStatus": "Resource group exists: %s.", + "ResourceGroupCreationFailed": "Failed to create the resource group. Error: %s", + "CreatingNewRG": "Creating resource Group: %s", + "CreatedRG": "Resource Group created successfully.", + "CreatingTemplateDeployment": "Creating deployment parameters.", + "TemplateParsingFailed": "Ensure the Template file ( '%s' ) is valid. Task failed while parsing with following error: %s", + "FileFetchFailed": "Failed to download the file. URL: '%s'. Error: %s", + "ParametersFileParsingFailed": "Ensure the Parameters file ( '%s' ) is valid. Task failed while parsing with following error: %s", + "StartingDeployment": "Starting Deployment.", + "CreateTemplateDeploymentSucceeded": "Successfully deployed the template.", + "CreateTemplateDeploymentFailed": "Task failed while creating or updating the template deployment.", + "ErrorsInYourDeployment": "There were errors in your deployment. Error code: %s.", + "Details": "Details:", + "ErrorType": "Error Type:", + "PolicyDefinitionName": "Policy Definition Name :", + "PolicyAssignmentName": "Policy Assignment Name :", + "StartingValidation": "Starting template validation.", + "ValidDeployment": "Template deployment validation was completed successfully.", + "CreateTemplateDeploymentValidationFailed": "Template validation failed. Error: %s.", + "DeletingResourceGroup": "Deleting resource group: %s", + "CouldNotDeletedResourceGroup": "Could not delete resource group: '%s'. Operation failed with error: %s", + "DeletedResourceGroup": "Deleted resource group: %s", + "InvalidAction": "This action is not defined. Check with the task author.", + "ARGD_ConstructorFailed": "Task failed while initializing. Error: %s", + "InvalidTemplateLocation": "The template location supplied is invalid. Task only supports 'Linked artifact' or 'URL of the file'", + "EncodingNotSupported": "Encoding of the file '%s' is '%s' which is not supported. Supported file encodings are ['utf-8', 'utf-16le']", + "CouldNotDetectEncoding": "Could not detect encoding of file '%s'", + "DetectedFileEncoding": "The detected encoding for file '%s' is '%s'", + "ErrorWhileParsingParameter": "There was an error while overriding '%s' parameter because of '%s', make sure it follows JavaScript Object Notation (JSON)", + "TemplateFilePatternMatchingMoreThanOneFile": "Found multiple files matching template file pattern: %s", + "TemplateParameterFilePatternMatchingMoreThanOneFile": "Found multiple files matching template parameters file pattern: %s", + "TemplateFilePatternMatchingNoFile": "Could not find any file matching the template file pattern", + "TemplateParameterFilePatternMatchingNoFile": "Could not find any file matching the template file pattern", + "ParametersPatternMatchesADirectoryInsteadOfAFile": "Parameters file pattern matches a directory instead of a file.", + "CsmFilePatternMatchesADirectoryInsteadOfAFile": "Template file pattern matches a directory instead of a file: %s", + "AddedOutputVariable": "Updated output variable '%s', which contains the outputs section of the current deployment object in string format.", + "UnableToReadResponseBody": "Unable to read response body. Error: %s", + "MoreInformationOnAzurePortal": "More information on Azure Portal", + "LogDeploymentName": "Deployment name is %s", + "ResourceGroupNameNotProvided": "Resource Group name should be provided", + "LocationNotProvided": "Location is required for deployment", + "ARMServiceConnectionScope": "ARM Service Connection deployment scope - %s", + "ServicePrincipalRoleAssignmentDetails": "Please make sure the Service Principal with name %s is assigned the right roles for the entity %s. Follow the link for more details: https://docs.microsoft.com/en-us/azure/role-based-access-control/role-assignments-portal", + "ServicePrincipalFetchFailed": "Error while fetching Service Principal details: %s", + "FindMoreDeploymentDetailsAzurePortal": "Task successfully created an Azure Resource Manager deployment, but the deployment failed. Please see more detailed Azure resource manager deployment logs at: (Please Copy-Paste the link) %s", + "ManagedServiceIdentityDetails": "Please make sure the Managed Service Identity used for deployment is assigned the right roles for the Resource Group %s. Follow the link for more details: https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/howto-assign-access-portal", + "CompleteDeploymentModeNotSupported": "Deployment mode 'Complete' is not supported for deployment at '%s' scope", + "TemplateValidationFailure": "Validation errors were found in the Azure Resource Manager template. This can potentially cause template deployment to fail. %s. Please follow https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/template-syntax", + "TroubleshootingGuide": "Check out the troubleshooting guide to see if your issue is addressed: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment?view=azure-devops#troubleshooting", + "IncompatibleAzureCLIVersion": "Azure CLI version should be >= 2.20.0", + "AzureCLINotFound": "Azure CLI not found on the agent.", + "FailedToFetchAzureCLIVersion": "Failed to fetch az cli version from agent. Error: %s", + "BicepBuildFailed": "\"az bicep build\" failed. Error: %s", + "BicepFileCleanupFailed": "Failed to delete Bicep file. Error: %s", + "LoginFailed": "Azure login failed: %s", + "MSILoginFailed": "Azure login failed using Managed Service Identity: %s", + "AuthSchemeNotSupported": "Auth Scheme %s is not supported", + "ErrorInSettingUpSubscription": "Error in setting up subscription: %s", + "BicepParamBuildFailed": "\"az bicep build-param\" failed. Error: %s", + "IncompatibleAzureCLIVersionBicepParam": "Azure CLI version should be >= 2.47.0 to use .bicepparam file" + }, + "_buildConfigMapping": { + "Default": "3.235.0", + "Node20_229_2": "3.235.1" + } +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/task.loc.json b/_generated/AzureResourceManagerTemplateDeploymentV3/task.loc.json new file mode 100644 index 000000000000..4c69fdd7b7f6 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/task.loc.json @@ -0,0 +1,342 @@ +{ + "id": "94A74903-F93F-4075-884F-DC11F34058B4", + "name": "AzureResourceManagerTemplateDeployment", + "friendlyName": "ms-resource:loc.friendlyName", + "description": "ms-resource:loc.description", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment", + "helpMarkDown": "ms-resource:loc.helpMarkDown", + "category": "Deploy", + "releaseNotes": "ms-resource:loc.releaseNotes", + "visibility": [ + "Build", + "Release" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 3, + "Minor": 235, + "Patch": 0 + }, + "demands": [], + "minimumAgentVersion": "2.119.1", + "groups": [ + { + "name": "AzureDetails", + "displayName": "ms-resource:loc.group.displayName.AzureDetails", + "isExpanded": true + }, + { + "name": "Template", + "displayName": "ms-resource:loc.group.displayName.Template", + "isExpanded": true, + "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group" + }, + { + "name": "Advanced", + "displayName": "ms-resource:loc.group.displayName.Advanced", + "isExpanded": true, + "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group" + } + ], + "inputs": [ + { + "name": "deploymentScope", + "type": "pickList", + "label": "ms-resource:loc.input.label.deploymentScope", + "defaultValue": "Resource Group", + "required": "true", + "groupName": "AzureDetails", + "helpMarkDown": "ms-resource:loc.input.help.deploymentScope", + "options": { + "Management Group": "Management Group", + "Subscription": "Subscription", + "Resource Group": "Resource Group" + } + }, + { + "name": "ConnectedServiceName", + "aliases": [ + "azureResourceManagerConnection" + ], + "type": "connectedService:AzureRM", + "label": "ms-resource:loc.input.label.ConnectedServiceName", + "defaultValue": "", + "required": true, + "groupName": "AzureDetails", + "helpMarkDown": "ms-resource:loc.input.help.ConnectedServiceName", + "properties": { + "EndpointFilterRule": "ScopeLevel >= deploymentScope" + } + }, + { + "name": "subscriptionName", + "aliases": [ + "subscriptionId" + ], + "type": "pickList", + "label": "ms-resource:loc.input.label.subscriptionName", + "required": true, + "groupName": "AzureDetails", + "helpMarkDown": "ms-resource:loc.input.help.subscriptionName", + "properties": { + "EditableOptions": "True" + }, + "visibleRule": "deploymentScope != Management Group" + }, + { + "name": "action", + "type": "pickList", + "label": "ms-resource:loc.input.label.action", + "defaultValue": "Create Or Update Resource Group", + "required": true, + "groupName": "AzureDetails", + "helpMarkDown": "ms-resource:loc.input.help.action", + "options": { + "Create Or Update Resource Group": "Create or update resource group", + "DeleteRG": "Delete resource group" + }, + "visibleRule": "deploymentScope = Resource Group" + }, + { + "name": "resourceGroupName", + "type": "pickList", + "label": "ms-resource:loc.input.label.resourceGroupName", + "required": true, + "groupName": "AzureDetails", + "helpMarkDown": "ms-resource:loc.input.help.resourceGroupName", + "properties": { + "EditableOptions": "True" + }, + "visibleRule": "deploymentScope = Resource Group" + }, + { + "name": "location", + "type": "pickList", + "label": "ms-resource:loc.input.label.location", + "required": true, + "helpMarkDown": "ms-resource:loc.input.help.location", + "groupName": "AzureDetails", + "properties": { + "EditableOptions": "True" + }, + "visibleRule": "action = Create Or Update Resource Group || deploymentScope != Resource Group" + }, + { + "name": "templateLocation", + "type": "pickList", + "label": "ms-resource:loc.input.label.templateLocation", + "required": true, + "defaultValue": "Linked artifact", + "groupName": "Template", + "options": { + "Linked artifact": "Linked artifact", + "URL of the file": "URL of the file" + } + }, + { + "name": "csmFileLink", + "type": "string", + "label": "ms-resource:loc.input.label.csmFileLink", + "defaultValue": "", + "required": true, + "groupName": "Template", + "helpMarkDown": "ms-resource:loc.input.help.csmFileLink", + "visibleRule": "templateLocation = URL of the file" + }, + { + "name": "csmParametersFileLink", + "type": "string", + "label": "ms-resource:loc.input.label.csmParametersFileLink", + "defaultValue": "", + "required": false, + "groupName": "Template", + "helpMarkDown": "ms-resource:loc.input.help.csmParametersFileLink", + "visibleRule": " templateLocation = URL of the file" + }, + { + "name": "csmFile", + "type": "filePath", + "label": "ms-resource:loc.input.label.csmFile", + "defaultValue": "", + "required": true, + "groupName": "Template", + "visibleRule": " templateLocation = Linked artifact", + "helpMarkDown": "ms-resource:loc.input.help.csmFile" + }, + { + "name": "csmParametersFile", + "type": "filePath", + "label": "ms-resource:loc.input.label.csmParametersFile", + "defaultValue": "", + "required": false, + "groupName": "Template", + "helpMarkDown": "ms-resource:loc.input.help.csmParametersFile", + "visibleRule": " templateLocation = Linked artifact" + }, + { + "name": "overrideParameters", + "type": "multiLine", + "label": "ms-resource:loc.input.label.overrideParameters", + "defaultValue": "", + "required": false, + "groupName": "Template", + "helpMarkDown": "ms-resource:loc.input.help.overrideParameters", + "properties": { + "editorExtension": "ms.vss-services-azure.azurerg-parameters-grid" + } + }, + { + "name": "deploymentMode", + "type": "pickList", + "label": "ms-resource:loc.input.label.deploymentMode", + "defaultValue": "Incremental", + "required": true, + "groupName": "Template", + "helpMarkDown": "ms-resource:loc.input.help.deploymentMode", + "options": { + "Incremental": "Incremental", + "Complete": "Complete", + "Validation": "Validation only" + } + }, + { + "name": "deploymentName", + "type": "string", + "label": "ms-resource:loc.input.label.deploymentName", + "defaultValue": "", + "required": false, + "groupName": "Advanced", + "helpMarkDown": "ms-resource:loc.input.help.deploymentName" + }, + { + "name": "deploymentOutputs", + "type": "string", + "label": "ms-resource:loc.input.label.deploymentOutputs", + "required": false, + "defaultValue": "", + "groupName": "Advanced", + "helpMarkDown": "ms-resource:loc.input.help.deploymentOutputs" + }, + { + "name": "addSpnToEnvironment", + "type": "boolean", + "label": "ms-resource:loc.input.label.addSpnToEnvironment", + "defaultValue": "false", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.addSpnToEnvironment", + "groupName": "Advanced" + }, + { + "name": "useWithoutJSON", + "type": "boolean", + "label": "ms-resource:loc.input.label.useWithoutJSON", + "defaultValue": "false", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.useWithoutJSON", + "groupName": "Advanced" + } + ], + "dataSourceBindings": [ + { + "target": "subscriptionName", + "endpointId": "$(ConnectedServiceName)", + "dataSourceName": "AzureSubscriptions", + "resultTemplate": "{ \"Value\" : \"{{{subscriptionId}}}\", \"DisplayValue\" : \"{{{displayName}}} ({{{subscriptionId}}})\" }" + }, + { + "target": "resourceGroupName", + "endpointId": "$(ConnectedServiceName)", + "dataSourceName": "AzureResourceGroupsByExplicitSubscription", + "parameters": { + "subscriptionId": "$(subscriptionName)" + } + }, + { + "target": "location", + "endpointId": "$(ConnectedServiceName)", + "dataSourceName": "AzureLocationsByDeploymentScope", + "parameters": { + "subscriptionId": "$(subscriptionName)", + "deploymentScope": "$(deploymentScope)" + } + } + ], + "instanceNameFormat": "ms-resource:loc.instanceNameFormat", + "execution": { + "Node10": { + "target": "main.js" + }, + "Node16": { + "target": "main.js", + "argumentFormat": "" + } + }, + "messages": { + "CheckResourceGroupExistence": "ms-resource:loc.messages.CheckResourceGroupExistence", + "ResourceGroupStatusFetchFailed": "ms-resource:loc.messages.ResourceGroupStatusFetchFailed", + "ResourceGroupStatus": "ms-resource:loc.messages.ResourceGroupStatus", + "ResourceGroupCreationFailed": "ms-resource:loc.messages.ResourceGroupCreationFailed", + "CreatingNewRG": "ms-resource:loc.messages.CreatingNewRG", + "CreatedRG": "ms-resource:loc.messages.CreatedRG", + "CreatingTemplateDeployment": "ms-resource:loc.messages.CreatingTemplateDeployment", + "TemplateParsingFailed": "ms-resource:loc.messages.TemplateParsingFailed", + "FileFetchFailed": "ms-resource:loc.messages.FileFetchFailed", + "ParametersFileParsingFailed": "ms-resource:loc.messages.ParametersFileParsingFailed", + "StartingDeployment": "ms-resource:loc.messages.StartingDeployment", + "CreateTemplateDeploymentSucceeded": "ms-resource:loc.messages.CreateTemplateDeploymentSucceeded", + "CreateTemplateDeploymentFailed": "ms-resource:loc.messages.CreateTemplateDeploymentFailed", + "ErrorsInYourDeployment": "ms-resource:loc.messages.ErrorsInYourDeployment", + "Details": "ms-resource:loc.messages.Details", + "ErrorType": "ms-resource:loc.messages.ErrorType", + "PolicyDefinitionName": "ms-resource:loc.messages.PolicyDefinitionName", + "PolicyAssignmentName": "ms-resource:loc.messages.PolicyAssignmentName", + "StartingValidation": "ms-resource:loc.messages.StartingValidation", + "ValidDeployment": "ms-resource:loc.messages.ValidDeployment", + "CreateTemplateDeploymentValidationFailed": "ms-resource:loc.messages.CreateTemplateDeploymentValidationFailed", + "DeletingResourceGroup": "ms-resource:loc.messages.DeletingResourceGroup", + "CouldNotDeletedResourceGroup": "ms-resource:loc.messages.CouldNotDeletedResourceGroup", + "DeletedResourceGroup": "ms-resource:loc.messages.DeletedResourceGroup", + "InvalidAction": "ms-resource:loc.messages.InvalidAction", + "ARGD_ConstructorFailed": "ms-resource:loc.messages.ARGD_ConstructorFailed", + "InvalidTemplateLocation": "ms-resource:loc.messages.InvalidTemplateLocation", + "EncodingNotSupported": "ms-resource:loc.messages.EncodingNotSupported", + "CouldNotDetectEncoding": "ms-resource:loc.messages.CouldNotDetectEncoding", + "DetectedFileEncoding": "ms-resource:loc.messages.DetectedFileEncoding", + "ErrorWhileParsingParameter": "ms-resource:loc.messages.ErrorWhileParsingParameter", + "TemplateFilePatternMatchingMoreThanOneFile": "ms-resource:loc.messages.TemplateFilePatternMatchingMoreThanOneFile", + "TemplateParameterFilePatternMatchingMoreThanOneFile": "ms-resource:loc.messages.TemplateParameterFilePatternMatchingMoreThanOneFile", + "TemplateFilePatternMatchingNoFile": "ms-resource:loc.messages.TemplateFilePatternMatchingNoFile", + "TemplateParameterFilePatternMatchingNoFile": "ms-resource:loc.messages.TemplateParameterFilePatternMatchingNoFile", + "ParametersPatternMatchesADirectoryInsteadOfAFile": "ms-resource:loc.messages.ParametersPatternMatchesADirectoryInsteadOfAFile", + "CsmFilePatternMatchesADirectoryInsteadOfAFile": "ms-resource:loc.messages.CsmFilePatternMatchesADirectoryInsteadOfAFile", + "AddedOutputVariable": "ms-resource:loc.messages.AddedOutputVariable", + "UnableToReadResponseBody": "ms-resource:loc.messages.UnableToReadResponseBody", + "MoreInformationOnAzurePortal": "ms-resource:loc.messages.MoreInformationOnAzurePortal", + "LogDeploymentName": "ms-resource:loc.messages.LogDeploymentName", + "ResourceGroupNameNotProvided": "ms-resource:loc.messages.ResourceGroupNameNotProvided", + "LocationNotProvided": "ms-resource:loc.messages.LocationNotProvided", + "ARMServiceConnectionScope": "ms-resource:loc.messages.ARMServiceConnectionScope", + "ServicePrincipalRoleAssignmentDetails": "ms-resource:loc.messages.ServicePrincipalRoleAssignmentDetails", + "ServicePrincipalFetchFailed": "ms-resource:loc.messages.ServicePrincipalFetchFailed", + "FindMoreDeploymentDetailsAzurePortal": "ms-resource:loc.messages.FindMoreDeploymentDetailsAzurePortal", + "ManagedServiceIdentityDetails": "ms-resource:loc.messages.ManagedServiceIdentityDetails", + "CompleteDeploymentModeNotSupported": "ms-resource:loc.messages.CompleteDeploymentModeNotSupported", + "TemplateValidationFailure": "ms-resource:loc.messages.TemplateValidationFailure", + "TroubleshootingGuide": "ms-resource:loc.messages.TroubleshootingGuide", + "IncompatibleAzureCLIVersion": "ms-resource:loc.messages.IncompatibleAzureCLIVersion", + "AzureCLINotFound": "ms-resource:loc.messages.AzureCLINotFound", + "FailedToFetchAzureCLIVersion": "ms-resource:loc.messages.FailedToFetchAzureCLIVersion", + "BicepBuildFailed": "ms-resource:loc.messages.BicepBuildFailed", + "BicepFileCleanupFailed": "ms-resource:loc.messages.BicepFileCleanupFailed", + "LoginFailed": "ms-resource:loc.messages.LoginFailed", + "MSILoginFailed": "ms-resource:loc.messages.MSILoginFailed", + "AuthSchemeNotSupported": "ms-resource:loc.messages.AuthSchemeNotSupported", + "ErrorInSettingUpSubscription": "ms-resource:loc.messages.ErrorInSettingUpSubscription", + "BicepParamBuildFailed": "ms-resource:loc.messages.BicepParamBuildFailed", + "IncompatibleAzureCLIVersionBicepParam": "ms-resource:loc.messages.IncompatibleAzureCLIVersionBicepParam" + }, + "_buildConfigMapping": { + "Default": "3.235.0", + "Node20_229_2": "3.235.1" + } +} \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3/tsconfig.json b/_generated/AzureResourceManagerTemplateDeploymentV3/tsconfig.json new file mode 100644 index 000000000000..875bb90cd697 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3/tsconfig.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs" + } +} diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Strings/resources.resjson/en-US/resources.resjson b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Strings/resources.resjson/en-US/resources.resjson index 29eda715e723..1f180d7426ca 100644 --- a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Strings/resources.resjson/en-US/resources.resjson +++ b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Strings/resources.resjson/en-US/resources.resjson @@ -3,7 +3,7 @@ "loc.helpMarkDown": "[Learn more about this task](https://aka.ms/armtaskreadme)", "loc.description": "Deploy an Azure Resource Manager (ARM) template to all the deployment scopes", "loc.instanceNameFormat": "ARM Template deployment: $(deploymentScope) scope", - "loc.releaseNotes": "- Added support for deployment at all the deployment scopes.\n- Removed all the VM related actions.", + "loc.releaseNotes": "- Added support for bicepparam.", "loc.group.displayName.AzureDetails": "Azure Details", "loc.group.displayName.Template": "Template", "loc.group.displayName.Advanced": "Advanced", @@ -27,7 +27,7 @@ "loc.input.label.csmFile": "Template", "loc.input.help.csmFile": "Specify the path or a pattern pointing to the Azure Resource Manager template. For more information about the templates see https://aka.ms/azuretemplates. To get started immediately use template https://aka.ms/sampletemplate. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0", "loc.input.label.csmParametersFile": "Template parameters", - "loc.input.help.csmParametersFile": "Specify the path or a pattern pointing for the parameters file for the Azure Resource Manager template. 'Linked artifact' also has support for Bicep files when the Azure CLI version > 2.20.0", + "loc.input.help.csmParametersFile": "Specify the path or a pattern pointing for the parameters file for the Azure Resource Manager template. 'Linked artifact' also has support for Bicep Param files when the Azure CLI version > 2.47.0", "loc.input.label.overrideParameters": "Override template parameters", "loc.input.help.overrideParameters": "To view the template parameters in a grid, click on “…” next to Override Parameters textbox. This feature requires that CORS rules are enabled at the source. If templates are in Azure storage blob, refer to [this](https://docs.microsoft.com/en-us/rest/api/storageservices/fileservices/Cross-Origin-Resource-Sharing--CORS--Support-for-the-Azure-Storage-Services?redirectedfrom=MSDN#understanding-cors-requests) to enable CORS. Or type the template parameters to override in the textbox. Example,
–storageName fabrikam –adminUsername $(vmusername) -adminPassword $(password) –azureKeyVaultName $(fabrikamFibre).
If the parameter value you're using has multiple words, enclose them in quotes, even if you're passing them using variables. For example, -name \"parameter value\" -name2 \"$(var)\"
To override object type parameters use stringified JSON objects. For example, -options [\"option1\"] -map {\"key1\": \"value1\" }. ", "loc.input.label.deploymentMode": "Deployment mode", @@ -99,5 +99,7 @@ "loc.messages.LoginFailed": "Azure login failed: %s", "loc.messages.MSILoginFailed": "Azure login failed using Managed Service Identity: %s", "loc.messages.AuthSchemeNotSupported": "Auth Scheme %s is not supported", - "loc.messages.ErrorInSettingUpSubscription": "Error in setting up subscription: %s" + "loc.messages.ErrorInSettingUpSubscription": "Error in setting up subscription: %s", + "loc.messages.BicepParamBuildFailed": "\"az bicep build-param\" failed. Error: %s", + "loc.messages.IncompatibleAzureCLIVersionBicepParam": "Azure CLI version should be >= 2.47.0 to use .bicepparam file" } \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/CSMwithBicep.bicep b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/CSMwithBicep.bicep index ad2523a9f7b9..69219e35cb2b 100644 --- a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/CSMwithBicep.bicep +++ b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/CSMwithBicep.bicep @@ -1,10 +1,10 @@ param location string = 'eastasia' -var storageAccountName_var = 'deepak2121' +var storageAccountName = 'deepak2121' var storageAccountType = 'Premium_LRS' resource storageAccount 'Microsoft.Storage/storageAccounts@2021-01-01' = { - name: toLower(take(storageAccountName_var, 24)) + name: toLower(take(storageAccountName, 24)) location: location sku: { name: storageAccountType @@ -15,4 +15,4 @@ resource storageAccount 'Microsoft.Storage/storageAccounts@2021-01-01' = { output storageAccount_Name string = storageAccount.name output storageAccount_Location string = storageAccount.location output storageAccount_SKUName string = storageAccount.sku.name -output storageAccount_Kind string = storageAccount.kind \ No newline at end of file +output storageAccount_Kind string = storageAccount.kind diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/CSMwithBicep.bicepparam b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/CSMwithBicep.bicepparam new file mode 100644 index 000000000000..358b83b8dc21 --- /dev/null +++ b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/CSMwithBicep.bicepparam @@ -0,0 +1,3 @@ +using 'CSMwithBicep.bicep' + +param location = 'eastasia' diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/L0.ts b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/L0.ts index bde033774ab4..f8fb2d0a8e24 100644 --- a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/L0.ts +++ b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/L0.ts @@ -226,6 +226,26 @@ describe('Azure Resource Manager Template Deployment', function () { } }); + it('Successfully triggered createOrUpdate deployment using bicep file with bicepparam file', (done) => { + let tp = path.join(__dirname, 'createOrUpdate.js'); + process.env["csmFile"] = "CSMwithBicep.bicep"; + process.env["csmParametersFile"] = "CSMwithBicep.bicepparam"; + process.env["deploymentOutputs"] = "someVar"; + let tr = new ttm.MockTestRunner(tp); + tr.run(); + try { + assert(tr.succeeded, "Should have succeeded"); + assert(tr.stdout.indexOf("deployments.createOrUpdate is called") > 0, "deployments.createOrUpdate function should have been called from azure-sdk"); + assert(tr.stdout.indexOf("##vso[task.setvariable variable=someVar;]") >= 0, "deploymentsOutput should have been updated"); + done(); + } + catch (error) { + console.log("STDERR", tr.stderr); + console.log("STDOUT", tr.stdout); + done(error); + } + }); + // it('createOrUpdate deployment should fail when bicep file contains error', (done) => { // let tp = path.join(__dirname, 'createOrUpdate.js'); // process.env["csmFile"] = "CSMwithBicepWithError.bicep"; diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/createOrUpdate.ts b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/createOrUpdate.ts index 7ebbe798b903..c4c7d9ebc73c 100644 --- a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/createOrUpdate.ts +++ b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/Tests/createOrUpdate.ts @@ -33,12 +33,14 @@ process.env["ENDPOINT_AUTH_PARAMETER_AzureRM_AUTHENTICATIONTYPE"] = "key"; var CSMJson = path.join(__dirname, "CSM.json"); var CSMBicep = path.join(__dirname, "CSMwithBicep.bicep"); +var CSMBicepParam = path.join(__dirname, "CSMwithBicep.bicepparam"); var CSMBicepWithWarning = path.join(__dirname, "CSMwithBicepWithWarning.bicep"); var CSMBicepWithError = path.join(__dirname, "CSMwithBicepWithError.bicep"); var CSMwithComments = path.join(__dirname, "CSMwithComments.json"); var defaults = path.join(__dirname, "defaults.json"); var faultyCSM = path.join(__dirname, "faultyCSM.json"); var bicepbuildCmd = `az bicep build --file ${path.join(__dirname, "CSMwithBicep.bicep")}`; +var bicepparambuildCmd = `az bicep build-params --file ${path.join(__dirname, "CSMwithBicep.bicepparam")} --outfile ${path.join(__dirname, "CSMwithBicep.parameters.json")}`; var bicepbuildwithWarning = `az bicep build --file ${path.join(__dirname, "CSMwithBicepWithWarning.bicep")}`; var azloginCommand = `az login --service-principal -u "id" --password="key" --tenant "tenant" --allow-no-subscriptions`; var azaccountSet = `az account set --subscription "sId"`; @@ -50,6 +52,7 @@ const successExec = { "stdout": "Executed Successfully" } exec[bicepbuildCmd] = successExec; +exec[bicepparambuildCmd] = successExec; exec[bicepbuildwithWarning] = successExec; exec[azloginCommand] = successExec; exec[azaccountSet] = successExec; @@ -66,6 +69,7 @@ let a: ma.TaskLibAnswers = { "findMatch": { "CSM.json": [CSMJson], "CSMwithBicep.bicep": [CSMBicep], + "CSMwithBicep.bicepparam": [CSMBicepParam], "CSMwithBicepWithWarning.bicep": [CSMBicepWithWarning], "CSMwithBicepWithError.bicep": [CSMBicepWithError], "CSMwithComments.json": [CSMwithComments], @@ -85,10 +89,14 @@ tr.registerMock('azure-pipelines-tasks-azure-arm-rest/azure-arm-resource', requi const fsClone = Object.assign({}, fs); fsClone.readFileSync = function(fileName: string): Buffer { - if (fileName.indexOf("CSMwithBicep") >= 0) { + if (fileName.indexOf("CSMwithBicep.json") >= 0 || fileName.indexOf("CSMwithBicepWithWarning.json") >= 0) { const filePath = fileName.replace('.json', '.bicep'); cpExec(`az bicep build --file ${filePath}`); } + else if (fileName.indexOf("CSMwithBicep.parameters.json") >= 0) { + const filePath = fileName.replace('.parameters.json', '.bicepparam'); + cpExec(`az bicep build-params --file ${filePath} --outfile ${fileName}`); + } var buffer = fs.readFileSync(fileName); return buffer; } diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/operations/Utils.ts b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/operations/Utils.ts index 53638b62bae2..88fd16cdcf26 100644 --- a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/operations/Utils.ts +++ b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/operations/Utils.ts @@ -427,23 +427,34 @@ class Utils { private static async getFilePathForLinkedArtifact(filePath: string, taskParameters: armDeployTaskParameters.TaskParameters): Promise { var filePathExtension: string = filePath.split('.').pop(); - if(filePathExtension === 'bicep'){ + if(filePathExtension.startsWith('bicep')){ let azcliversion = await this.getAzureCliVersion() if(parseFloat(azcliversion)){ - if(this.isBicepAvailable(azcliversion)){ + if(this.isBicepAvailable(azcliversion, filePathExtension)){ setAzureCloudBasedOnServiceEndpoint(taskParameters.connectedService); await loginAzureRM(taskParameters.connectedService); await this.execBicepBuild(filePath) - filePath = filePath.replace('.bicep', '.json') - this.cleanupFileList.push(filePath) + if(filePathExtension === 'bicep'){ + filePath = filePath.replace('.bicep', '.json') + } + else{ + filePath = filePath.replace('.bicepparam', '.parameters.json') + } await this.logoutAzure(); }else{ - throw new Error(tl.loc("IncompatibleAzureCLIVersion")); + //Maintain backwards compatibility for runs that are not using bicep param and do not require higher version + if(filePathExtension === 'bicep'){ + throw new Error(tl.loc("IncompatibleAzureCLIVersion")); + } + else{ + throw new Error(tl.loc("IncompatibleAzureCLIVersionBicepParam")); + } } }else{ throw new Error(tl.loc("AzureCLINotFound")); } } + return filePath } @@ -463,10 +474,28 @@ class Utils { } private static async execBicepBuild(filePath): Promise { - const result: IExecSyncResult = tl.execSync("az", `bicep build --file ${filePath}`); - if(result && result.code !== 0){ - throw new Error(tl.loc("BicepBuildFailed", result.stderr)); + var filePathExtension: string = filePath.split('.').pop(); + var finalPathExtension: string = ".json" + + if(filePathExtension === 'bicep'){ + const result: IExecSyncResult = tl.execSync("az", `bicep build --file ${filePath}`); + if(result && result.code !== 0){ + throw new Error(tl.loc("BicepBuildFailed", result.stderr)); + } + } + else{ + var fileName: string = filePath.split(path.sep).pop().split('.')[0]; + var fileDir: string = filePath.replace(path.sep + fileName +'.bicepparam', '') + finalPathExtension = ".parameters.json" + + //Using --outfile to avoid overwriting primary bicep file in the case bicep and param file have the the same file name. + const result: IExecSyncResult = tl.execSync("az", `bicep build-params --file ${filePath} --outfile ${path.join(fileDir, fileName + finalPathExtension)}`); + if(result && result.code !== 0){ + throw new Error(tl.loc("BicepParamBuildFailed", result.stderr)); + } } + + this.cleanupFileList.push(filePath.replace('.' + filePathExtension, finalPathExtension)) } private static async logoutAzure() { @@ -476,11 +505,15 @@ class Utils { } } - private static isBicepAvailable(azcliversion): Boolean{ + private static isBicepAvailable(azcliversion,extension): Boolean{ let majorVersion = azcliversion.split('.')[0] let minorVersion = azcliversion.split('.')[1] - // Support Bicep was introduced in az-cli 2.20.0 - if((majorVersion == 2 && minorVersion >= 20) || majorVersion > 2){ + // Support for Bicep format was introduced in az-cli 2.20.0 + if(((majorVersion == 2 && minorVersion >= 20) && extension === 'bicep') || majorVersion > 2){ + return true + } + // Support for Bicep Param format was introduced in az-cli 2.47.0 + else if(((majorVersion == 2 && minorVersion >= 47) && extension === 'bicepparam') || majorVersion > 2){ return true } return false diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/task.json b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/task.json index da7bddde715a..03b030f168a0 100644 --- a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/task.json +++ b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/task.json @@ -6,7 +6,7 @@ "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-resource-group-deployment", "helpMarkDown": "[Learn more about this task](https://aka.ms/armtaskreadme)", "category": "Deploy", - "releaseNotes": "- Added support for deployment at all the deployment scopes.\n- Removed all the VM related actions.", + "releaseNotes": "- Added support for bicepparam.", "visibility": [ "Build", "Release" @@ -14,8 +14,8 @@ "author": "Microsoft Corporation", "version": { "Major": 3, - "Minor": 231, - "Patch": 2 + "Minor": 235, + "Patch": 1 }, "demands": [], "minimumAgentVersion": "2.119.1", @@ -335,10 +335,12 @@ "LoginFailed": "Azure login failed: %s", "MSILoginFailed": "Azure login failed using Managed Service Identity: %s", "AuthSchemeNotSupported": "Auth Scheme %s is not supported", - "ErrorInSettingUpSubscription": "Error in setting up subscription: %s" + "ErrorInSettingUpSubscription": "Error in setting up subscription: %s", + "BicepParamBuildFailed": "\"az bicep build-param\" failed. Error: %s", + "IncompatibleAzureCLIVersionBicepParam": "Azure CLI version should be >= 2.47.0 to use .bicepparam file" }, "_buildConfigMapping": { - "Default": "3.231.0", - "Node20_229_2": "3.231.2" + "Default": "3.235.0", + "Node20_229_2": "3.235.1" } } \ No newline at end of file diff --git a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/task.loc.json b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/task.loc.json index f1c5c700b5de..977d793f1ef3 100644 --- a/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/task.loc.json +++ b/_generated/AzureResourceManagerTemplateDeploymentV3_Node20/task.loc.json @@ -14,8 +14,8 @@ "author": "Microsoft Corporation", "version": { "Major": 3, - "Minor": 231, - "Patch": 2 + "Minor": 235, + "Patch": 1 }, "demands": [], "minimumAgentVersion": "2.119.1", @@ -335,10 +335,12 @@ "LoginFailed": "ms-resource:loc.messages.LoginFailed", "MSILoginFailed": "ms-resource:loc.messages.MSILoginFailed", "AuthSchemeNotSupported": "ms-resource:loc.messages.AuthSchemeNotSupported", - "ErrorInSettingUpSubscription": "ms-resource:loc.messages.ErrorInSettingUpSubscription" + "ErrorInSettingUpSubscription": "ms-resource:loc.messages.ErrorInSettingUpSubscription", + "BicepParamBuildFailed": "ms-resource:loc.messages.BicepParamBuildFailed", + "IncompatibleAzureCLIVersionBicepParam": "ms-resource:loc.messages.IncompatibleAzureCLIVersionBicepParam" }, "_buildConfigMapping": { - "Default": "3.231.0", - "Node20_229_2": "3.231.2" + "Default": "3.235.0", + "Node20_229_2": "3.235.1" } } \ No newline at end of file diff --git a/_generated/CondaEnvironmentV1.versionmap.txt b/_generated/CondaEnvironmentV1.versionmap.txt index 26181367ed1e..6da3626d7a5f 100644 --- a/_generated/CondaEnvironmentV1.versionmap.txt +++ b/_generated/CondaEnvironmentV1.versionmap.txt @@ -1,2 +1,2 @@ -Default|1.235.0 -Node20-225|1.235.1 +Default|1.235.2 +Node20-225|1.235.3 diff --git a/_generated/CondaEnvironmentV1/Strings/resources.resjson/en-US/resources.resjson b/_generated/CondaEnvironmentV1/Strings/resources.resjson/en-US/resources.resjson index 74ac7b229902..8ca3241634b0 100644 --- a/_generated/CondaEnvironmentV1/Strings/resources.resjson/en-US/resources.resjson +++ b/_generated/CondaEnvironmentV1/Strings/resources.resjson/en-US/resources.resjson @@ -25,5 +25,5 @@ "loc.messages.ParameterRequired": "The `%s` parameter is required", "loc.messages.PlatformNotRecognized": "Platform not recognized", "loc.messages.PrependPath": "Prepending PATH environment variable with directory: %s", - "loc.messages.DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task." + "loc.messages.DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/_generated/CondaEnvironmentV1/task.json b/_generated/CondaEnvironmentV1/task.json index 48948eb4c677..d246b3610c93 100644 --- a/_generated/CondaEnvironmentV1/task.json +++ b/_generated/CondaEnvironmentV1/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "deprecated": true, "removalDate": "2024-01-31", @@ -102,10 +102,10 @@ "ParameterRequired": "The `%s` parameter is required", "PlatformNotRecognized": "Platform not recognized", "PrependPath": "Prepending PATH environment variable with directory: %s", - "DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task." + "DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." }, "_buildConfigMapping": { - "Default": "1.235.0", - "Node20-225": "1.235.1" + "Default": "1.235.2", + "Node20-225": "1.235.3" } } \ No newline at end of file diff --git a/_generated/CondaEnvironmentV1/task.loc.json b/_generated/CondaEnvironmentV1/task.loc.json index c7dfb5c58d09..f44f1c233aaa 100644 --- a/_generated/CondaEnvironmentV1/task.loc.json +++ b/_generated/CondaEnvironmentV1/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 0 + "Patch": 2 }, "deprecated": true, "removalDate": "2024-01-31", @@ -105,7 +105,7 @@ "DeprecatedTask": "ms-resource:loc.messages.DeprecatedTask" }, "_buildConfigMapping": { - "Default": "1.235.0", - "Node20-225": "1.235.1" + "Default": "1.235.2", + "Node20-225": "1.235.3" } } \ No newline at end of file diff --git a/_generated/CondaEnvironmentV1_Node20/Strings/resources.resjson/en-US/resources.resjson b/_generated/CondaEnvironmentV1_Node20/Strings/resources.resjson/en-US/resources.resjson index 74ac7b229902..8ca3241634b0 100644 --- a/_generated/CondaEnvironmentV1_Node20/Strings/resources.resjson/en-US/resources.resjson +++ b/_generated/CondaEnvironmentV1_Node20/Strings/resources.resjson/en-US/resources.resjson @@ -25,5 +25,5 @@ "loc.messages.ParameterRequired": "The `%s` parameter is required", "loc.messages.PlatformNotRecognized": "Platform not recognized", "loc.messages.PrependPath": "Prepending PATH environment variable with directory: %s", - "loc.messages.DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task." + "loc.messages.DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/_generated/CondaEnvironmentV1_Node20/task.json b/_generated/CondaEnvironmentV1_Node20/task.json index 942a8652c533..3603c26be27b 100644 --- a/_generated/CondaEnvironmentV1_Node20/task.json +++ b/_generated/CondaEnvironmentV1_Node20/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 1 + "Patch": 3 }, "deprecated": true, "removalDate": "2024-01-31", @@ -106,10 +106,10 @@ "ParameterRequired": "The `%s` parameter is required", "PlatformNotRecognized": "Platform not recognized", "PrependPath": "Prepending PATH environment variable with directory: %s", - "DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task." + "DeprecatedTask": "The CondaEnvironment@1 (Conda environment) task has been deprecated since February 13, 2019 and will soon be retired. Use the Conda CLI ('conda') directly from a bash/pwsh/script task. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." }, "_buildConfigMapping": { - "Default": "1.235.0", - "Node20-225": "1.235.1" + "Default": "1.235.2", + "Node20-225": "1.235.3" } } \ No newline at end of file diff --git a/_generated/CondaEnvironmentV1_Node20/task.loc.json b/_generated/CondaEnvironmentV1_Node20/task.loc.json index 3dea60551c5f..f1e1a8395c2c 100644 --- a/_generated/CondaEnvironmentV1_Node20/task.loc.json +++ b/_generated/CondaEnvironmentV1_Node20/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 1 + "Patch": 3 }, "deprecated": true, "removalDate": "2024-01-31", @@ -109,7 +109,7 @@ "DeprecatedTask": "ms-resource:loc.messages.DeprecatedTask" }, "_buildConfigMapping": { - "Default": "1.235.0", - "Node20-225": "1.235.1" + "Default": "1.235.2", + "Node20-225": "1.235.3" } } \ No newline at end of file diff --git a/_generated/DotNetCoreCLIV2.versionmap.txt b/_generated/DotNetCoreCLIV2.versionmap.txt index 26a42bda1140..746251ca8bf8 100644 --- a/_generated/DotNetCoreCLIV2.versionmap.txt +++ b/_generated/DotNetCoreCLIV2.versionmap.txt @@ -1,2 +1,2 @@ -Default|2.232.0 -Node20_229_2|2.232.1 +Default|2.235.0 +Node20_229_2|2.235.1 diff --git a/_generated/DotNetCoreCLIV2/README.md b/_generated/DotNetCoreCLIV2/README.md index 9cbf9bd3a928..4dfc338c6a42 100644 --- a/_generated/DotNetCoreCLIV2/README.md +++ b/_generated/DotNetCoreCLIV2/README.md @@ -16,7 +16,7 @@ The only prerequisite for the task is that .NET Core must be installed on Azure * **Command\*:** The task can be use to run any [dotnet core command](https://docs.microsoft.com/en-us/dotnet/core/tools/?tabs=netcore2x). -* **Projects\*:** Depending on the version of .NET Core, the task can work with either project.json or a csproj file. You can pass a relative path of the .csproj file(s) from repo root. Wildcards can be used too. For example, **/*.csproj for all .csproj files in all the sub folders. +* **Projects\*:** Depending on the version of .NET Core, the task can work with either project.json or a csproj and sln file. You can pass a relative path of the .csproj file(s) from repo root. Wildcards can be used too. For example, **/*.csproj for all .csproj files in all the sub folders. * **Arguments\:** Pass arguments to the selected dotnet core command. For example, build configuration, output folder, runtime. The arguments depend on the command selected. diff --git a/_generated/DotNetCoreCLIV2/Strings/resources.resjson/en-US/resources.resjson b/_generated/DotNetCoreCLIV2/Strings/resources.resjson/en-US/resources.resjson index 7f2f8a911ae5..a10bb776bffb 100644 --- a/_generated/DotNetCoreCLIV2/Strings/resources.resjson/en-US/resources.resjson +++ b/_generated/DotNetCoreCLIV2/Strings/resources.resjson/en-US/resources.resjson @@ -14,8 +14,8 @@ "loc.input.help.command": "The dotnet command to run. Select 'Custom' to add arguments or use a command not listed here.", "loc.input.label.publishWebProjects": "Publish web projects", "loc.input.help.publishWebProjects": "If true, the task will try to find the web projects in the repository and run the publish command on them. Web projects are identified by presence of either a web.config file or wwwroot folder in the directory.", - "loc.input.label.projects": "Path to project(s)", - "loc.input.help.projects": "The path to the csproj file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**", + "loc.input.label.projects": "Path to project(s) or solution(s)", + "loc.input.help.projects": "The path to the csproj or sln file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**", "loc.input.label.custom": "Custom command", "loc.input.help.custom": "The command to pass to dotnet.exe for execution.", "loc.input.label.arguments": "Arguments", diff --git a/_generated/DotNetCoreCLIV2/package-lock.json b/_generated/DotNetCoreCLIV2/package-lock.json index 887af235969d..322487cfaeac 100644 --- a/_generated/DotNetCoreCLIV2/package-lock.json +++ b/_generated/DotNetCoreCLIV2/package-lock.json @@ -468,9 +468,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -825,9 +825,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/_generated/DotNetCoreCLIV2/task.json b/_generated/DotNetCoreCLIV2/task.json index b6127b892b2d..c75547d5e098 100644 --- a/_generated/DotNetCoreCLIV2/task.json +++ b/_generated/DotNetCoreCLIV2/task.json @@ -17,7 +17,7 @@ "demands": [], "version": { "Major": 2, - "Minor": 232, + "Minor": 235, "Patch": 0 }, "minimumAgentVersion": "2.144.0", @@ -100,11 +100,11 @@ { "name": "projects", "type": "multiLine", - "label": "Path to project(s)", + "label": "Path to project(s) or solution(s)", "defaultValue": "", "visibleRule": "command = build || command = restore || command = run || command = test || command = custom || publishWebProjects = false", "required": false, - "helpMarkDown": "The path to the csproj file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**" + "helpMarkDown": "The path to the csproj or sln file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**" }, { "name": "custom", @@ -582,7 +582,7 @@ "Error_IncludeNuGetOrgEnabled": "Packages failed to restore. Edit your build task and set 'includeNuGetOrg' to 'false' or deselect 'Use packages from NuGet.org'." }, "_buildConfigMapping": { - "Default": "2.232.0", - "Node20_229_2": "2.232.1" + "Default": "2.235.0", + "Node20_229_2": "2.235.1" } } \ No newline at end of file diff --git a/_generated/DotNetCoreCLIV2/task.loc.json b/_generated/DotNetCoreCLIV2/task.loc.json index 8a1ff494807a..ea203c4c06ef 100644 --- a/_generated/DotNetCoreCLIV2/task.loc.json +++ b/_generated/DotNetCoreCLIV2/task.loc.json @@ -17,7 +17,7 @@ "demands": [], "version": { "Major": 2, - "Minor": 232, + "Minor": 235, "Patch": 0 }, "minimumAgentVersion": "2.144.0", @@ -582,7 +582,7 @@ "Error_IncludeNuGetOrgEnabled": "ms-resource:loc.messages.Error_IncludeNuGetOrgEnabled" }, "_buildConfigMapping": { - "Default": "2.232.0", - "Node20_229_2": "2.232.1" + "Default": "2.235.0", + "Node20_229_2": "2.235.1" } } \ No newline at end of file diff --git a/_generated/DotNetCoreCLIV2_Node20/README.md b/_generated/DotNetCoreCLIV2_Node20/README.md index 9cbf9bd3a928..4dfc338c6a42 100644 --- a/_generated/DotNetCoreCLIV2_Node20/README.md +++ b/_generated/DotNetCoreCLIV2_Node20/README.md @@ -16,7 +16,7 @@ The only prerequisite for the task is that .NET Core must be installed on Azure * **Command\*:** The task can be use to run any [dotnet core command](https://docs.microsoft.com/en-us/dotnet/core/tools/?tabs=netcore2x). -* **Projects\*:** Depending on the version of .NET Core, the task can work with either project.json or a csproj file. You can pass a relative path of the .csproj file(s) from repo root. Wildcards can be used too. For example, **/*.csproj for all .csproj files in all the sub folders. +* **Projects\*:** Depending on the version of .NET Core, the task can work with either project.json or a csproj and sln file. You can pass a relative path of the .csproj file(s) from repo root. Wildcards can be used too. For example, **/*.csproj for all .csproj files in all the sub folders. * **Arguments\:** Pass arguments to the selected dotnet core command. For example, build configuration, output folder, runtime. The arguments depend on the command selected. diff --git a/_generated/DotNetCoreCLIV2_Node20/Strings/resources.resjson/en-US/resources.resjson b/_generated/DotNetCoreCLIV2_Node20/Strings/resources.resjson/en-US/resources.resjson index 7f2f8a911ae5..a10bb776bffb 100644 --- a/_generated/DotNetCoreCLIV2_Node20/Strings/resources.resjson/en-US/resources.resjson +++ b/_generated/DotNetCoreCLIV2_Node20/Strings/resources.resjson/en-US/resources.resjson @@ -14,8 +14,8 @@ "loc.input.help.command": "The dotnet command to run. Select 'Custom' to add arguments or use a command not listed here.", "loc.input.label.publishWebProjects": "Publish web projects", "loc.input.help.publishWebProjects": "If true, the task will try to find the web projects in the repository and run the publish command on them. Web projects are identified by presence of either a web.config file or wwwroot folder in the directory.", - "loc.input.label.projects": "Path to project(s)", - "loc.input.help.projects": "The path to the csproj file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**", + "loc.input.label.projects": "Path to project(s) or solution(s)", + "loc.input.help.projects": "The path to the csproj or sln file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**", "loc.input.label.custom": "Custom command", "loc.input.help.custom": "The command to pass to dotnet.exe for execution.", "loc.input.label.arguments": "Arguments", diff --git a/_generated/DotNetCoreCLIV2_Node20/package-lock.json b/_generated/DotNetCoreCLIV2_Node20/package-lock.json index 7f5b1fdd29fd..6dcbd86ef664 100644 --- a/_generated/DotNetCoreCLIV2_Node20/package-lock.json +++ b/_generated/DotNetCoreCLIV2_Node20/package-lock.json @@ -44,9 +44,9 @@ "integrity": "sha512-SwFMxO68Z6ERGFpPYBdmgfS5LloELzY16h/PMAhnxMog91JcHI5AJjW0HN56cGUPhV0nDb8xNWsJkhuDzr4lAQ==" }, "@types/node": { - "version": "20.10.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.1.tgz", - "integrity": "sha512-T2qwhjWwGH81vUEx4EXmBKsTJRXFXNZTL4v0gi01+zyBmCwzE6TyHszqX01m+QHTEq+EZNo13NeJIdEqf+Myrg==", + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", "requires": { "undici-types": "~5.26.4" } @@ -202,9 +202,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.66.tgz", - "integrity": "sha512-sePmD/imfKvC4re/Wwos1NEcXYm6O96CAG5gQVY53nmDb8ePQ4qPku6uruN7n6TJ0t5FhcoUc2+yvE2/UZVDZw==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "azure-devops-node-api": { "version": "10.2.2", @@ -230,9 +230,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.66", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.66.tgz", - "integrity": "sha512-sePmD/imfKvC4re/Wwos1NEcXYm6O96CAG5gQVY53nmDb8ePQ4qPku6uruN7n6TJ0t5FhcoUc2+yvE2/UZVDZw==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "adm-zip": { "version": "0.5.10", @@ -481,9 +481,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -838,9 +838,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/_generated/DotNetCoreCLIV2_Node20/task.json b/_generated/DotNetCoreCLIV2_Node20/task.json index 52edc2aff4a3..ead4ed474711 100644 --- a/_generated/DotNetCoreCLIV2_Node20/task.json +++ b/_generated/DotNetCoreCLIV2_Node20/task.json @@ -17,7 +17,7 @@ "demands": [], "version": { "Major": 2, - "Minor": 232, + "Minor": 235, "Patch": 1 }, "minimumAgentVersion": "2.144.0", @@ -100,11 +100,11 @@ { "name": "projects", "type": "multiLine", - "label": "Path to project(s)", + "label": "Path to project(s) or solution(s)", "defaultValue": "", "visibleRule": "command = build || command = restore || command = run || command = test || command = custom || publishWebProjects = false", "required": false, - "helpMarkDown": "The path to the csproj file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**" + "helpMarkDown": "The path to the csproj or sln file(s) to use. You can use wildcards (e.g. **/*.csproj for all .csproj files in all subfolders). **This field follows glob pattern, and is run against root of the repository at all times irrespective of Working Directory.**" }, { "name": "custom", @@ -586,7 +586,7 @@ "Error_IncludeNuGetOrgEnabled": "Packages failed to restore. Edit your build task and set 'includeNuGetOrg' to 'false' or deselect 'Use packages from NuGet.org'." }, "_buildConfigMapping": { - "Default": "2.232.0", - "Node20_229_2": "2.232.1" + "Default": "2.235.0", + "Node20_229_2": "2.235.1" } } \ No newline at end of file diff --git a/_generated/DotNetCoreCLIV2_Node20/task.loc.json b/_generated/DotNetCoreCLIV2_Node20/task.loc.json index 21ce50e91cb3..0e627bd5ad62 100644 --- a/_generated/DotNetCoreCLIV2_Node20/task.loc.json +++ b/_generated/DotNetCoreCLIV2_Node20/task.loc.json @@ -17,7 +17,7 @@ "demands": [], "version": { "Major": 2, - "Minor": 232, + "Minor": 235, "Patch": 1 }, "minimumAgentVersion": "2.144.0", @@ -586,7 +586,7 @@ "Error_IncludeNuGetOrgEnabled": "ms-resource:loc.messages.Error_IncludeNuGetOrgEnabled" }, "_buildConfigMapping": { - "Default": "2.232.0", - "Node20_229_2": "2.232.1" + "Default": "2.235.0", + "Node20_229_2": "2.235.1" } } \ No newline at end of file diff --git a/_generated/DotNetCoreInstallerV1.versionmap.txt b/_generated/DotNetCoreInstallerV1.versionmap.txt index 6f666948200c..e989965811aa 100644 --- a/_generated/DotNetCoreInstallerV1.versionmap.txt +++ b/_generated/DotNetCoreInstallerV1.versionmap.txt @@ -1,2 +1,2 @@ -Default|1.235.0 -Node20_229_3|1.235.1 +Default|1.235.2 +Node20_229_3|1.235.3 diff --git a/_generated/DotNetCoreInstallerV1_Node20/Strings/resources.resjson/en-US/resources.resjson b/_generated/DotNetCoreInstallerV1_Node20/Strings/resources.resjson/en-US/resources.resjson index 25a049565f25..1d4969656532 100644 --- a/_generated/DotNetCoreInstallerV1_Node20/Strings/resources.resjson/en-US/resources.resjson +++ b/_generated/DotNetCoreInstallerV1_Node20/Strings/resources.resjson/en-US/resources.resjson @@ -79,5 +79,5 @@ "loc.messages.VersionFilesDataIncorrect": "Version's files data is missing or has missing required fields.", "loc.messages.VersionInformationNotComplete": "Version: %s required information is not complete in releases.json file. Error: %s", "loc.messages.FailedWhileExtractingPacakge": "Failed while extracting downloaded package with error: %s", - "loc.messages.DeprecatedTask": "The DotNetCoreInstaller@1 (.NET Core SDK/runtime installer) task has been deprecated since August 22, 2019 and will soon be retired. Use the UseDotNet@2 task instead." + "loc.messages.DeprecatedTask": "The DotNetCoreInstaller@1 (.NET Core SDK/runtime installer) task has been deprecated since August 22, 2019 and will soon be retired. Use the UseDotNet@2 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/_generated/DotNetCoreInstallerV1_Node20/task.json b/_generated/DotNetCoreInstallerV1_Node20/task.json index 333102c00f70..3aa56c3e82c6 100644 --- a/_generated/DotNetCoreInstallerV1_Node20/task.json +++ b/_generated/DotNetCoreInstallerV1_Node20/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 1 + "Patch": 3 }, "deprecated": true, "removalDate": "2024-01-31", @@ -158,10 +158,10 @@ "VersionFilesDataIncorrect": "Version's files data is missing or has missing required fields.", "VersionInformationNotComplete": "Version: %s required information is not complete in releases.json file. Error: %s", "FailedWhileExtractingPacakge": "Failed while extracting downloaded package with error: %s", - "DeprecatedTask": "The DotNetCoreInstaller@1 (.NET Core SDK/runtime installer) task has been deprecated since August 22, 2019 and will soon be retired. Use the UseDotNet@2 task instead." + "DeprecatedTask": "The DotNetCoreInstaller@1 (.NET Core SDK/runtime installer) task has been deprecated since August 22, 2019 and will soon be retired. Use the UseDotNet@2 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." }, "_buildConfigMapping": { - "Default": "1.235.0", - "Node20_229_3": "1.235.1" + "Default": "1.235.2", + "Node20_229_3": "1.235.3" } } \ No newline at end of file diff --git a/_generated/DotNetCoreInstallerV1_Node20/task.loc.json b/_generated/DotNetCoreInstallerV1_Node20/task.loc.json index b370b92b7d74..ed390a6c7a1b 100644 --- a/_generated/DotNetCoreInstallerV1_Node20/task.loc.json +++ b/_generated/DotNetCoreInstallerV1_Node20/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 1 + "Patch": 3 }, "deprecated": true, "removalDate": "2024-01-31", @@ -161,7 +161,7 @@ "DeprecatedTask": "ms-resource:loc.messages.DeprecatedTask" }, "_buildConfigMapping": { - "Default": "1.235.0", - "Node20_229_3": "1.235.1" + "Default": "1.235.2", + "Node20_229_3": "1.235.3" } } \ No newline at end of file diff --git a/_generated/NodeToolV0.versionmap.txt b/_generated/NodeToolV0.versionmap.txt index 75c0fa217107..3bb1c1cb105d 100644 --- a/_generated/NodeToolV0.versionmap.txt +++ b/_generated/NodeToolV0.versionmap.txt @@ -1,2 +1,2 @@ -Default|0.233.0 -Node20-225|0.233.1 +Default|0.235.0 +Node20-225|0.235.1 diff --git a/_generated/NodeToolV0/package-lock.json b/_generated/NodeToolV0/package-lock.json index 9e9acfdeb117..0412215572f9 100644 --- a/_generated/NodeToolV0/package-lock.json +++ b/_generated/NodeToolV0/package-lock.json @@ -269,9 +269,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -567,9 +567,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/_generated/NodeToolV0/task.json b/_generated/NodeToolV0/task.json index a0f7c69e0292..8c369d2f7f5c 100644 --- a/_generated/NodeToolV0/task.json +++ b/_generated/NodeToolV0/task.json @@ -13,7 +13,7 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 233, + "Minor": 235, "Patch": 0 }, "satisfies": [ @@ -130,7 +130,7 @@ "AgentTempDirNotSet": "Expected Agent.TempDirectory to be set." }, "_buildConfigMapping": { - "Default": "0.233.0", - "Node20-225": "0.233.1" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/NodeToolV0/task.loc.json b/_generated/NodeToolV0/task.loc.json index b1bc9437e12a..e1290df93d2d 100644 --- a/_generated/NodeToolV0/task.loc.json +++ b/_generated/NodeToolV0/task.loc.json @@ -13,7 +13,7 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 233, + "Minor": 235, "Patch": 0 }, "satisfies": [ @@ -130,7 +130,7 @@ "AgentTempDirNotSet": "ms-resource:loc.messages.AgentTempDirNotSet" }, "_buildConfigMapping": { - "Default": "0.233.0", - "Node20-225": "0.233.1" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/NodeToolV0_Node20/package-lock.json b/_generated/NodeToolV0_Node20/package-lock.json index 33200c61b550..fc3052e849bf 100644 --- a/_generated/NodeToolV0_Node20/package-lock.json +++ b/_generated/NodeToolV0_Node20/package-lock.json @@ -26,19 +26,22 @@ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" }, "@types/node": { - "version": "20.5.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.7.tgz", - "integrity": "sha512-dP7f3LdZIysZnmvP3ANJYTSwg+wLLl8p7RqniVlV7j+oXSXAbt9h0WIBFmJy5inWZoX9wZN6eXx+YXd9Rh3RBA==" + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", + "requires": { + "undici-types": "~5.26.4" + } }, "@types/q": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.6.tgz", - "integrity": "sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ==" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" }, "@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==" + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, "@types/semver": { "version": "5.5.0", @@ -107,9 +110,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.59.tgz", - "integrity": "sha512-PJ1w2cNeKUEdey4LiPra0ZuxZFOGvetswE8qHRriV/sUkL5Al4tTmPV9D2+Y/TPIxTHHgxTfRjZVKWhPw/ORhQ==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "azure-pipelines-task-lib": { "version": "4.6.1", @@ -274,9 +277,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -299,13 +302,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-proto": "^1.0.1", "has-symbols": "^1.0.3" } }, @@ -345,11 +347,6 @@ "function-bind": "^1.1.1" } }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" - }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -410,9 +407,9 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "requires": { "has": "^1.0.3" } @@ -479,9 +476,9 @@ } }, "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" }, "once": { "version": "1.4.0", @@ -512,9 +509,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz", + "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", "requires": { "asap": "~2.0.6" } @@ -525,17 +522,17 @@ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" }, "qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "requires": { "side-channel": "^1.0.4" } }, "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -555,11 +552,11 @@ } }, "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -707,6 +704,11 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", diff --git a/_generated/NodeToolV0_Node20/task.json b/_generated/NodeToolV0_Node20/task.json index cc500274d18e..453253b2a23a 100644 --- a/_generated/NodeToolV0_Node20/task.json +++ b/_generated/NodeToolV0_Node20/task.json @@ -13,7 +13,7 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 233, + "Minor": 235, "Patch": 1 }, "satisfies": [ @@ -134,7 +134,7 @@ "AgentTempDirNotSet": "Expected Agent.TempDirectory to be set." }, "_buildConfigMapping": { - "Default": "0.233.0", - "Node20-225": "0.233.1" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/NodeToolV0_Node20/task.loc.json b/_generated/NodeToolV0_Node20/task.loc.json index 9b4eeead970e..11420513ae36 100644 --- a/_generated/NodeToolV0_Node20/task.loc.json +++ b/_generated/NodeToolV0_Node20/task.loc.json @@ -13,7 +13,7 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 233, + "Minor": 235, "Patch": 1 }, "satisfies": [ @@ -134,7 +134,7 @@ "AgentTempDirNotSet": "ms-resource:loc.messages.AgentTempDirNotSet" }, "_buildConfigMapping": { - "Default": "0.233.0", - "Node20-225": "0.233.1" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2.versionmap.txt b/_generated/PublishCodeCoverageResultsV2.versionmap.txt index e2aa7939be81..9152ee4b9c8c 100644 --- a/_generated/PublishCodeCoverageResultsV2.versionmap.txt +++ b/_generated/PublishCodeCoverageResultsV2.versionmap.txt @@ -1,2 +1,2 @@ -Default|2.234.0 -Node20_229_4|2.234.1 +Default|2.235.0 +Node20_229_4|2.235.1 diff --git a/_generated/PublishCodeCoverageResultsV2/README.md b/_generated/PublishCodeCoverageResultsV2/README.md new file mode 100644 index 000000000000..7472b7aeb393 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/README.md @@ -0,0 +1,12 @@ +# Publish Code Coverage Results + +### Overview +The Publish Code Coverage Results task is used to publish the code coverage results of a build. + +### The different parameters of the task are explained below: + +- **Summary Files:** Required Field. The path pattern for summary files containing code coverage statistics, such as line, method, and class coverage. The value may contain minimatch patterns as well as multiline inputs. For example: `$(System.DefaultWorkingDirectory)/MyApp/**/site/cobertura/*.xml` + +- **Path to Source Files:** The file path specifying the location of source files, this is required for generating HTML reports in case of tools which put relative paths in their summary files. + +- **Fail when code coverage files are not found:** Fail the task if the summary file patterns yielded no coverage files. \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/de-DE/resources.resjson b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/de-DE/resources.resjson new file mode 100644 index 000000000000..23eea9ab72e6 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/de-DE/resources.resjson @@ -0,0 +1,14 @@ +{ + "loc.friendlyName": "Code Coverage-Ergebnisse v2 veröffentlichen", + "loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "loc.description": "Alle Code Coverage-Ergebnisse aus einem Build veröffentlichen", + "loc.instanceNameFormat": "Code Coverage-Ergebnisse veröffentlichen", + "loc.input.label.summaryFileLocation": "Pfad zu Zusammenfassungsdateien", + "loc.input.help.summaryFileLocation": "Pfade zu Zusammenfassungsdateien, die Code Coverage-Statistiken enthalten, z. B. Zeile, Methode und Klassenabdeckung. Mehrere Zusammenfassungsdateien werden in einem einzelnen Bericht zusammengeführt. Unterstützt mehrere Zeilen mit Minimatchmustern. [Weitere Informationen](https://aka.ms/minimatchexamples)", + "loc.input.label.pathToSources": "Pfad zu Quelldateien", + "loc.input.help.pathToSources": "Der Pfad zu den Quelldateien ist erforderlich, wenn Coverage-XML-Berichte keinen absoluten Pfad zu den Quelldateien enthalten. Beispielsweise verwenden JaCoCo-Berichte keine absoluten Pfade, und beim Veröffentlichen der JaCoCo-Coveragedaten für Java-Apps würde das Muster in etwa folgendermaßen lauten: \"$(System.DefaultWorkingDirectory)/MyApp/src/main/java/\".
diese Eingabe ist auch erforderlich, wenn Tests in einem Docker-Container ausgeführt werden. Diese Eingabe muss auf den absoluten Pfad zu den Quelldateien auf dem Host zeigen. Beispiel: \"$(System.DefaultWorkingDirectory)/MyApp/\"", + "loc.input.label.failIfCoverageEmpty": "Fehler, wenn die Code Coverage-Ergebnisse fehlen", + "loc.input.help.failIfCoverageEmpty": "Fehlschlagen der Aufgabe festlegen, wenn die Code Coverage keine Ergebnisse zum Veröffentlichen ergeben hat.", + "loc.messages.FoundNMatchesForPattern": "%s Ergebnis(se) gefunden, die dem Muster: %s entsprechen", + "loc.messages.NoCodeCoverage": "Keine Code Coverage-Ergebnisse zum Veröffentlichen gefunden." +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/en-US/resources.resjson b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/en-US/resources.resjson new file mode 100644 index 000000000000..948cc60e9292 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/en-US/resources.resjson @@ -0,0 +1,14 @@ +{ + "loc.friendlyName": "Publish code coverage results v2", + "loc.helpMarkDown": "[Learn more about this task](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "loc.description": "Publish any of the code coverage results from a build", + "loc.instanceNameFormat": "Publish code coverage results", + "loc.input.label.summaryFileLocation": "Path to summary files", + "loc.input.help.summaryFileLocation": "Paths to summary files containing code coverage statistics, such as line, method, and class coverage. Multiple summary files will be merged into a single report. Supports multiple lines of minimatch patterns. [More information](https://aka.ms/minimatchexamples)", + "loc.input.label.pathToSources": "Path to Source files", + "loc.input.help.pathToSources": "Path to source files is required when coverage XML reports do not contain absolute path to source files. For e.g., JaCoCo reports do not use absolute paths and when publishing JaCoCo coverage for Java apps, the pattern would be similar to `$(System.DefaultWorkingDirectory)/MyApp/src/main/java/`.
This input is also needed if tests are run in a docker container. This input should point to absolute path to source files on the host. For e.g., `$(System.DefaultWorkingDirectory)/MyApp/`", + "loc.input.label.failIfCoverageEmpty": "Fail if code coverage results are missing", + "loc.input.help.failIfCoverageEmpty": "Fail the task if code coverage did not produce any results to publish.", + "loc.messages.FoundNMatchesForPattern": "Found %s result(s) matching pattern: %s", + "loc.messages.NoCodeCoverage": "No code coverage results were found to publish." +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/es-ES/resources.resjson b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/es-ES/resources.resjson new file mode 100644 index 000000000000..2025a961a4f7 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/es-ES/resources.resjson @@ -0,0 +1,14 @@ +{ + "loc.friendlyName": "Publicar resultados de cobertura de código v2", + "loc.helpMarkDown": "[Más información sobre esta tarea](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "loc.description": "Publicar cualquiera de los resultados de la cobertura de código de una compilación", + "loc.instanceNameFormat": "Publicar resultados de cobertura de código", + "loc.input.label.summaryFileLocation": "Ruta de acceso a los archivos de resumen", + "loc.input.help.summaryFileLocation": "Rutas de acceso a archivos de resumen que contienen estadísticas de cobertura de código, como la cobertura de clase, método y línea. Varios archivos de resumen se combinarán en un único informe. Admite varias líneas de patrones de minimatch. [Más información](https://aka.ms/minimatchexamples)", + "loc.input.label.pathToSources": "Ruta de acceso a los archivos de origen", + "loc.input.help.pathToSources": "Se requiere la ruta de acceso a los archivos de código fuente cuando los informes XML de cobertura no contienen la ruta de acceso absoluta a dichos archivos. Por ejemplo, los informes de JaCoCo no usan rutas de acceso absolutas y, al publicar la cobertura de JaCoCo para las aplicaciones Java, el patrón sería similar a \"$(System.DefaultWorkingDirectory)/MyApp/src/main/java/\".
También se necesita esta entrada si las pruebas se ejecutan en un contenedor Docker. La entrada debe apuntar a una ruta de acceso absoluta a los archivos de código fuente en el host. Por ejemplo, \"$(System.DefaultWorkingDirectory)/MyApp/\".", + "loc.input.label.failIfCoverageEmpty": "Error si faltan los resultados de cobertura de código", + "loc.input.help.failIfCoverageEmpty": "Error de tarea si la cobertura de código no produjo resultados para publicar.", + "loc.messages.FoundNMatchesForPattern": "Se encontraron %s resultados coincidentes con el patrón: %s", + "loc.messages.NoCodeCoverage": "No se encontraron resultados de cobertura de código para publicar." +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/fr-FR/resources.resjson b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/fr-FR/resources.resjson new file mode 100644 index 000000000000..567067517ded --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/fr-FR/resources.resjson @@ -0,0 +1,14 @@ +{ + "loc.friendlyName": "Publier les résultats de couverture du code v2", + "loc.helpMarkDown": "[En savoir plus sur cette tâche](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "loc.description": "Publier les résultats de couverture du code à partir d'une build", + "loc.instanceNameFormat": "Publier les résultats de la couverture du code", + "loc.input.label.summaryFileLocation": "Chemin des fichiers récapitulatifs", + "loc.input.help.summaryFileLocation": "Chemins des fichiers récapitulatifs contenant les statistiques de couverture du code, par exemple la couverture de ligne, de méthode et de classe. Plusieurs fichiers récapitulatifs sont fusionnés en un seul rapport. Prend en charge plusieurs lignes de modèles minimatch. [Plus d'informations](https://aka.ms/minimatchexamples)", + "loc.input.label.pathToSources": "Chemin des fichiers sources", + "loc.input.help.pathToSources": "Le chemin des fichiers sources est obligatoire quand les rapports XML de couverture ne contiennent pas le chemin absolu des fichiers sources. Par exemple, les rapports JaCoCo n'utilisent pas de chemins absolus, et durant la publication de la couverture JaCoCo pour les applications Java, le modèle est similaire à '$(System.DefaultWorkingDirectory)/MyApp/src/main/java/'.
Cette entrée est également nécessaire si les tests sont exécutés dans un conteneur Docker. Cette entrée doit pointer vers le chemin absolu des fichiers sources sur l'hôte. Exemple : '$(System.DefaultWorkingDirectory)/MyApp/'", + "loc.input.label.failIfCoverageEmpty": "Échec si les résultats de la couverture du code sont manquants", + "loc.input.help.failIfCoverageEmpty": "Échec de la tâche si la couverture du code ne produit aucun résultat à publier.", + "loc.messages.FoundNMatchesForPattern": "%s résultat(s) correspondant au modèle %s", + "loc.messages.NoCodeCoverage": "Il n'existe aucun résultat de couverture du code à publier." +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/it-IT/resources.resjson b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/it-IT/resources.resjson new file mode 100644 index 000000000000..441f2952f362 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/it-IT/resources.resjson @@ -0,0 +1,14 @@ +{ + "loc.friendlyName": "Pubblicare risultati code coverage v2", + "loc.helpMarkDown": "[Altre informazioni su questa attività](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "loc.description": "Pubblica i risultati del code coverage restituiti da una compilazione", + "loc.instanceNameFormat": "Pubblica risultati di code coverage", + "loc.input.label.summaryFileLocation": "Percorso dei file di riepilogo", + "loc.input.help.summaryFileLocation": "Percorsi dei file di riepilogo contenenti le statistiche di code coverage, ad esempio a livello di riga, metodo e classe. In un singolo report verranno uniti più file di riepilogo. Supporta più righe di criteri di corrispondenza minima. [Altre informazioni] (https://aka.ms/minimatchexamples)", + "loc.input.label.pathToSources": "Percorso dei file di origine", + "loc.input.help.pathToSources": "Il percorso dei file di origine è obbligatorio quando i report XML di code coverage non contengono il percorso assoluto dei file di origine. Ad esempio, i report JaCoCo non usano percorsi assoluti e quando si pubblicano le informazioni di code coverage JaCoCo per le app Java, il percorso sarà simile a `$(System.DefaultWorkingDirectory)/MyApp/src/main/java/`.
Questo valore di input è necessario anche se i test vengono eseguiti in un contenitore Docker e deve puntare al percorso assoluto dei file di origine nell'host, ad esempio `$(System.DefaultWorkingDirectory)/MyApp/`", + "loc.input.label.failIfCoverageEmpty": "Non eseguire se mancano i risultati del code coverage", + "loc.input.help.failIfCoverageEmpty": "Non esegue l'attività se il code coverage non ha prodotto risultati da pubblicare.", + "loc.messages.FoundNMatchesForPattern": "Sono stati trovati %s risultato/i corrispondenti al criterio: %s", + "loc.messages.NoCodeCoverage": "Non sono stati trovati risultati del code coverage da pubblicare." +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/ja-JP/resources.resjson b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/ja-JP/resources.resjson new file mode 100644 index 000000000000..0a5b8b079890 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/ja-JP/resources.resjson @@ -0,0 +1,14 @@ +{ + "loc.friendlyName": "コード カバレッジ結果 v2 の公開", + "loc.helpMarkDown": "[このタスクの詳細](https://learn.microsoft.com/ja-jp/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "loc.description": "ビルドからコード カバレッジの結果を公開します", + "loc.instanceNameFormat": "コード カバレッジ結果の公開", + "loc.input.label.summaryFileLocation": "概要ファイルへのパス", + "loc.input.help.summaryFileLocation": "行、メソッド、クラスのカバレッジなど、コード カバレッジ統計情報を含む概要ファイルへのパス。複数の概要ファイルが 1 つのレポートに統合されます。複数行の minimatch パターンがサポートされています。[詳細情報](https://aka.ms/minimatchexamples)", + "loc.input.label.pathToSources": "ソース ファイルへのパス", + "loc.input.help.pathToSources": "カバレッジ XML レポートにソース ファイルへの絶対パスが含まれていない場合は、ソース ファイルへのパスが必要です。例: JaCoCo レポートでは絶対パスは使用されず、Java アプリの JaCoCo カバレッジを公開する場合、パターンは `$(System.DefaultWorkingDirectory)/MyApp/src/main/java/` のようになります。
この入力は、テストが Docker コンテナーで実行されている場合にも必要です。この入力は、ホスト上のソース ファイルへの絶対パスを指している必要があります。例: `$(System.DefaultWorkingDirectory)/MyApp/`", + "loc.input.label.failIfCoverageEmpty": "コード カバレッジの結果が見つからない場合に失敗させる", + "loc.input.help.failIfCoverageEmpty": "コード カバレッジが発行する結果を生成しないと、タスクは失敗します。", + "loc.messages.FoundNMatchesForPattern": "%s 件の結果がパターン %s に一致するものとして見つかりました", + "loc.messages.NoCodeCoverage": "発行するコード カバレッジの結果が見つかりませんでした。" +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/ko-KR/resources.resjson b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/ko-KR/resources.resjson new file mode 100644 index 000000000000..d07810e0a65f --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/ko-KR/resources.resjson @@ -0,0 +1,14 @@ +{ + "loc.friendlyName": "코드 검사 결과 게시 v2", + "loc.helpMarkDown": "[이 작업에 대한 자세한 정보](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "loc.description": "빌드에서 코드 검사 결과 게시", + "loc.instanceNameFormat": "코드 검사 결과 게시", + "loc.input.label.summaryFileLocation": "요약 파일의 경로", + "loc.input.help.summaryFileLocation": "Line, method 및 class 커버리지와 같은 코드 검사 통계가 포함된 요약 파일의 경로입니다. 여러 요약 파일이 단일 보고서에 병합됩니다. 여러 줄의 minimatch 패턴을 지원합니다. [자세한 정보](https://aka.ms/minimatchexamples)", + "loc.input.label.pathToSources": "소스 파일의 경로", + "loc.input.help.pathToSources": "검사 XML 보고서에 소스 파일의 절대 경로가 없는 경우 소스 파일의 경로가 필요합니다. 예를 들어 JaCoCo 보고서에서는 절대 경로를 사용하지 않으므로, Java 앱에 대한 JaCoCo 검사를 게시할 때의 패턴은 '$(System.DefaultWorkingDirectory)/MyApp/src/main/java/'와 비슷합니다.
Docker 컨테이너에서 테스트를 실행하는 경우에도 이러한 입력이 필요합니다. 이 입력은 호스트에 있는 소스 파일의 절대 경로를 가리켜야 합니다. 예: '$(System.DefaultWorkingDirectory)/MyApp/'", + "loc.input.label.failIfCoverageEmpty": "코드 검사 결과가 없는 경우 실패", + "loc.input.help.failIfCoverageEmpty": "코드 검사에서 게시할 결과를 생성하지 않은 경우 작업에 실패합니다.", + "loc.messages.FoundNMatchesForPattern": "%s개의 결과가 패턴 %s과(와) 일치합니다.", + "loc.messages.NoCodeCoverage": "게시할 코드 검사 결과가 없습니다." +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/ru-RU/resources.resjson b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/ru-RU/resources.resjson new file mode 100644 index 000000000000..947346ad1954 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/ru-RU/resources.resjson @@ -0,0 +1,14 @@ +{ + "loc.friendlyName": "Публикация результатов объема протестированного кода версии 2", + "loc.helpMarkDown": "[Подробнее об этой задаче](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "loc.description": "Публикация результатов для объема протестированного кода из сборки", + "loc.instanceNameFormat": "Опубликовать результаты оценки объема протестированного кода", + "loc.input.label.summaryFileLocation": "Путь к сводным файлам", + "loc.input.help.summaryFileLocation": "Пути к сводным файлам, содержащим статистику по объему протестированного кода, например охват строк, методов и классов. Несколько сводных файлов будут объединены в один отчет. Поддерживает несколько строк шаблонов minimatch. [Дополнительные сведения](https://aka.ms/minimatchexamples).", + "loc.input.label.pathToSources": "Путь к исходным файлам", + "loc.input.help.pathToSources": "Путь к исходным файлам обязателен, если XML-отчеты об объеме протестированного кода не содержат абсолютный путь к исходным файлам. Например, в отчетах JaCoCo не используются абсолютные пути, и при публикации объема протестированного кода JaCoCo для приложений Java этот шаблон будет похож на \"$(System.DefaultWorkingDirectory)/MyApp/src/main/java/\".
Эти входные данные также необходимы, если тесты выполняются в контейнере Docker. Эти входные данные должны указывать на абсолютный путь к исходным файлам на узле. Например, \"$(System.DefaultWorkingDirectory)/MyApp/\"", + "loc.input.label.failIfCoverageEmpty": "Сбой, если отсутствуют результаты для объема протестированного кода", + "loc.input.help.failIfCoverageEmpty": "Происходит сбой задачи, если объем протестированного кода не создает результаты для публикации.", + "loc.messages.FoundNMatchesForPattern": "Найдены результаты (%s), соответствующие шаблону: %s", + "loc.messages.NoCodeCoverage": "Результаты по объему протестированного кода для публикации не найдены." +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/zh-CN/resources.resjson b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/zh-CN/resources.resjson new file mode 100644 index 000000000000..ec25ec1f0ed2 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/zh-CN/resources.resjson @@ -0,0 +1,14 @@ +{ + "loc.friendlyName": "发布代码覆盖率结果 v2", + "loc.helpMarkDown": "[了解有关此任务的详细信息](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "loc.description": "发布来自内部版本的任何代码覆盖率结果", + "loc.instanceNameFormat": "发布代码覆盖率结果", + "loc.input.label.summaryFileLocation": "摘要文件的路径", + "loc.input.help.summaryFileLocation": "摘要文件的路径,该文件包含代码覆盖率统计信息,如行、方法和类覆盖率。多个摘要文件将合并到一个报表中。支持多行的最小匹配模式。[详细信息](https://aka.ms/minimatchexamples)", + "loc.input.label.pathToSources": "源文件的路径", + "loc.input.help.pathToSources": "当覆盖率 XML 报表不包含源文件的绝对路径时,需要源文件的路径。例如,JaCoCo 报表不使用绝对路径,当发布 Java 应用的 JaCoCo 覆盖率时,模式将与 `$(System.DefaultWorkingDirectory)/MyApp/src/main/java/` 类似。
如果在 Docker 容器中运行测试,则也需要此输入。此输入应指向主机上源文件的绝对路径。例如 `$(System.DefaultWorkingDirectory)/MyApp/`", + "loc.input.label.failIfCoverageEmpty": "如果缺少代码覆盖率结果则失败", + "loc.input.help.failIfCoverageEmpty": "如果代码覆盖率未产生任何可发布的结果,任务将失败。", + "loc.messages.FoundNMatchesForPattern": "找到 %s 个结果匹配模式: %s", + "loc.messages.NoCodeCoverage": "未找到可发布的代码覆盖率结果。" +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/zh-TW/resources.resjson b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/zh-TW/resources.resjson new file mode 100644 index 000000000000..779d2fbf7367 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Strings/resources.resjson/zh-TW/resources.resjson @@ -0,0 +1,14 @@ +{ + "loc.friendlyName": "發佈程式碼涵蓋範圍結果 v2", + "loc.helpMarkDown": "[深入了解此工作](https://learn.microsoft.com/zh-tw/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "loc.description": "從組建發行任何程式碼涵蓋範圍結果", + "loc.instanceNameFormat": "發佈程式碼涵蓋範圍結果", + "loc.input.label.summaryFileLocation": "摘要檔案路徑", + "loc.input.help.summaryFileLocation": "包含程式碼涵蓋範圍統計資料的摘要檔路徑,例如行、方法和類別涵蓋範圍。多個摘要檔會合併成單一份報告。支援多行的 minimatch 模式。[詳細資訊](https://aka.ms/minimatchexamples)", + "loc.input.label.pathToSources": "來源檔案的路徑", + "loc.input.help.pathToSources": "當涵蓋範圍 XML 報告未包含來源檔案的絕對路徑時,來源檔案的路徑即為必要項。舉例來說,JaCoCo 並未使用絕對路徑,則在為 Java 應用程式發佈 JaCoCo 涵蓋範圍時,模式會相似於 `$(System.DefaultWorkingDirectory)/MyApp/src/main/java/`。
如果測試是在 Docker 容器中執行的,則此輸出亦為必要項。這個輸出應會在主機上指向來源檔案的絕對路徑。例如 `$(System.DefaultWorkingDirectory)/MyApp/`", + "loc.input.label.failIfCoverageEmpty": "如果遺漏程式碼涵蓋範圍結果就會失敗", + "loc.input.help.failIfCoverageEmpty": "若程式碼涵蓋範圍並未產生任何可發行結果,則工作會失敗。", + "loc.messages.FoundNMatchesForPattern": "找到 %s 個結果符合格式: %s", + "loc.messages.NoCodeCoverage": "找不到要發行的程式碼涵蓋範圍結果。" +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Tests/L0.ts b/_generated/PublishCodeCoverageResultsV2/Tests/L0.ts new file mode 100644 index 000000000000..be4bdc857175 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Tests/L0.ts @@ -0,0 +1,29 @@ +import { MockTestRunner } from 'azure-pipelines-task-lib/mock-test'; +import fs = require('fs'); +import assert = require('assert'); +import path = require('path'); + +describe('PublishCodeCoverageResultsV2 Suite', function () { + this.timeout(parseInt(process.env.TASK_TEST_TIMEOUT) || 15000); + + before(() => { + process.env["AGENT_TEMPDIRECTORY"] = process.cwd(); + }); + + it('Publish Code coverage results with Summary file matches', async function() { + const testPath = path.join(__dirname, 'L0SummaryFileLocationMatches.ts') + const tr: MockTestRunner = new MockTestRunner(testPath); + await tr.runAsync(); + + assert(tr.succeeded, 'task should have succeeded'); + }); + + it('Publish Code coverage results should work fine with empty results', async function() { + const testPath = path.join(__dirname, 'L0NotFailWithEmptyResults.ts') + const tr: MockTestRunner = new MockTestRunner(testPath); + await tr.runAsync(); + + assert(tr.succeeded, 'task should have succeeded'); // It will give a message of No code coverage for empty inputs + }); + +}); diff --git a/_generated/PublishCodeCoverageResultsV2/Tests/L0NotFailWithEmptyResults.ts b/_generated/PublishCodeCoverageResultsV2/Tests/L0NotFailWithEmptyResults.ts new file mode 100644 index 000000000000..3d9736a54603 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Tests/L0NotFailWithEmptyResults.ts @@ -0,0 +1,12 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +const taskPath = path.join(__dirname, '..', 'publishcodecoverageresults.js'); +const tr: TaskMockRunner = new TaskMockRunner(taskPath); + +tr.setInput('summaryFileLocation', 'TestFiles\sampempty.xml'); + +tr.setAnswers(answers.emptyAnswers); + +tr.run(); diff --git a/_generated/PublishCodeCoverageResultsV2/Tests/L0SummaryFileLocationMatches.ts b/_generated/PublishCodeCoverageResultsV2/Tests/L0SummaryFileLocationMatches.ts new file mode 100644 index 000000000000..3c59f2721e3b --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Tests/L0SummaryFileLocationMatches.ts @@ -0,0 +1,11 @@ +import path = require('path'); +import { TaskMockRunner } from 'azure-pipelines-task-lib/mock-run'; +import * as answers from './answers'; + +const taskPath = path.join(__dirname, '..', 'publishcodecoverageresults.js'); +const tr: TaskMockRunner = new TaskMockRunner(taskPath); + +tr.setInput('summaryFileLocation', 'TestFiles\coverage.cobertura.xml'); +tr.setAnswers(answers.defaultAnswers); + +tr.run(); diff --git a/_generated/PublishCodeCoverageResultsV2/Tests/TestFiles/coverage.cobertura.xml b/_generated/PublishCodeCoverageResultsV2/Tests/TestFiles/coverage.cobertura.xml new file mode 100644 index 000000000000..38fe215ef39c --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Tests/TestFiles/coverage.cobertura.xml @@ -0,0 +1,8370 @@ + + + + S:\src\ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/Tests/TestFiles/sampempty.xml b/_generated/PublishCodeCoverageResultsV2/Tests/TestFiles/sampempty.xml new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/_generated/PublishCodeCoverageResultsV2/Tests/answers.ts b/_generated/PublishCodeCoverageResultsV2/Tests/answers.ts new file mode 100644 index 000000000000..976bf3121a33 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/Tests/answers.ts @@ -0,0 +1,133 @@ +import { TaskLibAnswers } from 'azure-pipelines-task-lib/mock-answer'; + +export const emptyAnswers: TaskLibAnswers = { + "getVariable": { + "System.DefaultWorkingDirectory": "/someDir" + }, + "find": { + }, + "findMatch": { + "/user/admin/summary.xml": [] + }, + "exist": { + "/user/admin/summary.xml": false + } +}; + +export const noncoreAnswers: TaskLibAnswers = { + "getVariable": { + "System.DefaultWorkingDirectory": "/someDir", + "ignore.coverage.autogenerate": true + }, + "find": { + "/someDir": [ + "someDir/someFile2", + "/someDir/someFile1" + ] + }, + "exist": { + "/user/admin/summary.xml": true + }, + "which": { + "dotnet": null + }, + "findMatch": { + "/user/admin/summary.xml": [ + "/user/admin/summary.xml" + ], + "/some/*pattern": [ + "some/path", + "some/path/one", + "some/path/two" + ], + "/some/*pattern/path": [ + "some/path" + ], + "/some/*pattern/one": [ + "some/path/one" + ], + "/other/*pattern": [], + "/user/admin/report": [ + "user/admin/report" + ] + }, + "stats": { + "some/path": { + "isFile": false + }, + "some/path/one": { + "isFile": true + }, + "some/path/two": { + "isFile": true + }, + "/tmp/sources": { + "isDirectory": true + } + } +}; + +export const defaultAnswers: TaskLibAnswers = { + "getVariable": { + "System.DefaultWorkingDirectory": "/someDir", + "ignore.coverage.autogenerate": true, + "Agent.TempDirectory": '/someDir' + }, + "find": { + "/someDir": [ + "someDir/someFile2", + "/someDir/someFile1" + ], + "\\user\\admin\\summary.xml": [ + "/user/admin/summary.xml" + ] + }, + "exist": { + "/user/admin/summary.xml": true + }, + "which": { + "dotnet": "/tmp/dotnet" + }, + "findMatch": { + "\\user\\admin\\summary.xml": [ + "/user/admin/summary.xml" + ], + "/user/admin/summary.xml": [ + "/user/admin/summary.xml" + ], + "/some/*pattern": [ + "some/path", + "some/path/one", + "some/path/two" + ], + "/some/*pattern/path": [ + "some/path" + ], + "/some/*pattern/one": [ + "some/path/one" + ], + "/other/*pattern": [], + "/user/admin/report": [ + "user/admin/report" + ] + }, + "findPath": { + "\\user\\admin\\summary.xml": [ + "/user/admin/summary.xml" + ] + }, + "stats": { + "some/path": { + "isFile": false + }, + "some/path/one": { + "isFile": true + }, + "some/path/two": { + "isFile": true + }, + "/tmp/sources": { + "isDirectory" : true + } + } +} diff --git a/_generated/PublishCodeCoverageResultsV2/ThirdPartyNotices.txt b/_generated/PublishCodeCoverageResultsV2/ThirdPartyNotices.txt new file mode 100644 index 000000000000..014eb5e152db --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/ThirdPartyNotices.txt @@ -0,0 +1,466 @@ + +THIRD-PARTY SOFTWARE NOTICES AND INFORMATION +Do Not Translate or Localize + +Azure DevOps Agent incorporates third party material from the projects listed below. + +1. ReportGenerator (https://github.com/danielpalme/ReportGenerator) + Includes:AngularJS + Includes:Files with code from core.js + Includes:Files containing material from FontAwesome + Includes:File containing material from Glob.cs +2. Newtonsoft.Json (https://github.com/JamesNK/Newtonsoft.Json) + Includes:LINQBridge + + +%% ReportGenerator NOTICES AND INFORMATION BEGIN HERE +========================================= +Copyright 2019 Daniel Palme + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +========================================= +AngularJS + +The MIT License + +Copyright (c) 2010-2018 Google, Inc. http://angularjs.org + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +Files with code from core.js + +Copyright (c) 2014-2019 Denis Pushkarev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +========================================= +Files containing material from FontAwesome + +Creative Commons Attribution 4.0 International Public License + +By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions. + +Section 1 Definitions. + + Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image. + Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License. + Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights. + Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements. + Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material. + Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License. + Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license. + Licensor means the individual(s) or entity(ies) granting rights under this Public License. + Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them. + Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world. + You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning. + +Section 2 Scope. + + License grant. + Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to: + reproduce and Share the Licensed Material, in whole or in part; and + produce, reproduce, and Share Adapted Material. + Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions. + Term. The term of this Public License is specified in Section 6(a). + Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material. + Downstream recipients. + Offer from the Licensor Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License. + No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material. + No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i). + + Other rights. + Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise. + Patent and trademark rights are not licensed under this Public License. + To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties. + +Section 3 License Conditions. + +Your exercise of the Licensed Rights is expressly made subject to the following conditions. + + Attribution. + + If You Share the Licensed Material (including in modified form), You must: + retain the following if it is supplied by the Licensor with the Licensed Material: + identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated); + a copyright notice; + a notice that refers to this Public License; + a notice that refers to the disclaimer of warranties; + a URI or hyperlink to the Licensed Material to the extent reasonably practicable; + indicate if You modified the Licensed Material and retain an indication of any previous modifications; and + indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License. + You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information. + If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable. + If You Share Adapted Material You produce, the Adapter's License You apply must not prevent recipients of the Adapted Material from complying with this Public License. + +Section 4 Sui Generis Database Rights. + +Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material: + + for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database; + if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material; and + You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database. + +For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights. + +Section 5 Disclaimer of Warranties and Limitation of Liability. + + Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You. + To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You. + + The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability. + +Section 6 Term and Termination. + + This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically. + + Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates: + automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or + upon express reinstatement by the Licensor. + For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License. + For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License. + Sections 1, 5, 6, 7, and 8 survive termination of this Public License. + +Section 7 Other Terms and Conditions. + + The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed. + Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License. + +Section 8 Interpretation. + + For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License. + To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions. + No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor. + Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority. +========================================= +File containing material from Glob.cs + + Copyright 2013-2014 Michael Ganss + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +========================================= +END OF ReportGenerator NOTICES AND INFORMATION + +%% Newtonsoft.Json NOTICES AND INFORMATION BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2007 James Newton-King + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +========================================= +Includes: + +LINQBridge + +// Copyright (c) 2007-9 Atif Aziz, Joseph Albahari. All rights reserved. +// +// Author(s): +// +// Atif Aziz, http://www.raboof.com +// +// This library is free software; you can redistribute it and/or modify it +// under the terms of the New BSD License, a copy of which should have +// been delivered along with this distribution. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// + +(https://www.nuget.org/packages/LinqBridge/) + +LINQBridge Copyright (c) 2007-2009, Atif Aziz, Joseph Albahari +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. + +- Neither the name of the original authors nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +========================================= +END OF Newtonsoft.Json NOTICES AND INFORMATION + + + + diff --git a/_generated/PublishCodeCoverageResultsV2/icon.png b/_generated/PublishCodeCoverageResultsV2/icon.png new file mode 100644 index 000000000000..a9c9c041a2d9 Binary files /dev/null and b/_generated/PublishCodeCoverageResultsV2/icon.png differ diff --git a/_generated/PublishCodeCoverageResultsV2/icon.svg b/_generated/PublishCodeCoverageResultsV2/icon.svg new file mode 100644 index 000000000000..a28a126c7106 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/icon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/_generated/PublishCodeCoverageResultsV2/make.json b/_generated/PublishCodeCoverageResultsV2/make.json new file mode 100644 index 000000000000..9bf3ac72589a --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/make.json @@ -0,0 +1,17 @@ +{ + "common": [ + { + "module": "../Common/coveragepublisher", + "type": "node", + "compile": true + } + ], + "rm": [ + { + "items": [ + "node_modules/coveragepublisher/node_modules/azure-pipelines-task-lib" + ], + "options": "-Rf" + } + ] +} diff --git a/_generated/PublishCodeCoverageResultsV2/package-lock.json b/_generated/PublishCodeCoverageResultsV2/package-lock.json new file mode 100644 index 000000000000..ee494d458d63 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/package-lock.json @@ -0,0 +1,345 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@types/mocha": { + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-5.2.7.tgz", + "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" + }, + "@types/node": { + "version": "16.18.52", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.52.tgz", + "integrity": "sha512-sm2aph6cRSsTMFYFgI+RpPLunXO9ClJkpizUVdT7KmGeyfQ14xnjTMT/f3MHcfKqevXqGT6BgVFzW8wcEoDUtA==" + }, + "adm-zip": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.5.10.tgz", + "integrity": "sha512-x0HvcHqVJNTPk/Bw8JbLWlWoo6Wwnsug0fnYYro1HBrjxZ3G7/AZk7Ahv8JwDe1uIcz8eBqvu86FuF1POiG7vQ==" + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "azure-pipelines-task-lib": { + "version": "5.0.1-preview.0", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-5.0.1-preview.0.tgz", + "integrity": "sha512-/1R7HbRfY3ntupW3UWeU/Xoi95by8JjoHDOFL7AdwuiitIg2cKX/Hi1nbY1xNOwp+vZyMLrVo73IMYeE4pMdEw==", + "requires": { + "adm-zip": "^0.5.10", + "minimatch": "3.0.5", + "nodejs-file-downloader": "^4.11.1", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "uuid": "^3.0.1" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "coveragepublisher": { + "version": "file:../../_build/Tasks/Common/coveragepublisher-1.1.0.tgz", + "requires": { + "@types/node": "^16.11.39", + "azure-pipelines-task-lib": "^4.1.0", + "os": "^0.1.1", + "uuid": "^3.3.2" + }, + "dependencies": { + "azure-pipelines-task-lib": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.8.2.tgz", + "integrity": "sha512-hTupUi+c6kT6Mna1PHQzuBjWcoULphnNfYaXcUW5EyH02V8D9C7eNhArMW1uFVE0J3Vi23rdkEDYm+0oo17alw==", + "requires": { + "adm-zip": "^0.5.10", + "deasync": "^0.1.28", + "minimatch": "3.0.5", + "nodejs-file-downloader": "^4.11.1", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "uuid": "^3.0.1" + } + } + } + }, + "deasync": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.29.tgz", + "integrity": "sha512-EBtfUhVX23CE9GR6m+F8WPeImEE4hR/FW9RkK0PMl9V1t283s0elqsTD8EZjaKX28SY1BW2rYfCgNsAYdpamUw==", + "requires": { + "bindings": "^1.5.0", + "node-addon-api": "^1.7.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "follow-redirects": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "requires": { + "function-bind": "^1.1.2" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "requires": { + "hasown": "^2.0.0" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" + }, + "nodejs-file-downloader": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/nodejs-file-downloader/-/nodejs-file-downloader-4.12.1.tgz", + "integrity": "sha512-LpfCTNhh805AlLnJnzt1PuEj+RmbrccbAQZ6hBRw2e6QPVR0Qntuo6qqyvPHG5s77/0w0IEKgRAD4nbSnr/X4w==", + "requires": { + "follow-redirects": "^1.15.1", + "https-proxy-agent": "^5.0.0", + "mime-types": "^2.1.27", + "sanitize-filename": "^1.6.3" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "os": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/os/-/os-0.1.2.tgz", + "integrity": "sha512-ZoXJkvAnljwvc56MbvhtKVWmSkzV712k42Is2mA0+0KTSRakq5XXuXpjZjgAt9ctzl51ojhQWakQQpmOvXWfjQ==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==", + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, + "typescript": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz", + "integrity": "sha512-e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==", + "dev": true + }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + } + } +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/package.json b/_generated/PublishCodeCoverageResultsV2/package.json new file mode 100644 index 000000000000..2c6bb35afdf8 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/package.json @@ -0,0 +1,11 @@ +{ + "dependencies": { + "@types/mocha": "^5.2.7", + "@types/node": "^16.11.39", + "azure-pipelines-task-lib": "^5.0.1-preview.0", + "coveragepublisher": "file:../../_build/Tasks/Common/coveragepublisher-1.1.0.tgz" + }, + "devDependencies": { + "typescript": "4.0.2" + } +} diff --git a/_generated/PublishCodeCoverageResultsV2/publishcodecoverageresults.ts b/_generated/PublishCodeCoverageResultsV2/publishcodecoverageresults.ts new file mode 100644 index 000000000000..6ff1fe9a2d1d --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/publishcodecoverageresults.ts @@ -0,0 +1,74 @@ +import * as path from 'path'; +import * as taskLib from 'azure-pipelines-task-lib/task'; +import * as coveragePublisher from 'coveragepublisher/coveragepublisher'; + +// Main entry point of this task. +async function run() { + try { + // Initialize localization + taskLib.setResourcePath(path.join(__dirname, 'task.json')); + + // Get input values + const summaryFileLocations = taskLib.getInput('summaryFileLocation', true); + const failIfCoverageIsEmpty: boolean = taskLib.getBoolInput('failIfCoverageEmpty'); + const workingDirectory: string = taskLib.getVariable('System.DefaultWorkingDirectory'); + const pathToSources: string = taskLib.getInput('pathToSources'); + + var resolvedSummaryFiles = resolveSummaryFiles(workingDirectory, summaryFileLocations) + + if(resolvedSummaryFiles.length === 0) { + if(failIfCoverageIsEmpty === true) { + throw taskLib.loc('NoCodeCoverage'); + } else { + taskLib.warning(taskLib.loc('NoCodeCoverage')); + } + } + + await coveragePublisher.PublishCodeCoverage(resolvedSummaryFiles, pathToSources); + + } catch (err) { + taskLib.setResult(taskLib.TaskResult.Failed, err); + } +} + +function resolveSummaryFiles(workingDirectory: string, summaryFiles: string): string[] { + if(summaryFiles) { + const summaryFilesArray = summaryFiles.trim().split('\n').filter((pattern) => pattern.trim() != ""); + const resolvedSummaryFiles: string[] = []; + + if(summaryFilesArray.length > 0) { + summaryFilesArray.forEach(filePattern => { + const findOptions: taskLib.FindOptions = { allowBrokenSymbolicLinks: false, followSymbolicLinks: false, followSpecifiedSymbolicLink: false }; + const pathMatches: string[] = taskLib.findMatch( + workingDirectory, + filePattern, + findOptions); + + console.log(taskLib.loc('FoundNMatchesForPattern', pathMatches.length, filePattern)); + + pathMatches.forEach(path => { + if(pathExistsAsFile(path)) { + resolvedSummaryFiles.push(path); + console.log(path); + } + }); + }); + + return resolvedSummaryFiles; + } + } + + return []; +} + +// Gets whether the specified path exists as file. +function pathExistsAsFile(path: string) { + try { + return taskLib.stats(path).isFile(); + } catch (error) { + taskLib.debug(error); + return false; + } +} + +run(); diff --git a/_generated/PublishCodeCoverageResultsV2/task.json b/_generated/PublishCodeCoverageResultsV2/task.json new file mode 100644 index 000000000000..39def88f0350 --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/task.json @@ -0,0 +1,68 @@ +{ + "id": "2A7EBC54-C13E-490E-81A5-D7561AB7CD97", + "name": "PublishCodeCoverageResults", + "friendlyName": "Publish code coverage results v2", + "description": "Publish any of the code coverage results from a build", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/test/publish-code-coverage-results", + "helpMarkDown": "[Learn more about this task](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/publish-code-coverage-results-v2?view=azure-pipelines)", + "category": "Test", + "visibility": [ + "Build" + ], + "runsOn": [ + "Agent" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 2, + "Minor": 235, + "Patch": 0 + }, + "demands": [], + "minimumAgentVersion": "2.144.0", + "instanceNameFormat": "Publish code coverage results", + "inputs": [ + { + "name": "summaryFileLocation", + "type": "multiLine", + "label": "Path to summary files", + "defaultValue": "", + "required": true, + "helpMarkDown": "Paths to summary files containing code coverage statistics, such as line, method, and class coverage. Multiple summary files will be merged into a single report. Supports multiple lines of minimatch patterns. [More information](https://aka.ms/minimatchexamples)" + }, + { + "name": "pathToSources", + "type": "string", + "label": "Path to Source files", + "defaultValue": "", + "required": false, + "helpMarkDown": "Path to source files is required when coverage XML reports do not contain absolute path to source files. For e.g., JaCoCo reports do not use absolute paths and when publishing JaCoCo coverage for Java apps, the pattern would be similar to `$(System.DefaultWorkingDirectory)/MyApp/src/main/java/`.
This input is also needed if tests are run in a docker container. This input should point to absolute path to source files on the host. For e.g., `$(System.DefaultWorkingDirectory)/MyApp/`" + }, + { + "name": "failIfCoverageEmpty", + "type": "boolean", + "label": "Fail if code coverage results are missing", + "defaultValue": "false", + "required": false, + "helpMarkDown": "Fail the task if code coverage did not produce any results to publish." + } + ], + "execution": { + "Node10": { + "target": "publishcodecoverageresults.js", + "argumentFormat": "" + }, + "Node16": { + "target": "publishcodecoverageresults.js", + "argumentFormat": "" + } + }, + "messages": { + "FoundNMatchesForPattern": "Found %s result(s) matching pattern: %s", + "NoCodeCoverage": "No code coverage results were found to publish." + }, + "_buildConfigMapping": { + "Default": "2.235.0", + "Node20_229_4": "2.235.1" + } +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/task.loc.json b/_generated/PublishCodeCoverageResultsV2/task.loc.json new file mode 100644 index 000000000000..15349597ad3e --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/task.loc.json @@ -0,0 +1,68 @@ +{ + "id": "2A7EBC54-C13E-490E-81A5-D7561AB7CD97", + "name": "PublishCodeCoverageResults", + "friendlyName": "ms-resource:loc.friendlyName", + "description": "ms-resource:loc.description", + "helpUrl": "https://docs.microsoft.com/azure/devops/pipelines/tasks/test/publish-code-coverage-results", + "helpMarkDown": "ms-resource:loc.helpMarkDown", + "category": "Test", + "visibility": [ + "Build" + ], + "runsOn": [ + "Agent" + ], + "author": "Microsoft Corporation", + "version": { + "Major": 2, + "Minor": 235, + "Patch": 0 + }, + "demands": [], + "minimumAgentVersion": "2.144.0", + "instanceNameFormat": "ms-resource:loc.instanceNameFormat", + "inputs": [ + { + "name": "summaryFileLocation", + "type": "multiLine", + "label": "ms-resource:loc.input.label.summaryFileLocation", + "defaultValue": "", + "required": true, + "helpMarkDown": "ms-resource:loc.input.help.summaryFileLocation" + }, + { + "name": "pathToSources", + "type": "string", + "label": "ms-resource:loc.input.label.pathToSources", + "defaultValue": "", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.pathToSources" + }, + { + "name": "failIfCoverageEmpty", + "type": "boolean", + "label": "ms-resource:loc.input.label.failIfCoverageEmpty", + "defaultValue": "false", + "required": false, + "helpMarkDown": "ms-resource:loc.input.help.failIfCoverageEmpty" + } + ], + "execution": { + "Node10": { + "target": "publishcodecoverageresults.js", + "argumentFormat": "" + }, + "Node16": { + "target": "publishcodecoverageresults.js", + "argumentFormat": "" + } + }, + "messages": { + "FoundNMatchesForPattern": "ms-resource:loc.messages.FoundNMatchesForPattern", + "NoCodeCoverage": "ms-resource:loc.messages.NoCodeCoverage" + }, + "_buildConfigMapping": { + "Default": "2.235.0", + "Node20_229_4": "2.235.1" + } +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2/tsconfig.json b/_generated/PublishCodeCoverageResultsV2/tsconfig.json new file mode 100644 index 000000000000..0438b79f69ac --- /dev/null +++ b/_generated/PublishCodeCoverageResultsV2/tsconfig.json @@ -0,0 +1,6 @@ +{ + "compilerOptions": { + "target": "ES6", + "module": "commonjs" + } +} \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2_Node20/package-lock.json b/_generated/PublishCodeCoverageResultsV2_Node20/package-lock.json index 34d0fa8ffc1d..16a0593fa73c 100644 --- a/_generated/PublishCodeCoverageResultsV2_Node20/package-lock.json +++ b/_generated/PublishCodeCoverageResultsV2_Node20/package-lock.json @@ -47,6 +47,14 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -65,18 +73,42 @@ "version": "file:../../_build/Tasks/Common/coveragepublisher-1.1.0.tgz", "requires": { "@types/node": "^16.11.39", - "azure-pipelines-task-lib": "^5.0.1-preview.0", + "azure-pipelines-task-lib": "^4.1.0", "os": "^0.1.1", "uuid": "^3.3.2" }, "dependencies": { "@types/node": { - "version": "16.18.70", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.70.tgz", - "integrity": "sha512-8eIk20G5VVVQNZNouHjLA2b8utE2NvGybLjMaF4lyhA9uhGwnmXF8o+icdXKGSQSNANJewXva/sFUoZLwAaYAg==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" + }, + "azure-pipelines-task-lib": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/azure-pipelines-task-lib/-/azure-pipelines-task-lib-4.8.2.tgz", + "integrity": "sha512-hTupUi+c6kT6Mna1PHQzuBjWcoULphnNfYaXcUW5EyH02V8D9C7eNhArMW1uFVE0J3Vi23rdkEDYm+0oo17alw==", + "requires": { + "adm-zip": "^0.5.10", + "deasync": "^0.1.28", + "minimatch": "3.0.5", + "nodejs-file-downloader": "^4.11.1", + "q": "^1.5.1", + "semver": "^5.1.0", + "shelljs": "^0.8.5", + "uuid": "^3.0.1" + } } } }, + "deasync": { + "version": "0.1.29", + "resolved": "https://registry.npmjs.org/deasync/-/deasync-0.1.29.tgz", + "integrity": "sha512-EBtfUhVX23CE9GR6m+F8WPeImEE4hR/FW9RkK0PMl9V1t283s0elqsTD8EZjaKX28SY1BW2rYfCgNsAYdpamUw==", + "requires": { + "bindings": "^1.5.0", + "node-addon-api": "^1.7.1" + } + }, "debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -85,6 +117,11 @@ "ms": "2.1.2" } }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, "follow-redirects": { "version": "1.15.4", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", @@ -193,6 +230,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node-addon-api": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", + "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" + }, "nodejs-file-downloader": { "version": "4.12.1", "resolved": "https://registry.npmjs.org/nodejs-file-downloader/-/nodejs-file-downloader-4.12.1.tgz", diff --git a/_generated/PublishCodeCoverageResultsV2_Node20/task.json b/_generated/PublishCodeCoverageResultsV2_Node20/task.json index 2ce20c69ad15..ffb1d4de9422 100644 --- a/_generated/PublishCodeCoverageResultsV2_Node20/task.json +++ b/_generated/PublishCodeCoverageResultsV2_Node20/task.json @@ -15,7 +15,7 @@ "author": "Microsoft Corporation", "version": { "Major": 2, - "Minor": 234, + "Minor": 235, "Patch": 1 }, "demands": [], @@ -66,7 +66,7 @@ "NoCodeCoverage": "No code coverage results were found to publish." }, "_buildConfigMapping": { - "Default": "2.234.0", - "Node20_229_4": "2.234.1" + "Default": "2.235.0", + "Node20_229_4": "2.235.1" } } \ No newline at end of file diff --git a/_generated/PublishCodeCoverageResultsV2_Node20/task.loc.json b/_generated/PublishCodeCoverageResultsV2_Node20/task.loc.json index f930774154c5..33d13eb2a2ba 100644 --- a/_generated/PublishCodeCoverageResultsV2_Node20/task.loc.json +++ b/_generated/PublishCodeCoverageResultsV2_Node20/task.loc.json @@ -15,7 +15,7 @@ "author": "Microsoft Corporation", "version": { "Major": 2, - "Minor": 234, + "Minor": 235, "Patch": 1 }, "demands": [], @@ -66,7 +66,7 @@ "NoCodeCoverage": "ms-resource:loc.messages.NoCodeCoverage" }, "_buildConfigMapping": { - "Default": "2.234.0", - "Node20_229_4": "2.234.1" + "Default": "2.235.0", + "Node20_229_4": "2.235.1" } } \ No newline at end of file diff --git a/_generated/UseNodeV1.versionmap.txt b/_generated/UseNodeV1.versionmap.txt index 55c55a5feb16..26181367ed1e 100644 --- a/_generated/UseNodeV1.versionmap.txt +++ b/_generated/UseNodeV1.versionmap.txt @@ -1,2 +1,2 @@ -Default|1.231.6 -Node20-225|1.231.7 +Default|1.235.0 +Node20-225|1.235.1 diff --git a/_generated/UseNodeV1/package-lock.json b/_generated/UseNodeV1/package-lock.json index 971c9275a7ee..d95832d9fa74 100644 --- a/_generated/UseNodeV1/package-lock.json +++ b/_generated/UseNodeV1/package-lock.json @@ -259,9 +259,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -557,9 +557,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/_generated/UseNodeV1/task.json b/_generated/UseNodeV1/task.json index 310f424fe70d..74281391139e 100644 --- a/_generated/UseNodeV1/task.json +++ b/_generated/UseNodeV1/task.json @@ -16,8 +16,8 @@ "author": "Microsoft Corporation", "version": { "Major": 1, - "Minor": 231, - "Patch": 6 + "Minor": 235, + "Patch": 0 }, "satisfies": [ "Node", @@ -88,7 +88,7 @@ "AgentTempDirNotSet": "Expected Agent.TempDirectory to be set." }, "_buildConfigMapping": { - "Default": "1.231.6", - "Node20-225": "1.231.7" + "Default": "1.235.0", + "Node20-225": "1.235.1" } } \ No newline at end of file diff --git a/_generated/UseNodeV1/task.loc.json b/_generated/UseNodeV1/task.loc.json index 8f0a67cbfa8b..f36315b2b801 100644 --- a/_generated/UseNodeV1/task.loc.json +++ b/_generated/UseNodeV1/task.loc.json @@ -16,8 +16,8 @@ "author": "Microsoft Corporation", "version": { "Major": 1, - "Minor": 231, - "Patch": 6 + "Minor": 235, + "Patch": 0 }, "satisfies": [ "Node", @@ -88,7 +88,7 @@ "AgentTempDirNotSet": "ms-resource:loc.messages.AgentTempDirNotSet" }, "_buildConfigMapping": { - "Default": "1.231.6", - "Node20-225": "1.231.7" + "Default": "1.235.0", + "Node20-225": "1.235.1" } } \ No newline at end of file diff --git a/_generated/UseNodeV1_Node20/package-lock.json b/_generated/UseNodeV1_Node20/package-lock.json index 67f4acf57a47..9316fb8c8e1e 100644 --- a/_generated/UseNodeV1_Node20/package-lock.json +++ b/_generated/UseNodeV1_Node20/package-lock.json @@ -26,19 +26,22 @@ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" }, "@types/node": { - "version": "20.5.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.8.tgz", - "integrity": "sha512-eajsR9aeljqNhK028VG0Wuw+OaY5LLxYmxeoXynIoE6jannr9/Ucd1LL0hSSoafk5LTYG+FfqsyGt81Q6Zkybw==" + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", + "requires": { + "undici-types": "~5.26.4" + } }, "@types/q": { - "version": "1.5.6", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.6.tgz", - "integrity": "sha512-IKjZ8RjTSwD4/YG+2gtj7BPFRB/lNbWKTiSj3M7U/TD2B7HfYCxvp2Zz6xA2WIY7pAuL1QOUPw8gQRbUrrq4fQ==" + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.5.tgz", + "integrity": "sha512-L28j2FcJfSZOnL1WBjDYp2vUHCeIFlyYI/53EwD/rKUBQ7MtUUfbQWiyKJGpcnv4/WgrhWsFKrcPstcAt/J0tQ==" }, "@types/qs": { - "version": "6.9.8", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.8.tgz", - "integrity": "sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==" + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" }, "@types/semver": { "version": "5.5.0", @@ -107,9 +110,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.59.tgz", - "integrity": "sha512-PJ1w2cNeKUEdey4LiPra0ZuxZFOGvetswE8qHRriV/sUkL5Al4tTmPV9D2+Y/TPIxTHHgxTfRjZVKWhPw/ORhQ==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "azure-pipelines-task-lib": { "version": "4.6.1", @@ -264,9 +267,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -289,13 +292,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-proto": "^1.0.1", "has-symbols": "^1.0.3" } }, @@ -335,11 +337,6 @@ "function-bind": "^1.1.1" } }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" - }, "has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -400,9 +397,9 @@ "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" }, "is-core-module": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", - "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", "requires": { "has": "^1.0.3" } @@ -469,9 +466,9 @@ } }, "object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" }, "once": { "version": "1.4.0", @@ -502,9 +499,9 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, "promise": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", - "integrity": "sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.2.0.tgz", + "integrity": "sha512-+CMAlLHqwRYwBMXKCP+o8ns7DN+xHDUiI+0nArsiJ9y+kJVPLFxEaSw6Ha9s9H0tftxg2Yzl25wqj9G7m5wLZg==", "requires": { "asap": "~2.0.6" } @@ -515,17 +512,17 @@ "integrity": "sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw==" }, "qs": { - "version": "6.11.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", - "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", "requires": { "side-channel": "^1.0.4" } }, "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -545,11 +542,11 @@ } }, "resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "requires": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.9.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" } @@ -672,9 +669,9 @@ "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" }, "typed-rest-client": { - "version": "1.8.11", - "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", - "integrity": "sha512-5UvfMpd1oelmUPRbbaVnq+rHP7ng2cE4qoQkQeAqxRL6PklkxsM0g32/HL0yfvruK6ojQ5x8EE+HF4YV6DtuCA==", + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.9.tgz", + "integrity": "sha512-uSmjE38B80wjL85UFX3sTYEUlvZ1JgCRhsWj/fJ4rZ0FqDUFoIuodtiVeE+cUqiVTOKPdKrp/sdftD15MDek6g==", "requires": { "qs": "^6.9.1", "tunnel": "0.0.6", @@ -697,6 +694,11 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", diff --git a/_generated/UseNodeV1_Node20/task.json b/_generated/UseNodeV1_Node20/task.json index c3e1f500f69f..78a7550c7fac 100644 --- a/_generated/UseNodeV1_Node20/task.json +++ b/_generated/UseNodeV1_Node20/task.json @@ -16,8 +16,8 @@ "author": "Microsoft Corporation", "version": { "Major": 1, - "Minor": 231, - "Patch": 7 + "Minor": 235, + "Patch": 1 }, "satisfies": [ "Node", @@ -92,7 +92,7 @@ "AgentTempDirNotSet": "Expected Agent.TempDirectory to be set." }, "_buildConfigMapping": { - "Default": "1.231.6", - "Node20-225": "1.231.7" + "Default": "1.235.0", + "Node20-225": "1.235.1" } } \ No newline at end of file diff --git a/_generated/UseNodeV1_Node20/task.loc.json b/_generated/UseNodeV1_Node20/task.loc.json index 13fe48c2193c..53570846b091 100644 --- a/_generated/UseNodeV1_Node20/task.loc.json +++ b/_generated/UseNodeV1_Node20/task.loc.json @@ -16,8 +16,8 @@ "author": "Microsoft Corporation", "version": { "Major": 1, - "Minor": 231, - "Patch": 7 + "Minor": 235, + "Patch": 1 }, "satisfies": [ "Node", @@ -92,7 +92,7 @@ "AgentTempDirNotSet": "ms-resource:loc.messages.AgentTempDirNotSet" }, "_buildConfigMapping": { - "Default": "1.231.6", - "Node20-225": "1.231.7" + "Default": "1.235.0", + "Node20-225": "1.235.1" } } \ No newline at end of file diff --git a/_generated/UsePythonVersionV0.versionmap.txt b/_generated/UsePythonVersionV0.versionmap.txt index 0255841da0b3..3bb1c1cb105d 100644 --- a/_generated/UsePythonVersionV0.versionmap.txt +++ b/_generated/UsePythonVersionV0.versionmap.txt @@ -1,2 +1,2 @@ -Default|0.231.2 -Node20-225|0.231.3 +Default|0.235.0 +Node20-225|0.235.1 diff --git a/_generated/UsePythonVersionV0/package-lock.json b/_generated/UsePythonVersionV0/package-lock.json index b747550f93f3..24cea7279638 100644 --- a/_generated/UsePythonVersionV0/package-lock.json +++ b/_generated/UsePythonVersionV0/package-lock.json @@ -276,9 +276,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -582,9 +582,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } diff --git a/_generated/UsePythonVersionV0/package.json b/_generated/UsePythonVersionV0/package.json index ad721d69caf8..fab588830240 100644 --- a/_generated/UsePythonVersionV0/package.json +++ b/_generated/UsePythonVersionV0/package.json @@ -23,14 +23,14 @@ }, "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", "dependencies": { + "@types/mocha": "^5.2.7", "@types/node": "^16.11.39", "@types/q": "^1.0.7", - "@types/mocha": "^5.2.7", "azure-pipelines-task-lib": "^5.0.0-preview.0", "azure-pipelines-tasks-utility-common": "^3.230.0", "azure-pipelines-tool-lib": "^2.0.7", - "typed-rest-client": "^1.8.6", - "semver": "^7.3.5" + "semver": "^7.5.4", + "typed-rest-client": "^1.8.6" }, "devDependencies": { "typescript": "4.0.2" diff --git a/_generated/UsePythonVersionV0/task.json b/_generated/UsePythonVersionV0/task.json index 21264821705e..12c3e9877ea0 100644 --- a/_generated/UsePythonVersionV0/task.json +++ b/_generated/UsePythonVersionV0/task.json @@ -14,8 +14,8 @@ "minimumAgentVersion": "2.182.1", "version": { "Major": 0, - "Minor": 231, - "Patch": 2 + "Minor": 235, + "Patch": 0 }, "demands": [], "instanceNameFormat": "Use Python $(versionSpec)", @@ -126,7 +126,7 @@ } }, "_buildConfigMapping": { - "Default": "0.231.2", - "Node20-225": "0.231.3" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/UsePythonVersionV0/task.loc.json b/_generated/UsePythonVersionV0/task.loc.json index 574694f62d91..b6e807b1445a 100644 --- a/_generated/UsePythonVersionV0/task.loc.json +++ b/_generated/UsePythonVersionV0/task.loc.json @@ -14,8 +14,8 @@ "minimumAgentVersion": "2.182.1", "version": { "Major": 0, - "Minor": 231, - "Patch": 2 + "Minor": 235, + "Patch": 0 }, "demands": [], "instanceNameFormat": "ms-resource:loc.instanceNameFormat", @@ -126,7 +126,7 @@ } }, "_buildConfigMapping": { - "Default": "0.231.2", - "Node20-225": "0.231.3" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/UsePythonVersionV0_Node20/package-lock.json b/_generated/UsePythonVersionV0_Node20/package-lock.json index 4162de7ace16..c15915e9fd48 100644 --- a/_generated/UsePythonVersionV0_Node20/package-lock.json +++ b/_generated/UsePythonVersionV0_Node20/package-lock.json @@ -26,11 +26,11 @@ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" }, "@types/node": { - "version": "20.8.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", - "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", "requires": { - "undici-types": "~5.25.1" + "undici-types": "~5.26.4" } }, "@types/q": { @@ -117,9 +117,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.59.tgz", - "integrity": "sha512-PJ1w2cNeKUEdey4LiPra0ZuxZFOGvetswE8qHRriV/sUkL5Al4tTmPV9D2+Y/TPIxTHHgxTfRjZVKWhPw/ORhQ==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "azure-pipelines-task-lib": { "version": "4.6.1", @@ -284,9 +284,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -590,9 +590,9 @@ } }, "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "requires": { "lru-cache": "^6.0.0" } @@ -723,9 +723,9 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, "undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "utf8-byte-length": { "version": "1.0.4", diff --git a/_generated/UsePythonVersionV0_Node20/package.json b/_generated/UsePythonVersionV0_Node20/package.json index 12895cf27e92..1f5b4e5dd2b7 100644 --- a/_generated/UsePythonVersionV0_Node20/package.json +++ b/_generated/UsePythonVersionV0_Node20/package.json @@ -23,14 +23,14 @@ }, "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", "dependencies": { + "@types/mocha": "^5.2.7", "@types/node": "^20.3.1", "@types/q": "^1.0.7", - "@types/mocha": "^5.2.7", "azure-pipelines-task-lib": "^5.0.0-preview.0", "azure-pipelines-tasks-utility-common": "^3.230.0", "azure-pipelines-tool-lib": "^2.0.7", - "typed-rest-client": "^1.8.6", - "semver": "^7.3.5" + "semver": "^7.5.4", + "typed-rest-client": "^1.8.6" }, "devDependencies": { "typescript": "5.1.6" diff --git a/_generated/UsePythonVersionV0_Node20/task.json b/_generated/UsePythonVersionV0_Node20/task.json index d2e16e794b1f..70df6b7ae9b6 100644 --- a/_generated/UsePythonVersionV0_Node20/task.json +++ b/_generated/UsePythonVersionV0_Node20/task.json @@ -14,8 +14,8 @@ "minimumAgentVersion": "2.182.1", "version": { "Major": 0, - "Minor": 231, - "Patch": 3 + "Minor": 235, + "Patch": 1 }, "demands": [], "instanceNameFormat": "Use Python $(versionSpec)", @@ -130,7 +130,7 @@ } }, "_buildConfigMapping": { - "Default": "0.231.2", - "Node20-225": "0.231.3" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/UsePythonVersionV0_Node20/task.loc.json b/_generated/UsePythonVersionV0_Node20/task.loc.json index 304e8c30b8c4..8480938de328 100644 --- a/_generated/UsePythonVersionV0_Node20/task.loc.json +++ b/_generated/UsePythonVersionV0_Node20/task.loc.json @@ -14,8 +14,8 @@ "minimumAgentVersion": "2.182.1", "version": { "Major": 0, - "Minor": 231, - "Patch": 3 + "Minor": 235, + "Patch": 1 }, "demands": [], "instanceNameFormat": "ms-resource:loc.instanceNameFormat", @@ -130,7 +130,7 @@ } }, "_buildConfigMapping": { - "Default": "0.231.2", - "Node20-225": "0.231.3" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/UseRubyVersionV0.versionmap.txt b/_generated/UseRubyVersionV0.versionmap.txt index 0255841da0b3..3bb1c1cb105d 100644 --- a/_generated/UseRubyVersionV0.versionmap.txt +++ b/_generated/UseRubyVersionV0.versionmap.txt @@ -1,2 +1,2 @@ -Default|0.231.2 -Node20-225|0.231.3 +Default|0.235.0 +Node20-225|0.235.1 diff --git a/_generated/UseRubyVersionV0/package-lock.json b/_generated/UseRubyVersionV0/package-lock.json index 9f47211954cd..a67870a7d297 100644 --- a/_generated/UseRubyVersionV0/package-lock.json +++ b/_generated/UseRubyVersionV0/package-lock.json @@ -259,9 +259,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -557,9 +557,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/_generated/UseRubyVersionV0/task.json b/_generated/UseRubyVersionV0/task.json index 68635e1a24c2..2ff8b5e530d4 100644 --- a/_generated/UseRubyVersionV0/task.json +++ b/_generated/UseRubyVersionV0/task.json @@ -13,8 +13,8 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 231, - "Patch": 2 + "Minor": 235, + "Patch": 0 }, "demands": [], "minimumAgentVersion": "2.182.1", @@ -73,7 +73,7 @@ } }, "_buildConfigMapping": { - "Default": "0.231.2", - "Node20-225": "0.231.3" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/UseRubyVersionV0/task.loc.json b/_generated/UseRubyVersionV0/task.loc.json index ff37a1ce2235..7eb2dc3997c6 100644 --- a/_generated/UseRubyVersionV0/task.loc.json +++ b/_generated/UseRubyVersionV0/task.loc.json @@ -13,8 +13,8 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 231, - "Patch": 2 + "Minor": 235, + "Patch": 0 }, "demands": [], "minimumAgentVersion": "2.182.1", @@ -73,7 +73,7 @@ } }, "_buildConfigMapping": { - "Default": "0.231.2", - "Node20-225": "0.231.3" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/UseRubyVersionV0_Node20/package-lock.json b/_generated/UseRubyVersionV0_Node20/package-lock.json index 54a1249cd139..91b582f62f06 100644 --- a/_generated/UseRubyVersionV0_Node20/package-lock.json +++ b/_generated/UseRubyVersionV0_Node20/package-lock.json @@ -26,11 +26,11 @@ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" }, "@types/node": { - "version": "20.8.6", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", - "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", "requires": { - "undici-types": "~5.25.1" + "undici-types": "~5.26.4" } }, "@types/q": { @@ -110,9 +110,9 @@ }, "dependencies": { "@types/node": { - "version": "16.18.59", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.59.tgz", - "integrity": "sha512-PJ1w2cNeKUEdey4LiPra0ZuxZFOGvetswE8qHRriV/sUkL5Al4tTmPV9D2+Y/TPIxTHHgxTfRjZVKWhPw/ORhQ==" + "version": "16.18.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.76.tgz", + "integrity": "sha512-/GsO2uv1Z6R42lBr59dtem56gVF/yHKQaScggwU+gLU6DXE25sDmOar4c4IfWb3h+X/7OYZznPOFk7oGF3jQSA==" }, "azure-pipelines-task-lib": { "version": "4.6.1", @@ -267,9 +267,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -565,9 +565,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", @@ -695,9 +695,9 @@ "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, "undici-types": { - "version": "5.25.3", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", - "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==" + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" }, "utf8-byte-length": { "version": "1.0.4", diff --git a/_generated/UseRubyVersionV0_Node20/task.json b/_generated/UseRubyVersionV0_Node20/task.json index 063ce3db33ef..c4df729f2770 100644 --- a/_generated/UseRubyVersionV0_Node20/task.json +++ b/_generated/UseRubyVersionV0_Node20/task.json @@ -13,8 +13,8 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 231, - "Patch": 3 + "Minor": 235, + "Patch": 1 }, "demands": [], "minimumAgentVersion": "2.182.1", @@ -77,7 +77,7 @@ } }, "_buildConfigMapping": { - "Default": "0.231.2", - "Node20-225": "0.231.3" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/UseRubyVersionV0_Node20/task.loc.json b/_generated/UseRubyVersionV0_Node20/task.loc.json index 52d394cc8637..14d473106a2f 100644 --- a/_generated/UseRubyVersionV0_Node20/task.loc.json +++ b/_generated/UseRubyVersionV0_Node20/task.loc.json @@ -13,8 +13,8 @@ "author": "Microsoft Corporation", "version": { "Major": 0, - "Minor": 231, - "Patch": 3 + "Minor": 235, + "Patch": 1 }, "demands": [], "minimumAgentVersion": "2.182.1", @@ -77,7 +77,7 @@ } }, "_buildConfigMapping": { - "Default": "0.231.2", - "Node20-225": "0.231.3" + "Default": "0.235.0", + "Node20-225": "0.235.1" } } \ No newline at end of file diff --git a/_generated/XamarinTestCloudV1.versionmap.txt b/_generated/XamarinTestCloudV1.versionmap.txt index c2c95dff691b..318cf73f5b4b 100644 --- a/_generated/XamarinTestCloudV1.versionmap.txt +++ b/_generated/XamarinTestCloudV1.versionmap.txt @@ -1,2 +1,2 @@ -Default|1.235.0 -Node20-228|1.235.1 +Default|1.235.2 +Node20-228|1.235.3 diff --git a/_generated/XamarinTestCloudV1_Node20/Strings/resources.resjson/en-US/resources.resjson b/_generated/XamarinTestCloudV1_Node20/Strings/resources.resjson/en-US/resources.resjson index bae4406560f9..377b8fda33ef 100644 --- a/_generated/XamarinTestCloudV1_Node20/Strings/resources.resjson/en-US/resources.resjson +++ b/_generated/XamarinTestCloudV1_Node20/Strings/resources.resjson/en-US/resources.resjson @@ -29,5 +29,5 @@ "loc.input.help.optionalArgs": "Additional arguments passed to test-cloud.exe.", "loc.input.label.publishNUnitResults": "Publish results to Azure Pipelines", "loc.input.help.publishNUnitResults": "When selected, --nunit-xml option will be passed to test-cloud.exe. Results from the NUnit xml file will be published to Azure Pipelines.", - "loc.messages.DeprecatedTask": "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "loc.messages.DeprecatedTask": "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } \ No newline at end of file diff --git a/_generated/XamarinTestCloudV1_Node20/XamarinTestCloud.ps1 b/_generated/XamarinTestCloudV1_Node20/XamarinTestCloud.ps1 index 80e6b6170378..db863759521d 100644 --- a/_generated/XamarinTestCloudV1_Node20/XamarinTestCloud.ps1 +++ b/_generated/XamarinTestCloudV1_Node20/XamarinTestCloud.ps1 @@ -198,6 +198,6 @@ $featureFlags = @{ } if ($featureFlags.failDeprecatedBuildTask) { - throw "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead." + throw "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." } Write-Verbose "Leaving script XamarinTestCloud.ps1" \ No newline at end of file diff --git a/_generated/XamarinTestCloudV1_Node20/task.json b/_generated/XamarinTestCloudV1_Node20/task.json index ea148e4d26d2..25d4908ac9df 100644 --- a/_generated/XamarinTestCloudV1_Node20/task.json +++ b/_generated/XamarinTestCloudV1_Node20/task.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 1 + "Patch": 3 }, "demands": [], "minimumAgentVersion": "1.83.0", @@ -202,10 +202,10 @@ } }, "messages": { - "DeprecatedTask": "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead." + "DeprecatedTask": "The XamarinTestCloud@1 (Xamarin Test Cloud) task has been deprecated since January 11, 2018 and will soon be retired. Use the AppCenterDistribute@3 task instead. Please visit https://aka.ms/azdo-deprecated-tasks to learn more about deprecated tasks." }, "_buildConfigMapping": { - "Default": "1.235.0", - "Node20-228": "1.235.1" + "Default": "1.235.2", + "Node20-228": "1.235.3" } } \ No newline at end of file diff --git a/_generated/XamarinTestCloudV1_Node20/task.loc.json b/_generated/XamarinTestCloudV1_Node20/task.loc.json index 45d4e1efd1d5..4b52b86609b1 100644 --- a/_generated/XamarinTestCloudV1_Node20/task.loc.json +++ b/_generated/XamarinTestCloudV1_Node20/task.loc.json @@ -14,7 +14,7 @@ "version": { "Major": 1, "Minor": 235, - "Patch": 1 + "Patch": 3 }, "demands": [], "minimumAgentVersion": "1.83.0", @@ -205,7 +205,7 @@ "DeprecatedTask": "ms-resource:loc.messages.DeprecatedTask" }, "_buildConfigMapping": { - "Default": "1.235.0", - "Node20-228": "1.235.1" + "Default": "1.235.2", + "Node20-228": "1.235.3" } } \ No newline at end of file diff --git a/_generated/XcodeV5.versionmap.txt b/_generated/XcodeV5.versionmap.txt index 76e62077a718..2ba9c254d58b 100644 --- a/_generated/XcodeV5.versionmap.txt +++ b/_generated/XcodeV5.versionmap.txt @@ -1,2 +1,2 @@ -Default|5.231.4 -Node20-225|5.231.5 +Default|5.235.0 +Node20-225|5.235.1 diff --git a/_generated/XcodeV5/package-lock.json b/_generated/XcodeV5/package-lock.json index f6b30d6cfc5d..d42052899472 100644 --- a/_generated/XcodeV5/package-lock.json +++ b/_generated/XcodeV5/package-lock.json @@ -305,9 +305,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -596,9 +596,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", diff --git a/_generated/XcodeV5/task.json b/_generated/XcodeV5/task.json index 579d10dc6a56..207bb319a8df 100644 --- a/_generated/XcodeV5/task.json +++ b/_generated/XcodeV5/task.json @@ -12,8 +12,8 @@ "author": "Microsoft Corporation", "version": { "Major": 5, - "Minor": 231, - "Patch": 4 + "Minor": 235, + "Patch": 0 }, "releaseNotes": "This version of the task is compatible with Xcode 8 - 13. Features that were solely to maintain compatibility with Xcode 7 have been removed. This task has better options for using Microsoft-hosted macOS agents.", "demands": [ @@ -412,7 +412,7 @@ "UsingDefaultSimulator": "Using default simulator: %s." }, "_buildConfigMapping": { - "Default": "5.231.4", - "Node20-225": "5.231.5" + "Default": "5.235.0", + "Node20-225": "5.235.1" } } \ No newline at end of file diff --git a/_generated/XcodeV5/task.loc.json b/_generated/XcodeV5/task.loc.json index 82c2a67ab709..c7f95da5fd15 100644 --- a/_generated/XcodeV5/task.loc.json +++ b/_generated/XcodeV5/task.loc.json @@ -12,8 +12,8 @@ "author": "Microsoft Corporation", "version": { "Major": 5, - "Minor": 231, - "Patch": 4 + "Minor": 235, + "Patch": 0 }, "releaseNotes": "ms-resource:loc.releaseNotes", "demands": [ @@ -412,7 +412,7 @@ "UsingDefaultSimulator": "ms-resource:loc.messages.UsingDefaultSimulator" }, "_buildConfigMapping": { - "Default": "5.231.4", - "Node20-225": "5.231.5" + "Default": "5.235.0", + "Node20-225": "5.235.1" } } \ No newline at end of file diff --git a/_generated/XcodeV5_Node20/package-lock.json b/_generated/XcodeV5_Node20/package-lock.json index 46df9e5b4583..1809f87ba573 100644 --- a/_generated/XcodeV5_Node20/package-lock.json +++ b/_generated/XcodeV5_Node20/package-lock.json @@ -26,9 +26,12 @@ "integrity": "sha512-NYrtPht0wGzhwe9+/idPaBB+TqkY9AhTvOLMkThm0IoEfLaiVQZwBwyJ5puCkO3AUCWrmcoePjp2mbFocKy4SQ==" }, "@types/node": { - "version": "20.8.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.2.tgz", - "integrity": "sha512-Vvycsc9FQdwhxE3y3DzeIxuEJbWGDsnrxvMADzTDF/lcdR9/K+AQIeAghTQsHtotg/q0j3WEOYS/jQgSdWue3w==" + "version": "20.11.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.10.tgz", + "integrity": "sha512-rZEfe/hJSGYmdfX9tvcPMYeYPW2sNl50nsw4jZmRcaG0HIAb0WYEpsB05GOb53vjqpyE9GUhlDQ4jLSoB5q9kg==", + "requires": { + "undici-types": "~5.26.4" + } }, "@types/q": { "version": "1.5.4", @@ -310,9 +313,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.5.tgz", + "integrity": "sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==" }, "form-data": { "version": "2.5.1", @@ -608,9 +611,9 @@ } }, "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==" }, "semver-compare": { "version": "1.0.0", @@ -737,6 +740,11 @@ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" }, + "undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "utf8-byte-length": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", diff --git a/_generated/XcodeV5_Node20/task.json b/_generated/XcodeV5_Node20/task.json index 5fcd7f8f5259..c7eb1926d685 100644 --- a/_generated/XcodeV5_Node20/task.json +++ b/_generated/XcodeV5_Node20/task.json @@ -12,8 +12,8 @@ "author": "Microsoft Corporation", "version": { "Major": 5, - "Minor": 231, - "Patch": 5 + "Minor": 235, + "Patch": 1 }, "releaseNotes": "This version of the task is compatible with Xcode 8 - 13. Features that were solely to maintain compatibility with Xcode 7 have been removed. This task has better options for using Microsoft-hosted macOS agents.", "demands": [ @@ -420,7 +420,7 @@ "UsingDefaultSimulator": "Using default simulator: %s." }, "_buildConfigMapping": { - "Default": "5.231.4", - "Node20-225": "5.231.5" + "Default": "5.235.0", + "Node20-225": "5.235.1" } } \ No newline at end of file diff --git a/_generated/XcodeV5_Node20/task.loc.json b/_generated/XcodeV5_Node20/task.loc.json index ace966bff804..54fa9b426b47 100644 --- a/_generated/XcodeV5_Node20/task.loc.json +++ b/_generated/XcodeV5_Node20/task.loc.json @@ -12,8 +12,8 @@ "author": "Microsoft Corporation", "version": { "Major": 5, - "Minor": 231, - "Patch": 5 + "Minor": 235, + "Patch": 1 }, "releaseNotes": "ms-resource:loc.releaseNotes", "demands": [ @@ -420,7 +420,7 @@ "UsingDefaultSimulator": "ms-resource:loc.messages.UsingDefaultSimulator" }, "_buildConfigMapping": { - "Default": "5.231.4", - "Node20-225": "5.231.5" + "Default": "5.235.0", + "Node20-225": "5.235.1" } } \ No newline at end of file diff --git a/make-options.json b/make-options.json index 11ffe53c8765..02bf57c9f72d 100644 --- a/make-options.json +++ b/make-options.json @@ -45,7 +45,6 @@ "AzureRmWebAppDeploymentV4", "AzureSpringCloudV0", "AzureStaticWebAppV0", - "AzureTestPlanV0", "AzureWebAppV1", "AzureWebAppContainerV1", "AzureVmssDeploymentV0", @@ -194,7 +193,6 @@ "VSBuildV1", "VsTestV1", "VsTestV2", - "VsTestV3", "VsTestPlatformToolInstallerV1", "WindowsMachineFileCopyV1", "WindowsMachineFileCopyV2",