GitHub CLI - Uma Nova Experiência no GitHub!
Tags: webdev, productivity, showdev, git
Published: 2020-02-14 23:29:22

---
title: GitHub CLI - Uma Nova Experiência no GitHub!
published: true
description: Falaremos um pouco sobre o super lançamento que o time do GitHub fizeram recentemente em usar o GitHub em Linha de Comando. Vamos entender um pouco sobre isso e o que muda!
tags: webdev, productivity, showdev, git
---

*p.s.: esse post também está na versão de vídeo. Se desejam ver o vídeo, com a demo em ação, bastam clicar na imagem abaixo!*

YouTube: {% youtube 6o6-bKOZOEY %}

Fala Coders! Tudo certo? E hoje vamos falar um pouco a respeito de uma grande novidade que o time do GitHub está lançando: GitHub CLI!

Vamos entender um pouco o que seria o GitHub CLI e como podemos experimentar essa grande novidade! Vamos nessa?

## O que é o GitHub CLI?

Ontem (12/02) na sua conta do twitter, o criador do GitHub, **[Nat Friedman](https://twitter.com/natfriedman)**, fez um grande anúncio no twitter ao dizer que já está disponível, na versão beta, o **[GitHub CLI](https://cli.github.com/)**. Mas, o que seria o **[GitHub CLI](https://cli.github.com/)**?
Como o próprio site nos diz, seria para ajudar e facilitar a vida da pessoa desenvolvedora para enviar Pull Requests e Issues para o GitHub. Mas, como assim? Os desenvolvedores podem trazer a experiência do GitHub diretamente para o terminal.

Essa versão beta está disponível nos Sistemas Operativos: **[macOS, Windows e Linux](https://github.com/cli/cli#installation-and-upgrading)**

Eu particularmente quando eu li essa notícia, eu amei! Sempre amei usar os comandos do Git no terminal e agora poder usar comandos do GitHub via CLI, não poderia ser melhor para mim! 😍

Outro ponto importante a ser falado aqui, o projeto é totalmente Open Source. Então, se vocês desejam experimentar, testar localmente na máqina de vocês e reportar qualquer melhoria através de uma ISSUE ou Pull Request no repositório do projeto, fiquem à vontade em fazer a sua contribuição: **[AQUI](https://github.com/cli/cli)**.

E a linguagem usada nesse projeto... Golang! Sim! Como dito no meu último artigo: **[Top 5 Linguagens de Programação para Aprender em 2020!](https://dev.to/azure/top-5-linguagens-de-programacao-para-aprender-em-2020-52in)**, Golang está entre as top 5 principais linguagens de programação para o ano de 2020. E muitas grandes empresas tem usado essa linguagem para criar novos projetos, entre open source e privados. Se desejam aprender um pouco mais sobre Golang, deixo aqui a minha recomendação de alguns recursos para quem deseja aprender um pouco mais sobre o **Golang**:

* **[Documentação Golang](http://www.golangbr.org/doc/)**
* **[E-book online: Building Web Apps with Go](https://codegangsta.gitbooks.io/building-web-apps-with-go/content/)**
* **[Curso Golang - Youtube](https://www.youtube.com/playlist?list=PLUbb2i4BuuzCX8CLeArvx663_0a_hSguW)**
* **[Golang com Azure](https://docs.microsoft.com/azure/go/?WT.mc_id=devto-blog-gllemos)**
* **[Go no Visual Studio Code](https://code.visualstudio.com/docs/languages/go?WT.mc_id=devto-blog-gllemos)**

Bom, agora já deu para entender melhor o que é o GitHub CLI e como podemos ajudar nesse projeto Open Source. Agora, vamos experimentar esse novo recurso do GitHub!

## Instalando o GitHub CLI

Para testar esse novo recurso, sugiro que leiam a **[documentação do GitHub CLI](https://cli.github.com/manual/)**, para que assim possam entender melhor como usar o GitHub CLI. E sem contar que, nessa documentação, contém todos os comandos necessários que vocês podem usar. 

O comando principal é o `gh`. Através dele podemos usar os demais comandos, tais como:

* `gh pr [status, list, view, checkou, create]`
* `gh issues [status, list, view, create]`
* `gh help`

Mas, para testar todos esses comandos, precisamos instalar na nossa máquina. Aqui vou explicar as 3 formas que podemos realizar a instalação em diferentes distros:

#### Windows

No windows há 2 formas de realizarmos a instalação, via linha de comando usando o **[scoop](https://scoop.sh/)** ou instalando via programa .exe do Windows. Vamos lá:

* **Via instalação:** **[Download for Windows](https://cli.github.com/)**
* **Via linha de commando (scoop):** lembrando que via `scoop`, você deve instalar primeiro via PowerShell. Vamos ao passo a passo:

1. Abre o PowerShell e digite o seguinte comando para instalar o `scoop`:

```bash
> Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
```

2. Agora sim, que temos o `scoop` instalado, podemos agora usar o comando para instalar o GitHub CLI. Para isso, abram o prompt de comando e digitam o seguinte comando:

```bash
> scoop bucket add github-gh https://github.com/cli/scoop-gh.git
> scoop install gh
```

[![Screen-Shot-02-14-20-at-05-13-PM.png](https://i.postimg.cc/7h1dWbr7/Screen-Shot-02-14-20-at-05-13-PM.png)](https://postimg.cc/K3z0KGzv)

3. E por último, para ter certeza que você está usando a versão atualizada, digite o seguinte comando:

```bash
> scoop update gh
```

Se digitar o comando `gh help` e aparecer os comandos é porque está devidamente instalado no Windows!

#### Linux

* Debian/Ubuntu Linux:

```bash
>  sudo apt install git && sudo dpkg -i gh_*_linux_amd64.deb
```

* Fedora/Centos Linux

```bash
> sudo yum localinstall gh_*_linux_amd64.rpm
```

* Arch Linux

```bash
> yay -S github-cli
```

### macOS

```bash
> brew install github/gh/gh
> brew update && brew upgrade gh
```

## Vamos a Demo!!!

Bom, vamos a demo agora. Antes de mais nada, para testar esse novo recurso, vocês precisam ter algum repositório disponível já no GitHub. Nesse caso, estarei usando o meu repositório do **[Live Coding - Aprendendo Front-End com 9 Projetos](https://github.com/glaucia86/livecoding-frontend-projects)**. Se desejarem podem fazer fork desse repositório e inclusive tem vários projetos legais para vocês testarem localmente na máquina de vocês. 

* 1. Se vamos criar um PR, precisamos antes criar uma nova branch com alterações no código do projeto. Para isso, vamos criar uma nova branch com o seguinte comando:

```bash
> git checkout -b testando-github-cli
```

* 2. Agora sim, podemos criar um novo Pull Request, para isso digitem o seguinte comando:

```bash
> gh pr create
```

Vai aparecer uma espécie de questionário, a qual vocês terão que incluir as informações necessárias. Ao final, você verá que a url do PR criado! 

[![Screen-Shot-02-14-20-at-06-19-PM.png](https://i.postimg.cc/VL1gzmC7/Screen-Shot-02-14-20-at-06-19-PM.png)](https://postimg.cc/w3fLVKFJ)

p.s.: *Pode ser que ao digitar esse comando, apareça uma janela/página de permissão/autenticação como a imagem abaixo. Bastam clicar em **Authorize github**:*

[![Screen-Shot-02-14-20-at-05-29-PM.png](https://i.postimg.cc/fWxYrmpp/Screen-Shot-02-14-20-at-05-29-PM.png)](https://postimg.cc/yW8JJgVy)

Se vocês abrirem o repositório agora, verão que ele realmente foi criado:

[![Screen-Shot-02-14-20-at-06-21-PM.png](https://i.postimg.cc/4x0pHgYR/Screen-Shot-02-14-20-at-06-21-PM.png)](https://postimg.cc/WdMdxxm5)

* 3. Se você quiser, você pode até abrir o **Pull Request** via browser usando a linha de comando:

```bash
> gh pr create -w
```

E abrirá a página do PR recém criado:

[![Screen-Shot-02-14-20-at-06-26-PM.png](https://i.postimg.cc/PxJG31tw/Screen-Shot-02-14-20-at-06-26-PM.png)](https://postimg.cc/06THrMKk)

* 4. Agora vamos, fazer o checkout localmente do PR com o seguinte comando:

```bash
> gh pr checkout <numero-PR>
```


* 5. Agora vamos testar um outro comando para abrir uma nova Issue. Para isso, digitem o seguinte comando:

```bash
> gh issue create -t "Título do PR" -b "Assunto sobre o PR"
```

[![Screen-Shot-02-14-20-at-05-48-PM.png](https://i.postimg.cc/WzGrqFQd/Screen-Shot-02-14-20-at-05-48-PM.png)](https://postimg.cc/zHf39BDN)

* 6. Agora, abram o repositório na aba Issue e vejam o que acontece:

[![Screen-Shot-02-14-20-at-05-54-PM.png](https://i.postimg.cc/6q2jk02D/Screen-Shot-02-14-20-at-05-54-PM.png)](https://postimg.cc/y3Ky90TP)

[![Screen-Shot-02-14-20-at-05-54-PM-001.png](https://i.postimg.cc/WzZRGjnF/Screen-Shot-02-14-20-at-05-54-PM-001.png)](https://postimg.cc/YLty75TM)

* 7. E se desejar saber os status do Pull Request criado, bastam digitar o comando:

```bash
> gh pr status
```

E vejam o resultado:

[![Screen-Shot-02-14-20-at-06-34-PM.png](https://i.postimg.cc/PrwMbNkr/Screen-Shot-02-14-20-at-06-34-PM.png)](https://postimg.cc/QHj5h8tR)

Se você tiver configurado o **[GitHub Actions](https://docs.microsoft.com/azure/app-service/deploy-github-actions?WT.mc_id=devto-blog-gllemos)** no seu repositório, poderá ver se o C.I e C.D estão passando. Inclusive, falando em GitHub Actions, em breve estarei escrevendo um artigo falando sobre esse recurso do GitHub que também é incrível!

* 8. E vamos ao último comando da demo. O comando abaixo listará todos os Pull Requests abertos no seu repositório. Excelente recurso para quem tem projetos Open Source e recebe muitas contribuições da Comunidade:

```bash
> gh pr list
```

E vejam o resultado:

[![Screen-Shot-02-14-20-at-06-40-PM.png](https://i.postimg.cc/bwvVxpL6/Screen-Shot-02-14-20-at-06-40-PM.png)](https://postimg.cc/9rvBV36T)

Legal, não é mesmo?!

## Palavras Finais

Hoje entendemos um pouco mais sobre mais um novo projeto do time do GitHub - **[GitHub CLI](https://cli.github.com/)**. Um projeto promissor e acredito que deve ter bastante aderência, principalmente para aqueles desenvolvedores que desejam trabalhar com linha de comando.

Alguns pontos importantes para quem deseja mexer com o GitHub CLI, se faz necessário ter conhecimento prévio dos comandos do git, como: git branch, git checkout -b entre outros. Uma vez que para criar um novo PR, precisa criar uma nova branch, realizar commit e tudo mais.

Deixo aqui para todos vocês excelentes cursos gratuitos de Git & GitHub:

* **[Curso: Introdução ao Git](https://docs.microsoft.com/learn/modules/intro-to-git/?WT.mc_id=devto-blog-gllemos)**
* **[Curso: Editando código por meio de branches e mesclagem no Git](https://docs.microsoft.com/learn/modules/branch-merge-git/?WT.mc_id=devto-blog-gllemos)**
* **[Curso: Introdução ao controle de versão com o Git](https://docs.microsoft.com/learn/paths/intro-to-vc-git/?WT.mc_id=devto-blog-gllemos)**
* **[Curso: Colaborando com o Git](https://docs.microsoft.com/learn/modules/collaborate-with-git/?WT.mc_id=devto-blog-gllemos)**
* **[Vídeo: GitHub | Guia Completo do Iniciante](https://youtu.be/UbJLOn1PAKw)**

E deixo aqui com vocês um vídeo que eu fiz explicando um pouco mais sobre o GitHub CLI!

* 📺 **[Vídeo sobre o GitHub CLI](https://youtu.be/6o6-bKOZOEY)**

E para ficarem por dentro de várias outras novidades, não deixem de me seguir lá no twitter!

[![Twitter](https://code4coders.files.wordpress.com/2019/05/image-12.png)](https://twitter.com/glaucia_lemos86)

Nos vemos! Até a próxima série pessoal! 😍