Plataformas Git (visão geral)
Esta aula apresenta uma visão geral das principais plataformas Git: GitHub, GitLab e Bitbucket. Aborda seus recursos essenciais como issues, pull requests e integração contínua, além de orientações para escolha e considerações sobre open source.
Nesta aula, exploraremos as plataformas Git mais populares: GitHub, GitLab e Bitbucket. Elas são fundamentais no ecossistema DevOps, oferecendo hospedagem de repositórios, controle de versão e ferramentas colaborativas. Compreender suas diferenças e recursos ajuda a escolher a melhor opção para cada projeto.
As plataformas Git vão além do simples armazenamento de código: integram issues, pull requests, CI/CD e wikis, tornando-se o centro da colaboração de equipes de desenvolvimento. Veremos como cada uma se destaca e como selecionar a mais adequada.
GitHub, GitLab, Bitbucket
O GitHub é a plataforma mais conhecida, com maior comunidade e integrações. Oferece repositórios públicos gratuitos ilimitados e planos pagos para privados. É propriedade da Microsoft e possui Actions para CI/CD, além de um marketplace rico.
O GitLab é uma plataforma completa de DevOps, com CI/CD integrado desde o início. Oferece auto-hospedagem (self-hosted) e versão SaaS. Seu foco em todo o ciclo de vida do desenvolvimento o torna popular em empresas que buscam uma solução única.
O Bitbucket, da Atlassian, integra-se fortemente com Jira e Trello. Oferece repositórios privados gratuitos para pequenas equipes e suporte a Mercurial (embora esteja sendo descontinuado). É comum em ambientes que já usam produtos Atlassian.
# Exemplo: clonar um repositório do GitHub
git clone https://github.com/usuario/repo.git
# GitLab
git clone https://gitlab.com/usuario/repo.git
# Bitbucket
git clone https://bitbucket.org/usuario/repo.gitRecursos (issues, PRs, CI)
Issues são tarefas, bugs ou melhorias rastreáveis. Permitem discussão, atribuição e etiquetas. Pull Requests (PRs) ou Merge Requests (no GitLab) são solicitações de mesclagem de alterações, com revisão de código e discussão integrada.
A Integração Contínua (CI) automatiza testes e builds a cada push. GitHub Actions, GitLab CI/CD e Bitbucket Pipelines são exemplos. Eles permitem pipelines declarativos em YAML, executando em runners ou agents.
# Exemplo de pipeline GitLab (.gitlab-ci.yml)
stages:
- test
- deploy
test-job:
stage: test
script:
- echo "Running tests"
- npm test
deploy-job:
stage: deploy
script:
- echo "Deploying"
- npm run deployO GitHub Actions usa arquivos .github/workflows/*.yml:
# Exemplo de workflow GitHub Actions
name: CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm testEscolhendo
A escolha depende de fatores como custo, integrações, necessidades de CI/CD e preferência por auto-hospedagem. O GitHub é ideal para projetos open source e comunidades. O GitLab é forte para empresas que querem um pipeline completo integrado. O Bitbucket é adequado para equipes que já usam Jira.
Para projetos privados e equipes pequenas, o Bitbucket oferece repositórios gratuitos. O GitLab tem uma versão gratuita generosa. O GitHub também tem planos gratuitos com repositórios privados, mas com limitações de Actions. Considere também a facilidade de migração e a maturidade da plataforma.
Open source
O GitHub é o lar da maioria dos projetos open source, com recursos como GitHub Sponsors e comunidade ativa. O GitLab também hospeda projetos open source e contribui com o próprio código aberto. O Bitbucket tem menos projetos open source, mas oferece suporte.
Plataformas open source como GitLab (Community Edition) permitem auto-hospedagem total, evitando vendor lock-in. O GitHub não é open source, mas sua versão Enterprise pode ser auto-hospedada. A escolha pode refletir valores da comunidade e necessidades de privacidade.
Boas práticas
Mantenha os repositórios organizados com issues e milestones. Use branches e PRs para revisão de código. Configure CI desde o início para garantir qualidade. Documente o processo de contribuição em um arquivo CONTRIBUTING.md.
Referências
- GitHub Docs
- GitLab Docs
- Bitbucket Cloud Docs
- GitHub Actions Documentation
- GitLab CI/CD Documentation
- Bitbucket Pipelines
- Open Source Guides
Exercícios
Qual plataforma Git é conhecida por oferecer CI/CD integrado desde o início e permitir auto-hospedagem?
✓ Resposta: GitLabCite dois recursos comuns a GitHub, GitLab e Bitbucket que auxiliam na colaboração em equipe.
✓ Resposta: Issues e Pull Requests (Merge Requests).Qual plataforma é mais indicada para projetos open source devido à sua grande comunidade?
✓ Resposta: GitHub.Qual é a vantagem de escolher uma plataforma que oferece auto-hospedagem (self-hosted)?
✓ Resposta: Maior controle sobre os dados, segurança e personalização, além de evitar dependência de terceiros.O que são pipelines em CI/CD e qual o formato de arquivo comum para defini-los?
✓ Resposta: Pipelines são sequências automatizadas de etapas (testes, build, deploy). O formato comum é YAML (ex: .gitlab-ci.yml, .github/workflows/*.yml).