Guia simples e rápido para instalação e configuração do GitHub CLI para autenticação
Porquê usar isto?
- Facilidade de não ter de andar com tokens/chaves atrás,
- Outras funcionalidades que pode ver esta página
Instalação
Debian (Ubuntu incluído)
sudo apt install gh
RedHat
sudo dnf install gh
Se não for suficiente veja este guia
ArchLinux
sudo pacman -S github-cli
Outras distribuições veja a guide do github
Configuração
1. Executar o comando para iniciar o menu:
gh auth login
2. Selecionar GitHub.com
3. Selecione o protocolo que utiliza para os seus repositórios.
Pode verificar o que está a usar vendo o ficheiro /.git/config na root do repositório local.
No caso de ser HTTPS:

No caso de ser SSH:

Pode também alterar o que usa mudando para o link que obtém clicando no botão verde 'Code' na página do repositório.
Nota: Se der clone usando o comando da aba do GitHub CLI, fica a usar HTTPS por isso configure isto com HTTPS.

3.1. Configurar com HTTPS (recomendado):
Aqui pode configurar usando o browser ou usando um token.
3.1.1. Usando o web browser:
- Selecione a primeira opção:

- Copie o código temporário e clique Enter:

- Cole o código temporário na caixa da janela do browser, clique em 'Continue' e de seguida em 'Authorize'. Deve também autorizar o acesso do GitHub CLI às organizações pretendidas.
3.1.2. Usando o token HTTPS:
- Deve ir ao GitHub para criar o token. Vá a Settings > Developer Settings > Personal Access Tokens > Tokens (classic) > Generate New Token (classic)
- Crie o token com no mínimo os seguintes scopes: 'repo', 'workflow', 'admin:org':

- Copie o token gerado e cole no terminal após escolher a opção de 'Paste an authentication token'.

No final deverá aparecer a seguinte mensagem:
3.2. Configurar com SSH:
Se já tiver uma chave criada, selecione essa mesma chave:

Se não tiver nenhuma chave pode criar na hora, pode colocar uma palavra-passe (opcional) e depois selecione 'Login with a web browser' e segue o passo 3.1.1.

No final deverá aparecer a seguinte mensagem:
Pode conter erros, caso encontre algum, crie um ticket


