Files
octokit.net/Octokit/Clients/ReleasesClient.cs
T
Haacked c979b342b6 Upload should take explicit contenttype parameter
Rather than accept an arbitrary dictionary, let's make it accept the
values we know. We still need to tackle the arbitrary headers problem
soon though.
2013-10-03 09:49:55 -07:00

44 lines
1.5 KiB
C#

using System.Collections.Generic;
using System.Threading.Tasks;
using Octokit.Http;
namespace Octokit.Clients
{
public class ReleasesClient : ApiClient<Release>, IReleasesClient
{
public ReleasesClient(IApiConnection<Release> client) : base(client)
{
}
public async Task<IReadOnlyCollection<Release>> GetAll(string owner, string name)
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(name, "repository");
var endpoint = "/repos/{0}/{1}/releases".FormatUri(owner, name);
return await Client.GetAll(endpoint);
}
public async Task<Release> CreateRelease(string owner, string name, ReleaseUpdate data)
{
Ensure.ArgumentNotNullOrEmptyString(owner, "owner");
Ensure.ArgumentNotNullOrEmptyString(name, "repository");
Ensure.ArgumentNotNull(data, "data");
var endpoint = "/repos/{0}/{1}/releases".FormatUri(owner, name);
return await Client.Create(endpoint, data);
}
public async Task<ReleaseAsset> UploadAsset(Release release, ReleaseAssetUpload data)
{
Ensure.ArgumentNotNull(release, "release");
Ensure.ArgumentNotNull(data, "data");
var endpoint = release.UploadUrl.ExpandUriTemplate(new { name = data.FileName });
return await Client.Upload<ReleaseAsset>(endpoint, data.RawData, data.ContentType);
}
}
}