Versiona CuboPlus

Conectar ao Git: guia do aplicativo

Para quem administra a organização no GitHub ou o grupo no GitLab. É feito uma vez e serve a toda a equipe.

O Versiona grava o script de carga no Git da sua empresa, com o nome de quem alterou. Para isso, cada pessoa precisa se conectar ao Git pela extensão. Há dois jeitos, e o recomendado é o aplicativo.

Com aplicativo, recomendadoCom token pessoal
Quem preparaQuem administra a organização, uma vezCada pessoa, o seu
Como a pessoa entraCom a própria conta do GitCria um token, copia e cola na extensão
O que alcançaSó os repositórios que o administrador escolheuO que cada pessoa marcar ao criar o token
Para cortar o acessoO administrador revoga o de todos de uma vezCada pessoa revoga o seu
ValidadeCuidada pelo aplicativoO token vence, e a extensão avisa 15 dias antes
Nos dois jeitos, o token fica só no navegador de cada pessoa e vai só ao Git da sua empresa. A Cubotimize não recebe token, script nem dado nenhum, e a extensão não usa o "segredo" do aplicativo: ele não precisa ser gerado. Veja a política de privacidade.

GitHub: criar o GitHub App

Tem de ser um GitHub App, e não um OAuth App: o GitHub App só enxerga os repositórios em que for instalado. O OAuth App alcançaria todos os repositórios privados de cada pessoa.

  1. Na organização, abra Settings, Developer settings, GitHub Apps, New GitHub App.
  2. GitHub App name: um nome que a equipe reconheça, por exemplo "Versiona" seguido do nome da empresa.
  3. Homepage URL e Callback URL: o GitHub exige os dois, e o login do Versiona não usa nenhum. Pode usar o endereço da própria organização no GitHub.
  4. Marque Enable Device Flow. É o login por código, que o Versiona usa.
  5. Deixe marcado Expire user authorization tokens. O token passa a valer 8 horas, e o Versiona renova sozinho, a partir da v1.13.0. Um token roubado deixa de valer para sempre.
  6. Em Webhook, desmarque Active. O Versiona não usa, e marcado o GitHub exige um endereço.
  7. Em Repository permissions, dê Contents: Read and write. O "Metadata: Read-only" entra sozinho. Todo o resto fica em "No access".
  8. Em "Where can this GitHub App be installed?", deixe Only on this account.
  9. Clique em Create GitHub App.

Conferir, copiar o Client ID e instalar

  1. Em Optional features, a linha "User-to-server token expiration" deve mostrar o botão Opt-out. É sinal de que a validade de 8 horas está ligada. Se mostrar "Opt-in", clique nele.
  2. Em General, copie o Client ID, que começa com Iv. Não é o "App ID", que é só número.
  3. Não gere "client secret" nem "private key": o Versiona não usa nenhum dos dois. O aviso amarelo pedindo a chave pode ser ignorado.
  4. Em Install App, instale na organização com Only select repositories, marcando só o repositório dos scripts.

A tela de instalação deve mostrar duas permissões e mais nenhuma: "Read access to metadata" e "Read and write access to code".

Na extensão

  1. No cadastro do servidor, escolha GitHub e cole o Client ID em "Client ID do aplicativo".
  2. Informe o endereço do repositório e salve.
  3. Ao conectar, a extensão mostra um código. Cada pessoa digita esse código em github.com/login/device, com a própria conta, e autoriza.

Cada pessoa só alcança o que a conta dela já alcança: quem não tem permissão de escrita no repositório continua sem conseguir gravar.

GitLab: criar a Application

  1. No grupo, abra Settings, Applications. Quem não administra o grupo tem o mesmo formulário em Edit profile, Applications, e o administrador da instância, na área de administração.
  2. Redirect URI: o endereço que a extensão mostra no cadastro do servidor, em "Como conseguir o Application ID", com o botão de copiar. Para a extensão instalada pela Chrome Web Store, é:
    https://fhfhemfocaiigoakdnbafeoeibgemfag.chromiumapp.org/gitlab
  3. Desmarque Confidential. A extensão não guarda segredo.
  4. Marque só o escopo api.
  5. Salve e copie o Application ID. O "Secret" não é usado.

Na extensão, escolha GitLab no cadastro do servidor e cole o Application ID. Cada pessoa entra com o próprio login do GitLab, e a extensão renova o acesso sozinha.

Quer também o versionamento automático de madrugada? Veja o guia da rotina noturna.

Sem aplicativo: token pessoal

