mirror of
https://github.com/zoriya/octokit.net.git
synced 2026-06-07 04:16:51 +00:00
c979b342b6
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.
44 lines
1.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|