Example #1
0
        public GitLabApi(string serverUrl, IGitAccessTokenSource accessTokenSource, string proxyUrl, IMemoryCache cache)
        {
            _cache  = cache;
            _client = new RestClient(serverUrl.TrimEnd('/') + "/api/v4");

            if (accessTokenSource.Type == TokenType.OAuth)
            {
                _client.AddDefaultHeader("Authorization", $"Bearer {accessTokenSource.AccessToken}");
            }
            else if (accessTokenSource.Type == TokenType.Custom)
            {
                _client.AddDefaultHeader("Private-Token", accessTokenSource.AccessToken);
            }

            if (!string.IsNullOrWhiteSpace(proxyUrl))
            {
                _client.ConfigureWebRequest(wr =>
                {
                    wr.Proxy = new WebProxy(proxyUrl)
                    {
                        BypassProxyOnLocal = false
                    };
                });
            }

            var serializer = new JsonSerializer();

            serializer.ContractResolver = new GitLabContractResolver();

            _client.ClearHandlers();
            _client.AddHandler("application/json", new NewtonsoftDeserializer(serializer));
        }
Example #2
0
 public static GitLabApi CreateGitLabApi(string serverUrl, IGitAccessTokenSource accessTokenSource, string proxyUrl, IMemoryCache cache, bool readOnly)
 {
     if (readOnly)
     {
         return(new ReadOnlyGitLabApi(serverUrl, accessTokenSource, proxyUrl, cache));
     }
     else
     {
         return(new GitLabApi(serverUrl, accessTokenSource, proxyUrl, cache));
     }
 }
Example #3
0
 public ReadOnlyGitLabApi(string serverUrl, IGitAccessTokenSource accessTokenSource, string proxyUrl, IMemoryCache cache)
     : base(serverUrl, accessTokenSource, proxyUrl, cache)
 {
 }