Skip to content

Instantly share code, notes, and snippets.

@mneedham
Created April 7, 2019 13:42
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 mneedham/f73d1d5494586d58d3b8988f54abf1d3 to your computer and use it in GitHub Desktop.
Save mneedham/f73d1d5494586d58d3b8988f54abf1d3 to your computer and use it in GitHub Desktop.
Get the downloads of a GitHub Releases Project
import requests
import json
import os
query = """
query($owner:String!, $name: String!) {
repository(owner: $owner, name: $name) {
nameWithOwner
releases(first: 50, orderBy: {field:CREATED_AT, direction:DESC}) {
totalCount
nodes {
releaseAssets(first: 1) {
nodes {
name
downloadCount
createdAt
}
}
}
}
}
}
"""
variables = {"owner": "neo4j-contrib", "name": "neo4j-apoc-procedures"}
token = os.getenv("GITHUB_TOKEN")
headers = {"Authorization": f"bearer {token}"}
request = {"query": query, "variables": variables}
response = requests.post("https://api.github.com/graphql",
json=request,
headers=headers)
result = response.json()["data"]["repository"]["releases"]["nodes"]
total_downloads = 0
for item in result:
release = item["releaseAssets"]["nodes"][0]
print(
f"{release['name']:<35} {release['createdAt']} {release['downloadCount']}"
)
total_downloads += release["downloadCount"]
print(f"Total Downloads: {total_downloads}")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment