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.
-
Autentique-se com GitHub executando este comando em seu terminal. Substitua
HOSTNAME
pelo nome de sua instância do GitHub Enterprise Server. Por exemplo,octo-inc.ghe.com
.gh auth login --hostname HOSTNAME
-
Siga os prompts 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 obter mais informações, 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 obter mais informações sobre segredos, confira "Usar segredos em ações do GitHub".
O fluxo de trabalho de exemplo a seguir usa o ponto de extremidade "Listar issues do repositório" e solicita uma lista de issues em um repositório que você especificar. Substitua o HOSTNAME
pelo nome do sua instância do GitHub Enterprise Server. Substitua REPO-OWNER
pelo nome da conta proprietária do repositório. Substitua REPO-NAME
pelo nome do repositório.
on: workflow_dispatch: jobs: use_api: runs-on: ubuntu-latest permissions: issues: read steps: - env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | gh api http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/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 obter mais informações, confira "Pontos de extremidade da API REST para o GitHub Apps". Para saber mais sobre variáveis de configuração, confira "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 obter mais informações, confira "Como gerenciar chaves privadas para Aplicativos GitHub". Para obter mais informações 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. no exemplo a seguir, substituaHOSTNAME
pelo nome do sua instância do GitHub Enterprise Server. SubstituaREPO-OWNER
pelo nome da conta proprietária do repositório. SubstituaREPO-NAME
pelo nome do repositório.YAML # Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub. # São fornecidas por terceiros e regidas por # termos de serviço, política de privacidade e suporte separados # online. # O GitHub recomenda fixar ações em um SHA de commit. # Para obter uma versão mais recente, você precisará atualizar o SHA. # Você também pode fazer referência a uma marca ou branch, mas a ação pode ser alterada sem aviso. on: workflow_dispatch: jobs: track_pr: runs-on: ubuntu-latest steps: - name: Generate token id: generate-token uses: tibdex/github-app-token@32691ba7c9e7063bd457bd8f2a5703138591fa58 # v1.9.0 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 http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues
# Esse fluxo de trabalho usa ações que não são certificadas pelo GitHub. # São fornecidas por terceiros e regidas por # termos de serviço, política de privacidade e suporte separados # online. # O GitHub recomenda fixar ações em um SHA de commit. # Para obter uma versão mais recente, você precisará atualizar o SHA. # Você também pode fazer referência a uma marca ou branch, mas a ação pode ser alterada sem aviso. on: workflow_dispatch: jobs: track_pr: runs-on: ubuntu-latest steps: - name: Generate token id: generate-token uses: tibdex/github-app-token@32691ba7c9e7063bd457bd8f2a5703138591fa58 # v1.9.0 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 http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues
Próximas etapas
Para obter um guia mais detalhado, confira "Introdução à API REST".