跳到主要內容

GitHub

此筆記本展示如何載入 GitHub 上給定儲存庫的問題和提取請求 (PR)。同時展示如何載入 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 (受託人)
  • creator (建立者)
  • mentioned (提及)
  • labels (標籤)
  • sort (排序)
  • direction (方向)
  • since (自從)

更多資訊請參閱 https://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)

僅載入問題

預設情況下,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 檔案內容

對於以下程式碼,載入 rpeo 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

此頁面有幫助嗎?