Equipe e plataformaGuia

Controle de versão com Git

Um projeto pode ser ligado a um repositório Git no GitHub, no GitLab ou em qualquer servidor Git acessível por HTTPS. Tudo o que descreve o projeto vira arquivos comuns lá, e o repositório passa a ser a fonte da verdade: o Waiso verifica o branch a cada poucos minutos, mostra o que chegou, e um Aceitar deixa o projeto igual ao repositório. Enviar funciona como o painel de controle de versão de um editor de código: comparar, preparar, commit e push.

O que você vai aprender
  • Conectar um repositório com um endereço HTTPS e um token
  • Saber qual arquivo cada parte do projeto vira — e o que nunca viaja
  • Preparar, comparar, fazer commit e enviar suas mudanças
  • Revisar o que chegou do repositório e aceitar
  • Começar um segundo projeto (dev → produção) a partir do mesmo repositório

O projeto como arquivos

O Waiso continua sendo o lugar onde o código roda; o repositório é onde o projeto é descrito e onde fica o histórico. Cada item é gravado como um arquivo, no caminho de pastas que a página Code mostra. Só esses arquivos pertencem ao projeto: qualquer outro caminho do repositório — um README, um workflow de CI, uma pasta de testes — é ignorado, nunca listado, nunca lido e nunca apagado.

Controle de versão github.com/shop/docs-demo · main
Do repositório · 2
Mudanças4Histórico
Commit & Push
Do repositório2
Aflows/campaign.flow.yaml
Dlegacy/old_sync.py
Aceitar 2 mudanças
Mudanças preparadas2
Mreports/report.py
A.waiso/schedules/weekly_report.yaml
Mudanças1
Mgreet.ts
Compararreports/report.py
Repositório
1def main(day):2    rows = load(day)3    notify("ops")4    return rows
Projeto
1def main(day):2    rows = load(day)3    notify(TEAM)4    return rows
A página Git: o que chegou do repositório em cima, suas próprias mudanças embaixo e a comparação ao lado.
ItemArquivo no repositório
Script Python, TypeScript, JavaScript, C, C++<dir>/<nome>.py, .ts, .js, .c, .cpp — o código do rascunho, byte a byte
Script PostgreSQL / MySQL<nome>.pg.sql / <nome>.mysql.sql
Flow<nome>.flow.yaml, no formato de arquivo de flow
Agendamento.waiso/schedules/<nome>.yaml
Endpoint de API.waiso/endpoints/<caminho do alvo>.yaml
O nome do projeto.waiso/project.yaml
Variável.waiso/variables/<NOME>.yaml — nome, descrição, se é secreta
Integração.waiso/integrations/<nome>.yaml — tipo e nome

Conecte um repositório

  1. Abra a página Git

    Na barra lateral do projeto abra Git e clique em Conectar um repositório.

  2. Informe o endereço e o branch

    Cole o endereço https:// do repositório e o branch a seguir. Endereços de redes privadas são recusados.

  3. Adicione um token

    Crie no seu servidor Git um token que possa gravar só neste repositório e cole com o usuário dele. O tutorial ao lado do formulário mostra onde cada servidor guarda isso.

  4. Verifique e conecte

    Clique em Verificar e conectar. O Waiso acessa o repositório, confere o token e o branch e abre a aba Mudanças.

Conectar um projeto que já tem itens a um branch vazio mostra todos os itens como Adicionado: o primeiro commit grava o projeto inteiro. Conectar um projeto vazio a um branch que já tem um oferece trazer tudo de uma vez — veja Comece a partir de um repositório.

Commit e push

A aba Mudanças lista o que difere entre o projeto e o branch, cada arquivo marcado como Modificado, Adicionado ou Apagado. Clique num arquivo para comparar o lado do repositório com o lado do projeto.

  • Prepare os arquivos que entram neste commit, ou use Preparar todas. Fazer commit sem nada preparado pergunta se é para preparar tudo.
  • Escreva a Mensagem do commit e clique em Commit & Push (ou Ctrl+Enter). O aviso mostra o commit novo, Enviado 3f2a9c1.
  • A aba Histórico lista os commits do branch com os arquivos que cada um mexeu.

Aceite o que chegou

Com Verificar o repositório automaticamente ligado (o padrão numa conexão nova, no menu do repositório), o Waiso olha o branch a cada 5 minutos e quando você abre o projeto. Quando chegam commits novos, o item Git da barra lateral mostra quantos itens estão esperando, e a página Git lista tudo em Do repositório, com os commits de onde vieram. Nada muda até você aceitar.

  • Clique numa linha para comparar. Um item que o repositório removeu aparece como Será apagado e o conteúdo inteiro fica em vermelho: é o que seria perdido.
  • usado por N numa exclusão diz o que ainda usa o item; substitui sua mudança não enviada marca um item que você mudou aqui e nunca enviou.
  • Aceitar deixa o projeto igual ao repositório: itens novos são criados, itens alterados são substituídos e publicados, itens removidos são apagados. Mudanças não enviadas que seriam substituídas são confirmadas antes, pelo nome.
  • Um arquivo que não dá para ler (um flow quebrado, um horário inválido) é ignorado com o motivo; todo o resto é aplicado.

Variáveis e integrações a preencher

Uma variável ou integração que chega é criada com valores claramente falsos e marcada A preencher na página dela. Uma execução nunca vê o valor falso: a variável simplesmente não existe até você informar o valor real, e uma integração responde integration_to_fill. Uma que já existe mantém os valores — só a descrição segue o repositório. Agendamentos e endpoints novos chegam desligados.

YAML.waiso/endpoints/reports/daily.yaml
target:
  script: reports/daily
path: daily-report
method: POST
mode: sync
auth: token
rateLimitPerMin: 60

Comece a partir de um repositório

Para criar um segundo ambiente — um projeto de produção alimentado pelo mesmo branch do dev — crie um projeto vazio e conecte ao repositório. O Waiso reconhece um projeto Waiso lá e oferece Trazer tudo: mostra quantos scripts, flows, agendamentos, endpoints, variáveis e integrações vêm e o nome que o projeto vai ter. Depois, preencha os valores que o projeto lista e ligue os agendamentos que quiser.

Cópias entre projetos

Sem repositório, um script, flow ou agendamento também pode ser copiado de outro projeto do workspace com Copiar de outro projeto, nas páginas Code e Agendamentos. O que ele usa vem junto — os scripts que um flow roda, o alvo de um agendamento — e o que já existe no mesmo caminho é reaproveitado. Uma cópia vigiada lembra o original: quando o original é publicado de novo, o item Git conta isso e a página Git oferece Atualizar (a cópia pega a versão nova, publicada) ou Ignorar. Quem publica o original vê quais projetos o vigiam e pode atualizar cada um.

Limites

  • Um repositório e um branch por projeto.
  • Só endereços HTTPS em servidores públicos; chaves SSH não são suportadas.
  • Uma sincronização por vez por projeto: uma segunda responde Outra sincronização deste projeto está rodando.
  • Um commit é recusado enquanto houver algo esperando para ser aceito — aceite primeiro e depois envie de novo.
  • Dois itens que viram o mesmo arquivo (o mesmo nome na mesma pasta) são avisados e não são gravados até um ser renomeado.
  • Conectar e desconectar é reservado a admins e a quem criou o projeto. Desconectar remove só o vínculo e o token — nada é apagado em nenhum dos lados.