Skip to main content

GitHub REST API 快速入门

了解如何开始使用 GitHub REST API。

简介

本文介绍如何快速地通过 GitHub CLI、curl 或 JavaScript 开始使用 GitHub REST API。 有关更详细的指南,请参阅 REST API 入门

使用命令行中的 curl

Note

如果要从命令行发出 API 请求,GitHub 建议使用 GitHub CLI,可以简化身份验证和请求。 有关通过 GitHub CLI 开始使用 REST API 的详细信息,请参阅本文的 GitHub CLI 版本。

  1. 如果计算机上尚未安装 curl,请安装。 若要检查是否安装了 curl,请在命令行中执行 curl --version。 如果输出是有关 curl 版本的信息,则表示已安装 curl。 如果收到类似于 command not found: curl 的消息,则需要下载并安装 curl。 有关详细信息,请参阅 curl 项目下载页面

  2. 创建访问令牌。 例如,创建 personal access token 或 GitHub App 用户访问令牌。 使用此令牌对请求进行身份验证,因此应向其授予访问终结点所需的任何范围或权限。 有关详细信息,请参阅“对 REST API 进行身份验证”。

    Warning

    将访问令牌看做是密码。

    若要确保令牌安全,可以将令牌存储为 Codespaces 机密,并通过 Codespaces 使用命令行。 有关详细信息,请参阅管理 Codespaces 的加密机密

    还可以使用 GitHub CLI,而不是 curl。 GitHub CLI 会为你处理身份验证。 有关详细信息,请参阅此页面的 GitHub CLI 版本。

    如果无法使用这些选项,请考虑使用其他 CLI 服务安全地存储令牌。

  3. 使用 curl 命令发出请求。 在 Authorization 标头中传递令牌。 将 YOUR-TOKEN 替换为令牌。

    Shell
    curl --request GET \
    --url "https://api.github.com/repos/octocat/Spoon-Knife/issues" \
    --header "Accept: application/vnd.github+json" \
    --header "Authorization: Bearer YOUR-TOKEN"
    

    Note

    在大多数情况下,可以使用 Authorization: BearerAuthorization: token 传递令牌。 但是,如果要传递 JSON Web 令牌 (JWT),则必须使用 Authorization: Bearer

在 GitHub Actions 中使用 curl 命令

还可以在 GitHub Actions 工作流中使用 curl 命令。

使用访问令牌进行身份验证

GitHub 建议使用内置 GITHUB_TOKEN,而不是创建令牌。 如果无法执行此操作,请将令牌存储为机密,并将以下示例中的 GITHUB_TOKEN 替换为机密的名称。 有关 GITHUB_TOKEN 的详细信息,请参阅 自动令牌身份验证。 有关机密的详细信息,请参阅 在 GitHub Actions 中使用机密

YAML
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 "https://api.github.com/repos/octocat/Spoon-Knife/issues" \
          --header "Accept: application/vnd.github+json" \
          --header "Authorization: Bearer $GH_TOKEN"

使用 GitHub App 进行身份验证

如果使用 GitHub App 进行身份验证,则可以在工作流中创建安装访问令牌:

  1. 将 GitHub App 的 ID 存储为配置变量。 在下面的示例中,将 APP_ID 替换为配置变量的名称。 您可以在应用的设置页面上或通过应用 API 找到应用 ID。 有关详细信息,请参阅“GitHub Apps 的 REST API 终结点”。 有关配置变量的详细信息,请参阅 在变量中存储信息

  2. 为应用生成私钥。 将所生成文件的内容作为机密进行存储。 (存储文件的全部内容,包括 -----BEGIN RSA PRIVATE KEY----------END RSA PRIVATE KEY-----。)在以下示例中,将 APP_PEM 替换为机密的名称。 有关详细信息,请参阅“管理 GitHub 应用的私钥”。 有关存储机密的详细信息,请参阅 在 GitHub Actions 中使用机密

  3. 添加用于生成令牌的步骤,并使用该令牌而不是 GITHUB_TOKEN。 请注意,此令牌会在 60 分钟后过期。 例如:

    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 "https://api.github.com/repos/octocat/Spoon-Knife/issues" \
              --header "Accept: application/vnd.github+json" \
              --header "Authorization: Bearer $GH_TOKEN"
    
    

后续步骤

有关更详细的指南,请参阅 REST API 入门