public void ConfigureServices(IServiceCollection services) { // Completely disable the database. EntityContext.Enabled = false; // Allow 32 concurrent outgoing connections. ServicePointManager.DefaultConnectionLimit = 32; // Set the user agent for the HTTP client. var userAgentStringBuilder = new UserAgentStringBuilder("Knapcode.ExplorePackages.Website.Bot"); UserAgent.SetUserAgentString(userAgentStringBuilder); // Enable ExplorePackages dependencies. var explorePackagesSettings = new ExplorePackagesSettings(); Configuration.Bind("ExplorePackages", explorePackagesSettings); services.AddExplorePackages(explorePackagesSettings); // Add stuff specific to the website. services.AddLogging(); services.AddSingleton <IHostedService, SearchSearchUrlCacheRefresher>(); services.AddMvc(); services.AddSignalR(o => { o.JsonSerializerSettings.Converters.Add(new StringEnumConverter()); }); }
public override CoreV2.NuGet.IPackageRepository CreateRepository(string packageSource) { var repository = base.CreateRepository(packageSource); var httpClientEvents = repository as CoreV2.NuGet.IHttpClientEvents; if (httpClientEvents != null) { httpClientEvents.SendingRequest += (sender, args) => { if (sender != httpClientEvents) { return; } if (_console.Verbosity == Verbosity.Detailed) { _console.WriteLine( System.ConsoleColor.Green, "{0} {1}", args.Request.Method, args.Request.RequestUri); } var userAgentString = new UserAgentStringBuilder(CommandLineConstants.UserAgent).Build(); CoreV2.NuGet.HttpUtility.SetUserAgent(args.Request, userAgentString); }; } return(repository); }
public override IPackageRepository CreateRepository(string packageSource) { var repository = base.CreateRepository(packageSource); var httpClientEvents = repository as IHttpClientEvents; if (httpClientEvents != null) { httpClientEvents.SendingRequest += (sender, args) => { if (sender != httpClientEvents) { return; } if (_console.Verbosity == Verbosity.Detailed) { _console.WriteLine( System.ConsoleColor.Green, "{0} {1}", args.Request.Method, args.Request.RequestUri); } var userAgentString = new UserAgentStringBuilder(CommandLineConstants.UserAgent).Build(); HttpUtility.SetUserAgent(args.Request, userAgentString); }; } return repository; }
private static async Task InitializeGlobalState(ExplorePackagesSettings settings, bool initializeDatabase, ILogger logger) { logger.LogInformation("===== initialize ====="); // Initialize the database. EntityContext.ConnectionString = "Data Source=" + settings.DatabasePath; EntityContext.Enabled = initializeDatabase; if (initializeDatabase) { using (var entityContext = new EntityContext()) { await entityContext.Database.MigrateAsync(); logger.LogInformation("The database schema is up to date."); } } else { logger.LogInformation("The database will not be used."); } // Set the user agent. var userAgentStringBuilder = new UserAgentStringBuilder("Knapcode.ExplorePackages.Bot"); UserAgent.SetUserAgentString(userAgentStringBuilder); logger.LogInformation("The following user agent will be used: {UserAgent}", UserAgent.UserAgentString); logger.LogInformation("======================" + Environment.NewLine); }
void CreateUserAgent() { Client = GetClient (); Host = GetHost(); HttpUserAgent = HttpUtility.CreateUserAgentString(Client, Host); var builder = new UserAgentStringBuilder (Client).WithVisualStudioSKU (Host); UserAgent.SetUserAgentString (builder); }
public void UsesProvidedVisualStudioInfo() { var vsInfo = "VS SKU/Version"; var builder = new UserAgentStringBuilder(); var userAgentString = builder.WithOSDescription("OSName/OSVersion").WithVisualStudioSKU(vsInfo).Build(); _output.WriteLine(userAgentString); Assert.True(userAgentString.Contains($"(OSName/OSVersion, {vsInfo})")); }
void CreateUserAgent() { Client = GetClient(); Host = GetHost(); var builder = new UserAgentStringBuilder(Client).WithVisualStudioSKU(Host); UserAgent.SetUserAgentString(builder); }
public void UsesProvidedOSDescription() { var osDescription = "OSName/OSVersion"; var builder = new UserAgentStringBuilder(); var userAgentString = builder.WithOSDescription(osDescription).Build(); var userAgentString2 = builder.WithOSDescription(osDescription).WithVisualStudioSKU("VS SKU/Version").Build(); Assert.True(userAgentString.Contains($"({osDescription})")); Assert.True(userAgentString2.Contains($"({osDescription}, VS SKU/Version)")); }
public void UsesProvidedClientNameWhenNotInTestMode() { var builder = new UserAgentStringBuilder("Dummy Test Client Name"); var userAgentString = NuGetTestMode.InvokeTestFunctionAgainstTestMode( () => builder.Build(), testModeEnabled: false); _output.WriteLine(userAgentString); Assert.True(userAgentString.StartsWith("Dummy Test Client Name")); }
public void UsesDefaultClientNameWhenNotInTestModeAndNoneSet() { var builder = new UserAgentStringBuilder(); var userAgentString = NuGetTestMode.InvokeTestFunctionAgainstTestMode( () => builder.Build(), testModeEnabled: false); _output.WriteLine(userAgentString); Assert.True(userAgentString.StartsWith(UserAgentStringBuilder.DefaultNuGetClientName)); }
public void UsesTestClientNameInTestMode() { var builder = new UserAgentStringBuilder(); var userAgentString = NuGetTestMode.InvokeTestFunctionAgainstTestMode( () => builder.Build(), testModeEnabled: true); _output.WriteLine(userAgentString); Assert.True(userAgentString.StartsWith(NuGetTestMode.NuGetTestClientName)); }
public void UsesComputedNuGetClientVersion() { var builder = new UserAgentStringBuilder(); var userAgentString = builder.WithOSDescription("OSName/OSVersion").WithVisualStudioSKU("VS SKU/Version").Build(); var userAgentString2 = builder.WithOSDescription("OSName/OSVersion").Build(); var userAgentString3 = builder.WithVisualStudioSKU("VS SKU/Version").Build(); var userAgentString4 = builder.Build(); _output.WriteLine("NuGet client version: " + builder.NuGetClientVersion); Assert.NotNull(builder.NuGetClientVersion); Assert.NotEmpty(builder.NuGetClientVersion); Assert.True(userAgentString.Contains(builder.NuGetClientVersion)); Assert.True(userAgentString2.Contains(builder.NuGetClientVersion)); Assert.True(userAgentString3.Contains(builder.NuGetClientVersion)); Assert.True(userAgentString4.Contains(builder.NuGetClientVersion)); }
private static void Configure() { // Set connection limit if (!RuntimeEnvironmentHelper.IsMono) { ServicePointManager.DefaultConnectionLimit = 64; } else { // Keep mono limited to a single download to avoid issues. ServicePointManager.DefaultConnectionLimit = 1; } // Limit SSL ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; var userAgent = new UserAgentStringBuilder("NuGetMirror"); UserAgent.SetUserAgentString(userAgent); }
private async Task EnsureHttpSourceAsync() { if (_httpSource == null) { var handlerResource = await CatalogReaderUtility.GetHandlerAsync(_indexUri, _messageHandler); var packageSource = new PackageSource(_indexUri.AbsoluteUri); _httpSource = new HttpSource( packageSource, () => Task.FromResult((HttpHandlerResource)handlerResource), NullThrottle.Instance); if (string.IsNullOrEmpty(UserAgent.UserAgentString) || new UserAgentStringBuilder().Build() .Equals(UserAgent.UserAgentString, StringComparison.Ordinal)) { // Set the user agent string if it was not already set. var userAgent = new UserAgentStringBuilder("NuGet.CatalogReader"); UserAgent.SetUserAgentString(userAgent); } } }