跳到主要内容
本笔记本展示了如何为 GitHub 上的指定仓库加载 Issues 和拉取请求 (PR)。同时还展示了如何为 GitHub 上的指定仓库加载 Github 文件。我们将以 LangChain Python 仓库为例。

设置访问令牌

要访问 GitHub API,您需要一个个人访问令牌 - 您可以在这里进行设置: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()

加载 Issues 和 PR

from langchain_community.document_loaders import 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”创建的所有 Issues 和 PR。 以下是您可以使用的所有过滤器列表:
  • include_prs
  • milestone
  • state
  • assignee
  • 创建者
  • mentioned
  • labels
  • sort
  • direction
  • since
更多信息,请参阅 docs.github.com/en/rest/issues/issues?apiVersion=2022-11-28#list-repository-issues
docs = loader.load()
print(docs[0].page_content)
print(docs[0].metadata)

仅加载 Issues

默认情况下,GitHub API 将拉取请求也视为 Issues。要仅获取“纯粹”的 Issues(即不包括拉取请求),请使用 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
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

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.