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 curl
na linha de comando
Note
Se você quiser fazer solicitações de API usando a linha de comando, o GitHub recomenda o uso da GitHub CLI, o que simplifica a autenticação e as solicitações. Para obter mais informações sobre como começar a usar a API REST usando a GitHub CLI, confira a versão da GitHub CLI deste artigo.
-
Instale o
curl
caso ainda não o tenha feito em seu computador. Para verificar se ocurl
está instalado, executecurl --version
na linha de comando. Se a saída fornecer informações sobre a versão docurl
, isso significará que ocurl
está instalado. Se você receber uma mensagem semelhante acommand not found: curl
, será necessário baixar e instalar ocurl
. Para obter mais informações, confira a página de download do projeto curl. -
Crie um token de acesso. Por exemplo, crie um personal access token ou um token de acesso de usuário do GitHub App. Você usará esse token para autenticar sua solicitação, portanto, você deve conceder a ele todos os escopos ou permissões necessários para acessar o ponto de extremidade. Para saber mais, confira Autenticação na API REST.
Warning
Trate o token de acesso como faria com uma senha.
Você também pode usar a GitHub CLI em vez do
curl
. A GitHub CLI cuidará da autenticação para você. Para obter mais informações, confira a versão da GitHub CLI desta página.Se essas opções não forem possíveis, considere usar outro serviço do CLI para armazenar seu token com segurança.
-
Use o comando
curl
para fazer sua solicitação. Passe o seu token em um cabeçalho deAuthorization
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. SubstituaYOUR-TOKEN
pelo seu token.Shell curl --request GET \ --url "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer YOUR-TOKEN"
curl --request GET \ --url "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer YOUR-TOKEN"
Note
Na maioria dos casos, você pode usar
Authorization: Bearer
ouAuthorization: token
a fim de passar um token. No entanto, se estiver passando um JWT (token Web JSON), você deverá usarAuthorization: Bearer
.
Como usar os comandos curl
em GitHub Actions
Você também pode usar os comandos curl
em seus fluxo de trabalho de GitHub Actions.
Autenticação com um token de acesso
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.
No exemplo a seguir, substitua 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: | curl --request GET \ --url "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer $GH_TOKEN"
on:
workflow_dispatch:
jobs:
use_api:
runs-on: ubuntu-latest
permissions:
issues: read
steps:
- env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
curl --request GET \
--url "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues" \
--header "Accept: application/vnd.github+json" \
--header "Authorization: Bearer $GH_TOKEN"
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 seu aplicativo na página de configurações do seu aplicativo ou por meio da API do aplicativo. 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 como armazenar 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 on: workflow_dispatch: jobs: use_api: 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: | curl --request GET \ --url "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer $GH_TOKEN"
on: workflow_dispatch: jobs: use_api: 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: | curl --request GET \ --url "http(s)://HOSTNAME/api/v3/repos/REPO-OWNER/REPO-NAME/issues" \ --header "Accept: application/vnd.github+json" \ --header "Authorization: Bearer $GH_TOKEN"
Próximas etapas
Para obter um guia mais detalhado, confira Introdução à API REST.