Skip to content

Login, organização, projeto e ambiente

Antes do primeiro deploy: autenticar e escolher em qual organização, em qual projeto e em qual ambiente você está trabalhando.

Login

goship login

O token fica salvo em ~/.config/goship/config.json, com permissão de leitura só pra você.

Escolher a organização

Organizações reúnem as pessoas, a cobrança e os projetos. Todo comando roda dentro de uma:

goship org list             # as organizações das quais você é membro
goship org use acme         # fixa acme como padrão

A flag --org sobrepõe a escolha em um comando só:

goship apps --org outra-org

Escolher o projeto

Dentro da organização, apps, bancos e volumes pertencem a um projeto (e, dentro dele, a um ambiente). Todo comando que mexe nesses recursos roda dentro de um projeto. Veja o conceito em Organizações e projetos.

goship projects                        # os projetos que você alcança, com o seu papel em cada um
goship project use loja                # fixa loja como padrão
goship project create app-mobile --name "App mobile"

A flag --project sobrepõe a escolha em um comando só:

goship apps --project app-mobile

O CLI decide o projeto nesta ordem, parando no primeiro que encontrar:

  1. a flag --project;
  2. a chave project: do goship.yaml;
  3. a variável de ambiente GOSHIP_PROJECT;
  4. o projeto fixado com goship project use;
  5. o único projeto que você alcança.

O project: do goship.yaml só vale quando o org: do mesmo arquivo é a organização em uso (ou quando o arquivo não tem org:).

Disponível a partir da versão 0.5.0.

Escolher o ambiente

Cada projeto existe em todos os ambientes da organização (desenvolvimento, homologação, produção e os que você criar; a homologação fica desativada até um administrador ativá-la), e cada ambiente aponta para um cluster. O ambiente em que você está decide onde os comandos agem: goship apps, goship deploy, goship db create e os demais rodam dentro dele. Veja o conceito em Ambientes.

goship environments                    # os ambientes da organização e o cluster de cada um
goship environment use production      # fixa production neste projeto
goship environment enable staging       # administrador: ativa a homologação
goship deploy --environment production # só neste comando

goship environments mostra, em cada linha, o slug, o nome, o cluster, se o ambiente é o padrão e se está ativado (SLUG, NAME, CLUSTER, DEFAULT, ENABLED). Criar algo num ambiente desativado é recusado com staging is disabled; an organization admin enables it in Infrastructure → Environments; goship environment disable <slug> só funciona num ambiente vazio que não seja o padrão. goship environment use confere que o ambiente existe e guarda a escolha por organização e projeto: em outro projeto, a escolha é outra.

O CLI decide o ambiente nesta ordem, parando no primeiro que encontrar:

  1. a flag --environment;
  2. a chave environment: do goship.yaml;
  3. a variável de ambiente GOSHIP_ENVIRONMENT;
  4. o ambiente guardado com goship environment use;
  5. o ambiente padrão da organização, que é desenvolvimento até você trocar.

O environment: do goship.yaml só vale quando o org: e o project: do mesmo arquivo estão vazios ou são a organização e o projeto em uso.

Diferente de organização e projeto, não escolher um ambiente não é erro: vale o padrão. A exceção é quando o CLI não consegue ler o padrão da organização (a API fora do ar, por exemplo) e nada escolheu um ambiente. Nesse caso os comandos que mudam algo (deploy, app create, db create…) recusam e pedem --environment, e os de listagem usam development, com uma nota dizendo isso.

Os comandos dizem onde agem, na forma org/projeto/ambiente: goship app create imprime Creating <app> in org/projeto/ambiente. Pra olhar além do ambiente em uso, goship apps -A, goship dbs -A e goship volumes -A listam tudo o que você alcança, em seções org/projeto/ambiente; um ambiente que você não alcança é pulado, com uma nota. Quando o projeto não foi escolhido e a organização tem vários, goship app info <app> procura o app em todos os projetos e ambientes; --environment limita a busca a um ambiente. Se o nome existe em vários, ele pede que você escolha com --org, --project e --environment.

goship env continua sendo as variáveis de ambiente de um app (goship env set); os ambientes do GoShip são goship environment e goship environments.

Disponível a partir da versão 0.14.0; goship environment enable e disable e a coluna ENABLED, a partir da 0.16.0.

Logout

goship logout

Apaga o token local.

Sem navegador: CI e agentes

Crie um token de API (goship token create ci, ou Profile → API tokens no painel), defina GOSHIP_TOKEN e o CLI não pede login. Combine com --yes pra pular confirmações e --output json pra ler o resultado:

GOSHIP_TOKEN=$TOKEN goship apps --output json

Detalhes e limites em API → Autenticação.

Próximos passos

Com login feito e organização escolhida, vai pra Comandos comuns ou direto pro Início rápido.