Todos os artigos

Getting Started

O que é o CICDoo Primeiros passos: o assistente de configuração O Painel e o Mapa da infraestrutura

Concepts

Fases de produção, staging e desenvolvimento Domínios, subdomínios e SSL Versões e edições do Odoo (Community ou Enterprise) Espaços de trabalho e colaboração em equipa

Servers

Adicionar um servidor Domínios do servidor e DNS Utilizar um balanceador de carga Ações do servidor: deploy, registos e gráficos

Projects & Git

Criar um projeto Ligar o GitHub Ligar o GitLab Ramos e instâncias

Instances & Console

Criar uma instância Reiniciar, parar e remover uma instância Fazer merge de ramos entre fases Web IDE e acesso remoto As definições da instância explicadas Deploys e a fila de tarefas

Agent Tasks

O que são as tarefas de agente Configurar as tarefas de agente Executar uma tarefa e rever o resultado Tempo de agente e recargas

Monitoring & Backups

Monitorizar a instância Cópias de segurança e restauro Notificações de alerta (email e SMS)

Workspaces & Permissions

Convidar membros do espaço de trabalho Permissões de membro e acesso a recursos Um membro não consegue ver ou usar um recurso

Account & Security

Autenticação de dois fatores (2FA) Definições de perfil e integrações Palavras-passe e recuperação da conta

Billing & Plans

Planos e preços Fazer upgrade e gerir a subscrição Se a subscrição de um projeto ficar por pagar O programa de parceiros de canal

Support & Tickets

Abrir um ticket de suporte Obter ajuda da equipa CICDoo

Troubleshooting

Resolução de problemas: não é possível ligar um servidor Resolução de problemas: um deploy falhou Resolução de problemas: git push falha com 403 depois de mover um repositório Resolução de problemas: a instância está em baixo ou lenta Resolução de problemas: problemas de domínio ou SSL

Resolução de problemas

Resolução de problemas: git push falha com 403 depois de mover um repositório

Porque é que o push devolve 403 depois de transferires ou mudares o nome de um repositório do GitHub, e como reapontá-lo com Ressincronizar do GitHub para os pushes voltarem a funcionar.

Porque é que o fetch funciona mas o push falha

Quando transferes um repositório para uma organização (ou lhe mudas o nome) no GitHub, o antigo caminho owner/repo continua a existir como redirecionamento. O GitHub encaminha discretamente o fetch e o clone para a nova localização, por isso os pulls continuam a funcionar e parece estar tudo bem, até fazeres push.

O push não é redirecionado. O GitHub rejeita um push para o caminho antigo com um 403 (permissão negada), porque o CICDoo e a tua instância continuam a ter o proprietário antigo guardado como remoto. A solução é apontar o CICDoo para o novo proprietário e deixar as tuas instâncias apanharem a alteração.

Corrigir o repositório principal

  1. Abre o projeto e vai a Definições, depois ao separador GitHub.
  2. O campo Repositório é de leitura apenas de propósito. Clica em Ressincronizar do GitHub: o CICDoo pergunta ao GitHub qual é o nome atual do repositório e atualiza o proprietário automaticamente. O campo passa a mostrar o novo owner/repo.
  3. Reinicia cada instância do projeto. Ao reiniciar, a instância reaponta o seu checkout para o novo proprietário. Os teus ficheiros e as alterações por submeter no editor ficam intocados, muda apenas o URL do remoto. Consulta Reiniciar, parar e remover uma instância.

Depois do reinício, corre outra vez o teu push a partir do terminal do editor. Deve funcionar em vez de devolver 403.

Submódulos e Repositórios adicionais

Se o que mudou foi um submódulo (uma entrada em Repositórios adicionais), normalmente não tens de fazer nada: uma instância em execução deteta a mudança e reaponta esse submódulo sozinha em cerca de dez segundos, por isso o push seguinte funciona.

Se o submódulo estiver alojado fora do GitHub, ou se preferires ser explícito, edita o respetivo URL nas Definições da instância, no subseparador Odoo, em Repositórios adicionais, e reinicia a instância. Os submódulos são clonados de novo a partir dessa lista em cada reinício, por isso o novo URL entra em vigor de imediato. Consulta As definições da instância explicadas.

Se a ressincronização não encontrar o repositório

A ressincronização usa o token do GitHub ligado ao proprietário do repositório. Se o token já não tiver acesso ao repositório movido (por exemplo, porque foi transferido para uma organização que o token não consegue ver), a ressincronização reporta que não conseguiu encontrar o repositório. Volta a ligar o GitHub ou dá ao token acesso ao novo proprietário, e tenta outra vez. Consulta Ligar o GitHub.

Se ficares bloqueado, abre um ticket de suporte a partir da página Tickets ou do widget de chat.

Ainda com dúvidas? Abra um ticket a partir da aplicação ou fale com um engenheiro.