Recomendação de segurança. O token pessoal é a opção de menor proteção: cada pessoa escolhe o alcance e a validade do seu, e ele fica valendo até vencer. Se for usar, crie um só para o Versiona, com apenas o repositório dos scripts, apenas a permissão de gravar nele e validade de 90 dias ou menos. Não reaproveite token de outro uso. A extensão mostra este mesmo aviso a quem escolhe o token.

Funciona, e serve para quem usa sozinho ou quer testar antes de envolver o administrador. Deixe o campo do aplicativo em branco no cadastro, e cada pessoa cria o seu token:

O repositório

Para o TI: distribuir por política (GPO)

O Versiona lê uma política do navegador, que o TI distribui por GPO, Intune ou registro. Com ela, ninguém precisa cadastrar servidor: a pessoa instala (ou recebe instalada) e só conecta ao Git com a própria conta. É também por onde a empresa impõe as regras de segurança.

O exemplo abaixo é um arquivo .reg para o Chrome. Ele instala a extensão para todos, exige o aplicativo e cadastra um servidor. Troque os endereços, o Application ID e o projeto pelos seus. No Edge, o caminho começa com SOFTWARE\Policies\Microsoft\Edge no lugar de SOFTWARE\Policies\Google\Chrome.

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\ExtensionInstallForcelist]
"1"="fhfhemfocaiigoakdnbafeoeibgemfag;https://clients2.google.com/service/update2/crx"

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Google\Chrome\3rdparty\extensions\fhfhemfocaiigoakdnbafeoeibgemfag\policy]
"exigir_aplicativo"=dword:00000001
"exigir_trava"=dword:00000001
"itens_mestres"=dword:00000001
"servidores"="[{\"nome\":\"Qlik\",\"hosts_qlik\":[\"qlik.example.com\"],\"provedor\":\"gitlab\",\"origem_git\":\"https://git.example.com\",\"application_id\":\"APPLICATION_ID\",\"projeto\":\"grupo/scripts-qlik\",\"rotina_noturna\":false}]"

Proteger o token com PIN ou biometria (muito recomendado)

A partir da v1.17.0, o Versiona pode exigir o Windows Hello para usar o token do Git. Com isso ligado, o token só abre neste computador, depois de você confirmar com o PIN ou a biometria. Um programa malicioso que copie o perfil do navegador leva um token que não abre em lugar nenhum. Recomendamos muito ativar em todo computador com o Windows Hello configurado. Sem Windows Hello, servem uma chave de segurança (USB) ou o celular, a partir da v1.21.0. A chave de segurança ainda é experimental.

  1. Clique no ícone do Versiona e abra Servidores.
  2. No fim da tela, em "Exigir PIN ou biometria para usar o token", clique em Ativar.
  3. Escolha onde a chave de acesso fica: Windows Hello (recomendado), Chave de segurança (USB) ou Celular.
  4. No Windows Hello, a janela Segurança do Windows aparece dizendo "Isso será salvo em seu dispositivo Windows": é o Windows Hello, e a chave fica só neste computador. Se antes dela o navegador oferecer o Gerenciador de senhas do Google, escolha Salvar de outra forma e depois Windows Hello.
  5. Confirme com o PIN ou a biometria. O Windows pede duas vezes na ativação: uma para criar a chave de acesso, outra para usá-la.
O que precisa: o Windows Hello configurado neste computador (PIN, digital ou rosto), ou uma chave de segurança, ou o celular, e um Chrome atual. O Windows Hello foi testado no Chrome com o Windows 11; a chave de segurança e o celular ainda não. Se o computador não tiver o que o recurso precisa, a ativação é recusada, nada é alterado, e a tela diz o motivo.

Se o token for roubado: o que o seu Git consegue barrar

O token que o Versiona usa fica no navegador de cada pessoa. Desde a v1.12.0 ele vai para o disco criptografado, com uma chave criada naquele perfil do navegador e que não pode ser exportada. Isso tira o token do alcance do programa malicioso comum, que varre o navegador atrás de credenciais em texto.

Não é uma garantia: quem copiar o perfil inteiro do navegador, ou tiver um programa rodando na sessão da pessoa, ainda pode chegar ao token. O que impede um token roubado de funcionar em outro lugar é a configuração do Git, e ela depende do plano. As tabelas abaixo dizem o que cada plano oferece.

GitHub

