public GitLabHttpFacade(string hostUrl, RequestsJsonSerializer jsonSerializer, string authenticationToken = "", HttpMessageHandler httpMessageHandler = null, TimeSpan?clientTimeout = null) : this(hostUrl, jsonSerializer, httpMessageHandler, clientTimeout) { switch (authenticationToken.Length) { case 0: break; case 20: _httpClient.DefaultRequestHeaders.Add(PrivateToken, authenticationToken); break; case 26: // Add support for new length of GitLab private tokens _httpClient.DefaultRequestHeaders.Add(PrivateToken, authenticationToken); break; case 64: _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authenticationToken); break; default: throw new ArgumentException("Unsupported authentication token provide, please private an oauth or private token"); } }
private void Setup(RequestsJsonSerializer jsonSerializer, HttpClient httpClient) { // allow tls 1.1 and 1.2 ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; _httpClient = httpClient; _requestor = new GitLabApiRequestor(_httpClient, jsonSerializer); _pagedRequestor = new GitLabApiPagedRequestor(_requestor); }
private GitLabHttpFacade(string hostUrl, RequestsJsonSerializer jsonSerializer) { _httpClient = new HttpClient { BaseAddress = new Uri(hostUrl) }; Setup(jsonSerializer); }
/// <summary> /// Creates a new instance of the GitLab API v4 client pointing to the specified hostUrl. /// </summary> /// <param name="hostUrl">Host address of GitLab instance. For example https://gitlab.example.com or https://gitlab.example.com/api/v4/ </param> /// <param name="authenticationToken">Personal access token. Obtained from GitLab profile settings.</param> /// <param name="httpMessageHandler">Optional handler for HTTP messages. Used for SSL pinning or canceling validation for example.</param> /// <param name="clientTimeout">Timespan with the HTTP client timeout if null default timeout is used. Sometimes required to upload files to a gitlab instance depending on filesize and networkspeed.</param> public GitLabClient(string hostUrl, string authenticationToken = "", HttpMessageHandler httpMessageHandler = null, TimeSpan?clientTimeout = null) { Guard.NotEmpty(hostUrl, nameof(hostUrl)); Guard.NotNull(authenticationToken, nameof(authenticationToken)); HostUrl = FixBaseUrl(hostUrl); var jsonSerializer = new RequestsJsonSerializer(); _httpFacade = new GitLabHttpFacade( HostUrl, jsonSerializer, authenticationToken, httpMessageHandler, clientTimeout); var projectQueryBuilder = new ProjectsQueryBuilder(); var notesQueryBuilder = new NotesQueryBuilder(); var issuesQueryBuilder = new IssuesQueryBuilder(); var mergeRequestsQueryBuilder = new MergeRequestsQueryBuilder(); var projectMilestonesQueryBuilder = new MilestonesQueryBuilder(); var projectMergeRequestsQueryBuilder = new ProjectMergeRequestsQueryBuilder(); var groupsQueryBuilder = new GroupsQueryBuilder(); var groupLabelsQueryBuilder = new GroupLabelsQueryBuilder(); var projectsGroupsQueryBuilder = new ProjectsGroupQueryBuilder(); var epicsGroupQueryBuilder = new EpicsGroupQueryBuilder(); var branchQueryBuilder = new BranchQueryBuilder(); var releaseQueryBuilder = new ReleaseQueryBuilder(); var tagQueryBuilder = new TagQueryBuilder(); var commitQueryBuilder = new CommitQueryBuilder(); var commitRefsQueryBuilder = new CommitRefsQueryBuilder(); var commitStatusesQueryBuilder = new CommitStatusesQueryBuilder(); var pipelineQueryBuilder = new PipelineQueryBuilder(); var treeQueryBuilder = new TreeQueryBuilder(); var jobQueryBuilder = new JobQueryBuilder(); var toDoListBuilder = new ToDoListQueryBuilder(); var groupIterationsQueryBuilder = new IterationsQueryBuilder(); Issues = new IssuesClient(_httpFacade, issuesQueryBuilder, notesQueryBuilder); Uploads = new UploadsClient(_httpFacade); MergeRequests = new MergeRequestsClient(_httpFacade, mergeRequestsQueryBuilder, projectMergeRequestsQueryBuilder, notesQueryBuilder); Projects = new ProjectsClient(_httpFacade, projectQueryBuilder, projectMilestonesQueryBuilder, jobQueryBuilder); Users = new UsersClient(_httpFacade); Groups = new GroupsClient(_httpFacade, groupsQueryBuilder, projectsGroupsQueryBuilder, projectMilestonesQueryBuilder, groupLabelsQueryBuilder, epicsGroupQueryBuilder, groupIterationsQueryBuilder); Epics = new EpicsClient(_httpFacade, epicsGroupQueryBuilder, notesQueryBuilder, issuesQueryBuilder); Branches = new BranchClient(_httpFacade, branchQueryBuilder); Releases = new ReleaseClient(_httpFacade, releaseQueryBuilder); Tags = new TagClient(_httpFacade, tagQueryBuilder); Webhooks = new WebhookClient(_httpFacade); Commits = new CommitsClient(_httpFacade, commitQueryBuilder, commitRefsQueryBuilder, commitStatusesQueryBuilder); Markdown = new MarkdownClient(_httpFacade); Pipelines = new PipelineClient(_httpFacade, pipelineQueryBuilder, jobQueryBuilder); Trees = new TreesClient(_httpFacade, treeQueryBuilder); Files = new FilesClient(_httpFacade); Runners = new RunnersClient(_httpFacade); ToDoList = new ToDoListClient(_httpFacade, toDoListBuilder); Connection = new ConnectionClient(_httpFacade); }
private void Setup(RequestsJsonSerializer jsonSerializer) { // allow tls 1.1 and 1.2 ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true; // ReSharper disable once InconsistentlySynchronizedField _requestor = new GitLabApiRequestor(_httpClient, jsonSerializer); _pagedRequestor = new GitLabApiPagedRequestor(_requestor); }
public GitLabHttpFacade(string hostUrl, RequestsJsonSerializer jsonSerializer, string authenticationToken = "") { _httpClient = new HttpClient { BaseAddress = new Uri(hostUrl) }; _httpClient.DefaultRequestHeaders.Add(PrivateToken, authenticationToken); _requestor = new GitLabApiRequestor(_httpClient, jsonSerializer); _pagedRequestor = new GitLabApiPagedRequestor(_requestor); }
public GitLabHttpFacade(string hostUrl, RequestsJsonSerializer jsonSerializer, string authenticationToken = "") { var httpClient = new HttpClient { BaseAddress = new Uri(hostUrl) }; httpClient.DefaultRequestHeaders.Add(PrivateToken, authenticationToken); Setup(jsonSerializer, httpClient); }
public GitLabHttpFacade(string hostUrl, RequestsJsonSerializer jsonSerializer, string authenticationToken = "") { // allow tls 1.1 and 1.2 ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; _httpClient = new HttpClient { BaseAddress = new Uri(hostUrl) }; _httpClient.DefaultRequestHeaders.Add(PrivateToken, authenticationToken); _requestor = new GitLabApiRequestor(_httpClient, jsonSerializer); _pagedRequestor = new GitLabApiPagedRequestor(_requestor); }
/// <summary> /// Creates a new instance of the GitLab API v4 client pointing to the specified hostUrl. /// </summary> /// <param name="hostUrl">Host address of GitLab instance. For example https://gitlab.example.com or https://gitlab.example.com/api/v4/ </param> /// <param name="authenticationToken">Personal access token. Obtained from GitLab profile settings.</param> public GitLabClient(string hostUrl, string authenticationToken = "") { Guard.NotEmpty(hostUrl, nameof(hostUrl)); Guard.NotNull(authenticationToken, nameof(authenticationToken)); HostUrl = FixBaseUrl(hostUrl); var jsonSerializer = new RequestsJsonSerializer(); _httpFacade = new GitLabHttpFacade( HostUrl, jsonSerializer, authenticationToken); var projectQueryBuilder = new ProjectsQueryBuilder(); var projectIssueNotesQueryBuilder = new ProjectIssueNotesQueryBuilder(); var projectMergeRequestsNotesQueryBuilder = new ProjectMergeRequestsNotesQueryBuilder(); var issuesQueryBuilder = new IssuesQueryBuilder(); var mergeRequestsQueryBuilder = new MergeRequestsQueryBuilder(); var projectMilestonesQueryBuilder = new MilestonesQueryBuilder(); var projectMergeRequestsQueryBuilder = new ProjectMergeRequestsQueryBuilder(); var groupsQueryBuilder = new GroupsQueryBuilder(); var groupLabelsQueryBuilder = new GroupLabelsQueryBuilder(); var projectsGroupsQueryBuilder = new ProjectsGroupQueryBuilder(); var branchQueryBuilder = new BranchQueryBuilder(); var releaseQueryBuilder = new ReleaseQueryBuilder(); var tagQueryBuilder = new TagQueryBuilder(); var commitQueryBuilder = new CommitQueryBuilder(); var commitRefsQueryBuilder = new CommitRefsQueryBuilder(); var pipelineQueryBuilder = new PipelineQueryBuilder(); var treeQueryBuilder = new TreeQueryBuilder(); var jobQueryBuilder = new JobQueryBuilder(); Issues = new IssuesClient(_httpFacade, issuesQueryBuilder, projectIssueNotesQueryBuilder); Uploads = new UploadsClient(_httpFacade); MergeRequests = new MergeRequestsClient(_httpFacade, mergeRequestsQueryBuilder, projectMergeRequestsQueryBuilder, projectMergeRequestsNotesQueryBuilder); Projects = new ProjectsClient(_httpFacade, projectQueryBuilder, projectMilestonesQueryBuilder, jobQueryBuilder); Users = new UsersClient(_httpFacade); Groups = new GroupsClient(_httpFacade, groupsQueryBuilder, projectsGroupsQueryBuilder, projectMilestonesQueryBuilder, groupLabelsQueryBuilder); Branches = new BranchClient(_httpFacade, branchQueryBuilder); Releases = new ReleaseClient(_httpFacade, releaseQueryBuilder); Tags = new TagClient(_httpFacade, tagQueryBuilder); Webhooks = new WebhookClient(_httpFacade); Commits = new CommitsClient(_httpFacade, commitQueryBuilder, commitRefsQueryBuilder); Markdown = new MarkdownClient(_httpFacade); Pipelines = new PipelineClient(_httpFacade, pipelineQueryBuilder, jobQueryBuilder); Trees = new TreesClient(_httpFacade, treeQueryBuilder); Files = new FilesClient(_httpFacade); Runners = new RunnersClient(_httpFacade); }
public GitLabHttpFacade(string hostUrl, RequestsJsonSerializer jsonSerializer, string authenticationToken = "") : this(hostUrl, jsonSerializer) { switch (authenticationToken.Length) { case 0: break; case 20: _httpClient.DefaultRequestHeaders.Add(PrivateToken, authenticationToken); break; case 64: _httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", authenticationToken); break; default: throw new ArgumentException("Unsupported authentication token provide, please private an oauth or private token"); } }
private GitLabHttpFacade(string hostUrl, RequestsJsonSerializer jsonSerializer, HttpMessageHandler httpMessageHandler, TimeSpan?clientTimeout = null) { var handler = new HttpClientHandler { ClientCertificateOptions = ClientCertificateOption.Manual, ServerCertificateCustomValidationCallback = (httpRequestMessage, cert, cetChain, policyErrors) => { return(true); } }; _httpClient = new HttpClient(handler) { BaseAddress = new Uri(hostUrl) }; if (clientTimeout.HasValue) { _httpClient.Timeout = clientTimeout.Value; } Setup(jsonSerializer); }
public GitLabApiRequestor(HttpClient client, RequestsJsonSerializer jsonSerializer) { _client = client; _jsonSerializer = jsonSerializer; }
public GitLabHttpFacade(RequestsJsonSerializer jsonSerializer, HttpClient httpClient) => Setup(jsonSerializer, httpClient);