public static async Task <string> DownloadAndImportAsync(IVsoConnectionInfo connectionInfo, ILogSink logger, string teamProject, string buildNumber, string buildDefinitionName, IOperationExecutionContext context, string artifactName) { var downloader = new ArtifactDownloader(connectionInfo, logger); using (var artifact = await downloader.DownloadAsync(teamProject, buildNumber, buildDefinitionName, artifactName).ConfigureAwait(false)) { logger.LogInformation("Downloading artifact file from VSO and importing into BuildMaster artifact library..."); var shim = new BuildMasterContextShim(context); await SDK.CreateArtifactAsync( applicationId : shim.ApplicationId, releaseNumber : shim.ReleaseNumber, buildNumber : shim.BuildNumber, deployableId : shim.DeployableId, executionId : null, artifactName : artifact.Name, artifactData : artifact.Content, overwrite : true ).ConfigureAwait(false); logger.LogInformation($"{artifact.Name} artifact imported."); return(artifact.BuildNumber); } }
public TfsRestApi(IVsoConnectionInfo connectionInfo, ILogger log) { if (connectionInfo == null) { throw new ArgumentNullException(nameof(connectionInfo)); } this.connectionInfo = connectionInfo; this.log = log ?? Logger.Null; }
public ArtifactDownloader(IVsoConnectionInfo connectionInfo, ILogger log) { if (connectionInfo == null) { throw new ArgumentNullException(nameof(connectionInfo)); } if (string.IsNullOrEmpty(connectionInfo.TeamProjectCollectionUrl)) { throw new InvalidOperationException("The base URL property of the TFS credentials or the Url property of the Import/Download VSO Artifact operation must be set."); } this.connectionInfo = connectionInfo; this.logger = log ?? Logger.Null; }
public TfsRestApi(IVsoConnectionInfo connectionInfo, ILogger log) { this.connectionInfo = connectionInfo ?? throw new ArgumentNullException(nameof(connectionInfo)); this.log = log; }