---
title: Tutorial - OnBoarding
tags: Incodde
---
# Como iniciar um projeto com o git, docker e etc.
## Comandos inicias
1. Fazer um Fork do repositório que irá trabalhar
2. Criar uma pasta na sua máquina com o nome do repositório
3. Executar o comando `git init`
4. Executar o comando `git remote add upstream link-do-repo-original`
- Exemplo: https://github.com/repo/projeto
5. Executar o comando `git fetch upstream` para puxar os arquivos do repositório original.
6. Executar o comando `git checkout -b master upstream/master` para criar um branch master local semelhante.
7. Executar o comando `git remote add origin link-do-fork` para vincular o repositório da sua conta forkeado.
8. Executar o comando `git checkout -b nome-da-branch` para criar o branch que será feito a task.
- Obs. O nome do branch deverá seguir três os padrões:
- feat/descricao-da-task: para novas featues;
- fix/descricao-da-task: para correções;
- refactor/descricao-da-task: para refatoração de código.
## Configuração de arquivo .env
Ao abrir um projeto deverá ser criado na raiz o arquivo development.env para colocar as variáveis ambiente que irá trabalhar (pedir dados a um colaborador):
```bash
# FACEBOOK
TOKEN=
PAGING=
API_HOST=
API_VERSION=
#MAILGUN
MAILGUN_KEY=
MAILGUN_DOMAIN=
#HASURA
HASURA_ADMIN_SECRET=
DATA_WAREHOUSE_URL=
# RABBITMQ
AMQL_HOST=127.0.0.1
AMQL_PORT=5672
AMQL_USER=guest
AMQL_PASSWORD=guest
#REDIS
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_DB=0
REDIS_PASSWORD=root
LOGGER=error,warn,log
#HEALTHCHECKS
HEALTH_CHECK_GETFACEBOOKACCOUNTSTATUS=
HEALTH_CHECK_VERIFYSTATUSACCOUNTCHANGED=
HEALTH_CHECK_GETTIMEZONEFACEBOOKACCOUNT=
HEALTH_CHECK_GETCURRENCYFACEBOOKACCOUNT=
HEALTH_CHECK_GETPERMISSIONFACEBOOKACCOUNT=
HEALTH_CHECK_GETADSFROMFACEBOOKADS=
HEALTH_CHECK_GETINSIGHTS=
HEALTH_CHECK_GETBREAKDOWNSBYCOUNTRY=
HEALTH_CHECK_GETBREAKDOWNSBYDEVICE=
# LOGGER
LOGGER=error,warn,log
```
## Baixando Containers
Para usar as aplicações é necessário das imagens em docker do rabbitmq, mongodb e redis. Instale o docker e execute os comandos abaixo:
```bash
$ docker run -d -p 15672:15672 -p 5672:5672 -p 25676:25676 --hostname my-rabbit --name some-rabbit rabbitmq:3-management
$ docker container run -d -p 27017-27019:27017-27019 -v mongodbdata:/data/db --name mongodb mongo:4.0.4
$ docker container run --name redis -p 6379:6379 -d redis:alpine
```
## Fazendo um commit
Após fazer a alteração, é só digitar os comandos para fazer o commit:
```bash
# Bom sempre manter o branch local atualizado antes de fazer um push.
git pull upstream master --rebase
git add .
git commit -m 'Feat: A concise message'
git push -f origin feat/new-integration
```
## Fazendo um PR e WorkFlow
Após comitar tudo faça uma Pull Request para o staging para ir para a code review. Você pode seguir esse padrão para ficar bem explicativo para quem for revisar:

- Obs. Se tiver conflitos mesmo depois de dar o git pull, esperar task atual em staging subir pra prod, aí sim fazer um pull da master novamente, resolver conflitos na branch local e enviar atualização para a PR;
## Workflow
1. Colocar o link do PR nos comentários do card;
2. Mover card para Code Review;
3. Após CR mover card para to Deploy, SOMENTE após as aprovações.
4. Merge em Staging: Verificar se o ambiente está livre para merge (não tem nenhuma outra task sendo testada) e aplica o 'Rebase and merge';
5. Mover card para in QA: SOMENTE uma task deve estar sendo testada em staging;
6. Após validada, abrir PR de staging para master: Colocar o link do Pull Request nos comentários da task e aguardar code review;
7. A PR aprovada, fazer o merge em Master e mover o card para Validate(prod).
## Testando no Banco de Dados
Se caso quiser testar uma nova funcionalidade, após ir para staging você pode acessar o ambiente do graphql na url: https://api-staging.adireto.com/graphql
ou pelo Hasura.
```bash
# Write your query or mutation here
mutation asd1 {
authenticator(input: {
email: "email",
password: "password"
}) {
access_token
}
}
query testando {
reportsDatesByURLInDatePeriod(
finalDate:"2020-09-01",
startDate: "2020-09-01",
url: "impermeabilizabrasil.com/impermeabilizacao"
) {
summaries {
url
date
updatedAt
}
}
}
```
**Tem algo que não estava no documento?** Não deixe de nos avisar!