Skip to content

Instantly share code, notes, and snippets.

@lzybkr
Created December 12, 2017 03:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lzybkr/a02df381f4774e9f5f12e8d44614532f to your computer and use it in GitHub Desktop.
Save lzybkr/a02df381f4774e9f5f12e8d44614532f to your computer and use it in GitHub Desktop.
Get Download counts of all releases for a user/repo
#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