{"id":17188379,"url":"https://github.com/jclem/graphsh","last_synced_at":"2025-04-13T19:14:40.386Z","repository":{"id":52173146,"uuid":"192966183","full_name":"jclem/graphsh","owner":"jclem","description":"An interactive shell for GraphQL APIs","archived":false,"fork":false,"pushed_at":"2019-06-20T23:46:27.000Z","size":104,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-10T17:31:10.192Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jclem.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-06-20T18:06:39.000Z","updated_at":"2021-12-10T16:11:53.000Z","dependencies_parsed_at":"2022-08-24T04:00:25.454Z","dependency_job_id":null,"html_url":"https://github.com/jclem/graphsh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclem%2Fgraphsh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclem%2Fgraphsh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclem%2Fgraphsh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jclem%2Fgraphsh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jclem","download_url":"https://codeload.github.com/jclem/graphsh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248766769,"owners_count":21158301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-15T01:08:49.543Z","updated_at":"2025-04-13T19:14:40.369Z","avatar_url":"https://github.com/jclem.png","language":"Go","readme":"# graphsh \u003cimg src=\"logo.png\" width=50\u003e\n\nGraphsh (pronounced \"graphsh\") is an interactive shell for exploring GraphQL APIs.\n\n## Installation\n\n```console\n$ go get github.com/jclem/graphsh\n```\n\n## Usage\n\nTo start a `graphsh` session, supply a GraphQL endpoint and optional headers.\n\n```console\n$ graphsh https://api.github.com/graphql -H \"Authorization: Bearer $token\"\n› ▋\n```\n\n### Commands\n\n#### `help`\n\nThe `help` command prints information about each command in graphsh, or can be provided a command name for help for a specific command.\n\n#### Path traversal\n\nSince Graphsh represents nested fields as something akin to directories, use the path traversal syntax to set your current path, relative to the current path.\n\n```\n› .repository(owner: \"jclem\", name: \"graphsh\")\n› pp\n.query.repository(owner: \"jclem\", name: \"graphsh\")\n› .owner\n› pp\n.query.repository(owner: \"jclem\", name: \"graphsh\").owner\n```\n\nYou can use `..` to traverse upwards:\n\n```\n› .repository(owner: \"jclem\", name: \"graphsh\").owner\n› pp\n.query.repository(owner: \"jclem\", name: \"graphsh\").owner\n› ..\n› pp\n.query.repository(owner: \"jclem\", name: \"graphsh\")\n› .owner.repositories\n› pp\n.query.repository(owner: \"jclem\", name: \"graphsh\").owner.repositories\n› ../..\n› pp\n.query.repository(owner: \"jclem\", name: \"graphsh\")\n```\n\n#### `on`\n\nThe `on {ConcreteType}` command applies a concrete type to your current query. Passing no concrete type removes one.\n\n```\n› .repository(owner: \"jclem\", name: \"graphsh\").object(expression: \"HEAD\")\n› pq\nquery {\n  repository( name: \"graphsh\", owner: \"jclem\") {\n    object(expression: \"HEAD\") {\n\n    }\n  }\n}\n› on Commit\n› pq\nquery {\n  repository( name: \"graphsh\", owner: \"jclem\") {\n    object(expression: \"HEAD\") {\n      ... on Commit {\n\n      }\n    }\n  }\n}\n› on\n› pq\nquery {\n  repository( name: \"graphsh\", owner: \"jclem\") {\n    object(expression: \"HEAD\") {\n\n    }\n  }\n}\n```\n\n#### `pp`\n\nThe `pp` command shows your present path.\n\n```\n› .repository(owner: \"jclem\", name: \"graphsh\")\n› pp\n.query.repository(owner: \"jclem\", name: \"graphsh\")\n› .owner\n› pp\n.query.repository(owner: \"jclem\", name: \"graphsh\").owner\n```\n\n#### `pq`\n\nThe `pq` command shows the current state of your query, which is a reflection of your present path.\n\n```\n› .repository(owner: \"jclem\", name: \"graphsh\").owner\n› pq\nquery {\n  repository(owner: \"jclem\", name: \"graphsh\") {\n    owner {\n\n    }\n  }\n}\n```\n\n#### `ls`\n\nThe `ls` command shows information about each field on the current node.\n\n```\n› .meta\n› ls\ngitHubServicesSha                  Returns a String that's a SHA of `github-services`\ngitIpAddresses                     IP addresses that users connect to for git operations\nhookIpAddresses                    IP addresses that service hooks are sent from\nimporterIpAddresses                IP addresses that the importer connects from\nisPasswordAuthenticationVerifiable Whether or not users are verified\npagesIpAddresses                   IP addresses for GitHub Pages' A records\n```\n\n#### Querying\n\nIn order to query, use an expression surrounded by brackets.\n\n```\n› .repository(owner: \"jclem\", name: \"graphsh\")\n› {name, owner {login}}\n{\n  \"data\": {\n    \"repository\": {\n      \"name\": \"graphsh\",\n      \"owner\": {\n        \"login\": \"jclem\"\n      }\n    }\n  }\n}\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjclem%2Fgraphsh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjclem%2Fgraphsh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjclem%2Fgraphsh/lists"}