/// <summary> /// Creates an http client that can communicate with a VSTS Build Cache Service. /// </summary> public async Task <IBuildCacheHttpClient> CreateBuildCacheHttpClientAsync(Context context) { RetryPolicy retryPolicy = new RetryPolicy <AuthorizationErrorDetectionStrategy>(RetryStrategy.DefaultExponential); var creds = await retryPolicy.ExecuteAsync(() => _vssCredentialsFactory.CreateVssCredentialsAsync(_buildCacheBaseUri, _useAad)).ConfigureAwait(false); var httpClientFactory = new ArtifactHttpClientFactory( creds, _httpSendTimeout, tracer: new AppTraceSourceContextAdapter(context, "BuildCacheHttpClientFactory", SourceLevels.All), verifyConnectionCancellationToken: CancellationToken.None); // TODO: Pipe down cancellation support (bug 1365340) IBuildCacheHttpClient client = httpClientFactory.CreateVssHttpClient <IArtifactBuildCacheHttpClient, ItemBuildCacheHttpClient>(_buildCacheBaseUri); await ArtifactHttpClientErrorDetectionStrategy.ExecuteAsync( context, "VerifyBuildCacheHttpClientConnection", () => httpClientFactory.VerifyConnectionAsync(client as IArtifactHttpClient), CancellationToken.None).ConfigureAwait(false); context.TraceMessage( Severity.Debug, $"Verified connection to {_buildCacheBaseUri} with SessionId=[{httpClientFactory.ClientSettings.SessionId}]"); return(client); }
/// <summary> /// Initializes a new instance of the <see cref="ItemBuildCacheContentHashListAdapter"/> class. /// </summary> public ItemBuildCacheContentHashListAdapter(IBuildCacheHttpClient buildCacheHttpClient) { _buildCacheHttpClient = buildCacheHttpClient; }