ProteçãoFreeProTeamEnterprise CloudEnterprise Server
Lista de IPs permitidosbarra o token fora da rede da empresanãonãonãosimnão
Acesso condicional pelo provedor de identidadeconfere o IP a cada uso; só com contas gerenciadas e Microsoft Entra IDnãonãonãosimnão
Branch protegida em repositório privadoo token roubado não apaga a branch nem reescreve o históriconãosimsimsimsim
Regras para token pessoalaprovação pelo dono da organização e validade máximanão confirmadonão se aplicanão confirmadosimsim
Auditoria com o IP de quem usouserve para descobrir o uso indevido, e não para impedirnãonãonãosimnão confirmado
Revogar o acessoa pessoa revoga o aplicativo nas configurações da própria contasimsimsimsimsim

GitLab

ProteçãoFree (GitLab.com)PremiumUltimateInstalado na empresa, sem licença paga
GitLab só na rede interna ou na VPNbarra o token fora da rede; é configuração de rede, e não do GitLabnão se aplicasimsimsim
Restrição do grupo por IPbarra o token fora dos IPs listados, inclusive pela APInãosimsimnão
Token do login pelo aplicativo vale 2 horase o token de renovação é trocado a cada usosimsimsimsim
Validade obrigatória em token novoaté 365 dias por padrãosimsimsimsim
Branch protegidasem push forçado; o apagar pela API ainda depende do papel da pessoasimsimsimsim
Últimos IPs de uso do token, e revogara própria pessoa vê e revoga; o administrador revoga pela APIsimsimsimsim
Auditoria do uso do tokenserve para descobrir, e não para impedirnãosimsimnão
Inventário de credenciaiso administrador lista e revoga os tokens de todosnãonãosimnão

Consultado na documentação oficial em 6 de outubro de 2026: GitHub.com e GitHub Enterprise Cloud (sem número de versão), GitHub Enterprise Server 3.22, GitLab 19.5. Os planos mudam: confira o link de cada linha antes de decidir. "Não confirmado" quer dizer que a documentação lida não diz em qual plano o recurso existe.

O que fazer, por ordem de efeito

  1. Restringir a rede. É a única medida que impede o token de funcionar em outro lugar. No GitLab instalado na empresa, deixe-o acessível só pela rede interna ou pela VPN: funciona em qualquer licença. No GitLab.com, a restrição por IP pede o plano Premium. No GitHub, a lista de IPs pede o Enterprise Cloud.
  2. Exigir PIN ou biometria na extensão. É o que impede o token de abrir fora do computador da pessoa, em qualquer plano do Git. Veja como ativar.
  3. Criptografar o disco do computador. No Windows Pro e Enterprise é o BitLocker; no Home, a "Criptografia do dispositivo". Protege o caso do notebook perdido ou roubado e do disco retirado da máquina: sem isso, quem tem o disco lê o perfil do navegador inteiro. Não protege de um programa rodando na sessão da pessoa. Quem liga costuma ser o TI, que também guarda a chave de recuperação.
  4. Usar o aplicativo, e não o token pessoal. Com o GitHub App, o acesso alcança só os repositórios escolhidos na instalação. Com a validade ligada, o token dele vale 8 horas. Com a Application do GitLab, o token vale 2 horas.
  5. Dar o alcance mínimo. Um repositório só para os scripts, e a pessoa só com o papel de que precisa para gravar nele.
  6. Proteger a branch. Sem push forçado e sem apagar: um token roubado consegue gravar, mas não destrói o histórico. No GitHub, repositório privado protegido pede Pro ou Team.
  7. Saber revogar. Suspeitou, revogue: a pessoa remove o aplicativo autorizado na própria conta, e conecta de novo pelo Versiona.

O que não barra um token já roubado: a verificação em duas etapas, que protege o login e não o token (o GitLab diz isso); a lista de IPs do próprio GitHub App, que vale para o aplicativo e não para o token da pessoa; e o login por certificado ou smart card do GitLab, que a documentação descreve para o acesso pela tela, e não pela API.

Se algo der errado

O que apareceO que costuma ser
A extensão avisa que falta o "Enable Device Flow"A opção ficou desmarcada no GitHub App. Marque em General e salve.
Conecta, mas não encontra o repositórioO GitHub App não foi instalado na organização, ou o repositório não foi marcado na instalação.
Pede para conectar de novo todo diaA extensão é anterior à v1.13.0, que não renovava o token do GitHub. Atualize a extensão e conecte de novo uma vez.
O GitLab recusa o endereço de retornoO Redirect URI da Application está diferente do que a extensão mostra no cadastro.
Lê, mas não gravaA conta da pessoa não tem escrita no repositório, ou a branch é protegida e só aceita Maintainers.

Dúvida, sugestão ou problema: [email protected]. Não mande token, senha nem script de carga por e-mail.

Instalar o Versiona CuboPlus