forked from octokit/octokit.net
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path02-releases.linq
40 lines (32 loc) · 1.44 KB
/
02-releases.linq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<Query Kind="Program">
<NuGetReference>Octokit</NuGetReference>
<NuGetReference>Octokit.Reactive</NuGetReference>
<Namespace>Octokit</Namespace>
<Namespace>System.Net</Namespace>
<Namespace>System.Threading.Tasks</Namespace>
</Query>
async Task Main(string[] args)
{
var owner = string.Empty;
var reponame = string.Empty;
owner = "octokit";
reponame = "octokit.net";
var client = new GitHubClient(new Octokit.ProductHeaderValue("octokit.samples"));
//Get releases for the octokit
var releases = await client.Repository.Release.GetAll(owner, reponame);
releases.Select(r => new { r.Name, r.Body }).Dump("Releases");
//Don't want draft release and because we are using reactive the first one is the latest one.
var latestrelease = releases.First(r => r.Draft == false).Dump("Latest Octokit");
//Gets the assets for the latest relase
var assets = await client.Repository.Release.GetAllAssets(owner,reponame,latestrelease.Id);
assets.Dump("Assets");
var latestreleaseassetid = assets.First(a => a.Name.Contains("Reactive")).Id;
var asset = await client.Repository.Release.GetAsset(owner,reponame,latestreleaseassetid);
asset.DownloadCount.Dump("Download Count for this release");
//Download the release
var wc = new WebClient();
var filename = Path.Combine( Path.GetTempPath(),"Octokit-Reactive.nupkg");
await wc.DownloadFileTaskAsync(asset.BrowserDownloadUrl,filename);
filename.Dump();
}
// Define other methods and classes here