/explore-cli

Simple utility CLI for importing and exporting data to and from SwaggerHub Explore

Primary LanguageC#Apache License 2.0Apache-2.0

explore-cli

Simple utility CLI for importing data into SwaggerHub Explore.

  _____                  _                              ____   _   _
 | ____| __  __  _ __   | |   ___    _ __    ___       / ___| | | (_)
 |  _|   \ \/ / | '_ \  | |  / _ \  | '__|  / _ \     | |     | | | |
 | |___   >  <  | |_) | | | | (_) | | |    |  __/  _  | |___  | | | |
 |_____| /_/\_\ | .__/  |_|  \___/  |_|     \___| (_)  \____| |_| |_|
                |_|

Description:

Simple utility CLI for importing data into and out of SwaggerHub Explore

Usage:

Explore.CLI [command] [options]

Options:

--version Show version information

-?, -h, --help Show help and usage information

Commands:

export-spaces Export SwaggerHub Explore spaces to filesystem

import-spaces Import SwaggerHub Explore spaces from a file

import-postman-collection Import Postman Collection from a file into SwaggerHub Explore

Prerequisites

You will need the following:

Install the CLI

Download and install the CLI tool from Nuget: https://www.nuget.org/packages/Explore.Cli

dotnet tool install --global Explore.Cli

Session Cookies for CLI command

You will need to obtain certain cookies from an active session in SwaggerHub Explore to invoke the CLI commands.

From SwaggerHub Explore, navigate to your browser development tools, locate the application cookies and extract the SESSION and XSRF-TOKEN cookies.

How to get cookie values from your browser

Keyboard
  • Windows/Linux: Ctrl + Shift + I or F12
  • macOS: ⌘ + ⌥ + I
Other Options

Chrome

Use one of the following methods:

  • click the three-dots icon in the upper-right-hand corner of the browser window > click More tools > Developer Tools
  • F12 (on Windows/Linux), and Option + ⌘ + J (on macOS)

Firefox

Use one of the following methods:

  • click the hamburger (three-lines) icon in the upper-right-hand corner of the browser window > click More tools > Web Developer Tools
  • F12 (on Windows/Linux), and Option + ⌘ + J (on macOS)

Edge

Use one of the following methods:

  • click the three-dots icon in the upper-right-hand corner of the browser window > click More tools > Developer Tools
  • F12 (on Windows/Linux), and Option + ⌘ + J (on macOS)

Safari

Develop > Show Web Inspector. If you can't see the Develop menu, go to Safari > Preferences > Advanced, and check the Show Develop menu in menu bar checkbox.

Running the export-spaces command

Command Options

  _____                  _                              ____   _   _
 | ____| __  __  _ __   | |   ___    _ __    ___       / ___| | | (_)
 |  _|   \ \/ / | '_ \  | |  / _ \  | '__|  / _ \     | |     | | | |
 | |___   >  <  | |_) | | | | (_) | | |    |  __/  _  | |___  | | | |
 |_____| /_/\_\ | .__/  |_|  \___/  |_|     \___| (_)  \____| |_| |_|
                |_|

Description:

Export SwaggerHub Explore spaces to filesystem

Usage:

Explore.CLI export-spaces [options]

Options:

-ec, --explore-cookie (REQUIRED) A valid and active SwaggerHub Explore session cookie

-fp, --file-path The path to the directory used for exporting data. It can be either relative or absolute

-en, --export-name The name of the exported file

-n, --names A comma-separated list of space names to export

-v, --verbose Include verbose output during processing

-?, -h, --help Show help and usage information

Note - the format for SwaggerHub Explore cookies is as follows: "cookie-name=cookie-value; cookie-name=cookie-value"

Example: "SESSION=5a0a2e2f-97c6-4405-b72a-299fa8ce07c8; XSRF-TOKEN=3310cb20-2ec1-4655-b1e3-4ab76a2ac2c8"

Please note - the current export-spaces does not support exporting KAFKA APIs

Running the import-spaces command

