Praticar de graça

🗃️Entenda o AWS CodeCommit

O CodeCommit é um GitHub dentro da sua conta AWS: repositório Git de verdade (clone, branch, commit, pull request), só que quem entra é decidido pelo IAM — o mesmo usuário e a mesma role que já mandam no resto da conta.

Pra que serve

É o "onde o código mora" da esteira de CI/CD na AWS. Empresa com regra rígida de acesso (banco, saúde, governo) prefere o código na mesma conta, com permissão por role e trilha no CloudTrail, em vez de um site de Git separado. Um detalhe que você vai achar em artigo antigo: a AWS fechou o CodeCommit pra clientes novos em julho de 2024 e voltou atrás em novembro de 2025 — hoje ele está disponível pra todo mundo.

Onde se usa no mundo real

Vocabulário

Repositório
o projeto Git; o endereço de clone está em cloneUrlHttp.
Branch
um ponteiro pro commit da ponta. Criar branch não copia nada.
Commit pai
o commit anterior. O put-file exige a ponta atual pra ninguém sobrescrever o trabalho de outro sem ver.
Pull request
o pedido de revisão: levar as mudanças de uma branch pra outra.
Fast-forward
mesclar só avançando o ponteiro do destino, sem commit de merge — possível quando o destino não andou.
Branch padrão
a que o clone traz e o destino padrão dos PRs; não pode ser apagada.
💰 Como cobra: Cobra por usuário ativo no mês: os 5 primeiros são grátis (com 50 GB e 10 mil requisições Git), e cada usuário a mais custa US$ 1 por mês. Comparando: CodeCommit x GitHub — o Git é o mesmo; a diferença é que o CodeCommit vive dentro da conta, com acesso pelo IAM, e não tem o ecossistema social do GitHub (Actions, marketplace, issues).

Comandos que você aprende nesta trilha

Cada um deles roda de verdade no terminal do CLImb, com a mesma saída e as mesmas mensagens de erro que a AWS devolve.

aws codecommit list-repositories

USO

aws codecommit list-repositories [--sort-by repositoryName|lastModifiedDate] [--order ascending|descending]

aws codecommit create-repository

USO

aws codecommit create-repository --repository-name <nome> [--repository-description <texto>]

aws codecommit get-repository

USO

aws codecommit get-repository --repository-name <nome>

aws codecommit put-file

USO

aws codecommit put-file --repository-name <repo> --branch-name <branch> \
--file-content fileb://<arquivo> --file-path <caminho/no/repo> \
[--parent-commit-id <commit-da-ponta>] [--commit-message <texto>] [--name <autor>] [--email <email>]

aws codecommit list-branches

USO

aws codecommit list-branches --repository-name <repo>

aws codecommit get-branch

USO

aws codecommit get-branch --repository-name <repo> --branch-name <branch>

aws codecommit get-file

USO

aws codecommit get-file --repository-name <repo> --file-path <caminho> [--commit-specifier <branch|commit>]

aws codecommit create-branch

USO

aws codecommit create-branch --repository-name <repo> --branch-name <nova> --commit-id <commit>

aws codecommit create-pull-request

USO

aws codecommit create-pull-request --title <título> \
--targets repositoryName=<repo>,sourceReference=<branch-com-mudança>,destinationReference=<branch-destino> \
[--description <texto>]

aws codecommit list-pull-requests

USO

aws codecommit list-pull-requests --repository-name <repo> [--pull-request-status OPEN|CLOSED] [--author-arn <arn>]

aws codecommit get-pull-request

USO

aws codecommit get-pull-request --pull-request-id <id>

aws codecommit merge-pull-request-by-fast-forward

USO

aws codecommit merge-pull-request-by-fast-forward --pull-request-id <id> --repository-name <repo> [--source-commit-id <commit>]

aws codecommit delete-branch

USO

aws codecommit delete-branch --repository-name <repo> --branch-name <branch>

aws codecommit delete-repository

USO

aws codecommit delete-repository --repository-name <repo>

O que você pratica (26 atividades)

Cada atividade é um pedido de trabalho, do jeito que ele chega no dia a dia — você resolve digitando os comandos, não escolhendo alternativa.

Onde o código mora?

O time de RH vai tirar o código do portal interno de um pendrive (sim, de um pendrive) e colocar num repositório de verdade, dentro da conta AWS. Antes de criar, veja quais repositórios já existem.

O repositório do portal do RH

Crie o repositório portal-rh com a descrição Portal interno do RH. É o marco da trilha: o código sai do pendrive.

O mais recente primeiro

A conta vai acumular repositórios. Liste os repositórios ordenados pela última modificação, do mais recente pro mais antigo.

O endereço pro git clone

Uma dev vai clonar o portal-rh no notebook dela e pediu o endereço. Veja o detalhe do repositório.

Só a URL, pro script

O script que prepara a máquina de dev nova precisa só da URL de clone do portal-rh, como texto puro.

O primeiro commit

O repositório está vazio. Crie um README.md com o texto # Portal RH e grave ele na branch main do portal-rh, com a mensagem Primeiro commit. Repositório vazio não pede commit pai.

Que branches existem?

O primeiro commit criou uma branch. Confira quais branches o portal-rh tem agora.

Em que commit a main está?

O próximo commit vai precisar saber qual é a ponta da main. Consulte a branch main do portal-rh e veja o commitId.

Só o id do commit

Um script de deploy anota em que commit a main estava. Traga só o commitId da main do portal-rh, em texto puro.

O buildspec vai pro repositório

O CI precisa do buildspec.yml na raiz do repositório. Crie o arquivo com o texto version: 0.2 e grave ele na main do portal-rh, com a mensagem Adiciona buildspec. Agora a branch já tem commit: o put-file vai exigir o commit pai.

Leia sem clonar

Alguém perguntou o que está escrito no README.md da main. Leia o arquivo direto do repositório portal-rh, sem clonar.

O buildspec chegou mesmo?

Antes de ligar o CI, confirme que o buildspec.yml está na main do portal-rh — e veja o tamanho dele (fileSize).

Uma branch pra tela de férias

A tela de férias coletivas vai ser feita sem mexer na main. Crie a branch ferias-coletivas no portal-rh, a partir da ponta atual da main.

Um experimento de layout

O designer quer testar um layout novo sem compromisso. Crie a branch experimento-layout no portal-rh, também a partir da main.

O trabalho na branch

Grave a tela nova na branch ferias-coletivas: um arquivo ferias.md com o texto ## Ferias coletivas, mensagem Tela de ferias. O commit pai agora é a ponta da ferias-coletivas, não da main.

Peça revisão

A tela está pronta, mas nada vai pra main sem revisão. Abra um pull request da ferias-coletivas pra main no portal-rh, com o título Tela de ferias coletivas.

O que está esperando revisão?

A tech lead quer ver os pull requests do portal-rh. Liste todos.

Só os abertos

Na reunião diária só interessa o que ainda está aberto. Liste os pull requests do portal-rh com status OPEN.

O detalhe do pull request

Antes de aprovar, a tech lead quer ver o pull request da tela de férias por inteiro: branches, commits e se já foi mesclado.

Aberto ou fechado?

Um bot do chat avisa quando um PR fecha. Traga só o status do pull request da tela de férias.

Aprovado: pra main

Revisão aprovada. Mescle o pull request da tela de férias na main do portal-rh por fast-forward — a main só avança até o último commit da branch.

O hotfix do holerite

Bug em produção: o holerite mostra a data errada. Faça o ciclo inteiro no portal-rh: branch hotfix-holerite a partir da main, grave um holerite.md com o texto data corrigida nela (mensagem Corrige data do holerite), abra o pull request pra main (título Hotfix holerite) e mescle.

Branch mesclada não precisa ficar

A tela de férias já está na main. Apague a branch ferias-coletivas do portal-rh pra lista não virar um cemitério.

O experimento não vingou

O layout novo foi descartado. Apague a branch experimento-layout do portal-rh e confira as branches que sobraram.

O protótipo que ficou pra trás

Alguém criou o repositório prototipo-ponto pra testar uma ideia e esqueceu. Crie pra ver o cenário e apague.

O legado migrou pro GitHub

O repositório legado-folha (descrição Folha antiga) foi migrado pra outro lugar e pode sair. Crie pra ver o cenário, apague, e rode o apagar de novo: repare que a segunda vez responde sucesso vazio.

Continue por aqui

Ler explica. Digitar fixa. No CLImb você roda os comandos de verdade num terminal AWS simulado — o estado persiste entre eles, como na nuvem real.

As 3 primeiras atividades desta trilha são abertas; o resto faz parte do plano Pro.

Começar — 3 atividades grátis
Todas as lições · Instalar a AWS CLI · Comandos básicos · Erros comuns · Praticar no terminal · Sobre