Global InfraGlobal Infra Cloud

Getting Started

CLI commands for Global Infra Cloud services.

Edit

Installation

gi allows you to manipulate items of Global Infrastructure — providers, tenants, services, platforms, regions, subscriptions, users, groups, events, change pipelines, repositories, access control, action types, asset actions, asset types, change components, change processes, datacenters, frameworks, OIDC tokens, service categories, and tenant platforms.

gi [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]

Download the latest binary for your platform from the releases page.

Platform / Architecture Matrix

PlatformArchitectureAsset name
Linuxamd64gi-linux-amd64
Linuxarm64gi-linux-arm64
macOSIntelgi-darwin-amd64
macOSApple Silicongi-darwin-arm64
Windowsamd64gi-windows-amd64.exe
Windowsarm64gi-windows-arm64.exe

Install

# Get the download URL for a specific asset (example for Linux amd64)
export GITLAB_TOKEN="your-gitlab-token"
export PLATFORM_ARCH="linux-amd64"

curl -sL --header "PRIVATE-TOKEN: $GITLAB_TOKEN" \
"https://gitlab.core.emea.giservices.io/api/v4/projects/17157/releases" \
| jq -r --arg name "gi-$PLATFORM_ARCH" '.[0].assets.links[] | select(.name == $name) | .url' \
| sed 's|.*/cli/-/jobs/\([0-9]*\)/artifacts/raw/|https://gitlab.core.emea.giservices.io/api/v4/projects/17157/jobs/\1/artifacts/|' \
| xargs curl -L -o gi --header "PRIVATE-TOKEN: $GITLAB_TOKEN"

# Make it executable
chmod +x gi

# Move it to a directory in your PATH
sudo mv gi /usr/local/bin/
# Get the download URL for a specific asset (example for Windows amd64)
$env:GITLAB_TOKEN = "your-gitlab-token"
$env:PLATFORM_ARCH = "windows-amd64"

$headers = @{ "PRIVATE-TOKEN" = $env:GITLAB_TOKEN }

$release = Invoke-RestMethod -Headers $headers `
-Uri "https://gitlab.core.emea.giservices.io/api/v4/projects/17157/releases" | Select-Object -First 1

$url = ($release.assets.links | Where-Object { $_.name -eq "gi-$($env:PLATFORM_ARCH).exe" }).url

$apiUrl = $url -replace '.*/cli/-/jobs/(\d+)/artifacts/raw/', 'https://gitlab.core.emea.giservices.io/api/v4/projects/17157/jobs/$1/artifacts/'

Invoke-WebRequest -Headers $headers -Uri $apiUrl -OutFile gi.exe

# Move it to a directory in your PATH
Move-Item gi.exe "$env:LOCALAPPDATA\Microsoft\WindowsApps\gi.exe"

Alternatively, download directly from the releases page in your browser.

Verify

gi --version

Update

To update gi, repeat the installation steps with the latest release. Download the new binary and replace the existing one.


Authentication

gi supports two authentication methods. Token auth takes precedence over username/password when both are provided.

Token Authentication

Generate a personal access token from your profile: https://console.core.emea.giservices.io/-/self/tokens

# Via environment variable (recommended)
export GI_TOKEN="pat:..."
gi tenant list

# Via flag
gi --token my-api-token tenant list

Basic Authentication (username / password)

# Via environment variables
export GI_USERNAME="admin"
export GI_PASSWORD="s3cret"
gi tenant list

# Via flags
gi -U admin -P s3cret tenant list

Configuration

Global Flags

All global flags can be set via environment variables. Flags take precedence over environment variables.

FlagAliasEnv VarsDefaultDescription
--host-HGI_HOST, CONSOLE_CLI_HOSThttps://console.core.emea.giservices.io/api/v1/Console API host
--username-UGI_USERNAME, CONSOLE_CLI_USERNAMEUsername for console APIs
--password-PGI_PASSWORD, CONSOLE_CLI_PASSWORDPassword for console APIs
--token-TGI_TOKEN, CONSOLE_CLI_TOKENAPI token (takes precedence over username/password)
--debug-DGI_DEBUG, CONSOLE_CLI_DEBUGfalseShow debug output
--output-oGI_OUTPUT, CONSOLE_CLI_OUTPUTprettyOutput format: pretty, json

Output Formats

pretty (default)

Renders a styled Unicode table with color-coded status indicators and bold headers.

╭────────────┬──────────────┬──────────────┬────────╮
│ ID         │ Name         │ Provider     │ Status │
├────────────┼──────────────┼──────────────┼────────┤
│ tnt-001    │ acme-prod    │ ops-emea     │    ●   │
│ tnt-002    │ acme-staging │ ops-emea     │    ●   │
│ tnt-003    │ beta-test    │ ops-apac     │    ●   │
╰────────────┴──────────────┴──────────────┴────────╯
Status color coding
ColorStatuses
GreenSUCCESS, READY
CyanRUNNING, WAITING, IN_PROGRESS, ACCEPTED, CREATED, PENDING
WhiteSKIPPED
RedAny other status (errors, failures)

json

Outputs raw JSON to stdout with no log decoration — suitable for piping into jq or other tools.

gi -o json tenant list | jq '.[].name'
[
  {
    "id": "tnt-001",
    "name": "acme-prod",
    "provider": "ops-emea",
    "status": "READY"
  }
]

When using json output, all log messages are suppressed — only the JSON payload is written to stdout.

On this page