Open josephdadams opened 3 years ago
We can develop a simple program that aggregates download stats from Github, Docker etc. I'm trying to get this data using public APIs, and i found that:
[
{
...
"id": 45905157,
...
"tag_name": "v2.0.0",
"target_commitish": "master",
"name": "2.0.0",
"draft": false,
"prerelease": false,
"created_at": "2021-07-08T13:01:42Z",
"published_at": "2021-07-08T13:55:22Z",
"assets": [
{
...
"name": "latest-linux.yml",
"download_count": 5,
"created_at": "2021-07-08T13:20:10Z",
"updated_at": "2021-07-08T13:20:10Z",
...
},
...
],
...
},
...
]
// https://api.github.com/repos/josephdadams/TallyArbiter/releases
[
{
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/45905157",
"assets_url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/45905157/assets",
"upload_url": "https://uploads.github.com/repos/josephdadams/TallyArbiter/releases/45905157/assets{?name,label}",
"html_url": "https://github.com/josephdadams/TallyArbiter/releases/tag/v2.0.0",
"id": 45905157,
"author": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"node_id": "MDc6UmVsZWFzZTQ1OTA1MTU3",
"tag_name": "v2.0.0",
"target_commitish": "master",
"name": "2.0.0",
"draft": false,
"prerelease": false,
"created_at": "2021-07-08T13:01:42Z",
"published_at": "2021-07-08T13:55:22Z",
"assets": [
{
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/assets/39937863",
"id": 39937863,
"node_id": "MDEyOlJlbGVhc2VBc3NldDM5OTM3ODYz",
"name": "latest-linux.yml",
"label": "",
"uploader": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"content_type": "text/yaml",
"state": "uploaded",
"size": 374,
"download_count": 5,
"created_at": "2021-07-08T13:20:10Z",
"updated_at": "2021-07-08T13:20:10Z",
"browser_download_url": "https://github.com/josephdadams/TallyArbiter/releases/download/v2.0.0/latest-linux.yml"
},
{
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/assets/39937953",
"id": 39937953,
"node_id": "MDEyOlJlbGVhc2VBc3NldDM5OTM3OTUz",
"name": "latest-mac.yml",
"label": "",
"uploader": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"content_type": "text/yaml",
"state": "uploaded",
"size": 340,
"download_count": 2,
"created_at": "2021-07-08T13:22:56Z",
"updated_at": "2021-07-08T13:22:56Z",
"browser_download_url": "https://github.com/josephdadams/TallyArbiter/releases/download/v2.0.0/latest-mac.yml"
},
{
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/assets/39937920",
"id": 39937920,
"node_id": "MDEyOlJlbGVhc2VBc3NldDM5OTM3OTIw",
"name": "latest.yml",
"label": "",
"uploader": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"content_type": "text/yaml",
"state": "uploaded",
"size": 352,
"download_count": 4,
"created_at": "2021-07-08T13:21:52Z",
"updated_at": "2021-07-08T13:21:52Z",
"browser_download_url": "https://github.com/josephdadams/TallyArbiter/releases/download/v2.0.0/latest.yml"
},
{
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/assets/39937857",
"id": 39937857,
"node_id": "MDEyOlJlbGVhc2VBc3NldDM5OTM3ODU3",
"name": "TallyArbiter-2.0.0.AppImage",
"label": "",
"uploader": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"content_type": "application/octet-stream",
"state": "uploaded",
"size": 85623290,
"download_count": 7,
"created_at": "2021-07-08T13:20:08Z",
"updated_at": "2021-07-08T13:20:10Z",
"browser_download_url": "https://github.com/josephdadams/TallyArbiter/releases/download/v2.0.0/TallyArbiter-2.0.0.AppImage"
},
{
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/assets/39937950",
"id": 39937950,
"node_id": "MDEyOlJlbGVhc2VBc3NldDM5OTM3OTUw",
"name": "TallyArbiter-2.0.0.dmg",
"label": "",
"uploader": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"content_type": "application/octet-stream",
"state": "uploaded",
"size": 83961626,
"download_count": 13,
"created_at": "2021-07-08T13:22:54Z",
"updated_at": "2021-07-08T13:22:56Z",
"browser_download_url": "https://github.com/josephdadams/TallyArbiter/releases/download/v2.0.0/TallyArbiter-2.0.0.dmg"
},
{
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/assets/39937951",
"id": 39937951,
"node_id": "MDEyOlJlbGVhc2VBc3NldDM5OTM3OTUx",
"name": "TallyArbiter-2.0.0.dmg.blockmap",
"label": "",
"uploader": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"content_type": "application/octet-stream",
"state": "uploaded",
"size": 89340,
"download_count": 1,
"created_at": "2021-07-08T13:22:54Z",
"updated_at": "2021-07-08T13:22:54Z",
"browser_download_url": "https://github.com/josephdadams/TallyArbiter/releases/download/v2.0.0/TallyArbiter-2.0.0.dmg.blockmap"
},
{
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/assets/39937916",
"id": 39937916,
"node_id": "MDEyOlJlbGVhc2VBc3NldDM5OTM3OTE2",
"name": "TallyArbiter-Setup-2.0.0.exe",
"label": "",
"uploader": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"content_type": "application/octet-stream",
"state": "uploaded",
"size": 62063649,
"download_count": 27,
"created_at": "2021-07-08T13:21:49Z",
"updated_at": "2021-07-08T13:21:52Z",
"browser_download_url": "https://github.com/josephdadams/TallyArbiter/releases/download/v2.0.0/TallyArbiter-Setup-2.0.0.exe"
},
{
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/assets/39937917",
"id": 39937917,
"node_id": "MDEyOlJlbGVhc2VBc3NldDM5OTM3OTE3",
"name": "TallyArbiter-Setup-2.0.0.exe.blockmap",
"label": "",
"uploader": {
"login": "github-actions[bot]",
"id": 41898282,
"node_id": "MDM6Qm90NDE4OTgyODI=",
"avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/github-actions%5Bbot%5D",
"html_url": "https://github.com/apps/github-actions",
"followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers",
"following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}",
"gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}",
"starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions",
"organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs",
"repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos",
"events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}",
"received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events",
"type": "Bot",
"site_admin": false
},
"content_type": "application/octet-stream",
"state": "uploaded",
"size": 66385,
"download_count": 2,
"created_at": "2021-07-08T13:21:49Z",
"updated_at": "2021-07-08T13:21:49Z",
"browser_download_url": "https://github.com/josephdadams/TallyArbiter/releases/download/v2.0.0/TallyArbiter-Setup-2.0.0.exe.blockmap"
}
],
"tarball_url": "https://api.github.com/repos/josephdadams/TallyArbiter/tarball/v2.0.0",
"zipball_url": "https://api.github.com/repos/josephdadams/TallyArbiter/zipball/v2.0.0",
"body": "Lots to look at here in this new release! Major hat tip to @hrueger for the Angular rewrite and beginnings of typescript conversion as well as setting up all of the Github actions to automate releases. Thanks!\r\n\r\nA few things to note since version 1.5:\r\n\r\n1-second updates function for TSL Clients (provides compatibility with certain tally products like Cuebi)\r\nRecording/Streaming statuses for OBS and VMix now available for tally states\r\nGeneric TCP Device Action improvements\r\nTSL 5.0 support\r\nNew Ross Carbonite source type to monitor any bus regardless of the \"on air\" settings\r\nWeb tally page can now be loaded directly by Device Id, and chat can be disabled\r\nPimoroni Blinkt! Listener Client\r\nTTGO_T Display Listener Client\r\nImproved Outgoing Webhooks - support for https and content-type selections\r\nRoland Smart Tally emulation for use with STAC\r\nPanasonic AV-HS10 support\r\nSupport for ATEM super sources in tally states\r\nBug fixes and performance imnprovements\r\nAs always, submit bug reports and feature requests, or better yet, submit a pull request that adds the feature you want!"
},
{
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/45904829",
"assets_url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/45904829/assets",
"upload_url": "https://uploads.github.com/repos/josephdadams/TallyArbiter/releases/45904829/assets{?name,label}",
"html_url": "https://github.com/josephdadams/TallyArbiter/releases/tag/v2.0",
"id": 45904829,
"author": {
"login": "josephdadams",
"id": 2559091,
"node_id": "MDQ6VXNlcjI1NTkwOTE=",
"avatar_url": "https://avatars.githubusercontent.com/u/2559091?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/josephdadams",
"html_url": "https://github.com/josephdadams",
"followers_url": "https://api.github.com/users/josephdadams/followers",
"following_url": "https://api.github.com/users/josephdadams/following{/other_user}",
"gists_url": "https://api.github.com/users/josephdadams/gists{/gist_id}",
"starred_url": "https://api.github.com/users/josephdadams/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/josephdadams/subscriptions",
"organizations_url": "https://api.github.com/users/josephdadams/orgs",
"repos_url": "https://api.github.com/users/josephdadams/repos",
"events_url": "https://api.github.com/users/josephdadams/events{/privacy}",
"received_events_url": "https://api.github.com/users/josephdadams/received_events",
"type": "User",
"site_admin": false
},
"node_id": "MDc6UmVsZWFzZTQ1OTA0ODI5",
"tag_name": "v2.0",
"target_commitish": "master",
"name": "Version 2.0",
"draft": false,
"prerelease": false,
"created_at": "2021-07-08T13:01:42Z",
"published_at": "2021-07-08T13:15:38Z",
"assets": [
],
"tarball_url": "https://api.github.com/repos/josephdadams/TallyArbiter/tarball/v2.0",
"zipball_url": "https://api.github.com/repos/josephdadams/TallyArbiter/zipball/v2.0",
"body": "Lots to look at here in this new release! Major hat tip to @hrueger for the Angular rewrite and beginnings of typescript conversion as well as setting up all of the Github actions to automate releases. Thanks!\r\n\r\nA few things to note since version 1.5:\r\n- 1-second updates function for TSL Clients (provides compatibility with certain tally products like Cuebi)\r\n- Recording/Streaming statuses for OBS and VMix now available for tally states\r\n- Generic TCP Device Action improvements\r\n- TSL 5.0 support\r\n- New Ross Carbonite source type to monitor any bus regardless of the \"on air\" settings\r\n- Web tally page can now be loaded directly by Device Id, and chat can be disabled\r\n- Pimoroni Blinkt! Listener Client\r\n- TTGO_T Display Listener Client\r\n- Improved Outgoing Webhooks - support for https and content-type selections\r\n- Roland Smart Tally emulation for use with STAC\r\n- Panasonic AV-HS10 support\r\n- Support for ATEM super sources in tally states\r\n- Bug fixes and performance imnprovements\r\n\r\nAs always, submit bug reports and feature requests, or better yet, submit a pull request that adds the feature you want!",
"reactions": {
"url": "https://api.github.com/repos/josephdadams/TallyArbiter/releases/45904829/reactions",
"total_count": 5,
"+1": 4,
"-1": 0,
"laugh": 0,
"hooray": 1,
"confused": 0,
"heart": 0,
"rocket": 0,
"eyes": 0
}
}
]
{
"user": "josephdadams",
"name": "tallyarbiter",
...
"pull_count": 0,
...
}
We could get the total pull count of the docker image like so: https://stackoverflow.com/a/53180123/13485777
Then, we could build a GitHub Actiom which is run periodically maybe once a week (scheduled). It fetches all the data and modifies a md dokument of the docs.
I just updated my comment with example API calls for Github, Docker and npmjs
Love this idea. Let’s do it.
A way to track daily users, or daily boot ups, monthly downloads, something so we can have an idea of active user count.
@hrueger any thoughts?