{"id":13477911,"url":"https://github.com/apollographql/rover","last_synced_at":"2025-05-14T05:10:45.361Z","repository":{"id":37022296,"uuid":"279585354","full_name":"apollographql/rover","owner":"apollographql","description":"The CLI for Apollo GraphOS","archived":false,"fork":false,"pushed_at":"2025-05-09T22:07:29.000Z","size":37690,"stargazers_count":423,"open_issues_count":202,"forks_count":95,"subscribers_count":33,"default_branch":"main","last_synced_at":"2025-05-09T22:28:28.994Z","etag":null,"topics":["apollo","cli","graphql","rust"],"latest_commit_sha":null,"homepage":"https://rover.apollo.dev","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/apollographql.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-14T12:57:07.000Z","updated_at":"2025-05-09T21:58:19.000Z","dependencies_parsed_at":"2024-01-10T15:18:33.100Z","dependency_job_id":"4c2ddc8c-7bb8-4010-a3cb-f6abd8148e93","html_url":"https://github.com/apollographql/rover","commit_stats":{"total_commits":1457,"total_committers":83,"mean_commits":17.55421686746988,"dds":0.6863417982155113,"last_synced_commit":"8a83b38666e10359918c4a47253feab4b4f0cf95"},"previous_names":["apollographql/apollo-cli"],"tags_count":142,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apollographql%2Frover","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apollographql%2Frover/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apollographql%2Frover/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/apollographql%2Frover/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/apollographql","download_url":"https://codeload.github.com/apollographql/rover/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253336926,"owners_count":21892799,"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":["apollo","cli","graphql","rust"],"created_at":"2024-07-31T16:01:49.688Z","updated_at":"2025-05-14T05:10:45.344Z","avatar_url":"https://github.com/apollographql.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"# Rover\n[![CircleCI Tests](https://circleci.com/gh/apollographql/rover.svg?style=svg)](https://app.circleci.com/pipelines/github/apollographql/rover?branch=main)\n[![GitHub Release Downloads](https://shields.io/github/downloads/apollographql/rover/total.svg)](https://github.com/apollographql/rover/releases/latest)\n\nThis is the home of Rover, the new CLI for Apollo's suite of GraphQL developer productivity tools.\n\n### Note\n\nThis `README` contains just enough info to get you started with Rover. Our [docs](https://go.apollo.dev/r/docs) contain more detailed information that should be your primary reference for all things Rover.\n\n## Usage\n\nA few useful Rover commands to interact with your graphs:\n\n1. Fetch a graph from a federated remote endpoint.\n\n```bash\nrover graph fetch test@cats\n```\n\n2. Validate recent changes made to your local graph with `rover graph check`.\n\n```bash\nrover graph check --schema=./path-to-valid-sdl test@cats\n```\n\n3. Publish your local graph to Apollo Studio.\n\n```bash\nrover graph publish --schema ./path-to-valid-schema test@cats\n```\n\n## Command-line options\n\n```console\nRover - Your Graph Companion\n\nUsage: rover [OPTIONS] \u003cCOMMAND\u003e\n\nCommands:\n  init\n          Initialize a federated graph in your current directory\n  cloud\n          Cloud configuration commands\n  config\n          Configuration profile commands\n  contract\n          Contract configuration commands\n  dev\n          Run a supergraph locally to develop and test subgraph changes\n  supergraph\n          Supergraph schema commands\n  graph\n          Graph API schema commands\n  template\n          Commands for working with templates\n  readme\n          Readme commands\n  subgraph\n          Subgraph schema commands\n  docs\n          Interact with Rover's documentation\n  update\n          Commands related to updating rover\n  persisted-queries\n          Commands for persisted queries [aliases: pq]\n  explain\n          Explain error codes\n  license\n          Commands for fetching offline licenses\n  help\n          Print this message or the help of the given subcommand(s)\n\nOptions:\n  -l, --log \u003cLOG_LEVEL\u003e\n          Specify Rover's log level\n\n      --format \u003cFORMAT_KIND\u003e\n          Specify Rover's format type\n\n          [default: plain]\n          [possible values: plain, json]\n\n  -o, --output \u003cOUTPUT_FILE\u003e\n          Specify a file to write Rover's output to\n\n      --insecure-accept-invalid-certs\n          Accept invalid certificates when performing HTTPS requests.\n\n          You should think very carefully before using this flag.\n\n          If invalid certificates are trusted, any certificate for any site will be trusted for use. This includes expired certificates. This introduces significant vulnerabilities, and should only be used as a last resort.\n\n      --insecure-accept-invalid-hostnames\n          Accept invalid hostnames when performing HTTPS requests.\n\n          You should think very carefully before using this flag.\n\n          If hostname verification is not used, any valid certificate for any site will be trusted for use from any other. This introduces a significant vulnerability to man-in-the-middle attacks.\n\n      --client-timeout \u003cCLIENT_TIMEOUT\u003e\n          Configure the timeout length (in seconds) when performing HTTP(S) requests\n\n          [default: 30]\n\n      --skip-update-check\n          Skip checking for newer versions of rover\n\n  -h, --help\n          Print help (see a summary with '-h')\n\n  -V, --version\n          Print version\n\n\n\n** Getting Started with Rover **\n\nRun the following command to authenticate with GraphOS:\n\n    $ rover config auth\n\nOnce you're authenticated, create a new graph:\n\n    $ rover init\n\nTo learn more about Rover, view the full documentation:\n\n    $ rover docs open\n```\n\nThis repo is organized as a [`cargo` workspace], containing several related projects:\n\n- `rover`: Apollo's suite of GraphQL developer productivity tools\n- [`houston`]: utilities for configuring Rover\n- [`robot-panic`]: a fork of [`rust-cli/human-panic`] adjusted for Rover\n- [`rover-client`]: an HTTP client for making GraphQL requests for Rover\n- [`rover-graphql`]: A [`tower`](https://docs.rs/tower/latest/tower/) layer that allows for GraphQL requests over a [`tower`] HTTP client\n- [`rover-http`]: A [`tower`](https://docs.rs/tower/latest/tower/) implementation of an HTTP client and additional HTTP request utilities\n- [`rover-std`]: provides common utilities that inform Rover's CLI style\n- [`rover-studio`]: A [`tower`](https://docs.rs/tower/latest/tower/) layer that provides necessary headers and setup for communicating with Apollo Studio\n- [`sputnik`]: a crate to aid in collection of anonymous data for Rust CLIs\n- [`timber`]: Rover's logging formatter\n\n[`cargo` workspace]: https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html\n[`houston`]: https://github.com/apollographql/rover/tree/main/crates/houston\n[`robot-panic`]: https://github.com/apollographql/rover/tree/main/crates/robot-panic\n[`rust-cli/human-panic`]: https://github.com/rust-cli/human-panic\n[`rover-client`]: https://github.com/apollographql/rover/tree/main/crates/rover-client\n[`rover-graphql`]: https://github.com/apollographql/rover/tree/main/crates/rover-graphql\n[`rover-http`]: https://github.com/apollographql/rover/tree/main/crates/rover-http\n[`rover-std`]: https://github.com/apollographql/rover/tree/main/crates/rover-std\n[`rover-studio`]: https://github.com/apollographql/rover/tree/main/crates/rover-studio\n[`sputnik`]: https://github.com/apollographql/rover/tree/main/crates/sputnik\n[`timber`]: https://github.com/apollographql/rover/tree/main/crates/timber\n\n## Installation Methods\n\n#### Linux and MacOS `curl | sh` installer\n\nTo install the latest release of Rover:\n\n```bash\ncurl -sSL https://rover.apollo.dev/nix/latest | sh\n```\n\nTo install a specific version of Rover (note the `v` prefixing the version number):\n\n\u003e Note: If you're installing Rover in a CI environment, it's best to target a specific version rather than using the latest URL, since future major breaking changes could affect CI workflows otherwise.\n\n```bash\ncurl -sSL https://rover.apollo.dev/nix/v0.10.0 | sh\n```\n\nYou will need `curl` installed on your system to run the above installation commands. You can get the latest version from [the curl downloads page](https://curl.se/download.html).\n\n\u003e Note: `rover supergraph compose` is currently not available for Alpine Linux. You may track the progress for supporting this command on Alpine in [this issue](https://github.com/apollographql/rover/issues/537).\n\n#### Windows PowerShell installer\n\n```bash\niwr 'https://rover.apollo.dev/win/latest' | iex\n```\n\nTo install a specific version of Rover (note the `v` prefixing the version number):\n\n\u003e Note: If you are installing Rover in a CI environment, it's best to target a specific version rather than using the latest URL, since future major breaking changes could affect CI workflows otherwise.\n\n```bash\niwr 'https://rover.apollo.dev/win/v0.10.0' | iex\n```\n\n#### npm installer\n\nRover is distributed on npm for easy integration with your JavaScript projects.\n\n##### devDependency install\n\nIf you'd like to install `rover` as a `devDependency` in your JavaScript project, you can run `npm i --save-dev @apollo/rover`. You can then call `rover` directly in your `package.json` [scripts](https://docs.npmjs.com/cli/v6/using-npm/scripts), or you can run `npx rover` in your project directory to execute commands.\n\n##### Manual download and install\n\nIf you'd like to call `rover` from any directory on your machine, you can run `npm i -g @apollo/rover`.\n\nNote: Unfortunately if you've installed `npm` without a version manager such as `nvm`, you may have trouble with global installs. If you encounter an `EACCES` permission-related error while trying to install globally, DO NOT run the install command with `sudo`. [This support page](https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally) has information that should help to resolve this issue.\n\n#### Without curl\n\nYou can also [download the binary for your operating system](https://github.com/apollographql/rover/releases) and manually add its location to your `PATH`.\n\n##### Unsupported architectures\n\nIf you don't see your CPU architecture supported as part of our release pipeline, you can build from source with [`cargo`](https://github.com/rust-lang/cargo). Clone this repo, and run `cargo xtask dist --version v0.1.3`. This will compile a released version of Rover for you, and place the binary in your `target` directory.\n\n```\ngit clone https://github.com/apollographql/rover\ncargo xtask dist --version v0.1.3\n```\n\nFrom here you can either place the binary in your `PATH` manually, or run `./target/release/{optional_target}/rover install`.\n\n## Contributions\n\nSee [this page](https://go.apollo.dev/r/contributing) for info about contributing to Rover.\n\n## Licensing\n\nSource code in this repository is covered by (i) an MIT compatible license or (ii) the Elastic License 2.0, in each case, as designated by a licensing file within a subdirectory or file header. The default throughout the repository is an MIT compatible license, unless a file header or a licensing file in a subdirectory specifies another license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapollographql%2Frover","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fapollographql%2Frover","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fapollographql%2Frover/lists"}