graphsh

command module
v0.0.0-...-bf845eb Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 20, 2019 License: MIT Imports: 4 Imported by: 0

README

graphsh

Graphsh (pronounced "graphsh") is an interactive shell for exploring GraphQL APIs.

Installation

$ go get github.com/jclem/graphsh

Usage

To start a graphsh session, supply a GraphQL endpoint and optional headers.

$ graphsh https://api.github.com/graphql -H "Authorization: Bearer $token"
› ▋
Commands
help

The help command prints information about each command in graphsh, or can be provided a command name for help for a specific command.

Path traversal

Since Graphsh represents nested fields as something akin to directories, use the path traversal syntax to set your current path, relative to the current path.

› .repository(owner: "jclem", name: "graphsh")
› pp
.query.repository(owner: "jclem", name: "graphsh")
› .owner
› pp
.query.repository(owner: "jclem", name: "graphsh").owner

You can use .. to traverse upwards:

› .repository(owner: "jclem", name: "graphsh").owner
› pp
.query.repository(owner: "jclem", name: "graphsh").owner
› ..
› pp
.query.repository(owner: "jclem", name: "graphsh")
› .owner.repositories
› pp
.query.repository(owner: "jclem", name: "graphsh").owner.repositories
› ../..
› pp
.query.repository(owner: "jclem", name: "graphsh")
on

The on {ConcreteType} command applies a concrete type to your current query. Passing no concrete type removes one.

› .repository(owner: "jclem", name: "graphsh").object(expression: "HEAD")
› pq
query {
  repository( name: "graphsh", owner: "jclem") {
    object(expression: "HEAD") {

    }
  }
}
› on Commit
› pq
query {
  repository( name: "graphsh", owner: "jclem") {
    object(expression: "HEAD") {
      ... on Commit {

      }
    }
  }
}
› on
› pq
query {
  repository( name: "graphsh", owner: "jclem") {
    object(expression: "HEAD") {

    }
  }
}
pp

The pp command shows your present path.

› .repository(owner: "jclem", name: "graphsh")
› pp
.query.repository(owner: "jclem", name: "graphsh")
› .owner
› pp
.query.repository(owner: "jclem", name: "graphsh").owner
pq

The pq command shows the current state of your query, which is a reflection of your present path.

› .repository(owner: "jclem", name: "graphsh").owner
› pq
query {
  repository(owner: "jclem", name: "graphsh") {
    owner {

    }
  }
}
ls

The ls command shows information about each field on the current node.

› .meta
› ls
gitHubServicesSha                  Returns a String that's a SHA of `github-services`
gitIpAddresses                     IP addresses that users connect to for git operations
hookIpAddresses                    IP addresses that service hooks are sent from
importerIpAddresses                IP addresses that the importer connects from
isPasswordAuthenticationVerifiable Whether or not users are verified
pagesIpAddresses                   IP addresses for GitHub Pages' A records
Querying

In order to query, use an expression surrounded by brackets.

› .repository(owner: "jclem", name: "graphsh")
› {name, owner {login}}
{
  "data": {
    "repository": {
      "name": "graphsh",
      "owner": {
        "login": "jclem"
      }
    }
  }
}

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL