Giter Site home page Giter Site logo

lleadbet / rover Goto Github PK

View Code? Open in Web Editor NEW

This project forked from apollographql/rover

0.0 1.0 0.0 29.46 MB

โœจ๐Ÿค– ๐Ÿถ the new CLI for Apollo

Home Page: https://go.apollo.dev/rover

License: Other

Shell 1.55% JavaScript 0.83% Rust 97.03% PowerShell 0.59%

rover's Introduction

Rover

โœจ ๐Ÿค– ๐Ÿถ the new CLI for apollo

CircleCI Tests GitHub Release Downloads

This is the home of Rover, the new CLI for Apollo's suite of GraphQL developer productivity tools.

Note

This README contains just enough info to get you started with Rover. Our docs contain more detailed information that should be your primary reference for all things Rover.

Usage

A few useful Rover commands to interact with your graphs:

  1. Fetch a graph from a federated remote endpoint.
rover graph fetch test@cats
  1. Validate recent changes made to your local graph with rover graph check.
rover graph check --schema=./path-to-valid-sdl test@cats
  1. Publish your local graph to Apollo Studio.
rover graph publish --schema ./path-to-valid-schema test@cats

Command-line options

Rover 0.7.0

Rover - Your Graph Companion
Read the getting started guide by running:

    $ rover docs open start

To begin working with Rover and to authenticate with Apollo Studio,
run the following command:

    $ rover config auth

This will prompt you for an API Key that can be generated in Apollo Studio.

The most common commands from there are:

    - rover graph fetch: Fetch a graph schema from the Apollo graph registry
    - rover graph check: Check for breaking changes in a local graph schema against a graph schema in the Apollo graph
registry
    - rover graph publish: Publish an updated graph schema to the Apollo graph registry

You can open the full documentation for Rover by running:

    $ rover docs open

USAGE:
    rover [FLAGS] [OPTIONS] <SUBCOMMAND>

FLAGS:
        --insecure-accept-invalid-certs        
            Accept invalid certificates when performing HTTPS requests.
            
            You should think very carefully before using this flag.
            
            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.
        --insecure-accept-invalid-hostnames    
            Accept invalid hostnames when performing HTTPS requests.
            
            You should think very carefully before using this flag.
            
            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.
    -h, --help                                 
            Prints help information

    -V, --version                              
            Prints version information


OPTIONS:
        --client-timeout <client-timeout>    
            Configure the timeout length (in seconds) when performing HTTP(S) requests [default: 30]

    -l, --log <log-level>                    
            Specify Rover's log level [possible values: error, warn, info, debug,
            trace]
        --output <output-type>               
            Specify Rover's output type [default: plain]  [possible values: json, plain]


SUBCOMMANDS:
    config        Configuration profile commands
    docs          Interact with Rover's documentation
    explain       Explain error codes
    graph         Graph API schema commands
    help          Prints this message or the help of the given subcommand(s)
    readme        Readme commands
    subgraph      Subgraph schema commands
    supergraph    Supergraph schema commands
    update        Commands related to updating rover

This repo is organized as a cargo workspace, containing several related projects:

  • rover: Apollo's suite of GraphQL developer productivity tools
  • houston: utilities for configuring Rover
  • robot-panic: a fork of rust-cli/human-panic adjusted for Rover
  • rover-client: an HTTP client for making GraphQL requests for Rover
  • sputnik: a crate to aid in collection of anonymous data for Rust CLIs
  • timber: Rover's logging formatter

Installation Methods

Linux and MacOS curl | sh installer

To install the latest release of Rover:

curl -sSL https://rover.apollo.dev/nix/latest | sh

To install a specific version of Rover (note the v prefixing the version number):

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.

curl -sSL https://rover.apollo.dev/nix/v0.6.0 | sh

You will need curl installed on your system to run the above installation commands. You can get the latest version from the curl downloads page.

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.

Windows PowerShell installer

iwr 'https://rover.apollo.dev/win/latest' | iex

To install a specific version of Rover (note the v prefixing the version number):

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.

iwr 'https://rover.apollo.dev/win/v0.6.0' | iex

npm installer

Rover is distributed on npm for easy integration with your JavaScript projects.

devDependency install

If 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, or you can run npx rover in your project directory to execute commands.

Manual download and install

If you'd like to call rover from any directory on your machine, you can run npm i -g @apollo/rover.

Note: 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 has information that should help to resolve this issue.

Without curl

You can also download the binary for your operating system and manually add its location to your PATH.

Unsupported architectures

If you don't see your CPU architecture supported as part of our release pipeline, you can build from source with 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.

git clone https://github.com/apollographql/rover
cargo xtask dist --version v0.1.3

From here you can either place the binary in your PATH manually, or run ./target/release/{optional_target}/rover install.

Contributions

See this page for info about contributing to Rover.

Licensing

Source 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.

rover's People

Contributors

everlastingbugstopper avatar jakedawkins avatar lrlna avatar dependabot[bot] avatar trevorblades avatar renovate[bot] avatar ashleygwilliams avatar abernix avatar jgarrow avatar renovate-bot avatar ptondereau avatar lleadbet avatar y-guo avatar cy avatar setchy avatar farawaysouthwest avatar bnjjj avatar david-castaneda avatar dnature avatar geal avatar jesusprubio avatar saintmalik avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.