Skip to content

api

graphql(token, query, variables)

Make a request to Github's graphql API.

https://docs.github.com/en/graphql/guides/forming-calls-with-graphql

Parameters:

Name Type Description Default
token str

A github PAT.

required
query str

A graphql query.

required
variables Mapping[str, Any]

The variables to use in the query.

required

Returns:

Type Description
OneOf[Issue, Any]

The Github response.

Source code in m/github/graphql/api.py
def graphql(
    token: str,
    query: str,
    variables: Mapping[str, Any],
) -> OneOf[Issue, Any]:
    """Make a request to Github's graphql API.

    https://docs.github.com/en/graphql/guides/forming-calls-with-graphql

    Args:
        token: A github PAT.
        query: A graphql query.
        variables: The variables to use in the query.

    Returns:
        The Github response.
    """
    payload = {'query': query, 'variables': variables or {}}
    return one_of(
        lambda: [
            payload
            for res in request(token, '/graphql', HttpMethod.post, payload)
            for payload in _filter_data(res)
        ],
    )