GitHub API

ERA_YES / 2023-05-25 / 原文

Github API

GitHub API 是一个 RESTful API,支持 HTTP 请求和 JSON 响应。主要用于访问 GitHub 上的仓库、问题、pull request、用户、组织等信息。

使用 GitHub API,你需要遵循以下步骤:

1.获取个人访问令牌

首先,你需要在 GitHub 上创建一个个人访问令牌,用于进行 API 访问。在 GitHub 网站上登录后,依次点击 Settings -> Developer settings -> Personal access tokens -> Generate new token,然后按照提示输入令牌描述和所需权限,生成令牌。

2.查找 API 文档

GitHub API 的文档可以在 https://docs.github.com/en/rest 上找到。了解 API 的可用资源和端点、请求格式和参数、响应格式和状态码等重要信息。

3.使用 API 进行请求

使用各种 HTTP 请求方法(主要是 GET、POST、PUT、PATCH 和 DELETE)通过 API 访问 GitHub 的资源。对于未经验证的请求,每个 API 都有一个耗费限制,建议先进行身份验证再进行操作。

以下是 Python 示例代码来获取 GitHub 上的公共仓库:

import requests

api_url = "https://api.github.com/repositories"
headers = {"Authorization": "token YOUR_ACCESS_TOKEN"}

response = requests.get(api_url, headers=headers)
print(response.json())

其中,YOUR_ACCESS_TOKEN 需要替换为你刚才生成的访问令牌。以上示例代码使用 requests 库发送 GET 请求来获取公共仓库列表。具体的请求和响应信息可以在 GitHub API 文档中查找。
注意:Github 不允许一个完整的 token 字符串,要将分开

访问Issues

要访问某个 GitHub 仓库的 issues,可以使用 GitHub REST API 中的 GET /repos/:owner/:repo/issues 端点。以下是 Python 示例代码:

import requests

api_url = "https://api.github.com/repos/{owner}/{repo}/issues"

headers = {"Authorization": "token YOUR_ACCESS_TOKEN"}
params = {"state": "all"}  # 可选的查询参数,这里获取所有状态的 issues

response = requests.get(api_url.format(owner="OWNER", repo="REPO"), headers=headers, params=params)
issues = response.json()

for issue in issues:
    print(issue["title"], issue["state"])

其中,OWNERREPO 需要替换为目标仓库的拥有者和仓库名,YOUR_ACCESS_TOKEN 为你的个人访问令牌。以上示例代码获取了目标仓库中所有状态的 issues,并打印出每个 issue 的标题和状态。

还有很多其他的查询参数可供使用,例如按标签、里程碑、分配人等过滤、排序和分页等。具体可以在 GitHub REST API 文档中查找。


以上便是使用 GitHub API 的大致流程。