# GitHub + Heroku + Slack
## Introdução

Com o decorrer de projetos e experiencias, podemos observar uma certa necessidade de integrar ambiente de desenvolvimento e a comunicação do time. Este tópico traz ferramentas que podem fazer essa integração, auxiliando assim na comunicação do time, e mostrando as alterações feitas na aplicação a cada novo commit.

## GitHub

O GitHub foi lançado no ano de 2008, é um sistema Web Hosting compartilhado. Ele oferece algumas funcionalidades extra ao Git, sendo possível armazenar projetos pessoais ou institucionais. Detém da maior ferramenta open source do mundo, pois nele é possível encontrar repositórios compartilhados e abertos para todos. Há também, a possibilidade do armazenamento de repositórios privado, para tanto é necessário ter uma conta privada, onde o usuário precisa pagar pelo serviço ofertado.

## Heroku

É uma ferramenta em nuvem Platform-as-a-Service (PaaS) que trabalha com várias linguagens de programação, como Ruby, PHP, Java, Node.js, Python, GO, Scala e Clojure. Iniciou os serviços em 2007, trabalhando apenas com Ruby e foi adquirido pela Salesforce.com em 2010. Ele se responsabiliza por toda a infraestrutura do sistema (servidores, conectividade, cuidados com segurança da informação) e o cliente utiliza o Heroku, pagando pelo sistema ofertado.

## Slack

É uma ferramenta de aplicação web, Android e iOs capaz de integrar várias ferramentas frequentemente utilizadas por pequenas e grandes coorporações como Google Drive, Trello e Github facilitando a comunicação e o compartilhamento do que está armazenado em diversas ferramentas em um único ambiente.

### Ativar o Slack

É necessário criar um grupo de trabalho e fornecer uma URL para ser utilizada pelos outros membros assim que eles receberem o convite do criador do grupo. Depois de ativar, a plataforma apresentará a esquerda, canais(chanel), opção de chat e grupos privados. No centro é encontrado o fluxo de conversa e conteúdos compartilhados, semelhante a um timeline do Facebook e Twitter.

## Integração
### Deploy Application

Para configurar as três ferramentas é necessário atender as seguintes especificações:
* Conta no Github, Heroku e Slack;
* Ter o Heroku CLI;
* Ambiente de desenvolvimento;
Não existe uma sequencia fixa para configurar as três ferramentas, pode-se tanto aplicar o Heroku na aplicação existente ou iniciar uma nova aplicação integrado ao Heroku, da mesma forma acontece com o Slack.
Sendo assim, será descrito um processo sequecial de uma aplicação nova em Ruby on Rails, integrando Heroku e Slack com o versionamento Git do serviço web GitHub.
Para criar aplicação:
Entrando no diretório:
Fazer login no Heroku:
Após esse passo, é necessário entrar com a conta dPara criar uma aplicação no Heroku CLI utilizar o comando:se e-mail e senha cadastrada no Heroku previamente.
Para ciar uma aplicação no Heroku CLI utilizar o comando:

### Integrando as 3 ferramentas

Para a integração do GitHub e do Heroku no Slack é necessário primeiramente criar um time no site, logo após a criação, selecionar o canal de comunicação da equipe e adicionar aplicação GitHub e Heroku seguindo os passos:
* Clicar em "Add an app or custom integration".
* Digitar "GitHub" no campo de pesquisa.
* Selecionar aplicação;
* Clicar no botão "Install";
* Escolher o canal que será utilizado;
* Autenticar a conta do GitHub;
* Fazer os passos 2 a 4 para integração com Heroku.