Created
December 12, 2017 03:40
-
-
Save lzybkr/a02df381f4774e9f5f12e8d44614532f to your computer and use it in GitHub Desktop.
Get Download counts of all releases for a user/repo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#r "./FSharp.Data.2.4.3/lib/net45/FSharp.Data.dll" | |
open FSharp.Data | |
let (user,repo) = | |
match fsi.CommandLineArgs with | |
| [| _; arg1; arg2 |] -> (arg1, arg2) | |
| _ -> failwithf "usage: gh user repo" | |
type ReleaseData = JsonProvider<"https://api.github.com/repos/lzybkr/PSReadLine/releases"> | |
type AssetData = JsonProvider<"https://api.github.com/repos/lzybkr/PSReadLine/releases/8790488/assets"> | |
let user_agent = ["user-agent","fsharp-data"] | |
let releases_uri = sprintf "https://api.github.com/repos/%s/%s/releases" user repo | |
let releasesJson = Http.RequestString(releases_uri, headers = user_agent) | |
let releases = ReleaseData.Parse(releasesJson) | |
let get_download_count asset_uri name = | |
let assetJson = Http.RequestString(asset_uri, headers = user_agent) | |
let assets = AssetData.Parse(assetJson) | |
for asset in assets do | |
printfn "%s (%s): %i" name asset.Name asset.DownloadCount | |
for release in releases do | |
get_download_count release.AssetsUrl release.TagName |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment