Skip to content
This repository has been archived by the owner on Jul 30, 2024. It is now read-only.
/ NuGet.Jobs Public archive

Commit

Permalink
Merge pull request #386 from NuGet/dev
Browse files Browse the repository at this point in the history
[ReleasePrep][2018.03.22]RI of dev into master
  • Loading branch information
loic-sharma authored Mar 26, 2018
2 parents a8fc313 + e01c553 commit f24a663
Show file tree
Hide file tree
Showing 121 changed files with 4,042 additions and 1,239 deletions.
49 changes: 28 additions & 21 deletions NuGet.Jobs.sln
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Gallery.Maintenance", "src\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CopyAzureContainer", "src\CopyAzureContainer\CopyAzureContainer.csproj", "{A07F7D0C-F269-43D5-A812-3ABC47090885}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SnapshotAzureBlob", "SnapshotAzureBlob\SnapshotAzureBlob.csproj", "{ED2D370C-D921-433A-A0B9-A601F936EDD3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.Helper", "src\Validation.Helper\Validation.Helper.csproj", "{305FB2C1-01FD-413D-B788-7B85BAD85A41}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.Helper.Tests", "tests\Validation.Helper.Tests\Validation.Helper.Tests.csproj", "{8336BEBE-EC6A-4E40-A1C9-8C34A507E62D}"
Expand All @@ -97,10 +95,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.Common.Tests", "
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.PackageSigning.Core", "src\Validation.PackageSigning.Core\Validation.PackageSigning.Core.csproj", "{91C060DA-736F-4DA9-A57F-CB3AC0E6CB10}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.PackageSigning.ExtractAndValidateSignature", "src\Validation.PackageSigning.ExtractAndValidateSignature\Validation.PackageSigning.ExtractAndValidateSignature.csproj", "{DD043977-6BCD-475A-BEE2-8C34309EC622}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.PackageSigning.ExtractAndValidateSignature.Tests", "tests\Validation.PackageSigning.ExtractAndValidateSignature.Tests\Validation.PackageSigning.ExtractAndValidateSignature.Tests.csproj", "{26435822-8938-48C9-96FD-0DCCF8F7CE00}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.PackageSigning.ValidateCertificate", "src\Validation.PackageSigning.ValidateCertificate\Validation.PackageSigning.ValidateCertificate.csproj", "{A245E448-8AE0-452B-9338-8C0E0B637D72}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.PackageSigning.ValidateCertificate.Tests", "tests\Validation.PackageSigning.ValidateCertificate.Tests\Validation.PackageSigning.ValidateCertificate.Tests.csproj", "{5ACE7756-F8D0-4D90-9957-872DE4A1381E}"
Expand All @@ -113,6 +107,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.Common.Job", "sr
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageHash", "src\PackageHash\PackageHash.csproj", "{40843020-6F0A-48F0-AC28-42FFE3A5C21E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.Common.Job.Tests", "tests\Validation.Common.Job.Tests\Validation.Common.Job.Tests.csproj", "{430F63C7-20C2-4872-AC3E-DDE846E50AA4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.PackageSigning.ProcessSignature", "src\Validation.PackageSigning.ProcessSignature\Validation.PackageSigning.ProcessSignature.csproj", "{DD043977-6BCD-475A-BEE2-8C34309EC622}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SnapshotAzureBlob", "src\SnapshotAzureBlob\SnapshotAzureBlob.csproj", "{ED2D370C-D921-433A-A0B9-A601F936EDD3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Validation.PackageSigning.ProcessSignature.Tests", "tests\Validation.PackageSigning.ProcessSignature.Tests\Validation.PackageSigning.ProcessSignature.Tests.csproj", "{26435822-8938-48C9-96FD-0DCCF8F7CE00}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -209,10 +211,6 @@ Global
{A07F7D0C-F269-43D5-A812-3ABC47090885}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A07F7D0C-F269-43D5-A812-3ABC47090885}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A07F7D0C-F269-43D5-A812-3ABC47090885}.Release|Any CPU.Build.0 = Release|Any CPU
{ED2D370C-D921-433A-A0B9-A601F936EDD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED2D370C-D921-433A-A0B9-A601F936EDD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED2D370C-D921-433A-A0B9-A601F936EDD3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED2D370C-D921-433A-A0B9-A601F936EDD3}.Release|Any CPU.Build.0 = Release|Any CPU
{305FB2C1-01FD-413D-B788-7B85BAD85A41}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{305FB2C1-01FD-413D-B788-7B85BAD85A41}.Debug|Any CPU.Build.0 = Debug|Any CPU
{305FB2C1-01FD-413D-B788-7B85BAD85A41}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -257,14 +255,6 @@ Global
{91C060DA-736F-4DA9-A57F-CB3AC0E6CB10}.Debug|Any CPU.Build.0 = Debug|Any CPU
{91C060DA-736F-4DA9-A57F-CB3AC0E6CB10}.Release|Any CPU.ActiveCfg = Release|Any CPU
{91C060DA-736F-4DA9-A57F-CB3AC0E6CB10}.Release|Any CPU.Build.0 = Release|Any CPU
{DD043977-6BCD-475A-BEE2-8C34309EC622}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DD043977-6BCD-475A-BEE2-8C34309EC622}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DD043977-6BCD-475A-BEE2-8C34309EC622}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DD043977-6BCD-475A-BEE2-8C34309EC622}.Release|Any CPU.Build.0 = Release|Any CPU
{26435822-8938-48C9-96FD-0DCCF8F7CE00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26435822-8938-48C9-96FD-0DCCF8F7CE00}.Debug|Any CPU.Build.0 = Debug|Any CPU
{26435822-8938-48C9-96FD-0DCCF8F7CE00}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26435822-8938-48C9-96FD-0DCCF8F7CE00}.Release|Any CPU.Build.0 = Release|Any CPU
{A245E448-8AE0-452B-9338-8C0E0B637D72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A245E448-8AE0-452B-9338-8C0E0B637D72}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A245E448-8AE0-452B-9338-8C0E0B637D72}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand All @@ -289,6 +279,22 @@ Global
{40843020-6F0A-48F0-AC28-42FFE3A5C21E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{40843020-6F0A-48F0-AC28-42FFE3A5C21E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{40843020-6F0A-48F0-AC28-42FFE3A5C21E}.Release|Any CPU.Build.0 = Release|Any CPU
{430F63C7-20C2-4872-AC3E-DDE846E50AA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{430F63C7-20C2-4872-AC3E-DDE846E50AA4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{430F63C7-20C2-4872-AC3E-DDE846E50AA4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{430F63C7-20C2-4872-AC3E-DDE846E50AA4}.Release|Any CPU.Build.0 = Release|Any CPU
{DD043977-6BCD-475A-BEE2-8C34309EC622}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DD043977-6BCD-475A-BEE2-8C34309EC622}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DD043977-6BCD-475A-BEE2-8C34309EC622}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DD043977-6BCD-475A-BEE2-8C34309EC622}.Release|Any CPU.Build.0 = Release|Any CPU
{ED2D370C-D921-433A-A0B9-A601F936EDD3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{ED2D370C-D921-433A-A0B9-A601F936EDD3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{ED2D370C-D921-433A-A0B9-A601F936EDD3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{ED2D370C-D921-433A-A0B9-A601F936EDD3}.Release|Any CPU.Build.0 = Release|Any CPU
{26435822-8938-48C9-96FD-0DCCF8F7CE00}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{26435822-8938-48C9-96FD-0DCCF8F7CE00}.Debug|Any CPU.Build.0 = Debug|Any CPU
{26435822-8938-48C9-96FD-0DCCF8F7CE00}.Release|Any CPU.ActiveCfg = Release|Any CPU
{26435822-8938-48C9-96FD-0DCCF8F7CE00}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -316,7 +322,6 @@ Global
{12719498-B87E-4E92-8C2B-30046393CF85} = {BEC3DF4D-9A04-42C8-8B4F-D42750202B4D}
{EFF021CA-1BF4-4C09-BFB8-D314EAAD24D2} = {88725659-D5F8-49F9-9B7E-D87C5B9917D7}
{A07F7D0C-F269-43D5-A812-3ABC47090885} = {FA5644B5-4F08-43F6-86B3-039374312A47}
{ED2D370C-D921-433A-A0B9-A601F936EDD3} = {FA5644B5-4F08-43F6-86B3-039374312A47}
{305FB2C1-01FD-413D-B788-7B85BAD85A41} = {678D7B14-F8BC-4193-99AF-2EE8AA390A02}
{8336BEBE-EC6A-4E40-A1C9-8C34A507E62D} = {6A776396-02B1-475D-A104-26940ADB04AB}
{BC9EA7CE-AD21-4D17-B581-F8ED8CBD7191} = {FA5644B5-4F08-43F6-86B3-039374312A47}
Expand All @@ -328,14 +333,16 @@ Global
{A3B0B15D-22D9-4F1F-94C4-B24B28ECF632} = {6A776396-02B1-475D-A104-26940ADB04AB}
{F9690B52-3C92-42A0-B41F-1A6040C2D2EE} = {6A776396-02B1-475D-A104-26940ADB04AB}
{91C060DA-736F-4DA9-A57F-CB3AC0E6CB10} = {678D7B14-F8BC-4193-99AF-2EE8AA390A02}
{DD043977-6BCD-475A-BEE2-8C34309EC622} = {678D7B14-F8BC-4193-99AF-2EE8AA390A02}
{26435822-8938-48C9-96FD-0DCCF8F7CE00} = {6A776396-02B1-475D-A104-26940ADB04AB}
{A245E448-8AE0-452B-9338-8C0E0B637D72} = {678D7B14-F8BC-4193-99AF-2EE8AA390A02}
{5ACE7756-F8D0-4D90-9957-872DE4A1381E} = {6A776396-02B1-475D-A104-26940ADB04AB}
{2C5BE067-ADFD-49E3-BA9F-13A74436E5DB} = {6A776396-02B1-475D-A104-26940ADB04AB}
{B4B7564A-965B-447B-927F-6749E2C08880} = {6A776396-02B1-475D-A104-26940ADB04AB}
{FA87D075-A934-4443-8D0B-5DB32640B6D7} = {678D7B14-F8BC-4193-99AF-2EE8AA390A02}
{40843020-6F0A-48F0-AC28-42FFE3A5C21E} = {FA5644B5-4F08-43F6-86B3-039374312A47}
{430F63C7-20C2-4872-AC3E-DDE846E50AA4} = {6A776396-02B1-475D-A104-26940ADB04AB}
{DD043977-6BCD-475A-BEE2-8C34309EC622} = {678D7B14-F8BC-4193-99AF-2EE8AA390A02}
{ED2D370C-D921-433A-A0B9-A601F936EDD3} = {FA5644B5-4F08-43F6-86B3-039374312A47}
{26435822-8938-48C9-96FD-0DCCF8F7CE00} = {6A776396-02B1-475D-A104-26940ADB04AB}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {284A7AC3-FB43-4F1F-9C9C-2AF0E1F46C2B}
Expand Down
12 changes: 8 additions & 4 deletions build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,10 @@ Invoke-BuildStep 'Set version metadata in AssemblyInfo.cs' { `
"$PSScriptRoot\src\NuGetCDNRedirect\Properties\AssemblyInfo.g.cs",
"$PSScriptRoot\src\NuGet.Services.Validation.Orchestrator\Properties\AssemblyInfo.g.cs",
"$PSScriptRoot\src\Stats.CollectAzureChinaCDNLogs\Properties\AssemblyInfo.g.cs",
"$PSScriptRoot\src\Validation.PackageSigning.ExtractAndValidateSignature\Properties\AssemblyInfo.g.cs",
"$PSScriptRoot\src\Validation.PackageSigning.ValidateCertificate\Properties\AssemblyInfo.g.cs"
"$PSScriptRoot\src\Validation.PackageSigning.ProcessSignature\Properties\AssemblyInfo.g.cs",
"$PSScriptRoot\src\Validation.PackageSigning.ValidateCertificate\Properties\AssemblyInfo.g.cs",
"$PSScriptRoot\src\NuGet.Jobs.Common\Properties\AssemblyInfo.g.cs",
"$PSScriptRoot\src\Validation.Common.Job\Properties\AssemblyInfo.g.cs"

$versionMetadata | ForEach-Object {
Set-VersionInfo -Path $_ -Version $SimpleVersion -Branch $Branch -Commit $CommitSHA
Expand Down Expand Up @@ -155,8 +157,10 @@ Invoke-BuildStep 'Creating artifacts' {
"src/NuGetCDNRedirect/NuGetCDNRedirect.csproj", `
"src/NuGet.Services.Validation.Orchestrator/NuGet.Services.Validation.Orchestrator.csproj", `
"src/Stats.CollectAzureChinaCDNLogs/Stats.CollectAzureChinaCDNLogs.csproj", `
"src/Validation.PackageSigning.ExtractAndValidateSignature/Validation.PackageSigning.ExtractAndValidateSignature.csproj", `
"src/Validation.PackageSigning.ValidateCertificate/Validation.PackageSigning.ValidateCertificate.csproj"
"src/Validation.PackageSigning.ProcessSignature/Validation.PackageSigning.ProcessSignature.csproj", `
"src/Validation.PackageSigning.ValidateCertificate/Validation.PackageSigning.ValidateCertificate.csproj", `
"src/NuGet.Jobs.Common/NuGet.Jobs.Common.csproj", `
"src/Validation.Common.Job/Validation.Common.Job.csproj"

Foreach ($Project in $Projects) {
New-Package (Join-Path $PSScriptRoot "$Project") -Configuration $Configuration -BuildNumber $BuildNumber -Version $SemanticVersion -Branch $Branch -MSBuildVersion "$msBuildVersion"
Expand Down
1 change: 1 addition & 0 deletions src/NuGet.Jobs.Common/NuGet.Jobs.Common.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,7 @@
<Compile Include="JobBase.cs" />
<Compile Include="JobRunner.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Properties\AssemblyInfo.*.cs" />
<Compile Include="StorageHelpers.cs" />
<Compile Include="Strings.Designer.cs" />
</ItemGroup>
Expand Down
2 changes: 0 additions & 2 deletions src/NuGet.Jobs.Common/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,3 @@
[assembly: AssemblyCopyright("Copyright © .NET Foundation 2015")]
[assembly: ComVisible(false)]
[assembly: Guid("6dc01e18-81b0-49b4-9976-4a3548c6a959")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ private void CheckPropertyValues()
throw new ConfigurationErrorsException("Validation name cannot be empty");
}

if (validationConfigurationItem.FailAfter == TimeSpan.Zero)
if (validationConfigurationItem.TrackAfter == TimeSpan.Zero)
{
throw new ConfigurationErrorsException($"failAfter timeout must be set for validation {validationConfigurationItem.Name}");
throw new ConfigurationErrorsException($"{nameof(validationConfigurationItem.TrackAfter)} must be set for validation {validationConfigurationItem.Name}");
}
}
}
Expand Down Expand Up @@ -102,9 +102,7 @@ private void CheckUnknownValidators()
{
foreach (var validatorItem in _configuration.Validations)
{
// This method will throw if the validator does not exist.
var validatorType = _validatorProvider.GetValidatorType(validatorItem.Name);
if (validatorType == null)
if (!_validatorProvider.IsValidator(validatorItem.Name))
{
throw new ConfigurationErrorsException("Validator implementation not found for " + validatorItem.Name);
}
Expand Down Expand Up @@ -142,7 +140,7 @@ private void CheckForCyclesAndParallelProcessors()
var processorNames = _configuration
.Validations
.Select(x => x.Name)
.Where(x => typeof(IProcessor).IsAssignableFrom(_validatorProvider.GetValidatorType(x)))
.Where(x => _validatorProvider.IsProcessor(x))
.ToList();

TopologicalSort.Validate(_configuration.Validations, processorNames);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,15 @@ public class ValidationConfiguration
/// this window.
/// </summary>
public TimeSpan NewValidationRequestDeduplicationWindow { get; set; }

/// <summary>
/// The threshold until which an email will be sent out due to a validation set taking too long.
/// </summary>
public TimeSpan ValidationSetNotificationTimeout { get; set; }

/// <summary>
/// The threshold until a validation set is no longer processed.
/// </summary>
public TimeSpan TimeoutValidationSetAfter { get; set; }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ public class ValidationConfigurationItem
public string Name { get; set; }

/// <summary>
/// Timeout after which started validation is considered failed if it didn't produce any outcome
/// Time after which a validation's processing time will be tracked. Use this to track validations that take too long.
/// </summary>
public TimeSpan FailAfter { get; set; }
public TimeSpan TrackAfter { get; set; }

/// <summary>
/// List of validation names that must finish before this validation can run
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ public interface IMessageService
void SendPackagePublishedMessage(Package package);
void SendPackageValidationFailedMessage(Package package);
void SendPackageSignedValidationFailedMessage(Package package);
void SendPackageValidationTakingTooLongMessage(Package package);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System.Threading.Tasks;
using NuGetGallery;

namespace NuGet.Services.Validation.Orchestrator
{
/// <summary>
/// This interface manages the state of gallery artifacts: gallery DB and packages container.
/// </summary>
public interface IPackageStatusProcessor
{
Task SetPackageStatusAsync(
Package package,
PackageValidationSet validationSet,
PackageStatus packageStatus);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,28 @@
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.

using System;
using System.IO;
using System.Threading.Tasks;
using NuGetGallery;

namespace NuGet.Services.Validation.Orchestrator
{
public interface IValidationPackageFileService : ICorePackageFileService
{
/// <summary>
/// Download the package content from the packages container to a temporary location on disk.
/// </summary>
/// <param name="package">The package metadata.</param>
/// <returns>The package stream.</returns>
Task<Stream> DownloadPackageFileToDiskAsync(Package package);

/// <summary>
/// Backs up the package file from the location specific for the validation set.
/// </summary>
/// <param name="package">The package metadata.</param>
/// <param name="validationSet">The validation set, containing validation set and package identifiers.</param>
Task BackupPackageFileFromValidationSetPackageAsync(Package package, PackageValidationSet validationSet);

/// <summary>
/// Copy a package from the validation container to a location specific for the validation set. This allows the
/// validation set to have its own copy of the package to mutate (via <see cref="IProcessor"/>) and validate.
Expand All @@ -21,13 +36,19 @@ public interface IValidationPackageFileService : ICorePackageFileService
/// validation set to have its own copy of the package to mutate (via <see cref="IProcessor"/>) and validate.
/// </summary>
/// <param name="validationSet">The validation set, containing validation set and package identifiers.</param>
Task CopyPackageFileForValidationSetAsync(PackageValidationSet validationSet);
/// <returns>The etag of the source package.</returns>
Task<string> CopyPackageFileForValidationSetAsync(PackageValidationSet validationSet);

/// <summary>
/// Copy a package from a location specific for the validation set to the packages container.
/// </summary>
/// <param name="validationSet">The validation set, containing validation set and package identifiers.</param>
Task CopyValidationSetPackageToPackageFileAsync(PackageValidationSet validationSet);
/// <param name="destAccessCondition">
/// The access condition used for asserting the state of the destination file.
/// </param>
Task CopyValidationSetPackageToPackageFileAsync(
PackageValidationSet validationSet,
IAccessCondition destAccessCondition);

/// <summary>
/// Copy a package from the validation container to the packages container.
Expand All @@ -36,6 +57,14 @@ public interface IValidationPackageFileService : ICorePackageFileService
/// <param name="normalizedVersion">The normalized package version.</param>
Task CopyValidationPackageToPackageFileAsync(string id, string normalizedVersion);

/// <summary>
/// Copy a package URL to a location specific for the validation set.
/// </summary>
/// <param name="validationSet">The validation set.</param>
/// <param name="srcPackageUrl">The source package URL.</param>
/// <returns></returns>
Task CopyPackageUrlForValidationSetAsync(PackageValidationSet validationSet, string srcPackageUrl);

/// <summary>
/// Delete a package from a location specific for the validation set.
/// </summary>
Expand Down
Loading

0 comments on commit f24a663

Please sign in to comment.