Cadastre-se

Comece agora a utilizar o MoIP em seus projetos.

Guia prático: contribuindo com projetos do MoIP no Github – Chaves RSA, forks e clones

por

Nesta 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:

sudo aptitude install git-core

Você ainda pode instala-lo “na unha” através de um pacote .tar.gz:

wget http://kernel.org/pub/software/scm/git/git-1.7.3.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:

brew install git

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:

git

Se você ver uma saída como esta, é porque está tudo ok:

usage: git [--version] [--exec-path[=GIT_EXEC_PATH]] [--html-path]
           [-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.name "MoIP Labs"
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:

ssh-keygen -t rsa

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//.ssh no Linux e c:\users\\.ssh no Windows 7, por exemplo).

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:

git clone <sua_url_de_clone_ssh>

No meu caso, eu fiz o seguinte:

git clone git@github.com:herberthamaral/moip-rails.git

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!


Ver outros Posts