Command Options

  _____                  _                              ____   _   _
 | ____| __  __  _ __   | |   ___    _ __    ___       / ___| | | (_)
 |  _|   \ \/ / | '_ \  | |  / _ \  | '__|  / _ \     | |     | | | |
 | |___   >  <  | |_) | | | | (_) | | |    |  __/  _  | |___  | | | |
 |_____| /_/\_\ | .__/  |_|  \___/  |_|     \___| (_)  \____| |_| |_|
                |_|

Description:

Import SwaggerHub Explore spaces from a file

Usage:

Explore.CLI import-spaces [options]

Options:

-ec, --explore-cookie (REQUIRED) A valid and active SwaggerHub Explore session cookie

-fp, --file-path (REQUIRED) The path to the file used for importing data

-n, --names A comma-separated list of space names to import

-v, --verbose Include verbose output during processing

-?, -h, --help Show help and usage information

Note - the format for SwaggerHub Explore cookies is as follows: "cookie-name=cookie-value; cookie-name=cookie-value"

Example: "SESSION=5a0a2e2f-97c6-4405-b72a-299fa8ce07c8; XSRF-TOKEN=3310cb20-2ec1-4655-b1e3-4ab76a2ac2c8"

Please note - the current import-spaces does not support importing KAFKA APIs

Running the import-postman-collection command

Command Options

  _____                  _                              ____   _   _
 | ____| __  __  _ __   | |   ___    _ __    ___       / ___| | | (_)
 |  _|   \ \/ / | '_ \  | |  / _ \  | '__|  / _ \     | |     | | | |
 | |___   >  <  | |_) | | | | (_) | | |    |  __/  _  | |___  | | | |
 |_____| /_/\_\ | .__/  |_|  \___/  |_|     \___| (_)  \____| |_| |_|
                |_|

Description:

Import SwaggerHub Explore spaces from a file

Usage:

Explore.CLI import-spaces [options]

Options:

-ec, --explore-cookie (REQUIRED) A valid and active SwaggerHub Explore session cookie

-fp, --file-path (REQUIRED) The path to the file used for importing data

-v, --verbose Include verbose output during processing

-?, -h, --help Show help and usage information

Note - the format for SwaggerHub Explore cookies is as follows: "cookie-name=cookie-value; cookie-name=cookie-value"

Example: "SESSION=5a0a2e2f-97c6-4405-b72a-299fa8ce07c8; XSRF-TOKEN=3310cb20-2ec1-4655-b1e3-4ab76a2ac2c8"

Notes:

  • Compatible with Postman Collections v2.1
  • Nested collections get flattened into a single Explore space
  • GraphQL collections/requests not supported
  • Environments, Authorization data (not including explicit headers), Pre-request Scripts, Tests are not included in import

More Information on SwaggerHub Explore

Development

Prerequisites

You will need the following:

Setting up

Run the following commands to setup the repository for local development:

$ git clone https://github.com/SmartBear-DevRel/explore-cli.git
$ cd explore-cli/src/explore.cli
$ dotnet add package System.CommandLine --prerelease
$ dotnet add package Microsoft.AspNetCore.StaticFiles
$ dotnet add package NJsonSchema

Build

Run the following command to build the project (assumes you are in src/Explore.CLI):

$ dotnet build

Test

Run the following command to test the project (assumes you are in src/Explore.CLI):

$ dotnet test ../../test/Explore.Cli.Tests/Explore.Cli.Tests.csproj

Pack the CLI

Run the following command to pack the project (assumes you are in src/Explore.CLI):

$ dotnet pack

Install and test the package locally

Run the following command to uninstall previous local versions, and install the newly packed version globally on your machine (assumes you are in src/Explore.CLI):

$ dotnet tool uninstall --global explore.cli
$ dotnet tool install --global --add-source ./nupkg Explore.Cli

Contributing

This projects uses SmartBear-DevRel GitHub organization's contributing guide.

You can obtain a copy of this contributing guide at https://github.com/SmartBear-DevRel/.github/blob/main/profile/CONTRIBUTING.md.

Read our contributing guide to learn about our development process, how to propose bugfixes and improvements for Explore.CLI.