🐙 Colaboração & Automação

🐙 GitHub

Repositórios, Pull Requests, Actions e o maior ecossistema open source do mundo

📁 Repositórios & Colaboração

GitHub hospeda mais de 420 milhões de repositórios. Entenda como organizar e colaborar eficientemente.

🍴

Fork

Cria uma cópia do repositório na sua conta. Ideal para contribuir em projetos open source sem acesso direto.

🔒

Branch Protection

Proteja a main exigindo PR reviews, status checks e assinatura de commits antes do merge.

📋

Issues & Projects

Rastreie bugs, features e tarefas com Issues. Organize com Projects (Kanban/Roadmap).

🏷️

Releases & Tags

Publique versões do software com changelogs, binários e notas de release diretamente no GitHub.

bash — fluxo fork + PR
# 1. Fork no GitHub (via interface)
# 2. Clone o fork
git clone https://github.com/SEU-USER/repo.git
cd repo

# 3. Adicione o upstream original
git remote add upstream https://github.com/ORIGINAL/repo.git

# 4. Crie branch para sua feature
git checkout -b feature/minha-contribuicao

# 5. Faça suas mudanças e commit
git add . && git commit -m "feat: minha contribuição"

# 6. Sincronize com upstream antes do push
git fetch upstream
git rebase upstream/main

# 7. Push e abra Pull Request no GitHub
git push origin feature/minha-contribuicao

🔀 Pull Requests

Pull Requests são o coração da colaboração no GitHub — revisão de código, discussão e integração controlada.

📌 Boas práticas de PR

PRs pequenos e focados são revisados mais rápido. Use o template de PR para descrever o que mudou, por quê e como testar. Adicione screenshots para mudanças visuais.

.github/pull_request_template.md
## 📋 Descrição
Descreva brevemente o que este PR faz.

## 🎯 Tipo de mudança
- [ ] Bug fix
- [ ] Nova feature
- [ ] Refatoração
- [ ] Documentação

## ✅ Checklist
- [ ] Código testado localmente
- [ ] Sem console.log esquecidos
- [ ] Documentação atualizada
- [ ] Sem breaking changes

⚙️ GitHub Actions

CI/CD nativo do GitHub — automatize build, testes e deploy diretamente no repositório.

▶ workflow: deploy.yml — push to main
✔ passed
lint
12s
✔ passed
test
45s
✔ passed
build
28s
⟳ running
deploy
~30s
.github/workflows/deploy-s3.yml
name: Deploy to S3

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    permissions:
      id-token: write   # OIDC para AWS
      contents: read

    steps:
      - uses: actions/checkout@v4

      - name: Configure AWS via OIDC
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: arn:aws:iam::ACCOUNT:role/github-deploy
          aws-region: us-east-1

      - name: Sync to S3
        run: |
          aws s3 sync . s3://meu-site/ \
            --exclude ".git*" \
            --exclude "Docs/*"

      - name: Invalidate CloudFront
        run: |
          aws cloudfront create-invalidation \
            --distribution-id ${{ secrets.CF_DIST_ID }} \
            --paths "/*"
🔐 OIDC vs Access Keys

Use OIDC (OpenID Connect) para autenticar GitHub Actions na AWS — sem necessidade de armazenar Access Keys como secrets. Mais seguro e sem rotação manual de credenciais.


🌐 GitHub Pages

Hospede sites estáticos gratuitamente direto do repositório — ideal para documentação, portfólios e projetos open source.

.github/workflows/pages.yml
name: Deploy GitHub Pages

on:
  push:
    branches: [main]

permissions:
  contents: read
  pages: write
  id-token: write

jobs:
  deploy:
    environment:
      name: github-pages
      url: ${{ steps.deploy.outputs.page_url }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/configure-pages@v4
      - uses: actions/upload-pages-artifact@v3
        with:
          path: ./dist
      - id: deploy
        uses: actions/deploy-pages@v4

📦 GitHub Packages

Registry integrado para Docker images, npm, Maven, NuGet e mais — tudo no mesmo lugar do código.

bash — Docker + GitHub Container Registry
# Login no GHCR
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin

# Build e tag
docker build -t ghcr.io/USERNAME/minha-app:latest .

# Push
docker push ghcr.io/USERNAME/minha-app:latest

# Pull em qualquer lugar
docker pull ghcr.io/USERNAME/minha-app:latest

🤖 GitHub Copilot

IA integrada ao editor que sugere código, explica funções, gera testes e muito mais.

💬

Copilot Chat

Converse com a IA sobre seu código — explique funções, sugira refatorações e tire dúvidas sem sair do editor.

🧪

Geração de Testes

Selecione uma função e peça ao Copilot para gerar testes unitários automaticamente.

🔍

Code Review

Copilot revisa Pull Requests automaticamente, identificando bugs, problemas de segurança e melhorias.

Copilot Workspace

Descreva uma tarefa em linguagem natural e o Copilot cria um plano de implementação completo.

← Git Hub Próximo: GitLab →
📤 Compartilhar: