Guia prático: contribuindo com projetos do MoIP no Github – Chaves RSA, forks e clones
por Herberth AmaralNesta semana, apresentaremos um tutorial dividido em três partes para aqueles que querem contribuir conosco no Github. De fato, este tutorial não se aplica a somente pessoas que querem contribuir com os projetos Open Source do MoIP, mas com qualquer outro tipo de projeto Open Source. Nesta primeira parte, mostraremos pra você como fazer um setup básico do Git na sua máquina e uma pequena introdução ao Github.
Baixando e instalando o Git
Se você estiver no Linux, pode instalar o Git através do seu gerenciador de pacotes favorito. Eis um exemplo de como você o instalaria no Ubuntu/Debian:
Você ainda pode instala-lo “na unha” através de um pacote .tar.gz:
tar -zxvf git-1.7.3.tar.gz
cd git-1.7.3
./configure && make
sudo make install
Se você estiver no Mac, pode baixar o Git OSX installer aqui, ou instala-lo pela linha de comando utilizando o Homebrew:
Há outras formas de se instalar o Git no Mac (através do MacPorts, por exemplo) que podem ser vistas aqui.
Para usuários Windows, há o msysgit, um instalador do tipo “Next, next, next” para Windows. A instalação é super simples, não precisamos dar maiores detalhes aqui :-)
Testando sua instalação
Abra um terminal e tente executar o git:
Se você ver uma saída como esta, é porque está tudo ok:
[-p|--paginate|--no-pager] [--no-replace-objects]
[--bare] [--git-dir=GIT_DIR] [--work-tree=GIT_WORK_TREE]
[--help] COMMAND [ARGS]
The most commonly used git commands are:
add Add file contents to the index
bisect Find by binary search the change that introduced a bug
branch List, create, or delete branches
checkout Checkout a branch or paths to the working tree
clone Clone a repository into a new directory
commit Record changes to the repository
diff Show changes between commits, commit and working tree, etc
fetch Download objects and refs from another repository
grep Print lines matching a pattern
init Create an empty git repository or reinitialize an existing one
log Show commit logs
merge Join two or more development histories together
mv Move or rename a file, a directory, or a symlink
pull Fetch from and merge with another repository or a local branch
push Update remote refs along with associated objects
rebase Forward-port local commits to the updated upstream head
reset Reset current HEAD to the specified state
rm Remove files from the working tree and from the index
show Show various types of objects
status Show the working tree status
tag Create, list, delete or verify a tag object signed with GPG
See 'git help COMMAND' for more information on a specific command.
Configuração inicial básica do Git
Este passo não é estritamente necessário, mas é sempre importante ter nos dados de um commit o nome e o e-mail do seu autor. Portanto, eis um exemplo de configuração básica:
git config --global user.email "algum_email@labs.moip.com.br"
Agora podemos partir para geração de chaves RSA
Gerando chaves RSA
As chaves RSA são uma forma do Github lhe autenticar e são usadas quando você envia seu código. Para gera-las, não é complicado. Abra seu terminal e execute:
E aperte enter em todas as perguntas que o programa lhe fizer. Um par de chaves foi gerado (uma pública e uma privada) e se encontram no diretório .ssh dentro do seu diretório de usuário (/home/
Como o próprio nome sugere, a sua chave privada deve ficar só com você, ninguem deve ter acesso. Já sua chave pública pode ser distribuída para qualquer um que a exigir (como o Github).
Informando sua chave pública para o Github
Crie uma conta no Github e vá em Account Settings >> SSH Public Keys e clique em Add another public key. Copie o conteúdo do arquivo id_rsa.pub dentro do seu diretório .ssh para a caixa de texto, desta forma:
Depois disso, clique em Add Key e todo este processo inicial estará terminado.
Fazendo seu primeiro fork
Um fork é uma cópia exata de um repositório que você faz para contribuir com o projeto. Como no Github as contribuições acontecem de uma forma descentralizada, cada contribuidor tem uma cópia (fork) de um reposiório e há a possibilidade de uma pessoa sincronizar seu repositório com a de outra para que ambas tenham seus respectivos códigos atualizados. Falaremos mais sobre isso amanhã.
Vamos supor que você queira contribuir com o MoipOnRails. Vá na página do repositório e clique em Fork:
O Github vai clonar o repositório pra você…
… e voilà, você tem seu repositório “forkado”:
Para você modificar o código e dar sua contribuição, você precisa de baixar o repositório para seu computador e, na maior parte das vezes, se faz isso com o clone.
Clonando seu repositório
Para clonar seu repositório, é bem simples. O Github irá lhe dar 3 URLs para clone. Vamos utilizar a URL de SSH:
Para clona-lo, basta ir no seu terminal e digitar:
No meu caso, eu fiz o seguinte:
Prontinho! Estamos prontos para fazer algumas modificações!
Nos próximos tutoriais mostraremos como as modificações podem ser feitas, como elas podem ser enviadas para o Github e como nos notificar da sua modificação para que coloquemos no repositório oficial.
See ya!




