diff --git a/Octokit.Tests/Clients/ReleasesClientTests.cs b/Octokit.Tests/Clients/ReleasesClientTests.cs index 74436f73..92e146cc 100644 --- a/Octokit.Tests/Clients/ReleasesClientTests.cs +++ b/Octokit.Tests/Clients/ReleasesClientTests.cs @@ -75,9 +75,10 @@ namespace Octokit.Tests.Clients releasesClient.UploadAsset(release, upload); - client.Received().Upload(Arg.Is(u => u.ToString() == "https://uploads.test.dev/does/not/matter/releases/1/assets?name=example.zip"), + client.Received().Post(Arg.Is(u => u.ToString() == "https://uploads.test.dev/does/not/matter/releases/1/assets?name=example.zip"), rawData, - Arg.Is(contentType => contentType == "application/zip")); + Arg.Is(contentType => contentType == "application/zip"), + "application/vnd.github.manifold-preview"); } [Fact] diff --git a/Octokit.Tests/Http/ApiConnectionTests.cs b/Octokit.Tests/Http/ApiConnectionTests.cs index bafac540..4cde5e14 100644 --- a/Octokit.Tests/Http/ApiConnectionTests.cs +++ b/Octokit.Tests/Http/ApiConnectionTests.cs @@ -188,7 +188,7 @@ namespace Octokit.Tests.Http var apiConnection = new ApiConnection(connection); var rawData = new MemoryStream(); - await apiConnection.Upload(uploadUrl, rawData, "B"); + await apiConnection.Post(uploadUrl, rawData, "B", "anAccept"); connection.Received().PostAsync(uploadUrl, rawData, Args.String, Args.String); } @@ -197,9 +197,10 @@ namespace Octokit.Tests.Http public async Task EnsuresArgumentNotNull() { var connection = new ApiConnection(Substitute.For()); - await AssertEx.Throws(async () => await connection.Upload(null, Stream.Null, "some-content-type")); - await AssertEx.Throws(async () => await connection.Upload(new Uri("/ok", UriKind.Relative), null, "some-content-type")); - await AssertEx.Throws(async () => await connection.Upload(new Uri("/ok", UriKind.Relative), null, null)); + await AssertEx.Throws(async () => await connection.Post(null, new MemoryStream(), "some-content-type", "anAccept")); + await AssertEx.Throws(async () => await connection.Post(new Uri("/ok", UriKind.Relative), null, "some-content-type", "anAccept")); + await AssertEx.Throws(async () => await connection.Post(new Uri("/ok", UriKind.Relative), new MemoryStream(), null, "anAccept")); + await AssertEx.Throws(async () => await connection.Post(new Uri("/ok", UriKind.Relative), new MemoryStream(), "some-content-type", null)); } } diff --git a/Octokit/Clients/ReleasesClient.cs b/Octokit/Clients/ReleasesClient.cs index 0d4e4703..3867eaac 100644 --- a/Octokit/Clients/ReleasesClient.cs +++ b/Octokit/Clients/ReleasesClient.cs @@ -1,6 +1,8 @@ #if NET_45 using System.Collections.Generic; #endif +using System; +using System.IO; using System.Threading.Tasks; namespace Octokit @@ -38,7 +40,12 @@ namespace Octokit Ensure.ArgumentNotNull(data, "data"); var endpoint = release.UploadUrl.ExpandUriTemplate(new { name = data.FileName }); - return await Client.Upload(endpoint, data.RawData, data.ContentType); + return await Client.Post( + endpoint, + data.RawData, + data.ContentType, + "application/vnd.github.manifold-preview"); } + } } diff --git a/Octokit/Http/ApiConnection.cs b/Octokit/Http/ApiConnection.cs index c7713da6..97dfd508 100644 --- a/Octokit/Http/ApiConnection.cs +++ b/Octokit/Http/ApiConnection.cs @@ -96,17 +96,18 @@ namespace Octokit await Connection.DeleteAsync(endpoint); } - public async Task Upload(Uri uri, Stream rawData, string contentType) + public async Task Post(Uri uri, Stream rawData, string contentType, string accepts) { Ensure.ArgumentNotNull(uri, "uri"); Ensure.ArgumentNotNull(rawData, "rawData"); Ensure.ArgumentNotNull(contentType, "contentType"); + Ensure.ArgumentNotNull(accepts, "accepts"); - var response = await Connection.PostAsync( + var response = await Connection.PostAsync( uri, rawData, contentType, - "application/vnd.github.manifold-preview"); + accepts); return response.BodyAsObject; } diff --git a/Octokit/Http/IApiConnection.cs b/Octokit/Http/IApiConnection.cs index 4cce7997..ca14320b 100644 --- a/Octokit/Http/IApiConnection.cs +++ b/Octokit/Http/IApiConnection.cs @@ -22,6 +22,6 @@ namespace Octokit Task Update(Uri endpoint, object data); [SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Justification="Legitimate, but I'm not fixing it just yet.")] Task Delete(Uri endpoint); - Task Upload(Uri uri, Stream rawData, string contentType); + Task Post(Uri uri, Stream rawData, string contentType, string accepts); } } \ No newline at end of file