diff --git a/Octokit/Http/Connection.cs b/Octokit/Http/Connection.cs index d8366577..69c53c58 100644 --- a/Octokit/Http/Connection.cs +++ b/Octokit/Http/Connection.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; +using System.Threading; using System.Threading.Tasks; using Octokit.Internal; @@ -139,7 +140,7 @@ namespace Octokit { Ensure.ArgumentNotNull(uri, "uri"); - return SendData(uri.ApplyParameters(parameters), HttpMethod.Get, null, accepts, null); + return SendData(uri.ApplyParameters(parameters), HttpMethod.Get, null, accepts, null,CancellationToken.None); } /// @@ -165,7 +166,7 @@ namespace Octokit Ensure.ArgumentNotNull(uri, "uri"); Ensure.ArgumentNotNull(body, "body"); - return SendData(uri, HttpVerb.Patch, body, null, null); + return SendData(uri, HttpVerb.Patch, body, null, null, CancellationToken.None); } public Task> PostAsync(Uri uri, object body, string accepts, string contentType) @@ -173,12 +174,12 @@ namespace Octokit Ensure.ArgumentNotNull(uri, "uri"); Ensure.ArgumentNotNull(body, "body"); - return SendData(uri, HttpMethod.Post, body, accepts, contentType); + return SendData(uri, HttpMethod.Post, body, accepts, contentType, CancellationToken.None); } public Task> PutAsync(Uri uri, object body) { - return SendData(uri, HttpMethod.Put, body, null, null); + return SendData(uri, HttpMethod.Put, body, null, null, CancellationToken.None); } public Task> PutAsync(Uri uri, object body, string twoFactorAuthenticationCode) @@ -188,6 +189,7 @@ namespace Octokit body, null, null, + CancellationToken.None, twoFactorAuthenticationCode); } @@ -197,6 +199,7 @@ namespace Octokit object body, string accepts, string contentType, + CancellationToken cancellationToken, string twoFactorAuthenticationCode = null ) { @@ -226,7 +229,7 @@ namespace Octokit request.ContentType = contentType ?? "application/x-www-form-urlencoded"; } - return Run(request); + return Run(request,cancellationToken); } /// @@ -238,12 +241,13 @@ namespace Octokit { Ensure.ArgumentNotNull(uri, "uri"); - var response = await Run(new Request + var request = new Request { Method = HttpMethod.Put, BaseAddress = BaseAddress, Endpoint = uri - }); + }; + var response = await Run(request, CancellationToken.None); return response.StatusCode; } @@ -256,12 +260,13 @@ namespace Octokit { Ensure.ArgumentNotNull(uri, "uri"); - var response = await Run(new Request + var request = new Request { Method = HttpMethod.Delete, BaseAddress = BaseAddress, Endpoint = uri - }); + }; + var response = await Run(request, CancellationToken.None); return response.StatusCode; } @@ -308,19 +313,19 @@ namespace Octokit Task> GetHtml(IRequest request) { request.Headers.Add("Accept", "application/vnd.github.html"); - return RunRequest(request); + return RunRequest(request, CancellationToken.None); } - async Task> Run(IRequest request) + async Task> Run(IRequest request, CancellationToken cancellationToken) { _jsonPipeline.SerializeRequest(request); - var response = await RunRequest(request).ConfigureAwait(false); + var response = await RunRequest(request, cancellationToken).ConfigureAwait(false); _jsonPipeline.DeserializeResponse(response); return response; } // THIS IS THE METHOD THAT EVERY REQUEST MUST GO THROUGH! - async Task> RunRequest(IRequest request) + async Task> RunRequest(IRequest request, CancellationToken cancellationToken) { request.Headers.Add("User-Agent", UserAgent); await _authenticator.Apply(request).ConfigureAwait(false);