{"id":22662746,"url":"https://github.com/raave-aires/codeberg","last_synced_at":"2026-04-30T00:03:07.041Z","repository":{"id":266770210,"uuid":"899298558","full_name":"raave-aires/codeberg","owner":"raave-aires","description":"Tutorial de sincronização entre GitHub e Codeberg.","archived":false,"fork":false,"pushed_at":"2024-12-06T02:38:31.000Z","size":16,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-03T23:36:41.484Z","etag":null,"topics":["codeberg","git","github","mirroring","repositories"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raave-aires.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-06T01:40:39.000Z","updated_at":"2024-12-06T02:40:24.000Z","dependencies_parsed_at":"2024-12-06T03:36:17.132Z","dependency_job_id":null,"html_url":"https://github.com/raave-aires/codeberg","commit_stats":null,"previous_names":["raave-aires/codeberg"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raave-aires%2Fcodeberg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raave-aires%2Fcodeberg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raave-aires%2Fcodeberg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raave-aires%2Fcodeberg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raave-aires","download_url":"https://codeload.github.com/raave-aires/codeberg/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246162156,"owners_count":20733357,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["codeberg","git","github","mirroring","repositories"],"created_at":"2024-12-09T12:15:23.946Z","updated_at":"2026-04-30T00:03:02.000Z","avatar_url":"https://github.com/raave-aires.png","language":null,"readme":"# Como espelhar seus repositórios do GitHub no Codeberg\nEspelhar um repositório do GitHub para o Codeberg pode ser uma ótima solução para quem busca maior independência e privacidade no desenvolvimento de projetos.\n\n### Por que espelhar seus repositórios?\nExistem várias razões para você querer espelhar seu repositório no Codeberg. Por exemplo:\n- **Privacidade.** Você pode evitar que seus usuários interajam diretamente com servidores de grandes corporações, como os da Microsoft.\n- **Distribuição.** Manter seu repositório no GitHub garante maior visibilidade e descoberta, enquanto o Codeberg oferece uma alternativa mais ética e alinhada a princípios de software livre.\nDessa forma, você aproveita o melhor dos dois mundos: mantém o repositório no GitHub para atrair novos usuários, mas oferece uma alternativa no Codeberg para quem prefere outra plataforma.\n\n## Preparar o espelhamento de repositórios\nSiga estas etapas para configurar o espelhamento do seu repositório GitHub para o Codeberg.\n#### Passo 1: Crie uma conta no Codeberg\nSe ainda não tiver uma conta, acesse [codeberg.org](https://codeberg.org) e registre-se.\n\n#### Passo 2: Acesse o painel e inicie a migração\nNo painel do Codeberg, clique no ícone \"+\" localizado no topo da interface.\nNo menu suspenso, selecione Nova migração.\n\n#### Passo 3: Escolha o tipo de migração\nNa página de migração, escolha GitHub como origem do repositório, já que estamos transferindo de lá.\nNota: Isso criará um clone do repositório no Codeberg, sem excluir ou modificar o original no GitHub.\nAs instruções para o GitLab ou outros repositórios auto-hospedados são semelhantes e estão disponíveis na mesma interface.\n\n#### Passo 4: Insira a URL do repositório\nDigite a URL de clone do seu repositório no GitHub (ela deve terminar com .git).\nPara localizar a URL: vá até o seu repositório no GitHub e copie a URL SSH ou HTTPS exibida no botão \"Code\".\n\n#### Passo 5: (Opcional) Sincronize Pull Requests e dados adicionais\nSe quiser que o Codeberg importe também os Pull Requests e outros dados, insira um Token de Acesso Pessoal do GitHub no campo apropriado.\nNota: O mesmo processo funciona para GitLab.\n\n#### Passo 6: Credenciais para repositórios auto-hospedados\nSe estiver migrando de uma instância Git auto-hospedada, insira as credenciais de login do seu servidor no campo correspondente.\n\n#### Passo 7: Finalize a migração\nClique no botão **Migrar Repositório**. O Codeberg iniciará o processo de migração e, em breve, seu repositório estará disponível na plataforma.\n\n#### Passo 8: (Opcional) Clone o repositório no Codeberg\nAgora que o repositório foi migrado, você pode cloná-lo para sua máquina local a partir do Codeberg, se desejar trabalhar diretamente nele.\n\n## Espelhamento de repositórios\nExistem duas formas principais de configurar o espelhamento entre GitHub e Codeberg. \n### Opção 1: Usando a linha de comando do Git\n#### Passo 1: Configurar remotos separados para GitHub e Codeberg\nAdicione o repositório remoto do GitHub. Normalmente este passo já está configurado automaticamente.\n\nSubstitua user pelo seu nome de usuário e repo pelo nome do repositório:\n```\ngit remote add github https://github.com/user/repo.git\n```\nAdicionar o repositório remoto do Codeberg\n\nSubstitua user pelo seu nome de usuário e repo pelo nome do repositório:\n```\ngit remote add codeberg https://codeberg.org/user/repo.git\n```\n\n#### Passo 2: Verificar se os remotos foram configurados corretamente\nApós adicionar os remotos, execute o comando a seguir para listar os repositórios remotos configurados:\n```\ngit remote -v\n```\n\nSe configurado corretamente, o resultado será algo como:\n\n```\ngithub    https://github.com/user/repo.git (fetch)  \ngithub    https://github.com/user/repo.git (push)  \ncodeberg  https://codeberg.org/user/repo.git (fetch)  \ncodeberg  https://codeberg.org/user/repo.git (push)  \norigin  https://github.com/sand-br/sandbr.git (fetch)\norigin  https://github.com/sand-br/sandbr.git (push)\n```\n#### Passo 3: Configurar origin para enviar ao Codeberg também\nPor padrão, o comando git push sem argumentos enviará alterações apenas ao repositório configurado como origin, que geralmente é o GitHub. Vamos configurá-lo para também incluir o Codeberg.\n\nAdicione o repositório Codeberg como um URL adicional para origin:\n\n```\ngit remote set-url --add --push origin https://codeberg.org/user/repo.git\n```\nAgora, ao usar git push, as alterações serão enviadas para ambos os serviços, GitHub e Codeberg.\n\nCom isso, você configurou o espelhamento do seu repositório com sucesso! A partir de agora, todas as alterações feitas no repositório local serão enviadas para ambos os serviços ao executar git push.\n\n***\n### Opção 2: Configurando via arquivo `config`\nSe preferir, você pode configurar o espelhamento editando diretamente o arquivo de configuração do Git. Esse método permite personalizar as configurações sem a necessidade de comandos na linha de comando.\n\n#### O que é o arquivo config?\nO arquivo config está localizado no diretório .git do seu repositório. Ele contém todas as configurações manipuladas por comandos como git remote ou git branch. Nesse caso, vamos editar o arquivo diretamente para configurar o espelhamento.\n\nPasso a passo para editar o arquivo config\n#### Passo 1: Acesse o diretório `.git`\nNavegue até o diretório `.git` do seu repositório local e abra o arquivo `config` no editor de sua preferência\n\nVocê pode usar o Bloco de Nota ou o VSCode, por exemplo, ou outro editor de texto.\n\n#### Passo 2: Configurar o arquivo\nCertifique-se de substituir user pelo seu nome de usuário e repo pelo nome do repositório e então substitua as partes necessária do arquivo pelo seguinte:\n\n```\n[core]\n    repositoryformatversion = 0\n    filemode = true\n    bare = false\n    logallrefupdates = true\n[remote \"github\"]\n    url = https://github.com/user/repo.git\n    fetch = +refs/heads/*:refs/remotes/github/*\n[remote \"codeberg\"]\n    url = https://codeberg.org/user/repo.git\n    fetch = +refs/heads/*:refs/remotes/codeberg/*\n[remote \"origin\"]\n    url = https://github.com/user/repo.git\n    fetch = +refs/heads/*:refs/remotes/origin/*\n    pushurl = https://github.com/user/repo.git\n    pushurl = https://codeberg.org/user/repo.git\n[branch \"main\"]\n    remote = origin\n    merge = refs/heads/main\n    pushRemote = origin\n```\n#### Passo 3: Salvar e sair\nApós substituir os valores, salve o arquivo e feche o editor.\n\n### Como isso funciona?\nO GitHub (remote \"github\") e o Codeberg (remote \"codeberg\") têm suas URLs de fetch configuradas para sincronizar com seus repositórios.\n\nO origin foi configurado com pushurl para enviar as alterações para ambos os serviços ao executar git push. Com isso, seu repositório está configurado para enviar e buscar alterações de GitHub e Codeberg automaticamente.\n\n***\n## Testando o espelhamento\nAgora que você configurou o espelhamento, é hora de testar se tudo está funcionando corretamente.\n\n#### Passo 1: Prepare um arquivo de teste\nQue tal um:\n```\nEsta é uma mensagem de teste para o espelhamento de repositórios. \nCriado com a ajuda do incrível [Raavë Aires](https://github.com/raave-aires)\nSe você está lendo isso tanto no GitHub quanto no Codeberg, parabéns! O espelhamento está funcionando perfeitamente. 🎉\n```\n#### Faça um git push\nNo terminal, ou na sua IDE, execute o seguinte comando a partir do diretório do seu repositório local:\n```\ngit push\n```\nPasso 3: Verifique se as alterações foram sincronizadas\nAcesse seu repositório no [Codeberg](https://codeberg.org/) e veja se as mudanças foram aplicadas.\n\nRepita o mesmo processo no [GitHub](https://github.com/).\n\nSe tudo foi configurado corretamente, as alterações estarão atualizadas em ambos os repositórios.\n\n***\n## Licença\nEste conteúdo é licenciado sob a [Creative Commons Atribuição-NãoComercial-CompartilhaIgual 4.0 Internacional](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.pt) (CC BY-NC-SA 4.0).\n\nVocê é livre para:\n- Compartilhar — copiar e redistribuir o material em qualquer formato ou mídia.\n- Adaptar — remixar, transformar e criar a partir do material.\n\nDesde que respeite as condições:\n- Atribuição — dê crédito apropriado, forneça um link para a licença e indique se alterações foram feitas.\n- Uso Não Comercial — você não pode usar o material para fins comerciais.\n- Compartilha Igual — se você remixar, transformar ou criar a partir do material, deverá distribuir suas contribuições sob a mesma licença.\n\n### Como atribuir?\nSe você estiver apenas distribuindo este material sem modificá-lo, use:\n```\nEste material foi criado por Raavë Aires e está disponível em \u003chttps://github.com/raave-aires/codeberg/\u003e. Licenciado pela CC BY-NC-SA 4.0.\n```\nSe você estiver criando um novo material a partir deste trabalho, ou distribuindo ele modificado, use:\n```\nBaseado no trabalho de Raavë Aires, disponível em \u003chttps://github.com/raave-aires/codeberg/\u003e. Licenciado pela CC BY-NC-SA 4.0.\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraave-aires%2Fcodeberg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraave-aires%2Fcodeberg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraave-aires%2Fcodeberg/lists"}