using RestSharp; namespace LazyBear.MCP.Services.GitLab; /// /// Обертка над RestSharp RestClient для GitLab API /// public sealed class GitLabApiClient : IDisposable { public RestClient RestClient { get; } /// /// Конструктор /// /// URL GitLab public GitLabApiClient(string url) { _restClient = new RestClient(url); } private readonly RestClient _restClient; /// /// Создание запроса GET /// public RestRequest GetRequest(string resource) { var request = new RestRequest(resource, Method.Get); return request; } /// /// Создание запроса POST /// public RestRequest PostRequest(string resource) { var request = new RestRequest(resource, Method.Post); return request; } /// /// Создание запроса PUT /// public RestRequest PutRequest(string resource) { var request = new RestRequest(resource, Method.Put); return request; } /// /// Создание запроса DELETE /// public RestRequest DeleteRequest(string resource) { var request = new RestRequest(resource, Method.Delete); return request; } /// /// Выполнение запроса /// public async System.Threading.Tasks.Task ExecuteAsync(RestRequest request, System.Threading.CancellationToken? cancellationToken = null) { if (cancellationToken.HasValue) { return await _restClient.ExecuteAsync(request, cancellationToken.Value); } return await _restClient.ExecuteAsync(request); } public void Dispose() { _restClient.Dispose(); } }