using Microsoft.Extensions.Configuration; using RestSharp; namespace LazyBear.MCP.Services.GitLab; /// /// Фабрика клиента RestSharp для GitLab API /// public static class GitLabClientFactory { private static readonly TimeSpan[] BackoffDurations = { TimeSpan.FromMilliseconds(1000), TimeSpan.FromMilliseconds(2000), TimeSpan.FromMilliseconds(4000) }; /// /// Создание клиента RestSharp для GitLab API /// /// Конфигурация из DI /// Client или null при ошибке инициализации public static RestClient? CreateClient(IConfiguration configuration) { var gitlabUrl = configuration["GitLab:Url"] ?? string.Empty; if (string.IsNullOrWhiteSpace(gitlabUrl)) { return null; } var config = new RestClientOptions(gitlabUrl) { UserAgent = "LazyBear-GitLab-MCP", Timeout = TimeSpan.FromMilliseconds(30000) }; return new RestClient(config); } }