GitHub GraphQL list issues using several parameters
examples/github-graphql/list_issues_many_parameters.py
import json import os from gql import gql, Client from gql.transport.aiohttp import AIOHTTPTransport import datetime import sys if len(sys.argv) == 2: output_file = sys.argv[1] else: output_file = None token = os.environ.get('MY_GITHUB_TOKEN') headers = { 'Authorization': f'Bearer {token}', } url = "https://api.github.com/graphql" query = ''' query($since:DateTime, $first:Int, $user:String!) { user(login: $user) { issues(first: $first, filterBy: {since: $since}) { totalCount edges { node { number, title, state, createdAt, url, repository { owner { login } } } } } } } ''' ts = datetime.datetime.now() - datetime.timedelta(days = 20) variables = { "user": "szabgab", "since": ts.strftime("%Y-%m-%dT%H:%M:%SZ"), "first": 30, } transport = AIOHTTPTransport(url=url, headers=headers) client = Client(transport=transport, fetch_schema_from_transport=True) result = client.execute(gql(query), variable_values=variables) if output_file: with open(output_file, 'w') as fh: json.dump(result, fh, indent=4) else: print(result)