Introdução
Este artigo descreve como começar rapidamente com a API REST do GitHub usando a GitHub CLI, curl
ou JavaScript. Para ver um guia mais detalhado, confira Introdução à API REST.
Como usar a GitHub CLI na linha de comando
A GitHub CLI é a maneira mais fácil de usar a API REST do GitHub por meio da linha de comando.
-
Instale a GitHub CLI no macOS, no Windows ou no Linux. Para obter instruções de instalação, confira Instalação no repositório do GitHub CLI.
-
Para se autenticar no GitHub, execute o comando a seguir no terminal.
gh auth login
-
Selecione o local em que deseja se autenticar:
- Se você acessar o GitHub no GitHub.com, selecione GitHub.com.
- Se você acessar o GitHub em um domínio diferente, selecione Outro e depois insira o nome do host (por exemplo,
octocorp.ghe.com
).
-
Siga o restante das solicitações na tela.
O GitHub CLI armazena automaticamente suas credenciais do Git quando você escolhe HTTPS como protocolo preferencial para operações Git e responde "sim" ao prompt que pergunta se deseja efetuar a autenticação no Git com suas credenciais do GitHub. Isso pode ser útil porque permite que você use comandos Git como
git push
egit pull
sem a necessidade de configurar um gerenciador de credenciais separado ou usar SSH. -
Faça uma solicitação usando o subcomando GitHub CLI
api
, seguido pelo caminho. Use o sinalizador--method
ou-X
para especificar o método. Para obter mais informações, confira a documentaçãoapi
da GitHub CLI.Este exemplo faz uma solicitação para o ponto de extremidade "Obter Octocat", que usa o método
GET
e o caminho/octocat
. Para ver a documentação de referência completa desse ponto de extremidade, confira Pontos de extremidade da API REST para metadados.Shell gh api /octocat --method GET
gh api /octocat --method GET
Como usar a GitHub CLI em GitHub Actions
Você também pode usar a GitHub CLI em seus fluxos de trabalho de GitHub Actions. Para saber mais, confira Usar o GitHub CLI em fluxos de trabalho.
Autenticação com um token de acesso
Em vez de usar o comando gh auth login
, passe um token de acesso como uma variável de ambiente chamada GH_TOKEN
. O GitHub recomenda que você use o GITHUB_TOKEN
interno em vez de criar um token. Se isso não for possível, armazene o token como um segredo e substitua GITHUB_TOKEN
no exemplo abaixo pelo nome do seu segredo. Para obter mais informações sobre GITHUB_TOKEN
, confira Autenticação automática de token. Para saber mais sobre segredos, confira Usar segredos em ações do GitHub.
O fluxo de trabalho de exemplo a seguir usa o ponto de extremidade Listar problemas do repositório e solicita uma lista de issues em o repositório octocat/Spoon-Knife
.
on: workflow_dispatch: jobs: use_api: runs-on: ubuntu-latest permissions: issues: read steps: - env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
Autenticação com um GitHub App
Se estiver se autenticando com um GitHub App, você poderá criar um token de acesso de instalação no fluxo de trabalho:
-
Armazene a ID do seu GitHub App como uma variável de configuração. No exemplo a seguir, substitua
APP_ID
pelo nome da variável de configuração. Você pode encontrar o ID do aplicativo na página de configurações do aplicativo ou por meio da API. Para saber mais, confira Pontos de extremidade da API REST para o GitHub Apps. Para saber mais sobre variáveis de configuração, confira Armazenar informações em variáveis. -
Gerar uma chave privada para o seu aplicativo. Armazene o conteúdo do arquivo resultante como um segredo. (Armazene todo o conteúdo do arquivo, incluindo
-----BEGIN RSA PRIVATE KEY-----
e-----END RSA PRIVATE KEY-----
). No exemplo a seguir, substituaAPP_PEM
pelo nome do segredo. Para saber mais, confira Como gerenciar chaves privadas para Aplicativos GitHub. Para saber mais sobre segredos, confira Usar segredos em ações do GitHub. -
Adicione uma etapa para gerar um token e use esse token em vez de
GITHUB_TOKEN
. Observe que esse token vai expirar após 60 minutos. Por exemplo:YAML on: workflow_dispatch: jobs: track_pr: runs-on: ubuntu-latest steps: - name: Generate token id: generate-token uses: actions/create-github-app-token@v1 with: app-id: ${{ vars.APP_ID }} private-key: ${{ secrets.APP_PEM }} - name: Use API env: GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
on: workflow_dispatch: jobs: track_pr: runs-on: ubuntu-latest steps: - name: Generate token id: generate-token uses: actions/create-github-app-token@v1 with: app-id: ${{ vars.APP_ID }} private-key: ${{ secrets.APP_PEM }} - name: Use API env: GH_TOKEN: ${{ steps.generate-token.outputs.token }} run: | gh api https://api.github.com/repos/octocat/Spoon-Knife/issues
Próximas etapas
Para obter um guia mais detalhado, confira Introdução à API REST.