跳到主要内容
Open In ColabOpen on GitHub

GitHub

此笔记本展示了如何从 GitHub 加载给定仓库的议题 (issues) 和拉取请求 (PRs)。它还展示了如何从 GitHub 加载给定仓库的 GitHub 文件。我们将以 LangChain Python 仓库为例。

设置访问令牌

要访问 GitHub API,您需要一个个人访问令牌——您可以在此处设置:https://github.com/settings/tokens?type=beta。您可以将此令牌设置为环境变量 GITHUB_PERSONAL_ACCESS_TOKEN,它将自动被获取,或者您可以在初始化时直接通过 access_token 命名参数传递它。

# If you haven't set your access token as an environment variable, pass it in here.
from getpass import getpass

ACCESS_TOKEN = getpass()

加载议题和拉取请求

from langchain_community.document_loaders import GitHubIssuesLoader
API 参考:GitHubIssuesLoader
loader = GitHubIssuesLoader(
repo="langchain-ai/langchain",
access_token=ACCESS_TOKEN, # delete/comment out this argument if you've set the access token as an env var.
creator="UmerHA",
)

让我们加载由 "UmerHA" 创建的所有议题和拉取请求。

以下是您可以使用的所有过滤器列表

  • include_prs(包含拉取请求)
  • milestone(里程碑)
  • state(状态)
  • assignee(经办人)
  • 创建者
  • mentioned(提及)
  • labels(标签)
  • sort(排序)
  • direction(方向)
  • since(自...以来)

更多信息请参见 https://githubdocs.cn/en/rest/issues/issues?apiVersion=2022-11-28#list-repository-issues

docs = loader.load()
print(docs[0].page_content)
print(docs[0].metadata)

仅加载议题

默认情况下,GitHub API 将拉取请求也视为议题。要仅获取“纯粹”的议题(即不包括拉取请求),请使用 include_prs=False

loader = GitHubIssuesLoader(
repo="langchain-ai/langchain",
access_token=ACCESS_TOKEN, # delete/comment out this argument if you've set the access token as an env var.
creator="UmerHA",
include_prs=False,
)
docs = loader.load()
print(docs[0].page_content)
print(docs[0].metadata)

加载 GitHub 文件内容

以下代码加载了仓库 langchain-ai/langchain 中的所有 Markdown 文件

from langchain_community.document_loaders import GithubFileLoader
API 参考:GithubFileLoader
loader = GithubFileLoader(
repo="langchain-ai/langchain", # the repo name
branch="master", # the branch name
access_token=ACCESS_TOKEN,
github_api_url="https://api.github.com",
file_filter=lambda file_path: file_path.endswith(
".md"
), # load all markdowns files.
)
documents = loader.load()

其中一个文档的示例输出

document.metadata: 
{
"path": "README.md",
"sha": "82f1c4ea88ecf8d2dfsfx06a700e84be4",
"source": "https://github.com/langchain-ai/langchain/blob/master/README.md"
}
document.content:
mock content