Operand

pro bo? no.

gram: op

> ./.iex.exs


# issues = Req.get!("https://api.github.com/user/issues", headers: %{ authorization: "bearer "<>System.fetch_env!("GITHUB_KEY") })
defmodule GitHub do
  def graphql(query) do
    Req.post!(
      "https://api.github.com/graphql",
      body: %{ query: query } |> JSON.encode!,
      headers: %{ authorization: "bearer "<>System.fetch_env!("GITHUB_KEY") }
    )
  end

  def user do
    graphql("query { viewer { login } }")
  end

  def user_issues(handle) do
    graphql("""
    query {
    user(login: #{handle |> JSON.encode!}) {
      contributionsCollection {
        issueContributionsByRepository {
          # repository
          contributions(first: 100) {
              nodes {
                url
                # user
                isRestricted
                occurredAt
                resourcePath
                url
                issue {
                  # repository
                  resourcePath
                  state
                  # author
                  title
                  body
                  closed
                  closedAt
                  # closedByPullRequestsReferences
                  createdAt
                  lastEditedAt
                  participants(first: 100) {
                    nodes { login }
                  }
                  duplicateOf { id }
                  id
                }
              }
              totalCount
            }
          }
        }
      }
    }
    """).body
  end
end

import GitHub